見出し画像

NEノート


☆ルータとスイッチの定番コマンド



・設定


保存 copy run start = write-(省略) = wr

初期化 erase startup-config = write erase-(省略) = wr e

再起動 reload

・時刻合わせ・タイムゾーン

→UTC協定世界時間の+9した値が、JST日本標準時(UTC+0900)

①現在の時間を確認する※UTCは(世界協定時) →#show clock

②タイムゾーンを日本時に合わせる → (config)#clock timezone JST 9

③手動で時間を合わせる※大体の時間で構いません。また、再起動すると時刻設定は消えます → #clock set 10:25:00 07 May 2021

・タイムスタンプ 

→ログメッセージ・デバッグメッセージに時間情報を表示させる

①ルータのf0ポートを事前に閉塞解除(no shutdown)しておく。IPアドレスの設定は不要

②閉塞解除したf0ポートとPCのLANポートをLANケーブルで接続する。ルータのLANポートがUPした旨を通知するログメッセージが表示されるはず。そのメッセージの先頭に時刻の情報が入っているかを確認する

③ルータのLANポートからLANケーブルを抜去したときにもログメッセージが表示されるはず。そのメッセージの先頭に時刻の情報が入っているかも確認する

④ログメッセージの先頭に時刻情報が入るように設定を行う-ログメッセージおよびデバッグメッセージ両方に時刻情報を入れる-日時を追加する-設定したタイムゾーンを利用する-ミリ秒単位で出力する

(config)#service timestamps log datetime localtime msec

(config)#service timestamps debug datetime localtime msec


・ドメイン名からの名前解決サービスを止める

→遠隔接続時などにIPアドレスではなくホスト名で接続したい場合、指定のDNSサーバに問い合わせに行くようにする

①ルータの特権モードで適当な文字列を入れてEnterを押す例)Router#testtest

②結果を確認する。プロンプトになかなか戻ってこない場合は理由を考える

③今度は手順①を行ったときに速やかにプロンプトに戻るように設定を投入する※ドメイン名からの名前解決サービスを無効化する

(config)#no ip domain-lookup

・バナー

→ログイン時などに表示する定型メッセージ

①コンソールケーブル経由で接続したときに、ログインする際にバナーが表示されるようmotd(message of the day)でバナーの設定を行う。

(config)#banner motd ^←区切り文字は^

区切り文字は何でもよい(正解例では^[ハットマーク]を使用)なお、バナーには以下の情報を含めて表示されるようにすること

・Hostname:自分で決めた任意のホスト名 → Hostname:RT01

・Model:Cisco1812J → Model:Cisco1812J

・Serial:show versionの”Processor Board ID” → Serial:Fxxxxxxx

・Date:yyyy/mm/dd → Date:2022/01/01

※TeraTerm上でバナーメッセージを作るのは結構手間なので、メモ帳で作ったものをTeraTermに張り付けるのがオススメ → shiftキー+Insertキーでペースト

②PCからコンソールケーブル経由で接続を行い、ログインする前にバナーが表示されることを確認する

※バナーの設定が正しいのに表示されない場合は、ログアウトをしてから再度接続を試してみる


・description

→インターフェイスに対して付ける説明文のこと。機能には影響しない。このインターフェイスと接続している対向の装置名およびインターフェイス番号

①ケーブルを挿しているルータのLANポートに説明文を追加する

※内容は任意。PCと接続していることが分かればOK → (config)#interface f0

②現在の設定を確認して説明文が反映されていることを確認する

例)”Connect To PC” → (config-if)#description "Connection To PC"


・割り込み表示

→再表示の設定

入力中のコマンドが装置からのログやデバッグメッセージで分割されたままになることを防ぎ、分割されたコマンドがメッセージ後に再表示されるようにする

①特権モードで適当な文字列を数文字入力し、入力のカーソルキーが入力した文字の右側に来ている

ことを確認する 例 Router# testtest

②ルータの LAN ポートからケーブルを抜き挿ししてみる。ポートインターフェイスがアップダウンしたログメッセージが出て、

入力のカーソルキーの表示位置がログメッセージの後ろになっていることを確認する

③確認ができたら Ctrl キー+ C キーで一度キャンセル。

入力のカーソルキーの表示位置がメッセージ表示前のところに自動で戻るように設定する

なお、この設定はコンソールポートに対して行うこと。 → logging synchronous

④設定ができたら手順①と②を再度行い、入力カーソルキーの位置が自動で戻っていることを確認する

⑤設定を保存する
・TeraTermでのログ取得の準備①ファイル→ログ

②保存場所を”デスクトップ”指定。ファイル名は任意だが、拡張子として”.log”を付ける

③保存を押す

・ログ取得(手動で取得する一般的な手順)


①ログを取得する機器で特権モードに入り、terminal length 0コマンドを入力する

※改ページ機能が無効(24行ごとに-more-で止まらなくなる)※TeraTermの画面を閉じたり、ログアウトした場合は再度入力する必要がある

②取得するコマンドを入力する

③コマンドの出力が完了したらログの取得を終了する。

別のコマンドのログを取得する場合はもう一度準備のところから繰り返す

☆疎通確認


コンピュータおよびネットワーク機器同士の接続確認のことで、pingコマンドを使う場合に特にこう呼ばれる。pingコマンドで、接続確認したい宛先コンピュータ/ネットワーク機器のIPアドレスを指定して実行する。結果、正常に実行できれば、通常は機器間のネットワークは正常であると判断される。

もし、エラーが発生した場合は、何らかのネットワーク障害が発生していると考えられる。ただし、コマンドを打ち込んだコンピュータ自身の問題かもしれないなど、あくまでネットワーク全体の障害とは言い切れない点に注意。また、セキュリティ対策の一環で意識的にpingを拒否したりしている機器もあるのでこちらも注意が必要。

なお、pingの結果には、応答時間など統計値も表示されるので、簡易的だがネットワークの性能を計測することもできる

pingの発音は「ピン」または「ピング」


PCからpingするときは、事前に以下の作業を行っておく必要がある

ⅰ.Wi-Fi無効化

ⅱ.オペレーティングシステムやウィルスソフトのファイアウォール機能の無効化

・プライベートネットワークとパブリックネットワークの2つのファイアウォールをオフ

ⅲ.有線LANアダプタのIPアドレスの設定

・コマンドプロンプトでipconfigを入力し確認


①ルータの電源を投入する

②ルータのF0ポート(イーサネットポート)とPCにLANケーブルを挿し込む

③ケーブルを挿し込んだルータのF0ポートにIPアドレスを設定する※プライベートIPアドレスなら何でもOK

④PCにもIPアドレスを設定する※ルータに設定したIPアドレスと通信できるIPアドレスを設定

⑤ルータで現在の設定を確認するshow running-config show interface f0 show ip interface brief

⑥PCのコマンドプロンプトからルータのIPアドレスに対して疎通確認を行い、正常に応答があることを確認する

⑦ルータからPCのIPアドレスに対して疎通確認を行い、正常に応答があることを確認する


・ConsoleおよびVTYとは


console→コンソールポートのこと。またはコンソールポートを経由した接続のこと。多くの機種がが1ポートのみ持つ(con 0)

VTY →Virtual Typewriter。機器に対してネットワークを通じて別のコンピュータから遠隔操作の受付を行うための仮想的なポートのこと。昔からの慣習で5ポートを設定することが多い(vty 0 4)

遠隔操作→遠隔接続やリモートコントロールとも呼ばれ、コンピュータやネットワーク機器などの操作を機器から離れた場所から実行すること。

一般的には、通信用ケーブルや無線を通じて、ネットワーク越しに対象の機器をコントロールすることを指す場合が多い


特権パスワードとコンソールパスワード

①コンソール接続でルータと接続したら、ルータの電源を投入する

②起動したらホスト名と特権パスワードを設定する

・ホスト名: RT01

・特権パスワード: kenshu123(暗号化はしない)

③コンソールポートに対してログインしてこようとするユーザに対して、パスワードによる認証のチェックを行うようにする

セキュリティ対策の一環だが、本来はユーザ名と組み合わせるなどより厳しく認証するのが望ましい

文字列: console 暗号化はしない

認証方法:パスワードのみで認証

④一度ログアウトする。再度、 ログインしてみてパスワードのチェックがかかるか確認する

⑤確認ができたら、設定を保存する


☆遠隔接続 (TELNET)


引き続き、コンソール接続でルータを設定していく

①ルータの最も若番のLANポート イーサネットポートに192.168.1.254/24のIPアドレスを設定する

若番・・・対象の中で最も小さい番号。例えば Fe0/0 と 0/1 という 2 つの ポートがある場合、 0 のほう が

若いので 0/0 が若番となる。逆は老番と呼ばれる

②TeraTermの画面を閉じて、ルータからコンソールケーブルを外す

③PCの有線LANのポートに192.168.1.10/24のIPアドレスを設定する

④ルータとPC間をLAN ケーブルで接続する

⑤PCのコマドプロンプトまたはExPingツールからルータへ疎通ができることを確認する

※WiFi 無効、Windowsファイアウォール機能OFFを忘れずに!

⑥TeraTermを立ち上げて、TELNETによる遠隔接続を試してみる

コンソールケーブルは接続していない状態

⑦OKを押してTeraTermの画面の応答があるかを確認する

ある/なしの結果の確認とその理由を考えてみる

⑧⑦で応答がなかった場合はルータからLANケーブルを外してコンソール接続をする。

ルータにTELNETプロトコルによる遠隔操作を受け付けるための設定を行う

対象ポート VTY の 0 4 → line vty 0 4

認証方法 :パスワードのみで認証 (パスワード telnet) → password telnet

⑨ルータからコンソールケーブルを外して、LAN ケーブルを再びつなぐ

⑩今度はTeraTermからTELNETよる遠隔接続ができることを確認する

コンソールケーブル経由の通信ではないという点がポイント


☆遠隔接続 (SSH)


⑪ルータからLANケーブルを外してコンソール接続をする。

以下のパラメータに従って、ルータに SSHプロトコルによる遠隔操作を受け付けるための設定を行う

準備:ホスト名とドメイン名とIPアドレスとイネーブルパスワードの設定が必要

ドメイン名 → lab.com →ip domain-name lab.com


ログイン認証 → ユーザ名とパスワードによるチェック

ユーザ名 → sshuser →

パスワード → sshssh(暗号化しない)

line vty 0 4 

username sshuser password sshssh

login local

RSA鍵長 → 2048 →crypto key generate rsa <2048を選択>

プロトコルのバージョン → バージョン2 →ip ssh version <1/2>

⑫遠隔接続のプロトコル制限

セキュリティを高めるため、ルータへ遠隔接続をSSHプロトコルによる接続のみに制限してみる。

ただし、 VTY ポートに対する設定のみで行うこと。アクセスリストは使用しない

(config-line)#transport input ssh

⑬ルータからコンソールケーブルを外して、LANケーブルをつなぎTeraTermを立ち上げSSHによる遠隔接続ができることを確認する

⑭TELNET 接続は拒否されることを確認する 手順⑫の設定の効果

⑮一旦設定を保存しておく

⑯TeraTerm を閉じて遠隔接続を終了する。ルータからLANケーブルを外してコンソール接続に戻す


Ciscoルータから他の機器へSSH接続するときのコマンド

#ssh -v 2 -l ユーザ名 接続したいルータのIPアドレス  ※ -l ←小文字のエル

Password: パスワードを入力

・タイムアウト


①コンソール接続で続けていく。

今度は無操作時間が一定時間続いた場合に強制的にログアウトさせるようにする

セキュリティ対策の一環

②コンソールポートに対して、無操作時間 が 5 分 経過した時点で強制的にログアウトする設定を行う

デフォルト設定は 10 分

(config-line)#exec-timeout <分> [<秒>]省略すると0が自動的に指定。

<分>に0を指定すると自動ログアウトが無効になるがセキュリティの強度を下げるだけなので注意

③一度ログアウトする

④再度ログインを行い、ログイン後に何も操作 せず 5 分 経過した時点で強制的にログアウトすることを

確認する

⑤確認ができたら設定を保存する

・跨ぎTELNET

自分が遠隔接続可能な機器に一旦ログインし、その機器からさらに別の機器に遠隔接続すること。

一見便利そうだが、本来遠隔接続の権限を持たないユーザが不正にログインできてしまう恐れがある

★セキュリティの観点から問題があるのは明らかなため、どこの現場でも原則禁止になっている

☆パケットキャプチャとは


ネットワーク上を実際に流れているパケットを採取して分析すること。

ネットワークで障害が発生した場合に問題がどこにあるのかを解析するために活用される。

また、設計通りの通信ができているかの確認作業でも使われたりする


・パケットキャプチャの方法


キャプチャ専用の装置もあるが、多くの場合はパケットキャプチャソフトウェアをPCにインストールする。

もっとも代表的なソフトとしてWiresharkというものがある。

場合によっては、キャプチャしたいパケットが流れる装置間にミラーリング機能が有効なスイッチを配置する。

ミラーリング機能とは、LAN スイッチの特定のポート上で送受信するパケットを別のポートにコピーする機能のこと。

そして、キャプチャしたいパケットが流れる装置間にミラーリングが有効なスイッチを配置する


・Wireshark


→パケットキャプチャソフトウェア。いわゆるフリーウェアに分類され、 誰でも自由に入手、使用することを認めているため、 動作検証や障害切り分けなどで 世界中の多くのエンジニアが愛用している。

インストールできるOSは、Windowsの他、MAC OS、UNIX 系OSにも対応。数百種類以上のネットワークプロトコルをサポートしている


①PCとルータを接続する

②ルータでTELNETおよびSSHの遠隔接続を設定する

③WireSharkを起動して有線LANでキャプチャできる準備を行っておく

④TeraTermを起動してルータへTELNETによる遠隔接続を行い、ログインパスワードの入力あたりまで操作を行ってみる。

キャプチャしたデータは、任意の名前を付けてデスクトップに保存しておく

⑤再度手順③でキャプチャの準備を行った上で、今度はSSHによる遠隔接続を行い、ログインパスワードの入力あたりまで操作を行ってみる。

キャプチャしたデータは、任意の名前を付けてデスクトップに保存しておく

⑥11ページ以降のWireShark によるパケットの見方を参考に解析をしてみる

パケットが各レイヤのヘッダによってカプセル化されている

┗ 各レイヤのヘッダに含まれている情報

TCP接続開始時の3ウェイハンドシェイクおよび終了時の4回のやり取り

┗ SYN,SYN/ACK,ACK のフラグ

アプリケーションデータ

┗ TELNET は平文なので中身が分かるが SSH は暗号化されているので中身が分からない

☆パスワードリカバリー

Ciscoルータで、特権モードに移行するためのパスワードを忘れてしまった場合、設定を確認したり変更できなくなる。このような状況になった場合には、パスワードを復旧させるためのパスワードリカバリーの手順が必要となる。

リカバリーするためには、ルータを意図的にNVRAMのstartup-configを参照させず起動させる必要がある。

これは、NVRAMにあるコンフィグレジスタ値をコントロールすることで可能となる。


・ルータ

①最初の演習に従い、コンソールケーブルをルータに接続してTeraTermを準備しておく※一応TeraTermのログを採る準備もしておく

②ルータの電源を投入する

③起動したら、任意の文字列で特権パスワードを設定する。設定ができたら、一度ユーザモードに戻って特権モードに移行できることを確認する

④設定を保存して、ルータを再起動する

⑤再起動後、特権モードに移行するときにパスワードを尋ねてくることを確認する※ここからは特権パスワードを忘れたという体で進める

⑥ルータの電源を切る。TeraTermも一度終了しておく

⑦TeraTermを準備しておく※ログを採る準備もしておく

⑧ルータの電源を投入する

⑨電源ONしてから、60秒以内にTeraTermの画面上でAltキーを押しながらBキーを押してBreak信号を送信する

⑩rommonモードで起動することを確認する

⑪rommonモードでコンフィグレジスタ値を、NVRAMを無視する=startup-configを読み込まずに起動する値にする → confreg 0x2142

⑫続けてリセットをかけて再起動する riset

⑬NVRAMを無視して初期化されたときと同じ状態で起動する。セットアップモードのWould you like~が表示されたら、Ctrlキーを押しながらCキーを押してから特権モードへ移行する

⑭既存のバックアップ(startup-config)をrunning-configにマージさせる※copyコマンドの使い方要注意

⑮特権パスワードを再設定する※最初に設定した文字列と異なるものを設定する

⑯コンフィグレジスタの値を、NVRAMのstartup-configを読み込んで起動するデフォルトの値に戻す → config-register 0x2102

⑰設定を保存する。保存後、再起動を行う

⑱再起動後、新しく設定した特権パスワードで特権モードへ移行できることを確認する


・スイッチ

①レイヤ2スイッチまたはレイヤ3スイッチを1台用意する

②ホスト名と特権パスワード(文字列、暗号化は任意)を設定して保存する

③特権モードでshow flash:というコマンドを投入→ config.textというファイルが存在していることを確認する※Catalystスイッチではこのファイルがstartup-configに相当

④一度スイッチの電源を切る※設定した特権パスワードを忘れたという体で

⑤上記の参考サイトに従ってパスワードリカバリーを実施※手順⑫では②のときと異なるパスワードを設定すること※手順⑬は今回は不要

⑥手順⑭の再起動後、新しく設定したパスワードで特権モードになることを確認する

⑦確認ができたら初期化する。ルータと同じ手順でstartup-configを削除する

⑧再起動してセットアップモードで起動してくれば完了。電源ケーブルを抜く

⭐︎構成図


・ネットワーク構成図

ネットワークが正常に稼働し続けられるように管理していくためには、そのネットワークの構成を正しく把握しておくことが求められる。

ネットワーク構成図は、ネットワークを設計・構築するにあたり、そのネットワークのあるべき構成を映し出すためのものである。

・物理構成図

おもにネットワーク機器の物理的な配置と配線をまとめた図である

機器同士の接続(インターフェイス同士の接続など)を明確にする

配線工事の業者など、他の人がこの図を見て正しく配線できるようまとめる

絶対にこうしなければならないというルールはないが、どの現場でも以下のことはほぼ共通している

物理構成図を作成した人と、現場で設置・配線などを行う人が同じとは限らないため、現場の方を迷わせない構成図にすることが何よりも重要!

●機器自体が何なのかわかるようにする

-機種名、ホスト名

●機器同士の接続点となるインターフェイスを識別できるようにする

-基本的にメーカーのルールに従った名称 ※CiscoならGigabitEthernet0/1(gi0/1、ge0/1)など

●接続する媒体が分かるようにする

-有線・無線といった伝送媒体、特に有線の場合はケーブルの種類

●LAN内については、VLAN番号やSTP、LAGといったL2レベルの情報も

-論理構成図を組み合わせて、L2レベルでの論理的なネットワークを把握するため

・論理構成図

ネットワークがどのように相互接続されているかを表す図である

1つのネットワークを抽象的に表すため、ルータ/L3スイッチを中心としてまとめる

配線工事の業者など、他の人がこの図を見て正しく配線できるようまとめる

こちらも絶対にこうしなければならないというルールはないが、どの現場でも以下のことはほぼ共通している

サービスや機能ごとのつながりが見えるようにしておくことが重要!

●複数のネットワークを識別できるようにする

-サービスや機能ごとにネットワークを分けていることが多いため

-ルータの場合は基本的にインターフェイスごとのネットワークアドレス単位での区分

-L2/L3スイッチが含まれるLANの場合は基本的にVLANごとのネットワークアドレス単位での区分

●機器のIPアドレスを識別できるようにする

-ルータやL3スイッチのIPアドレスは、PCやサーバコンピュータなどのデフォルトゲートウェイにもなるため重要

-L2スイッチの管理用IPアドレスの情報も忘れずに


物理構成図と論理構成図は1対1で必ず対応するわけではない!

構成図の作成にはPowerPoint/ExcelまたはVisio(ビジオ)がよく用いられる

現場にもよるが、簡易的な構成図、社内・部署内に展開する資料の場合はPowerPointやExcelで作ったもの、

重要な発表の場やお客様への納品データとしてはVISIOを用いる場合が多いと思われ


・概要図

物理と論理を混ぜたような図。簡単にネットワーク構成を説明するときなどに使われる

・VISIO


VISIOとは作図を行うためのソフトウェアである。現在の開発・販売はマイクロソフト社。

ネットワークの物理構成図や論理構成図を作るときに用いられる

この研修ではVISIOのための研修はないが、ネットワークエンジニアとしてはVISIOをある程度使えることが求められる。

非常に多彩な機能を持っているが、「図形」「配置」「接続コネクタ」「ラベル」あたりの操作が理解できれば、

それなりの構成図がつくれるかと思われる


レイヤ2スイッチ→代表的なネットワーク機器の1つ。通常スイッチといえばレイヤ2スイッチのことを指す場合が多い。

主な役割

-LANケーブルによって複数のコンピュータやネットワーク機器をスイッチに集める

・スター型トポロジによる配線の効率化、簡素化

-集めたコンピュータや機器を1つまたは複数のネットワークに分ける

・論理ネットワークの作成※による低コストで効率的な管理 ※複数作成する場合は後で紹介するVLAN機能の設定が必要

-宛先アドレスを特定して転送先ポートを特定する

・MACアドレスを利用

・ハブのように単純なフラッディングをしない ※スイッチがレイヤ2デバイスである理由




① ケーブルはまだ接続しない

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

② 構成図に従ってPCのLANポートに対してIPアドレスを設定する

③ 構成図に従ってスイッチに対して設定を行う

-ホスト名

④ スイッチ単体でMACアドレスの学習状況を確認してみる

まだLANケーブルをつないでいないので学習していないはず

※STPやCDPの管理用通信のためのMACアドレスはあらかじめSTATICという形で登録されている

⑤ PCとルータをそれぞれ構成図に従い、スイッチのLANポートにケーブルで接続する

⑥ (任意)PCでパケットキャプチャを仕込んでおく

⑦ PCからルータに向けて疎通を行い、疎通ができたら以下を確認してみる

・スイッチ

-MACアドレステーブル PCおよびルータのMACアドレスがDynamicでエントリされたかどうか

(ルータのMACアドレスはLANポートのMACアドレス)

・ルータ・PC

-ARPテーブル 相互のIPアドレスおよびMACアドレスを学習しているか → sh ip arp

・パケットキャプチャ確認 ARPテーブルにない場合は、最初にARPのやり取り(要求と応答)が発生している

⑧ 何もせず5分以上放置してMACアドレスの学習状況を確認してみる

PCやルータのMACアドレスは残っているか

-PCはインストールされたアプリなどによって、常に何かしらの通信が発生しているため、5分(300秒)

の間無通信になることはほぼ無い

⑨ スイッチのLANポートからPC向けのケーブルを抜いてみる

PCやルータのMACアドレスは残っているか


WAN,LANを含めたほとんどのネットワークでは、用途(部署、プロジェクトなど)ごとに求められる機能を適用させやすくするため、ネットワークを分離する設計を行う。

レイヤ3のネットワークレベルだとIPアドレス(IPサブネットワーク)、レイヤ2のデータリンクレベルだとVLAN番号がこの分離に相当する。

ルータおよびスイッチをメインで使用するLANネットワークでは、VLAN番号とIPサブネットワークを紐づけて1つのさらに細かいLANネットワークを作成し、他の細かいLANネットワークと分離することが多い。

⭐︎VLAN


VLANはVirtual LANの略称。つまりLAN環境で仮想的な論理ネットワークを作成する技術のこと。

おもにレイヤ2スイッチで設定する

・1台のスイッチの中で複数の論理ネットワーク=VLANが作成できる

・VLANの作成は、決められたルールに基づいてVLAN単位で番号を割りあてる

⭐︎アクセスポート


→収容する機器を論理ネットワークごとに振り分ける場合、VLANの番号と機器をつないでいるスイッチのLANポートを紐づけるのが基本

・隣同士のLANポートであっても、VLAN番号が異なれば通信はできない ※VLAN間ルーティングを組み合わせれば可能


① ケーブルはまだ接続しない。

任意のPC1台とルータ1台を選んでそれぞれPC1とルータRT01とする。

構成図に従ってPC1とRT01に対して設定を行う

RT01

-ホスト名を設定

-ルータのf0LANポートに対してVLAN10用のネットワークで用意されたIPアドレスを設定

※この演習でVLAN間ルーティングは行わないため、ルータに対してルーティング(ルーターオンアスティック)の設定は不要

PC1

-PCのLANポートに対してVLAN10用のネットワークで用意されたIPアドレスを設定

② 構成図に従ってスイッチに対して設定を行う

-ホスト名 ※l2sw01 の先頭の”l”はLの小文字

-PCとルータ間を通信させるためのVLANとしてVLAN10の作成を行う → vlan 10

③ スイッチで、PC1を接続したLANポートをVLAN10のアクセスポートに設定する

switchport mode access→switchport access vlan 10

④ 構成図に従って、PC1とRT01をLANケーブルを使ってスイッチに接続する

-接続後、PC1を接続したポートがVLAN10のアクセスポートになっていることを確認する


⑤ PC1からRT01に向けて疎通確認を行う

-同じIPサブネットワークなのにNGになるはず。その理由を以下のイメージ図から考える

⑥ 以下のイメージをヒントに、スイッチでRT01が接続されたLANポートの設定を変更してPC1からRT01に

疎通ができるようにする。

PC1からRT01向けに疎通ができるようになったら次へ進む

→スイッチで、RT01に接続したLANポートをVLAN10のアクセスポートに設定する


⑦ 残ったPC1台とルータ1台をそれぞれPC2とルータRT02とする。

構成図に従ってPC2とRT02に対して設定を行う

RT02

-ホスト名を設定

-ルータのf0LANポートに対してVLAN100用のネットワークで用意されたIPアドレスを設定

※この演習でVLAN間ルーティングは行わないため、ルータに対してルーティング(ルーターオンアスティック)の設定は不要

PC2

-PCのLANポートに対してVLAN100用のネットワークで用意されたIPアドレスを設定

⑧ 構成図に従ってスイッチに対して設定を行う

-PCとルータ間を通信させるためのVLANとしてVLAN100の作成を行う

⑨ スイッチで、PC2とRT02をそれぞれ接続したLANポートをVLAN100のアクセスポートに設定する

⑩ 構成図に従って、PC2とRT02をLANケーブルで接続する

-接続後、 PC2とRT02を接続したポートがVLAN100のアクセスポートになっていることを確認する

⑪ PC2からRT02に向けて疎通確認を行う

-同じIPサブネットワークなのでOKのはず その理由を以下のイメージ図から考える

⑫ PC1からPC2およびRT02に向けて疎通確認を行う

-同じIPサブネットワークなのにNGになるはず。その理由を以下のイメージ図から考える

※この疎通を可能にするためには、ルータオンアスティックやレイヤ3スイッチが必要


ここまでの作業が完了したら、最後に以下のログを採ります

スイッチ

show running-config

show vlan (brief)

show interface xxx switchport ←xxxはPC1を接続しているポート名

show interface zzz switchport ←zzzはPC2を接続しているポート名

ルータ

show running-config

show ip interface brief

ファイルの命名規則は以下の通り

showコマンド 02-02_氏名_ホスト名_コマンド名_yyyymmdd.log

・Catalystスイッチの初期化


Catalystスイッチを初期化する場合、Ciscoルータと同じくNVRAMにある設定ファイル(running-config)の削除だけでなく、フラッシュメモリにある”vlan.dat”というファイルも削除する必要がある。

このvlan.datには、VLANに関する情報が格納されており、削除しないとVLAN情報が設定ファイルに残ってしまう。なお、フラッシュメモリにはIOSも格納されているので、コマンドを誤るとIOSが削除されてしまい、起動ができなくなってしまう恐れがある。そのため、削除コマンドの投入は慎重に行う必要がある

⭐︎メモリの種類



ROM   
保存しているもの
・POST
・ROMMON
・ブートストラップ
・読み込みあり、書き込みなし、電源切断時の内容保存

RAM
保存しているもの
・running-config  
読み込みと書き込みあり

NVRAM  
保存しているものはない
(Catalystスイッチには 基本的に未搭載)    
読み込みと書き込みあり、電源切断時の内容保存

フラッシュメモリ   
保存しているもの
・ios
・startup-config(config.text)
・vlan.dat
※VLANに関する設定を全然していない場合は、vlan.dat自体が生成されない読み込みと書き込みあり、電源切断時の内容保存

① 初期化するスイッチのLANケーブルを外しておく

※ほかのスイッチと接続されていると、後で出てくるVTPの機能により、自動的にVLANが同期されてしまい、VLAN情報が初期化できない可能性があるため

② コンソール接続の準備をしてスイッチの電源を投入する

③ 基本のコマンドを投入する

-ホスト名を設定する

-特権パスワードを設定する

-VLANを2~3つほど作成する

④ 設定を確認する

-RAMに一時保存されている現在の設定

-フラッシュメモリ内のVLAN情報(vlan.dat)の存在 → show flash

⑤ 設定を保存して再起動を行う

⑥ 再起動後、以下の情報が存在しているか確認する

-NVRAMに保存されている設定情報

-フラッシュメモリの中にあるVLAN情報

⑦ NVRAMに保存されている設定を消去して再起動する

※VLAN情報は消去しない

⑧ 再起動後、以下の情報が存在しているか確認する

-NVRAMに保存されている設定情報

-フラッシュメモリの中にあるVLAN情報

⑨ ⑧でVLAN情報が残っていれば削除する

※フラッシュメモリ内の情報を消去する場合は、コマンドを誤らないよう慎重に!

#delete flash:vlan.dat

⑩ 再起動後、以下の情報が消去されているか確認する

-NVRAMに保存されている設定情報

-フラッシュメモリの中にあるVLAN情報

⭐︎トランクポート

→トランクリンク、おもにスイッチ間で使われる機能で、複数のVLANデータフレームを通過させることができるLANポートおよびそのポート同士のつながりのこと



① ケーブルはまだ接続しない。

任意のPC1台とルータ1台を選んでそれぞれPC1とルータRT01とする。

構成図に従ってPC1とRT01に対して設定を行う

RT01

-ホスト名を設定

-ルータのf0LANポートに対してVLAN10用のネットワークで用意されたIPアドレスを設定

※この演習でVLAN間ルーティングは行わないため、ルータに対してルーティング(ルーターオンアスティック)の設定は不要

PC1

-PCのLANポートに対してVLAN10用のネットワークで用意されたIPアドレスを設定

② 残ったPC1台とルータ1台をそれぞれPC2とルータRT02とする。

構成図に従ってPC2とRT02に対して設定を行う

RT02

-ホスト名を設定

-ルータのf0LANポートに対してVLAN100用のネットワークで用意されたIPアドレスを設定

※この演習でVLAN間ルーティングは行わないため、ルータに対してルーティング(ルーターオンアスティック)の設定は不要

PC2

-PCのLANポートに対してVLAN100用のネットワークで用意されたIPアドレスを設定



③ 構成図に従って2台のスイッチに対して設定の一部を行う

-ホスト名 ※l2sw01,l2sw02 の先頭の”l”はLの小文字

-PCとルータ間を通信させるためのVLANとしてVLAN10とVLAN100の作成を行う

④ PC1とRT01をそれぞれ接続したLANポートをVLAN10のアクセスポートに設定する

PC2とRT02をそれぞれ接続したLANポートをVLAN100のアクセスポートに設定する

⑤ 構成図に従って、PCとルータをLANケーブルを使ってスイッチに接続する。あわせてスイッチ同士もLAN

ケーブルで接続する

-PC1とRT01を接続したポートがVLAN10のアクセスポートになっていることを確認する

-PC2とRT02を接続したポートがVLAN100のアクセスポートになっていることを確認する

⑥ PC1からRT01に向けて疎通確認を行う 同じIPサブネットワークなのにNGになるはず

PC2からRT02に向けて疎通確認を行う 同じIPサブネットワークなのにNGになるはず


⑦ スイッチ間のケーブルを外してから、スイッチ同士を接続するポートを以下の条件に従ってトランクポートとして設定してみる

・DTPのモードは明示的にトランクポートを宣言するモードを採用 → switchport mode trunk

・トランキングプロトコルはマルチベンダーの方式を採用

・DTPのネゴシエートを無効にする設定(switchport nonegotiateコマンド)は今回は不要

※相互のポートが明示的にトランクポートを宣言しているためネゴシエートは必要ない


⑧ スイッチ間のケーブルを再度接続する。

接続後にトランクポート設定が正しいか=トランクが確立できているかを確認しておく

※多くのshowコマンドはケーブルを接続した状態でないと正しく出力されない


⑨ PC1からRT01に向けて疎通確認を行う OKになるはず

PC2からRT02に向けて疎通確認を行う OKになるはず

PC1からRT02に向けて疎通確認を行う 同じIPサブネットワークだけどNGになるはず

PC2からRT01に向けて疎通確認を行う 同じIPサブネットワークだけどNGになるはず

上記のような結果になる根拠を前ページのイメージ図から導き出してみる


ここまでの作業が完了したら、最後に以下のログを採ります

・スイッチ

show running-config

show vlan (brief)

show interface trunk

show interface xxx switchport ←xxxはスイッチ同士を接続しているポート名

ファイルの命名規則は以下の通り

showコマンド 02-04_氏名_ホスト名_コマンド名_yyyymmdd.log

・allowed VLAN


トランクポートでVLANの紐づけを許可されたVLANのこと。言い方を変えると、トランクポートを通過できるVLANということになる。

allowed VLANによって以下のような効果が期待できる

-セキュリティ面の向上

-通信効率の向上

-レイヤ2レベルでの通信経路の明確化(STPとの組み合わせ)

switchport trunk allowed vlan

① ケーブルはまだ接続しない。

任意のPC1台とルータ1台を選んでそれぞれPC1とルータRT01とする。

構成図に従ってPC1とRT01に対して設定を行う

RT01

-ホスト名を設定

-ルータのf0LANポートに対してVLAN10用のネットワークで用意されたIPアドレスを設定

※この演習でVLAN間ルーティングは行わないため、ルータに対してルーティング(ルーターオンアスティック)の設定は不要

PC1

-PCのLANポートに対してVLAN10用のネットワークで用意されたIPアドレスを設定

② 残ったPC1台とルータ1台をそれぞれPC2とルータRT02とする。

構成図に従ってPC2とRT02に対して設定を行う

RT02

-ホスト名を設定

-ルータのf0LANポートに対してVLAN100用のネットワークで用意されたIPアドレスを設定

※この演習でVLAN間ルーティングは行わないため、ルータに対してルーティング(ルーターオンアスティック)の設定は不要

PC2

-PCのLANポートに対してVLAN100用のネットワークで用意されたIPアドレスを設定

③ 構成図に従って2台のスイッチに対して設定の一部を行う

-ホスト名 ※l2sw01,l2sw02 の先頭の”l”はLの小文字

-PCとルータ間を通信させるためのVLANとしてVLAN10とVLAN100の作成を行う

④ PC1とRT01をそれぞれ接続したLANポートをVLAN10のアクセスポートに設定する

PC2とRT02をそれぞれ接続したLANポートをVLAN100のアクセスポートに設定する

⑤ 構成図に従って、PCとルータをLANケーブルを使ってスイッチに接続する

-PC1とRT01を接続したポートがVLAN10のアクセスポートになっていることを確認する

-PC2とRT02を接続したポートがVLAN100のアクセスポートになっていることを確認する

⑥ スイッチ同士を接続するポートを以下の条件に従ってトランクポートとして設定してみる

・DTPのモードは明示的にトランクポートを宣言するモードを採用

・トランキングプロトコルはマルチベンダーの方式を採用

・DTPのネゴシエートを無効にする設定(switchport nonegotiateコマンド)は今回は不要

※相互のポートが明示的にトランクポートを宣言しているためネゴシエートは必要ない

⑦ スイッチ間のケーブルを接続する

接続後にトランクポート設定が正しいか=トランクが確立できているかを確認しておく

⑧ PC1からRT01に向けて疎通確認を行う OKになるはず

PC2からRT02に向けて疎通確認を行う OKになるはず

⑨ スイッチ間のLANケーブルを一度外す。

両端のトランクポートに設定を投入してみる


⑩ スイッチ間のケーブルを接続する

PC1からRT01に向けて疎通確認を行う OKのまま

PC2からRT02に向けて疎通確認を行う NGになるはず


------------------------------------一旦ログを採る------------------------------------

ここまでの作業が完了したら、以下のログを採ります。

ログを採り終わったら先の手順に進みます。

・スイッチ

show running-config

show vlan (brief)

show interface trunk

show interface xxx switchport ←xxxはスイッチ同士を接続しているポート名

ファイルの命名規則は以下の通り

showコマンド 02-05_氏名_ホスト名_コマンド名_yyyymmdd.log


⑪ 再度スイッチ間のケーブルを外してから、以下の図ようなイメージになるよう


両端のトランクポートに設定を投入してみる

※せっかくなのでaddオプションを使ってみましょう

⑫ 設定ができたらスイッチ間のケーブルを接続して、今度はPC2からRT02の疎通ができることを確認する

※showコマンドでVLAN100の通信が許可されていることを確認する

追加/削除 → switchport trunk allowed vlan add/remove 100

※ログの採取は不要

・管理VLAN


遠隔からレイヤ2スイッチの状態を監視したり、接続を行うためのVLANのこと。

遠隔で接続したり、状態監視をするためにはIPアドレスを持っている必要があります。

レイヤ2スイッチはルータと異なり、インターフェイスにIPアドレスを設定することができない。

ただ、何らかの形でIPアドレスを持たせないと遠隔による管理ができない。

そこで、管理のためのVLAN番号をあらかじめ決めておき、そのVLAN用の特殊なインターフェイス(VLANインターフェイス)に対してIPアドレスを設定する


① ケーブルはまだ接続しない

② 構成図に従ってルータに対して設定を行う

-ホスト名

-ルータの2つのLANポートに対するIPアドレス

③ 構成図に従ってPCのLANポートに対してIPアドレスを設定

④ 構成図に従ってスイッチに対して設定を行う

-ホスト名

-管理用VLANとして999の作成

-管理VLANのVLANインターフェイスの作成およびIPアドレスの指定

※ルータと接続しているLANポートでアクセスポートの設定はまだしない

⑤ 構成図に従ってケーブルを接続してみる

⑥ PCからルータのf0に対して疎通確認を行ってみる

-OKになるはず

⑦ PCからルータのf1に疎通確認をしてみる

-OKになるはず。NGの場合はPCのIPアドレスの設定で必要な設定をしているか

(PCからルータを超えて別のネットワークに到達するための出口の設定)

⑧ PCからスイッチの管理用IPアドレスに疎通確認を行う

-NGになるのでVLANインターフェイスをチェック

・show interface vlan 999での状態の確認

→up,upになっていない (おそらくup,down)

⑨ 疎通できるようにスイッチの設定を見直す

-スイッチ内部のイメージでつながり(赤い線)が途切れている部分の設定

-スイッチのデフォルトゲートウェイの設定

⑩ 再度PCからスイッチに疎通確認をしてみる

-OKになるはず


ここまでの作業が完了したら、最後に以下のログを採ります

スイッチ

show running-config

show vlan (brief)

ルータ

show running-config

show ip route

ファイルの命名規則は以下の通り

showコマンド 02-06_氏名_ホスト名_コマンド名_yyyymmdd.log

・VTP(VLAN Trunking Protocol)


スイッチで構成されたネットワークを前提としたシスコ独自のプロトコル。

スイッチ間でVTPアドバタイズメントと呼ばれるメッセージを送信し、VLAN情報を同期する。

スイッチのネットワーク管理者は、1台のスイッチに対してVLANの追加、名前変更、削除などを行うだけで同じグループ(ドメイン)内のすべてのスイッチに、同じVLANの追加、変更、削除の情報が同期される

広域イーサネットサービスなど、スイッチのネットワークを大規模に展開する場合などに、VLANの集中管理の手段して有効。ただし、意図しないVLANの追加・削除といったトラブルの原因にもなり得るため、多くの現場では、透過モードやOFFにすることが多い


① 構成図に従ってPCのLANポートに対してIPアドレスを設定する

② 構成図に従って3台のスイッチにホスト名を設定する

さらに、以下の条件でVTPを設定してみる

-ドメイン名:domain01(3台とも共通) ※パスワードは不要 → vtp domain domain01

-l3sw01 :VLANの追加・削除が可能なモード。VLAN同期有効 → サーバモード vtp mode server

-l2sw01と02:VLANの追加・削除が不可なモード。VLAN同期有効 → クライアントモード vtp mode client

③ VTPの設定が正しく反映されているかを確認してみる

④ 構成図に従ってケーブルを接続する

⑤ l3sw01で管理用VLANとしてvlan999を追加してみる

⑥ l2sw01と02でVLANが同期しているかどうか(vlan999が存在しているか)をチェックしてみる

-OKかNGか

-NGの場合、同期できるようにスイッチの設定を変更・追加してみる

スイッチ間の設定など

⑦ 設定の変更・追加後に、VTPサーバでvlan999以外に2~3個ほどVLANを作ってみる

⑧ l2sw01とl2sw02でVLANの同期ができていることをチェックする

-コンフィグレーションリビジョン番号の確認
→ VTPアドバタイズメントで通知されたVLAN情報が最新であるのかを確認するための情報。初期値は0。サーバモードのスイッチがVLAN設定を変更するごとに値が1つ増加してからVTPアドバタイズメントで通知する。他のスイッチは、自身の保持するリビジョン番号よりこの値が大きい場合には、VTPにより通知されたVLAN情報が最新であると判断して、VLANの設定情報を置き換える。

⑨ 構成図に従ってvlan999で管理用IPアドレスを設定する

⑩ PCを接続したl3sw01のLANポートをvlan999のアクセスポートとして設定する

⑪ PCから各スイッチの管理用IPアドレスに疎通ができることを確認する

⑫ VTPサーバでvlan999および手順⑦で作成したVLANをすべて削除する

-VTPクライアントからもVLANが削除されていることを確認

⑬ スイッチ間のLANケーブルを抜き、3台のスイッチのVTP設定を変えてみる

-VLANの追加・削除が可能なモードだが、VLAN同期は実質無効となる

⑭ VTPの設定が正しく反映されているかを確認してみる

⑮ 構成図に従ってケーブルを接続する

⑯ l3sw01でvlan999を作ってみる

⑰ l2sw01とl2sw02でVLANの同期ができているかどうかをチェックする。できていなければ手動で作成する

-コンフィグレーションリビジョン番号の確認

⑱ 構成図に従ってvlan999で管理用IPアドレスを設定する

⑲ PCを接続したl3sw01のLANポートをvlan999のアクセスポートとして設定する

⑳ PCから各スイッチの管理用IPアドレスに疎通ができることを確認する

ここまでの作業が完了したら、最後に以下のログを採ります

スイッチ

show running-config

show vlan (brief)

show vtp status

show interface trunk

ファイルの命名規則は以下の通り

showコマンド 02-07_氏名_ホスト名_コマンド名_yyyymmdd.log


⭐︎STP(SpannningTreeProtocol)


スイッチのネットワークにおいて、信頼性を高めるために迂回路を構成するよう複数のスイッチを使用した場合、ループ状に形成した部分で、フレームが延々流れ続けることを防止するためのプロトコル。

イーサネットフレームにはパケットでいうTTLの概念がなく、どこかで自動的に破棄されるということがない。

そのため、宛先が特定の機器を示さないマルチキャストやブロードキャスト宛のフレームは、延々と流れ続ける。

さらに、スイッチの基本動作として、受信したフレームを、MACアドレステーブルに従いコピーして対応ポートへ転送するが、マルチキャストやブロードキャスト宛はフラッディング(ポートの数だけコピーしてすべてのポートから転送)する。それを繰り返すため、膨大なフレームが発生し(ブロードキャストストーム)、スイッチのネットワークを機能不全にしてしまう


① ケーブルはまだ接続しない

構成図に従いPCにIPアドレス(192.168.1.xxx/24)の設定を行う ※デフォルトゲートウェイ設定は不要

② 構成図に従い各スイッチで管理VLAN1に対して管理IPアドレス(192.168.1.xxx/24)の設定を行う

③ 各スイッチでVLAN1のスパニングツリー機能を無効化する

※CatalystスイッチはVLANごとにスパニングツリーが自動的に有効になる

(config)#no spanning-tree vlan 1

④ 3台のスイッチの設定を一度保存しておく

⑤ 構成図に従いケーブルを接続する

⑥ 接続後、PC間およびPCからスイッチの管理IPアドレスに連続pingして各機器の様子(特にランプ)を確認してみる

→ランプが激しく点滅してやがてpingの疎通がNGになるのではないか

ランプが激しく点滅している理由は何か → ブロードキャストストームが発生しているため

⑦無効にしたSTPを有効にする

(config)#spanning-tree vlan 1

※もし、スイッチからコンソール経由での応答が無ければ、それだけブロードキャストストームが激しくスイッチの動作を阻害している。

こうなった場合はLANケーブルをすべて抜く → STPの有効化 → LANケーブルを挿しこみ直す

⑧ランプの激しい点滅が治まっていることを確認する

またLANケーブルを挿しているポートの中で1つだけ橙色になっているポートがあるはず

→STPのブロックポート 構成図のl2sw02(G1/0/24)

・STPのコントロール


STPはスイッチネットワークの永続的なループ防止とともに、レイヤ2レベルでの通信フレームの流れ(通信経路に相当)をコントロールすることができる


① ケーブルはまだ接続しない。

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

② 構成図に従ってPCのLANポートに対してIPアドレスを設定する

③ 構成図に従ってスイッチに対して設定を行う

-ホスト名

-スイッチに対する管理用VLAN999の作成および管理用IPアドレスの設定

-PC~ルータ間の通信用VLANとしてVLAN10の作成

-スイッチ間をトランクポートで設定する(allowed VLAN不要)

-PCとルータが接続されたLANポートをそれぞれアクセスポートとして設定

④ 各スイッチで現在の設定を確認し、STPのモードがVLANごとに異なるSTPを形成できる規格になっている

ことを確認する → sh run [spanning-tree mode pvst(PVST+)の確認] sh spanning-tree

⑤ 構成図に従ってケーブルを接続する

⑥ 下図のような構成図を自分のノートなどに書いて、現在のSTPの状況を調べて記入してみる

-VLAN10についてのみ調べればOK

-プライマリルートブリッジ(RB[Pri])とセカンダリルートブリッジ(RB[Sec])のスイッチにそれぞれ〇をつける。

なぜ、そのスイッチが選ばれたのかのも考えてみる

-スイッチの各ポートの役割(DP/RP/NDP) に〇を付け、あわせてステータス(状態)も確認しておく

-ポートの役割、ステータスから考えてPC~Router間の通信経路はどこを通るか → l2sw02経由


⑦ 以下のカスタマイズをする。実際に設定する前にカスタマイズ後の予想を図に記入しておく

★通信用VLANであるVLAN10のみでこのカスタマイズを行う

-l3sw01をプライマリルートブリッジ、l2sw01をセカンダリルートブリッジにする

→ スタティックなルートブリッジの設定
spanning-tree vlan 〈ID〉priority 〈値〉

ダイナミックなルートブリッジの設定
spanning-tree vlan 〈ID〉root primary

ダイナミックなセカンダリールートブリッジの設定
spanning-tree vlan 〈ID〉root secondary

・プライオリティ値は、プライマリはをデフォルトの1/8、セカンダリは1/4で設定する

-スイッチの各ポートの役割(DP/RP/NDP) に〇を付け、あわせてステータス(状態)も確認しておく

-ポートの役割、ステータスから考えてPC~Router間の通信経路はどこを通るか → l3sw01経由

⭐︎RSTP


RapidSTPのことで、通常のSTPに比べて収束が非常に高速である。

通常のSTPタイマー依存が基本的にない。また、ポートの状態の名称などが異なる※

通常のSTPでは、最大127台接続のスイッチネットワークを常に考慮するため、BPDUが確実にやりとりされ、ループしない状態になるまでの理論上の最大待機時間をタイマーとして働かせるようにしている。

一方、RSTPでは基本的にこのタイマーがなく、障害などいわゆるトポロジ変更を検知した時点でRSTPのルールに従い、あらかじめ決められたポートの役割に瞬時に切り替わる。これにより、非常に短時間でループしない新しい経路を作り上げることができる


普通のSTP(PVST)とRSTP(RPVST)の収束時間を比較してみる

手順①~⑧が通常のSTPの収束時間の確認。手順⑨以降がRSTPでの収束時間の確認

① 先ほどのSTPの続きから

※ここからの作業は、各スイッチにコンソールで接続して行うこと(TELNET接続だと接続断が発生するため)

② PCからルータRT01へ向けて連続でpingを実行する

<PCで連続pingする方法>

・コマンドプロンプトを使う

>ping 宛先IPアドレス –t ← -tが連続を示すオプション (終了はCtrl押しながらCを押す)

・ExPingという便利ツールを使う

演習用PCにインストール済み。

連続pingや複数宛先への同時疎通、ping発出の間隔時間調整などが可能。

詳しい使い方はネットで調べてみてください

③ ping実行中にl3sw01のG1/0/23のLANケーブルを抜き、ping応答が止まってから応答が回復する

までの時間を測定する →スイッチ間のポート障害で収束にかかる時間 →約30秒

(ブロックポートであるG1/0/22がリスニング→ラーニング状態を経てフォワーディング状態に切り替わるまでの待機時間)

※l2sw01でG1/0/23からケーブルを抜去すると、ブロックポートのG1/0/22だけでなく、PCが接続されたG1/0/1もSTPの再計算の対象となりリスニング状態からやり直している

④ 時間の測定ができたらpingを止めて抜いたケーブルを挿し直す。

30秒ほど経過してSTPが収束したら次の手順に進む

⑤ PCからルータRT01へ向けてまた連続pingを実行しておく

⑥ ping実行中にl2sw01のG1/0/1のLANケーブルを抜き、ping応答が止まってからケーブルを挿し直す

⑦ ping応答が回復するまでの時間を測定する

→PCやルータなどスイッチ以外のデバイスがリンクアップしてから収束にかかる時間 約30秒

(G1/0/1のリンクがアップしてリスニング→ラーニング状態を経てフォワーディング状態に切り替わるまでの待機時間)

⑧ 時間の測定ができたらpingを止めて、抜いたケーブルを挿し直しておく

⑨ すべてのスイッチのRSTPのモードに設定する → spanning-tree mode rapid-pvst

⑩ すべてのスイッチがRSTPモードの状態で手順②~④を実行する。

先ほど測定した時間に違いがあるか確認する→おそらく変わらず30秒くらいはかかるはず

なぜか?

■RSTPのプロポーザルとアグリーメントの仕組みはBPDUを交換するスイッチ同士で有効

この仕組みによって、リスニングからラーニングのような状態遷移の待機時間が無く、すぐにポートの役割や状態を決定できる。

つまり、l2sw01ではG1/0/22経由の代替経路への切り替えは数秒で完了している

■一方、BPDUを理解できない機器であるPC・ルータとスイッチの組み合わせではプロポーザルとアグリーメントの仕組みが使えない。この場合、PCやルータがつながっているポートでは、スイッチをRSTPモードにしてもリスニングからラーニングへの状態遷移のための待機時間はそのまま必要となる

※手順③に記載の通り、PCを接続したポートではSTPの状態遷移が起こっているため、待機時間分待たないとフォワーディングにならない

⑪ 続けて手順⑤~⑧を実行する。

先ほど測定した時間に違いがあるか確認する→おそらく変わらず30秒くらいはかかるはず。

なぜか?

■手順⑩で記載の内容と同じく、BPDUを理解できない機器であるPC・ルータとスイッチの組み合わせではプロポーザルとアグリーメントの仕組みが使えない。

この場合、PCやルータがつながっているポートでは、スイッチをRSTPモードにしてもリスニングからラーニングへの状態遷移のための待機時間はそのまま必要となる

⑫ 手順⑩および⑪で記載していた

“PCやルータがつながっているポートでは、スイッチをRSTPモードにしてもリスニングからラーニングへの状態遷移のための待機時間はそのまま必要となる”について、 この待機時間を無視してすぐに収束させるコマンドをPCおよびルータが接続されているポートに対して設定する → spanning-tree portfast
BPDUガードの設定 → spanning-tree portfast bpduguard default

⑬ 手順⑫のコマンドを投入後に手順②~④を実施して、pingの応答が回復するまでの時間に変化があるかを確認してみる →おそらく数秒で回復するはず

⑭ 続けて手順⑤~⑧を実施して、pingの応答が回復するまでの時間に変化があるかを確認してみる

→おそらく数秒で回復するはず



ここまでの作業が完了したら、最後に以下のログを採ります

・スイッチ

show running-config

show spanning-tree vlan 10

ルータ

show running-config

ファイルの命名規則は以下の通り

showコマンド 02-09_氏名_ホスト名_コマンド名_yyyymmdd.log

⭐︎LAG(Link Aggregation)


複数の物理リンクを束ねて1つの論理リンクとして扱うことのできる技術。

元はCiscoが独自に策定したEtherChannelがベースとなっている。

通信時に複数の物理リンクを同時に使用できることから、例えば、40Gの通信トラフィックが流れるリンクで、高コストの100GigabitEthernet規格の回線を新たに敷設するよりも、既存の10GigabitEthernet規格の回線を束ねて論理的に100Gに近い回線を作ったほうが低コストで済むといったメリットが考えられる。

また、物理リンクに障害が発生してもほかの物理リンクで自動的に救済する ※100%救済の保証はない


① ケーブルはまだ接続しない。構成図に従ってスイッチに対して設定を行う

-ホスト名

-管理VLANの作成

-管理用IPアドレスの設定(l3sw01のみ)

-PCを接続しているLANポートに対するアクセスポートの設定

-スイッチ間のトランクポート設定(allowed VLAN不要)

② 構成図に従いPCのLANポートに対してIPアドレスを設定する

③ LANケーブルを構成図に従って接続する

④ ケーブル接続後、スイッチ間のリンクについてのスパニングツリーの状態を確認しておく

-2本のリンク両方を使って通信できる状態かどうか → できない     

-使えないリンクがある場合の理由は何か → STPの機能があるから

⑤ スイッチ間のLANケーブルを抜いておく

⑥ それぞれのスイッチ間でLAGの設定を行う

<l2sw01~l2sw02間>

-論理ポート番号 1 → channel-group 1 mode on

-プロトコルは固定モードを使用

<l2sw02~l3sw01間>

-論理ポート番号 2

-プロトコルは業界標準のものを使用 → channel-group 2 mode active/passive

⑦ スイッチ間にLANケーブルを挿しこんで、以下の確認を行う

-各スイッチ間でLAGが正常に組まれていること。プロトコルや論理ポート番号が正しいこと

-各スイッチ間でスパニングツリーの状態を見たときに、ポートが1つだけ(Poのポート)表示され、ブロックポートがないこと

⑧ PCからl3sw01の管理IPアドレスに向けて連続pingを実行し、l2sw02~l3sw01間のいずれかのLANケーブルを抜いてみる

-pingの結果に変化が現れるか → 現れない

-LAGの状態はどうなっているか → 変化なし

⑨ 抜いたケーブルを挿し直してLAGを正常な状態に戻す


ここまでの作業が完了したら、最後に以下のログを採ります


・スイッチ

show running-config

show etherchannel summary

show spanning-tree vlan 999

ファイルの命名規則は以下の通り

showコマンド 02-10_氏名_ホスト名_コマンド名_yyyymmdd.log

⭐︎ポートセキュリティ


主にスイッチにおいて、物理的な不正アクセスを防ぐための機能のこと。

スイッチのLANポート単位で、通信してくる機器のMACアドレスをチェックし、あらかじめ許可したMACアドレス以外は接続させないようにする

・ポートセキュリティにおけるセキュアMACアドレス(許可されたソースMACアドレス)の種類


スタティック→手動でソースMACアドレスを明示的に指定 、追加先はMACアドレステーブルとrunning-config

ダイナミック→フレームの受信時に動的にソースMACアドレスを学習、追加先はMACアドレステーブルのみ

スティッキー→フレームの受信時に動的にソースMACアドレスを学習、追加先はMACアドレステーブルとrunning-config

・違反モード(violation mode)による動作の違い


protect→許可フレームは通過、違反フレームは破棄、違反の通知(snmp/syslog)なし、LANポートのshutdownなし

restrict →許可フレームは通過、違反フレームは破棄、違反の通知(snmp/syslog)なし、LANポートのshutdownなし

shutdown →許可フレームは通過、違反フレームは破棄※1、違反の通知(snmp/syslog)あり、LANポートのshutdownあり※2

※1:違反フレームを受信してshutdownした状態になっている場合は破棄される

※2:err-disable状態


① ケーブルはまだ接続しない

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

② 構成図に従ってPCのLANポートに対してIPアドレスを設定する

③ 構成図に従ってスイッチに対して設定を行う

-ホスト名

※この演習ではVLANの作成はありません。デフォルトのVLAN1を使っていきます

④ PCとルータを構成図に従い、それぞれスイッチのLANポートに接続する

⑤ PCからルータへ疎通確認を行う

疎通確認後、ルータとPCのMACアドレスが学習されているかどうか確認する

⑥ PCと接続しているLANケーブルをスイッチから抜き、MACアドレステーブルをクリアしておく

⑦ PCが接続されたLANポートにポートセキュリティを設定する

-違反モードは強制的にシャットダウンになるモード → switchport port-security violation shutdown

-セキュアMACアドレスはスタティック ※接続予定のPCのMACアドレスを調べて登録 → switchport port-security mac-address <mac-address>

-設定をしようとしてエラーメッセージが出る場合は、前提となるLANポートの設定を行っておく

⑧ PCを接続して、ポートセキュリティの状態を確認する

-MACアドレステーブルおよびセキュアMACアドレスのエントリー状況を確認 → show port-security address

-running-configにMACアドレスが書き込まれているかを確認

-PCからルータへ疎通確認ができるかを確認する

⑨ PCが接続されたLANケーブルをスイッチから抜き、同じLANポートに別のPCを接続する

-MACアドレステーブルおよびセキュアMACアドレスのエントリー状況を確認

-2台目のPCからルータへ疎通確認できるかを確認

⑩ 再度、1台目のPCを接続し直してルータへの疎通確認ができるか確認する

⑪ PCと接続しているLANケーブルをスイッチから抜いておく。

もしLANポートがerr-disable状態になっていれば回復させておく → shut → no shut

⑫ 一旦ポートセキュリティの設定を削除する

⑬ PCが接続されたLANポートに再度ポートセキュリティを設定する

-違反モードは強制的にシャットダウンになるモード

-セキュアMACアドレスはスティッキー

→(config-if)#switchport port-security mac-address sticky

⑭ PCのケーブルをスイッチに挿し直して、ポートセキュリティの状態を確認する

-MACアドレステーブルおよびセキュアMACアドレスのエントリー状況を確認

-running-configにMACアドレスが書き込まれているかを確認

-PCからルータへ疎通確認ができるかを確認する

⑮ PCが接続されたLANケーブルをスイッチから抜き、同じLANポートに別のPCを接続する

-MACアドレステーブルおよびセキュアMACアドレスのエントリー状況を確認

-2台目のPCからルータへ疎通確認できるかを確認

⑯ 再度1台目のPCを接続し直して、ルータへの疎通確認ができるか確認する

⑰ PCが接続されたLANケーブルをスイッチから外す。

もし、LANポートがerr-disable状態になっていれば回復させておく

⑱ 回復後、1台目のPCからルータへ疎通確認を再度行ってみる

ここまでの作業が完了したら、最後に以下のログを採ります

・スイッチ

show running-config

show port-security

show port-security address

show port-security interface xx ←PCが接続されたポート

ファイルの命名規則は以下の通り

showコマンド 02-11_氏名_ホスト名_コマンド名_yyyymmdd.log

⭐︎隣接機器の管理


ケーブルで接続された隣接する機器に対して、自分の機器のサマリーを通知するためのプロトコル。

主なサマリー情報として、機種名、IPアドレス、自分&隣接機器の接続しているポート情報などがある。

接続しているポート情報を利用すると、ケーブル接続が正しいかどうかもある程度判断できたりするので、構築後の確認作業では活用されることもある。

ただし、サマリー情報を格納したパケットは暗号化されないため、設定情報が洩れるセキュリティ上のリスクがある。そのため、ほとんどの現場では最初から無効にしておくことが推奨されている


・CDP      


標準化→Cisco独自
Cisco製品でのデフォルト→有効       
動作レイヤ→データリンク層
送信間隔 →60秒      
ホールドタイマー→180秒     
通知方法→マルチキャスト
通知宛先MACアドレス→0100.0CCC.CCCC

・LLDP

標準化→ マルチベンダー(IEEE802.1ab標準)
Cisco製品でのデフォルト→無効       
動作レイヤ→データリンク層
送信間隔 →30秒      
ホールドタイマー→120秒     
通知方法→マルチキャスト
通知宛先MACアドレス→0180.C200.000E

① ケーブルはまだ接続しない。

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

② 構成図に従ってスイッチに対して設定を行う

-ホスト名

③ ルータを構成図に従いスイッチのLANポートに接続する

④ CDPの状況を確認してみる → show cdp neighbors [detail]、show cdp entry

-表示がされない場合はスイッチ/ルータそれぞれ装置全体で有効にする → cdp run

-サマリー情報が表示されるかどうか

-サマリー情報に表示される情報と実際の情報が一致しているかどうか

⑤ (任意)LLDPの状況を確認してみる ※サポートしていない機種もあるため任意で → show lldp neighbors [detail]、show lldp entry

-表示がされない場合はスイッチ/ルータそれぞれ装置全体で有効にする → lldp run

-サマリー情報が表示されるかどうか

-サマリー情報に表示される情報と実際の情報が一致しているかどうか


ここまでの作業が完了したら、最後に以下のログを採ります

・スイッチ

show running-config

show cdp neighbors

show cdp neighbors detail

ルータ

show running-config

show cdp neighbors

show cdp neighbors detail

ファイルの命名規則は以下の通り

showコマンド 02-12_氏名_ホスト名_コマンド名_yyyymmdd.log

・ルーティング



異なるネットワークにパケットを送信するときに最適な配達経路を決めること。経路選択、経路制御とも呼ばている。

ネットワークのなかで、最も大切な機能の一つ。ルーティングを担っているのは、OSI参照モデルのネットワーク層(第3層)の中継機器。

代表的な中継機器として、ルーターやL3スイッチ(以降は、まとめてルーターと表現します)がある。

これらの中継機器がネットワーク間で道案内をしてくれるため、宛先の通信機器までパケットを届けることができる。

ルーターは、ルーティングテーブルと呼ばれる情報を持っている。そのルーティングテーブルには、パケットの宛先と次の転送先が記されている。

ルーターは、受信したパケットの宛先アドレスを見て、ルーティングテーブルから転送を任せる通信機器のIPアドレスを導き出します。


① この演習で使用するルータを初期化する

② ケーブルはまだ接続しない。構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス ※ポートの開放はまだしないこと!

③ 構成図に従ってPCのIPアドレスを設定する ※2台目のPCが無い場合はルータをPC代わりに代用

④ ルータでルーティングテーブルを確認してみる

-表示内容の確認

⑤ PCからPCへ疎通確認を行う

-OKまたはNGの理由 → NG 理由:PCでデフォルトゲートウェイをPCで設定していない、no shutしていない

⑥ PCからPCへ疎通確認ができるようにルータに追加の設定を行う

-設定後のルーティングテーブルの確認。設定前と何が違うか → 直接接続ルートが追加されている

-エントリーされている情報の見方、意味が説明できるか 

⑦ PCからPCへ疎通確認を行う

-OKまたはNGになる理由 → OK

⑧ PCからPCへ経路を確認してみる

-表示されるアドレスが何を示しているか。なぜそのアドレスが出てくるのか → traceroute 宛先IPアドレス


ここまでの作業が完了したら、最後に以下のログを採ります

ルータ

show running-config

show ip route

show ip interface brief

ファイルの命名規則は以下の通り

showコマンド 03-01_氏名_ホスト名_コマンド名_yyyymmdd.log


☆VLAN間ルーティング



レイヤスイッチでは、VLAN機能を使って論理的にVLANを分けることができる。

その代わり、VLANを跨いだ通信はできない。ルータあるいはレイヤ3スイッチを用いて、VLAN間を跨ぐ、あるいは外部のネットワークへの通信を可能にする技術。


① ケーブルはまだ接続しない。

構成図に従い外部接続のルータ(RT02)に対して設定を行う

-ホスト名の設定

-RT01向けのLANポートでIPアドレスの設定

-RT01をネクストホップとするデフォルトルートの設定 ※PCからの戻りのルート

→ip route 0.0.0.0 0.0.0.0 10.10.10.254

② ルータオンアスティックを構成するため、構成図に従いスイッチに対して設定を行う

-ホスト名の設定

-通信用VLAN10と100の作成

-RT01向けのLANポートでトランクポートの設定(allowedは不要)

※トランキングプロトコルはマルチベンダーのものを採用

-PC向けのLANポートでアクセスポートの設定

③ ルータオンアスティックを構成するため、構成図に従いルータに対して設定を行う

-ホスト名の設定

-RT02向けのLANポートでIPアドレスの設定

-スイッチ向けのLANポートでサブインターフェイスの作成 → int f0.10 , int f0.100

-サブインターフェイスに対するVLAN番号のマッピングおよびIPアドレスの設定

→ encapsulation dot1q <VLAN ID> → ip add <IP> <サブネットマスク> → ex → int f0 → no shut

※トランキングプロトコルはマルチベンダーのものを採用

④ 構成図に従いPCのLANポートに対してIPアドレスを設定する

⑤ 構成図に従いケーブルを接続する

⑥ PCからPCへ疎通確認を行う。さらに、PCから外部ルータのF0のアドレスへ疎通確認も行う

-OKまたはNGの理由 NG 理由:PCでデフォルトゲートウェイを設定していない。

-NGの場合は追加の設定を行い、疎通ができるようにする。


ここまでの作業が完了したら、最後に以下のログを採ります

・スイッチ

show running-config

show vlan (brief)

show interface trunk

show ip interface brief

ルータ(RT01のみ)

show running-config

show ip interface brief

show ip route

ファイルの命名規則は以下の通り

showコマンド 03-02_氏名_ホスト名_コマンド名_yyyymmdd.log


☆レイヤ3スイッチ


元はレイヤ2スイッチから派生したもので、スイッチングの機能に加えてルータの機能を併せ持つもの。

LAN内では複数の内部LANをとりまとめるような重要な所でも使われるので、コアスイッチとも呼ばれている

特徴として以下の2つのポート(インターフェイス)がある

-SVI :指定のVLANと紐づく仮想的なインターフェイス

-Routedポート :VLANとは紐づかないルータと同等のレイヤ3のポート

SVI同士であればVLAN間ルーティングとなり、Routedポートであれば、外部とのルーティングとなる


① ケーブルはまだ接続しない。

構成図に従い外部接続のルータ(RT01)に対して設定を行う

-ホスト名の設定

-l3sw01向けのLANポートでIPアドレスの設定

-l3sw01をネクストホップとするデフォルトルートの設定 ※PCからの戻りのルート

② 構成図に従ってレイヤ3スイッチに対して設定を行う

-ホスト名の設定

<スイッチの機能>

-通信用VLAN10と100の作成

-アクセスポートの設定

<ルータの機能>

IPルーティングの有効化 (config)#ip routing

-SVIの作成 → (config)#interface vlan <ID>  

-RT01向けLANポートでのルーテッドポートの設定 → (config-if)#no switchport

-SVI、ルーテッドそれぞれのLANポートに対するIPアドレスの設定(vlan 1ではno shut)

③ 構成図に従ってPCのLANポートに対してIPアドレスを設定する

④ 構成図に従ってケーブルを接続する

⑤ PCからPCへ疎通確認を行う。さらに、PCから外部ルータのF0のアドレスへ疎通確認も行う

-OKまたはNGの理由 NG 理由:デフォルトゲートウェイを設定していない

-NGの場合は追加の設定を行い、疎通ができるようにする


ここまでの作業が完了したら、最後に以下のログを採ります

・レイヤ3スイッチ

show running-config

show vlan (brief)

show ip interface brief

show ip route

ファイルの命名規則は以下の通り

showコマンド 03-02_氏名_ホスト名_コマンド名_yyyymmdd.log


・ループバックインターフェイス


ルータなどネットワーク機器の中で作成することができる仮想的なLANポート(インターフェイス)である。

仮想的なものなので他の機器とケーブルを接続することはできない。

使い道としては、おもにデバイスの識別に使用される。例えば、OSPFなどルーティングプロトコルにおけるルータのID(識別番号)としての使用が代表的なものである。

これはループバックインターフェイスのアドレスが安定していることに起因する。

物理的なLANポートが故障がしたり、ネットワークトポロジの変更に基づいて物理的なポートでのIPアドレス変更が発生する可能性があるが、

ループバックインターフェイスに設定したIPアドレスは変化することはないからである。

また、ループバックインターフェイスのアドレスを仮想的なPCのIPアドレスとして用いることがある


・スタティックルート


ルーティングの手法の1つであり、ネットワークの管理者が、宛先に向かうための経路情報を各ルータ内に手動で設定すること

→ (config)#ip route <>

①この演習ではレイヤ3スイッチとルータで手順を進める。ケーブルはまだ接続しない

構成図に従い各ルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス ※Lo0(Loopback0)の設定も忘れずに→int loopback0

② 構成図に従いレイヤ3スイッチに対して設定を行う

-ホスト名、VLANの作成、アクセスポートの設定

-SVIの作成、ルーテッドポートの設定およびこれらのLANポート対するIPアドレスの設定

-ルーティングの有効化

③ 構成図に従ってPCのLANポートに対して設定する

-IPアドレスの設定

-LANネットワークの外へ通信するために必要な設定

④ 現在の設定を確認して投入した設定に間違いが無いことを確認する。

OKであれば構成図に従ってケーブルを接続する

⑤ PC-A~l3sw01~RT01~RT02~RT02のLo0の通信を考える

現在の状態でPC-Aから下図①~⑥のアドレスに疎通ができるかどうかを考えるため、まずは確認する前に

自分の予想を表に埋めてみる(OKなら○、NGなら×)1~3→〇、4~6→×

⑥ 予想が正しいかどうか実際に疎通の確認を行ってみる

最終的に、なぜそのような結果になったのか説明できるように頭の中を整理する

→異なるネットワークに送信するためには各機器に適切なルーティングをする必要があるから。

⑦ PC-AとRT02のLo0間での疎通を可能にするためのスタティックルートを追加していく。

まずは以下の表を埋めてみる

PC-A→宛先:0.0.0.0 0.0.0.0

ネクストホップ:192.168.10.254

備考:デフォルトゲートウェイの指定

l3sw01→宛先:192.168.100.0 255.255.255.0

ネクストホップ:10.1.1.1

備考:別のネットワークへのルーティング

RT01→宛先:192.168.10.0 255.255.255.0

ネクストホップ:10.1.1.254

備考:別のネットワークへのルーティング

RT01→宛先:192.168.100.0 255.255.255.0

ネクストホップ:10.2.2.1

備考:別のネットワークへのルーティング

RT02→宛先:192.168.10.0 255.255.255.0

ネクストホップ:10.2.2.254 

備考:別のネットワークへのルーティング

⑧ 手順⑦で埋めた表を基にして、各デバイスにスタティックルートを設定する

⑨ 設定後に疎通確認を行ってみる。以下のような結果になるはず。違った場合は設定を再度チェック

最終的に、なぜこのような結果になったのか説明できるように頭の中を整理する 4,5→×、その他→〇


ここまでの作業が完了したら、最後に以下のログを採ります

・ l3sw01 / RT01 / RT02

show running-config

show ip interface brief

show ip route

ファイルの命名規則は以下の通り

showコマンド 03-04_氏名_ホスト名_コマンド名_yyyymmdd.log


☆OSPF


Open Shortest Path Firstの略。小規模から大規模のネットワーク向けのリンクステート型ルーティングプロトコルで、自律システム(AS)内のルーティングを行うオープンな規格のInteriorGatewayProtocol(IGP)のプロトコルである。

RIPにおける制約を解消するために提唱、開発され、スタティックルーティングやRIPでは実現できなかった冗長経路構成を容易に実現できる。リンクステート型(LSA)のルーティングを行うリンクステート型ルーティングプロトコルである。

各ルータは隣接するルータとリンクしてアドバタイズすることでネットワークトポロジのデータベースを構築し、ダイクストラアルゴリズムで最短経路ツリーを”コスト”という距離(メトリック)の単位で計算してルーティングテーブルを構築していく。

ネットワーク規模の増大に対処するため、OSPFはネットワークを複数のエリアに分割することを可能としており、フラッディングや経路計算をエリアごとに効率よく実現できる。エリア間の通信はエリア境界ルータ(ABR) を介して行われ、エリア間のルーティングは特定のバックボーンエリアが中継することで実現される。

また、ルーティング情報更新の負荷を軽減するため、マルチアクセスネットワークでは、セグメントごとに代表ルータ(DR)とバックアップ代表ルータ (BDR)が選出される


① この演習ではレイヤ3スイッチとルータで手順を進める。ケーブルはまだ接続しない

構成図に従って各ルータに対して設定を行う

-ホスト名、ルータのLANポートに対するIPアドレス

※ルータが足りない場合はキャビネットにある在庫から借りてくる ※詳細は講師に確認

② 構成図に従ってレイヤ3スイッチに対して設定を行う

-ホスト名、VLANの作成、アクセスポートの設定

-SVIおよびルーテッドポートの設定とそれぞれのIPアドレスの設定など

③ 構成図に従ってPCのLANポートに対してIPアドレスを設定する

-LANネットワークの外へ通信するために必要な設定も行っておく

④ プロトコル構成に従って設定を行っていく

-OSPFルータを識別するための値をプロトコル構成図に従って明示的に設定する

→ router OSPF <プロセスID> → router-id <ルータID>

-プロトコルを有効にするLANポートの指定はnetworkコマンドを使用すること

→ network <宛先ネットワーク> <ワイルドカードマスク> area <エリアID>(0はバックボーンエリア)

なお、OSPFを有効にするIPアドレスのチェック対象は32ビットすべてを対象とすること

(アドレスの範囲をピンポイントで指定する)

⑤ 一旦現在の設定を確認し、投入した設定に間違いが無いことを確認する

⑥ 構成図に従ってケーブルを接続する

⑦ 確認を行っていく

※最後にログを取るときに使うshowコマンドで確認が可能

-OSPFネイバー関係が確立しているか → sh ip ospf neighbor

-プロトコル構成の通りのLANポートでOSPFが有効になっているか → sh ip ospf int brief

-ルーティングテーブルにOSPFで動的に学習した経路がすべて表示されているか → sh ip route

-PC-AとRT03のLo0同士で疎通ができるか →疎通できる

-ルーティングテーブルで宛先への経路が複数表示されているものがあるか。その理由はなぜか

→ある。理由はコストが等しい経路が2つあるので両方ともルーティングテーブルに載せているから。

⑧ オプション設定も行っておく。

PC-AでWireSharkを起動し、約10秒ごとにOSPFのHelloパケットが到着していることを確認する。

(宛先が224.0.0.5または224.0.0.6)

本演習では、PC-A側に流れてくるOSPFのHelloは不要な通信のため、これを止めるコマンドをl3sw01で設定する。

→(config-router)#passive-interface vlan 10

設定後、PC-AのWireSharkでHelloパケットが到着しなくなったことを確認する

⑨ すべてのルータ・レイヤ3スイッチの設定を保存しておく

ここからはOSPFのメトリック調整および障害発生時の経路切り替えについて確認していく

■OSPFの通信経路のメトリック(コスト)を調整する。これにより以下のことが期待できる

・正常時に優先で使用する通信経路の明確化

・優先で使用する経路に障害が発生した場合に自動的に切り替わる予備経路の明確化

① LANポートに下図の数値に従ってコストを設定する

※原則として、リンクの両端のポートには同じコスト値を設定する

→ ip ospf cost <コスト値>

② PC-A→RT03のLo0およびRT03のLo0→PC-A向けの通信経路をルーティングテーブルで確認する

・宛先までの累積コストが低いRT01経由が選ばれているはず


■正常時に使用している通信経路に対して障害を発生させる

唐突に障害が発生した場合に、自動的に予備経路に切り替わるか、また切り替わるまでにどれ

くらい時間がかかるか


③ PC-A→RT03のLo0向けに連続pingを仕掛けておく

・コマンドプロンプトでもよいですが、ExPingを使用するのがおすすめ

実行間隔:100ミリ秒、タイムアウト:200ミリ秒くらいで連続でpingを実行するように設定すると、

ルータのLANポートのランプ点滅で現在の通信経路が目視で確認できる

④ 連続ping中にRT01の電源を切ってみる

・pingが回復するまでの時間を計測してみる → OSPFの再計算が収束するまでの時間 → 約5秒

・連続pingを止めて、経路がRT02経由に切り替わっていることを確認する

⑤ 再びRT01の電源を入れる

・ポートのランプの点滅を見ながら、RT01に戻ったタイミングでpingの結果がどうなるかを確認してみる → 続く


■正常時に使用している通信経路に対して、メトリック調整による経路制御を行う

コスト変更によって意図的に経路に切り替える。事前にルータへのメンテナンスが予定されていて、

あらかじめ通信経路を片寄せしておく場面などが想定される。

例)RT01をメンテナンスするため、通信をすべてRT02経由の経路へ事前に片寄せする場合


⑥ PC-A→RT03のLo0向けに連続pingを仕掛けておく

⑦ 連続ping中にRT01とRT03のLANポートでコストを200に変更してみる

※同時に行う必要はないが、できれば素早く行う

⑧ コスト値の変更中にpingが切れるかどうか? → 切れない

⑨ コストの変更が完了したら、連続pingを止めて経路がRT02経由に切り替わっていることを確認する

⑩ 変更したコストを元に戻す ※連続pingはしなくてよい


ここまでの作業が完了したら、最後に以下のログを採ります

・ルータ・レイヤ3スイッチ共通

show running-config

show ip protocols

※結線の順番によっては、Routing Information Sourceに出てくるルータID一覧の表示が

正解例と異なる場合あり

show ip ospf neighbor

※結線の順番によってはDR/BDRが正解例と異なる場合あり

show ip ospf interface brief

show ip route

※RT03のLo0のアドレスは、OSPFのネットワークタイプの仕様で192.168.10.101/32で表示

ファイルの命名規則は以下の通り

showコマンド 03-05_氏名_ホスト名_コマンド名_yyyymmdd.log


☆EIGRP



EIGRP(Enhanced Interior Gateway Routing Protocol)は、シスコシステムズの独自ルーティングプロトコルで、

InteriorGatewayProtocol(IGP)の通信プロトコルの1つである。

EIGRPは、ネットワークトポロジやルータの帯域幅や処理能力を変更した後のルーティングの不安定さを最小にするよう最適化している。

ルーティング最適化の多くは、SRIの開発したDiffusingUpdateAlgorithm(DUAL)に基づいており、ループフリー運用と高速コンバージェンス(収束)機構を提供している。


・メトリック


各経路ごとに異なる5種類のメトリック情報を持つ

・遅延(Total Delay、10μ秒単位)

・最小帯域幅(Minimum Bandwidth、kbit/s単位)

・信頼性(Reliability、1から255の数値で、255が最も信頼できる)

・負荷(Load、1から255の値で、255が最も負荷が高い)

・最小MTU(実際には計算で使っていない)

デフォルトでは遅延合計と最小帯域幅だけが使われる


・サクセサ(successor)


ある宛先へのサクセサとは以下の条件満たすネクストホップのルータのこと

・その送信先への最小距離を提供する

・ルーティングループの一部でないことが保証されている

最適経路はサクセサ、サクセサルートと呼ばれる


・フィージブルサクセサ(feasible successor)

ある宛先へ以下の条件満たすネクストホップのルータのこと。ルーティングループの一部でないことが保証されている

サクセサが使用不能になったとき即座にサクセサに昇格する。いわゆるバックアップルート


① この演習ではレイヤ3スイッチとルータで手順を進める。ケーブルはまだ接続しない

構成図に従って各ルータに対して設定を行う

-ホスト名、ルータのLANポートに対するIPアドレス

② 構成図に従ってレイヤ3スイッチに対して設定を行う

-ホスト名、VLANの作成、アクセスポートの設定

-SVIおよびルーテッドポートの設定とそれぞれのIPアドレスの設定など

③ 構成図に従ってPCのLANポートに対してIPアドレスを設定する

-LANネットワークの外へ通信するために必要な設定も行っておく

④ プロトコル構成に従って設定を行っていく

-EIGRPルータを識別するための値をプロトコル構成図に従って明示的に設定する

→router eigrp <AS番号>(1~65535) → eigrp router-id <ID>

-プロトコルを有効にするLANポートの指定はnetworkコマンドを使用すること

→net <宛先ネットワーク> <ワイルドカードマスク>

なお、EIGRPを有効にするIPアドレスのチェック対象は32ビットすべてを対象とすること

(アドレスの範囲をピンポイントで指定する)

-PCが接続されているLANポートに誤ってEIGRPルータが接続されてもネイバー関係にならないようにする

→パッシブインターフェイスの設定 passive-interface vlan <ID>

-自動集約は無効にしておく → no auto-summary

⑤ 現在の設定を確認して、とりあえず投入した設定に間違いが無いことを確認する

⑥ 構成図に従ってケーブルを接続する

⑦ 確認を行っていく

※最後にログを取るときに使うshowコマンドで確認が可能

-EIGRPネイバー関係が確立しているか

-プロトコル構成の通りのLANポートでEIGRPが有効になっているか

-ルーティングテーブルにEIGRPで動的に学習した経路がすべて表示されているか

-PC-AとRT03のLo0同士で疎通ができるか

-ルーティングテーブルで宛先への経路が複数表示されているものがある場合その理由はなぜか

→コストが等しい経路が2つあるので両方ともルーティングテーブルに載せているから

⑧ 確認がOKであれば、一度各ルータの設定を保存しておく


ここからはEIGRPのメトリック調整および障害発生時の経路切り替えについて確認していく

■EIGRPの通信経路のメトリックを調整する。これにより以下のことが期待できる

・正常時に優先で使用する通信経路の明確化

・優先で使用する経路に障害が発生した場合に自動的に切り替わる予備経路の明確化


① LANポートに下図の数値に従って遅延(delay)を設定する

・メトリック算出式の基本である”帯域幅(K1:bandwidth)+遅延(K3:delay)”の遅延の部分のみを

調整する。ちなみに、EIGRPで経路制御をする場合は遅延の値を変更すればほぼ要件を満たせる

※原則として、リンクの両端のポートには同じメトリック値を設定する

※遅延(delay)の値が正しく反映されていることをshow interfaceで確認すること

→(config-if)#delay <値>

② PC-A→RT03のLo0およびRT03のLo0→PC-A向けの通信経路をルーティングテーブルで確認する

・宛先までの累積メトリックが低いRT01経由が選ばれているはず


■正常時に使用している通信経路に対して障害を発生させる

唐突に障害が発生した場合に、自動的に予備経路に切り替わるか、また切り替わるまでにどれ

くらい時間がかかるか


③ PC-A→RT03のLo0向けに連続pingを仕掛けておく

・コマンドプロンプトでもよいですが、ExPingを使用するのがおすすめ

実行間隔:100ミリ秒、タイムアウト:200ミリ秒くらいで連続でpingを実行するように設定すると、

ルータのLANポートのランプ点滅で現在の通信経路が目視で確認できる

④ 連続ping中にRT01の電源を切ってみる

・pingが回復するまでの時間を計測してみる 

→フィージブルサクセサがトポロジテーブルからルーティングテーブルに載って収束するまでの時間 →約3秒

・連続pingを止めて、経路がRT02経由に切り替わっていることを確認する

⑤ 再びRT01の電源を入れる

・ポートのランプの点滅を見ながら、RT01に戻ったタイミングでpingの結果がどうなるかを確認してみる


■正常時に使用している通信経路に対して、メトリック調整による経路制御を行う

コスト変更によって意図的に経路に切り替える。事前にルータへのメンテナンスが予定されていて、

あらかじめ通信経路を片寄せしておく場面などが想定される。

例)RT01をメンテナンスするため、通信をすべてRT02経由の経路へ事前に片寄せする場合


⑥ PC-A→RT03のLo0向けに連続pingを仕掛けておく

⑦ 連続ping中にRT01とRT03のLANポートで遅延(delay)を200に変更してみる

※同時に行う必要はないが、できれば素早く行う

⑧ コスト値の変更中にpingが切れるかどうか? → 切れない

⑨ コストの変更が完了したら、連続pingを止めて経路がRT02経由に切り替わっていることを確認する

⑩ 変更したコストを元に戻す ※連続pingはしなくてよい


ここまでの作業が完了したら、最後に以下のログを採ります

・ルータ・レイヤ3スイッチ共通

show running-config

show ip protocols

show ip route

show ip eigrp neighbors

show ip eigrp interfaces

ファイルの命名規則は以下の通り

showコマンド 03-06_氏名_ホスト名_コマンド名_yyyymmdd.log



・フローティングスタティックルート



主となるスタティックルートあるいはルーティングプロトコルで経路の情報が更新できなくなった場合、

管理ディスタンス(AD値)を調整したバックアップ相当のスタティックルートでユーザの通信をできるだけ

救済することを目指す技術のこと。

バックアップとなるスタティックルートのAD値をルーティングプロトコルのAD値よりも大きな値に調整することにより、

このスタティックルートは、ルーティングプロトコルの経路情報が消失した場合に、

速やかにルーティングテーブルにインストールされる


① この演習ではスイッチとルータで手順を進める。ケーブルはまだ接続しない

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

② 構成図に従ってレイヤ3スイッチに対して設定を行う

-ホスト名

-VLANの作成、アクセスポート、SVI、ルーテッドポートの設定

③ 構成図に従ってPCのLANポートに対してIPアドレスを設定する

-LANネットワークの外へ通信するために必要な設定も行っておく

④ L3SWで1.1.1.1宛のスタティックルートを設定する

-10.1.1.0を通る経路はデフォルトのAD値、10.2.2.252を通る経路はデフォルトAD値の5倍の値に

しておく

⑤ RT01で戻りのスタティックルートを設定する

-10.1.1.0を通る経路はデフォルトのAD値、10.2.2.252を通る経路はデフォルトAD値の5倍の値に

しておく


→ ip route <宛先ネットワーク> <サブネットマスク> <ネクストホップ> [<AD値>]


⑥ 構成図に従ってケーブルを接続する

⑦ ルーティングテーブルを確認する

-L3SW01では1.1.1.1宛の経路はどうなっているか。また、その経路のAD値はいくらか

→10.1.1.0の経路を通りAD値は1

-RT01からの戻りの経路はどうなっているか。また、その経路のAD値はいくらか

→10.1.1.0の経路を通りAD値は1

宛先ネットワーク/プレフィックス長 [AD値/メトリック] via ネクストホップアドレス

⑧ PC-Aから1.1.1.1宛に連続pingを実施しておく

⑨ 連続ping中に通信している側のL3SWのLANケーブルを抜いてみる

-連続pingは回復するか?回復までどれくらいかかるか → 約2秒で回復する

-L3SWおよびRT01それぞれのルーティングテーブルの経路とAD値を確認してみる

→10.2.2.252の経路を通りAD値は5

⑩ ケーブルを挿し直してルーティングテーブルを再度確認してみる。

また、PC-Aから1.1.1.1宛の経路も再度確認しておく

-元の経路に戻るのかどうか → 戻る


ここまでの作業が完了したら、最後に以下のログを採ります

・ルータ・レイヤ3スイッチ共通

show running-config

show ip route

ファイルの命名規則は以下の通り

showコマンド 03-07_氏名_ホスト名_コマンド名_yyyymmdd.log


☆アクセスリスト



ACL(AccessControlList)とも呼ばれる、通信を制御するための技術の1つ。

管理者はネットワーク内の通信要件に従い、アクセスリストを定義して適切な箇所に適用することにより、

ルータのLANポートを通過するパケットに対して、制御(通過の許可/拒否)をかけることができる。

アクセスリストの適用箇所にやってくるパケット1つ1つについて、

アクセスリストに記述されているリストの1行目から順に条件に一致するかを確認していく。

そして、一致する条件の行が見つかったらパケットには記述された処理が行われる。

また、ACLには「暗黙のdeny any」がある。これは、作成したアクセスリストの最終行に自動追加されるもので、

すべてのパケットを拒否するという意味を持つ。なお、暗黙のdenyはshowコマンドで表示されない。


① この演習ではレイヤ3スイッチとルータで手順を進める。ケーブルはまだ接続しない

構成図に従い演習3-5で行ったOSPFの設定を行う。

② RT03でTELNETを受け付ける準備をしておく

-パスワード認証のみでOK

-特権パスワードの設定もお忘れなく

③ PC-AからRT03のLo0へ疎通ができることを確認しておく。また、RT01を経由していることも確認しておく

④ PC-AからTeraTermでRT03のLo0アドレス宛にTELNETできることを確認する

⑤ RT03で名前付き拡張アクセスリストを設定する

-リスト名 :EXTACL

-送信元 :すべて

-宛先 :RT03のLoopback0

-制御内容 :TELNET接続要求を拒否する。これ以外はすべて許可

-適用箇所 :RT01向けのLANポート

-適用方向 :パケットがLANポートに入ってくるとき

→(config)#ip access-list extended  <リスト名>

→(config-ext-nacl)# <permit/deny/remark> <プロトコル>

<送信元アドレス> <ワイルドカードマスク> <宛先アドレス> <ワイルドカードマスク>

すべて→any、ワイルドカードマスク0.0.0.0は省略可能(host IPアドレスとする)

→(config-if)#ip access-group <リスト名> <in/out> 

(deny tcp any host 192.168.100.101 eq 23/telnet)

(permit ip any any)(ip access-group EXTACL in)

⑥ PC-AからRT03のLo0へ疎通確認を再度行ってみる

-結果に変化はあったか。変化があった場合なぜそうなったのか → 変化はない。

⑦ PC-AからRT03のLo0へTELNET接続を再度行ってみる

-結果に変化はあったか。変化があった場合なぜそうなったのか → 変化はある。理由:拒否したから。

⑧ RT01のF0またはF1ポートからLANケーブルを抜去する

⑨ PC-AからRT03のLo0へ疎通確認を再度行ってみる。また、経路も確認してみる

→できる。経路はルータRT02経由に変化した。

⑩ PC-AからRT03のLo0へTELNET接続を再度行ってみる

-結果に変化はあったか。変化があった場合なぜそうなったのか

→できる。理由:ACLが適用されていないLANポートを通る経路で通信するため。

⑪ RT03で名前付き標準アクセスリストを設定する

-リスト名 :STDACL

-送信元 :PC-AのIPアドレスは拒否。それ以外はすべて許可

-適用箇所 :VTYポートへのアクセス制御

-適用方向 :パケットが入ってくるとき

→(config)#ip access-list standard <リスト名>

→(config-ext-nacl)#<permit/deny/remark> <送信元アドレス> <ワイルドカードマスク>

→(config-line)#access-class <リスト名> <in/out> ]

(deny host 192.168.10.101)(permit any)(access-class STDACL in)

⑫ PC-AからRT03のLo0へTELNET接続を再度行ってみる

-結果に変化はあったか。変化があった場合なぜそうなったのか
ACLで拒否したためPC-AからTelnet接続することができなくなった。

⑬ 最後に手順⑧で抜去したLANケーブルを挿し直しておく



ここまでの作業が完了したら、最後に以下のログを採ります

4台共通

show running-config

show ip route

RT03のみ

show ip access-list

ファイルの命名規則は以下の通り

showコマンド 03-08_氏名_ホスト名_コマンド名_yyyymmdd.log


・NAT


Network Address Translation。

IPアドレスを変換する技術のことで、NATの設定によって作成されたテーブルに従ってアドレスを変換する。

主な使用例としては、社内LANなど閉じられたネットワークの端末からインターネットに接続する際、

送信元会社や自宅の閉じられたプライベートなネットワークと、インターネットの境界に設置するブロードバンドルータや

モバイルWi-FiルータなどはこのNATの機能を備えている。

また、IPアドレスだけでなくポート番号の変換用テーブルも作成するNATを、NAPT(Network Address Port Translation)と呼ぶ。


NATを使う主なシチュエーション

①プライベートIPアドレスを使っている社内ネットワークの端末からインターネットに通信したい

送信元IPアドレスをプライベートIPアドレスからグローバルIPアドレスに変換する。

これによって、端末の発信IPアドレスが隠ぺいされるため、セキュリティレベルを高めることができる。

また、グローバルIPアドレスは利用料(アドレス維持料)が発生するが、使用数を減らすことでコスト削減に役立てることができる

②企業内に立ち上げたウェブサーバなどを外部(インターネット)に安全に公開したい

外部からのアクセス用に宛先IPアドレスとしてグローバルIPアドレスを用意。

このグローバルアドレス宛にやってきた通信について、宛先をNATによってサーバ用に割り当てたプライベートIPアドレスに変換する。

これによって、内部のIPアドレスが隠ぺいされ、セキュリティレベルを高めることができる


・Ciscoでの主なNAT関係の用語


Inside側(内部)→主にLAN側のネットワークやインターフェイスを指す

Outside側(外部)→主にWAN側(インターネット)のネットワークやインターフェイスを指す

内部ローカルアドレス(Inside Local)

・Inside側にある実際のIPアドレス

・ip nat inside sourceコマンドで変換される前のIPアドレス

内部グローバルアドレス(Inside Global)

・NATルータが持つプールされたアドレス

・ip nat inside sourceコマンドが設定されたアドレス。poolで指定されたアドレス、

スタティック変換で設定されたIPアドレス、overloadで指定された外部インターフェイス(ip nat outside)のアドレス

外部ローカルアドレス(Outside Local)

・NATルータが持つプールアドレス

・ip nat outside sourceコマンドが設定されたアドレス。poolで指定されたアドレス、スタティック変換で設定

されたIPアドレス

外部グローバルアドレス(Outside Global)

・Outside側にある実際のIPアドレス

・ip nat outside sourceコマンドでの変換される前のIPアドレス


☆CiscoでのNATの基本ルールとコマンド



ip nat inside → Inside側(内部ネットワーク)を示す

ip nat outside → Outside側(外部ネットワーク)を示す


・(コマンド)ip nat inside source

(パケットの通過する方向)入ip nat inside 出ip nat outside (変換対象)送信元

(アドレスの種類)入Inside Local 出Inside Global

ip nat outside ip nat inside 宛先 Inside Global Inside Local


・ip nat outside source

ip nat outside ip nat inside 送信元 Outside Global Outside Local

ip nat inside ip nat outside 宛先 Outside Local Outside Global

☆CiscoでのNATの処理順序のポイント



CiscoIOSでは通信フローの方向によってNATの処理順が決まっている

特にルーティング処理とNATによるアドレス変換処理の順番に要注意


insideからoutsideへ

① ip nat insideからパケット受信

② ルーティングの処理

(宛先とルーティングテーブルの照合、ネクストホップ/出力インターフェイスの決定)

③ アドレス変換処理 ※NATテーブルを検索して変換

④ ip nat outsideからパケット発信


outsideからinsideへ

① ip nat outsideからパケット受信

② アドレス変換処理 ※NATテーブルを検索して変換

③ ルーティングの処理

(宛先とルーティングテーブルの照合、ネクストホップ/出力インターフェイスの決定)

④ ip nat insideからパケット発信


⭐︎PAT(Port Address Translation

)

NATの一種であり、1つのIPアドレスを複数のコンピュータで共有する技術のこと。

多くの場合、1つのIPアドレス=グローバルIPアドレス、

複数のコンピュータ=社内や家庭内の閉じたLANネットワークにあるPCやスマートフォン、タブレットなどを指す。

PATはCisco用語であり、一般的にはNAPT(Network Address Port Translation)とかIPマスカレードと呼ばれることが多い。

アドレス維持料というコストがかかるグローバルIPアドレスの使用数を節約できるというメリットがある。

また、複数のコンピュータの通信を識別するために、TCP/UDPのポート番号も動的に変換する。

この情報は常にNATテーブル上で更新され、同じグローバルIPアドレスを共有していても、送信元ポート番号によって異なるコンピュータの通信を識別できる


① この演習ではルータ2台で手順を進める。ケーブルはまだ接続しない

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

※研修環境のような閉じたネットワークではプライベートIPアドレスを使うべきだが、今回はNATという

ことで、敢えてグローバルIPアドレスを設定する

② 構成図に従ってPCのLANポートに対してIPアドレスを設定する

-LANネットワークの外へ通信するために必要な設定も行っておく

③ RT01でRT02向けのデフォルトルートを設定する

-インターネットフルルートについては次の参考ページを参照

④ 構成図に従ってケーブルを接続し、PC-AからPC-B宛にpingによる疎通確認を行う

-NGになるはず

-社内LANからインターネット宛のルーティングはプロバイダを含めたインターネット側で問題なければ

ルーティング可能。では、インターネット側から社内LANに戻ってくるときはどうか?

プライベートIP宛のルーティングってインターネットの世界ではOK? → 工夫しなければNG

⑤ ルータ間のLANケーブルを外す。以下のようなシナリオに基づいてRT01に設定を行う

-A社内部の192.168.10.0/24ネットワークに居るコンピュータはインターネットとの通信を必要としている。

しかし、A社内部ネットワークはプライベートIPのためインターネット側からのルーティングはできない。

そこで、A社管理者のあなたは、A社内部LANからインターネットに通信できるようにするため、RT01でNATを採用することにした

-インターネット接続に必要なグローバルIPアドレスは契約しているZ社から割り当てられた1つのみ。

しかも、Z社の都合により不定期にアドレスが変更される。

そこで、NATの種類としてはPAT(NAPT/IPマスカレード)を採用する。RT01のf0に割り当てられている

アドレスが固定されていないくても、A社内部LANのコンピュータたちが、このグローバルIPを共有する形で同時にインターネット接続できるようにする ※poolではなくoverloadのコマンドを採用

-A社内部LANからの発信を起点とし、外部の宛先に向かうときはこのルータで送信元を変換する。

戻ってきたときに、発信で作成したNATテーブルを利用して宛先が変換されるようにする。

これにより、内部LANの発信元に戻ることができる ※ip nat inside sourceコマンドを採用

-ip nat inside sourceのコマンドで、NATの対象とする社内LANのアドレスの範囲は標準アクセスリスト1で指定すること

→F1 (config-if)#ip nat inside、F0 (config-if)#ip nat outside

→(config)#access-list <番号> permit <送信元アドレス> <ワイルドカードマスク>

(access-list 1 permit 192.168.10.101 0.0.0.255)

→(config)#ip nat inside source list <番号> <外部インターフェイス> overload

(ip nat inside source list 1 int f0 overload)

⑥ LANケーブルを挿し直して、再度PC-AからPC-Bにpingによる疎通確認を行う

-OKになるはず

⑦ NATテーブルで確認してみる

-InsideLocalにPC-Aのアドレス、InsideGlobalにip nat insideコマンドで指定したf0のアドレスが

表示される → sh ip nat translations

-ip nat inside source listコマンドによるダイナミックNATの場合、

ip nat inside→ip nat outside向きの通信のときは、NATテーブルにエントリーが生成される

⑧ 5分程度経過したら、NATテーブルからエントリーが消えていることを確認する

→ 手動消去 #clear ip nat translation

⑨ エントリーが消えた状態でPC-BからPC-A宛にpingしてみる

-通信がNGになるはず

-ip nat inside source listコマンドによるダイナミックNATの場合、ip nat outside→ip nat

inside向きの通信のときは、NATテーブルにエントリーは生成されない

⑩ 再度PC-AからPC-Bに向けてpingによる疎通確認を行い疎通がOKであること、NATテーブルにエントリーが生成されていることを確認する

⑪ NATテーブルにエントリーが残っている状態でPC-BからRT01のf0に疎通確認を行ってみる

-疎通はOK。かつ、PC-Aまで通信が届いている⇒PC-AでWiresharkを起動して確認してみる

なぜなのかは次の手順で考えてみる

⑫ なぜOKになったのかを考えてみる

-9ページのip nat outsideのインターフェイスからip nat insideのインターフェイスへ向かう通信のルールを再度確認してみる

outsideからinsideへ

① ip nat outsideからパケット受信

② アドレス変換処理 ※NATテーブルを検索して変換

③ ルーティングの処理 (宛先とルーティングテーブルの照合、ネクストホップ/出力インターフェイスの決定)

④ ip nat insideからパケット発信

-NATテーブルに該当するエントリーが残っていればアドレスの変換処理を先に行う

★あくまでもinside→outside向きの通信に対する戻り通信のためのNATテーブルという扱い。

なのでoutside側を起点とする通信は想定していないが、このようにNATテーブルにエントリーが残っているとoutside側を起点とした通信も可能になる

・8ページにあるように、ip nat insideコマンドが設定されている場合、 ip nat outside→ip nat

insideに向かう通信では、宛先がInsideGlobalからInsideLocalに変換される

・NATテーブルにInsideGlobalとInsideLocalのエントリーがあれば、それに従って宛先を変換する

PATを含めたCiscoルータのダイナミックNATは、社内LANなどの内部ネットワークを起点とした通信を前提としている


ここまでの作業が完了したら、最後に以下のログを採ります

・ルータ RT01のみでOK

show running-config

show ip route

show ip nat translations

※一定時間経つと消えるためPC-AからPC-Bへの疎通確認直後にログ取得。ポート番号はランダムになるため正解と異なることあり

ファイルの命名規則は以下の通り

03-09_氏名_RT01_コマンド名_yyyymmdd.log


・スタティックNAT



最も基本的なNATの種類であり、1対1でIPアドレス変換を行うやり方。

基本的には、ip nat inside source または ip nat outside sourceコマンドを使い、NATルータに1対1変換テーブルを定義しておくパターン。

外部公開用に社内で設置したサーバに割り当てたプライベートIPアドレスと、外部のユーザをこのサーバにアクセスさせるために用意した専用のグローバルIPアドレスとを変換するときなどが代表的な利用例となる


① この演習ではルータ2台で手順を進める。ケーブルはまだ接続しない

構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

※研修環境のような閉じたネットワークではプライベートIPアドレスを使うべきだが、今回はNATという

ことで、敢えてグローバルIPアドレスを設定する

② 構成図に従ってPCのLANポートに対してIPアドレスを設定する

-LANネットワークの外へ通信するために必要な設定も行っておく

③ RT01でRT02向けのデフォルトルートを設定する

-インターネットフルルートについては次の参考ページを参照

④ 構成図に従ってケーブルを接続し、PC-XからPC-A宛にpingによる疎通確認を行う

-NGになるはず

-インターネット側から社内LANに入ってくるときに、プライベートIP宛のルーティングってインターネットの世界ではOK? → NG

⑤ ルータ間のLANケーブルを外す。以下のようなシナリオに基づいてRT01に設定を行う

-Xさんのコンピュータ(構成図ではPC-X)から、A社の内部LANのサーバコンピュータ(構成図ではPC-A)にアクセスしたい。

しかし、A社の内部LANはプライベートIPのため、インターネット側からのルーティングに問題がある。

そこで、A社の管理者のあなたは、安全に外部から内部に通信できるようにRT01でスタティックNATを採用することにした

-A社は契約している事業者(プロバイダ)Z社からは、通常の契約料金でグローバルIPを1つだけ割り当ててもらっている(構成図の”192.0.2.1/24”)。

しかし、このアドレスはZ社の都合で変更されるアドレスであり、

PC-Xから常にA社のPC-Aにアクセスするためには変更されないIPアドレスが必要となる。

そこで、A社はZ社にオプションの料金を払って、インターネット上で常にアドレスが変わらない固定グローバルIPアドレス”198.51.100.101/24”を割り当ててもらった

-RT01では、NAT設定によって作成されたNATテーブルを利用し、PC-X側からの発信を起点とする場合は宛先が”198.51.100.101→192.168.10.101”に変換されるようにする。

また、PC-A側からの発信を起点とする場合は、送信元が192.168.10.101→198.51.100.101に変換されるようにする。

なお、これらの設定は ip nat insideのコマンドを使ったスタティックNATで行うこと

-以上を満たすことにより、PC-Xから198.51.100.101宛に疎通確認をすると、NATの機能によってA社内部にあるPC-Aに到達することができる

→(config)#ip nat inside source static <内部ローカルアドレス> <内部グローバルアドレス>

(ip nat inside source static 192.168.10.101 198.51.100.101)

⑥ 構成図に従ってケーブルを接続し、 PC-Xから固定グローバルIPアドレス宛に疎通確認を行ってみる

-NGのはず。なぜそのような結果になったのか? ルーティングによる到達性は成立しているのか?

┗RT02で到達が必要な宛先へのスタティックルートを追加する。

追加する際はホストルート(/32)で

→ip route 198.51.100.101 255.255.255.255 192.0.2.1

※実際のインターネットの世界では、Z社のような事業者が正しくルーティングできるよう設定をするはずなので、

ユーザであるA社の担当がこのような設定をすることは基本無い

⑦ スタティックルート設定後、PC-Xから固定グローバルIP宛への疎通確認がOKになったことを確認する

⑧ RT01でNATテーブルを確認してみる

-InsideLocalにPC-Aのアドレス、InsideGlobalに固定グローバルIPアドレスが表示される

★スタティックNATの場合は、コマンドを設定した時点でNATテーブルにエントリーが生成される

★スタティックNATの場合、生成されたエントリーは恒久的に削除されない

┗ clear ip nat translations * というNATテーブルを強制クリアするコマンドを実行しても削除されない

⑨ PC-AでWiresharkを起動した状態で、PC-Xから固定グローバルIP宛に疎通を行う

-疎通は問題なくできるはず

-到着したパケットの宛先IPアドレスがPC-A宛になっている

┗NATルータでNATテーブルに従って宛先の変換が行われたため

変換前:InsideGlobal → 変換後:InsideLocal

⑩ なぜOKになったのかを考えてみる

-9ページのip nat outsideのインターフェイスからip nat insideのインターフェイスへ向かう通信のルールを再度確認してみる

outsideからinsideへ

① ip nat outsideからパケット受信

② アドレス変換処理 ※NATテーブルを検索して変換

③ ルーティングの処理 (宛先とルーティングテーブルの照合、ネクストホップ/出力インターフェイスの決定)

④ ip nat insideからパケット発信

-スタティックNATの場合、コマンドを設定した時点でNATテーブルにエントリーが生成される

★スタティックNATの場合、生成されたエントリーは恒久的に削除されない

┗ clear ip nat translations * というNATテーブルを強制クリアするコマンドを実行しても削除されない

★最初から ip nat outside→ip nat insideに向かう通信のNATを処理できる

・8ページにあるように、ip nat insideコマンドが設定されている場合、 ip nat outside→ip nat

insideに向かう通信では、宛先がInsideGlobalからInsideLocalに変換される

・NATテーブルにInsideGlobalとInsideLocalのエントリーがあれば、それに従って宛先を変換する

・その後、9ページのルールに従うとInsideLocal宛のルーティング→転送される

CiscoルータでのスタティックNATは、外部ネットワークを起点として社内LANなどの内部ネットワークに向けた通信を可能とするために利用される


ここまでの作業が完了したら、最後に以下のログを採ります

・ルータ RT01のみ

show running-config

show ip nat translations

※一定時間経つと消えるためPC-AからPC-Bへの疎通確認直後にログ取得。ポート番号はランダムになるため正解と異なることあり

・ルータ RT01とRT02

show ip route

ファイルの命名規則は以下の通り

03-10_氏名_ホスト名_コマンド名_yyyymmdd.log


☆HSRP


FHRP(First Hop Redundancy Protocol)の1つであり、LAN内のコンピュータから見て、

ほかのLANへの出入口となるデフォルトゲートウェイの冗長性を高めるためのCisco独自プロトコル


①ケーブルはまだ接続しない。構成図に従ってルータに対して設定を行う

-ホスト名

-LANポートに対するIPアドレス

-プロトコル構成図に従ったOSPFの設定

・ルータIDの指定 RT01:1.1.1.1 , RT02:2.2.2.2 , RT03:3.3.3.3

・networkコマンドでLANポートのIPアドレスをピンポイントで指定する

・RT01~03間のコストを10、RT02~03間のコストを100で設定する

・l2swを通じてLANポート同士でネイバー関係が構築されないようにする

② 構成図に従ってレイヤ2スイッチに対して設定を行う

-ホスト名

-VLANの作成、アクセスポート・トランクポートの設定 ※今回はallowed vlan不要

③ 構成図に従ってPCのIPアドレスを設定する

-デフォルトゲートウェイはRT01側のIPアドレスで設定しておく

④ ケーブルを接続してPCから3.3.3.3に疎通確認を行い、問題なく疎通することを確認する。

また、通信経路も確認しておく(RT03からの経路確認は今回は不要)

-なぜその経路を選択したのか → RT01をデフォルトゲートウェイに設定したから

⑤ PCから3.3.3.3に連続pingしたまま、RT01のL2SW向けのケーブルを抜く

-pingの応答は自動的に回復するかしないか。それはなぜか

→しない。理由:RT02はデフォルトゲートウェイではないから

⑥ 確認ができたら連続pingを止めて、ケーブルを挿し直しておく

⑦ PC-A側のLANについて、デフォルトゲートウェイの冗長性を高めるため、2台のルータで設定を行う

-プロトコルは「HSRP」

-グループ番号は「10」

-仮想IPアドレスは「192.168.10.252」 → (config-if)#standby <番号> ip <ipアドレス>

-プライオリティはRT01を「100」、RT02を「95 → (config-if)#standby <番号> priority <プライオリティ値>

-プライオリティの高いルータをアクティブにするオプションは設定しない

→standby 10 ip 192.168.10.252

→standby 10 priority 100/95

⑧ 2台のルータで現在の設定を確認しておく

-HSRPのパラメータが想定通りかを確認する

-現在のアクティブルータはどちらか ※この時点ではどちらになっていてもよい

⑨ PCのデフォルトゲートウェイを再設定する

-HSRPを活かすためにはデフォルトゲートウェイのアドレスをどうすればよいか → 192.168.10.252

⑩ PCから3.3.3.3に疎通確認を行い、問題なく疎通することを確認する。

また、通信経路はアクティブルータ側を経由していることを確認しておく

⑪ PC-Aから3.3.3.3に連続pingを行いながら、アクティブルータ側でL2SW向けのケーブルを抜いてみる

-pingの応答は自動的に回復するのか。回復するならどれくらい時間がかかったのか。 → 約15秒で回復

なぜそのような結果になるのか → アクティブルータが切り替わったから

⑫ pingを止めて、通信経路を確認してみる

-手順⑩と比べて経路が変化しているか。変化していたらそれはなぜか

→変化している。理由:冗長化の仕組み

⑬ 抜いたケーブルを挿し直しておく


アクティブルータとスタンバイルータの選出についてのオプションを確認していく

① RT01のL2SW向けケーブルを抜き、RT02がアクティブになったことを確認する

② この状態でRT01で抜いたケーブルを挿し直してもアクティブルータは切り替わらないはず。

なぜそうなると予想できるのか理由を考えてみる → アクティブルータがすでに決まっている場合は

ルータのプライオリティ値を最大にしてもアクティブルータの権利を得ることはできないから。

③ 実際にRT01で抜いたケーブルを挿し直して、アクティブルータは切り替わらなかったかを確認してみる

④ おそらくアクティブルータはRT01に切り替わったはず。なぜ想定した結果と異なったのかを考えてみる

※LMSに置いているデュアルアクティブ状態についての資料も参考にしてみること

→RT01のSTP状態がFWDになるのに時間が掛かるため、アクティブルータとして機能するようになる。

そのあと、FWDに遷移しRT01を通信すると1つのグループ内にActiveルータが2台居る不整合の検出(デュアルアクティブ状態)が起きる。

この場合、Preemptのパラメータを無視してPriorityの高いほうが低いほうからアクティブの役割を奪い取るから。

⑤ 手順①~②を行ったときに、想定通りアクティブルータが切り替わらないようにするため、

L2SWで設定を追加・修正してみる → g0/23にportfastを適用する (config-if)#spanning-tree portfast

⑥ L2SW設定後、再度手順①~②を行ってみる。

今度は想定通りアクティブルータがRT02のままになっていることを確認する

⑦ 両方のルータに対して、HSRPプライオリティが高いルータが常にアクティブになる設定を追加する

→(config-if)#standby 10 preempt

⑧ RT01のL2SW向けケーブルを抜き、RT02がアクティブになったことを確認する

⑨ RT01で抜いたケーブルを挿し直して、アクティブルータがRT01に自動的に戻ることを確認する

⑩ 通信経路を確認してRT01経由になっていることを確認する


ここまでの作業が完了したら、最後に以下のログを採ります

ルータ

show running-config

show ip route

show standby (RT01と02のみ)

show standby brief (RT01と02のみ)

ファイルの命名規則は以下の通り

showコマンド 04-01_氏名_ホスト名_コマンド名_yyyymmdd.log


・レイヤ3スイッチでHSRP



① ケーブルはまだ接続しない。構成図に従ってルータおよびレイヤ3スイッチに対して設定を行う

-ホスト名

-(レイヤ3スイッチのみ)VLANの作成、アクセスポート・トランクポートの設定 ※今回はallowed vlan不要

-LANポート、SVI、ルーテッドポートに対するIPアドレス

-プロトコル構成図に従ったOSPFの設定

・ルータIDの指定 l3sw01:1.1.1.1 , l3sw02:2.2.2.2 , RT01:3.3.3.3

※RT01のルータIDについて

Loopbackインターフェイスを作成してからOSPFのルータID設定するという順で設定を進めると、

LoopbackのアドレスがルータIDとして優先で採用される(ルータIDの決定ルールに基づく)

もしこのようになった場合は、OSPFプロセスを再起動(機器自体の再起動ではない)すると、

RT01のルータIDが3.3.3.3になる。 → #clear ip ospf process

ちなみにルータIDが重複していると、ネイバー関係が構築されなかったり経路情報の交換が正しく

行われないというトラブルの原因となります

・networkコマンドでLANポートのIPアドレスをピンポイントで指定する

・l3sw01~RT01間のコストを10、l3sw02~RT01間のコストを100で設定する

・l2swを通じてSVI同士でネイバー関係が構築されないようにする

② 構成図に従ってレイヤ2スイッチに対して設定を行う

-ホスト名

-VLANの作成、アクセスポート・トランクポートの設定 ※今回はallowed vlan不要

③ 構成図に従ってPCのIPアドレスを設定する

-デフォルトゲートウェイはl3sw01側のIPアドレスで設定しておく

④ ケーブルを接続してPCから1.1.1.1に疎通確認を行い、問題なく疎通することを確認する

また、通信経路も確認しておく(RT01からの経路確認は今回は不要)

-なぜその経路を選択したのか → コストが低いから

⑤ PCから1.1.1.1に連続pingしたまま、l3sw01のl2sw01向けのケーブルを抜く

-pingの応答は自動的に回復するかしないか。それはなぜか 

→しない。理由:RT02はデフォルトゲートウェイではないから

⑥ 確認ができたら連続pingを止めて、ケーブルを挿し直しておく

⑦ PC-A側のLANについて、デフォルトゲートウェイの冗長性を高めるため2台のレイヤ3スイッチで設定を行う

※VLAN10のネットワークのために設定するということを考慮すると、設定すべきポートはどれか?→ vlan 10

-プロトコルは「HSRP」

-グループ番号は「10」

-仮想IPアドレスは「192.168.10.252」

-プライオリティはl3sw01を「100」、l3sw02を「95」

-プライオリティの高いルータをアクティブにするオプションは設定しない

⑧ 2台のレイヤ3スイッチで現在の設定を確認しておく

-HSRPのパラメータが想定通りかを確認する

-現在のアクティブルータはどちらか ※この時点ではどちらになっていてもよい

⑨ PCのデフォルトゲートウェイを再設定する

-HSRPを活かすためにはデフォルトゲートウェイのアドレスをどうすればよいか → 仮想IPアドレスにする

⑩ PCから1.1.1.1に疎通確認を行い、問題なく疎通することを確認する。

また、通信経路はアクティブ側を経由していることを確認しておく

⑪ PC-Aから1.1.1.1に連続pingを行いながら、アクティブ側でl2sw01向けのケーブルを抜いてみる

-pingの応答は自動的に回復するのか。回復するならどれくらい時間がかかったのか。→ 約5秒で回復

なぜそのような結果になるのか → 冗長化の仕組みがあるため

⑫ pingを止めて、通信経路を確認してみる

-手順⑩と比べて経路が変化がしているか。変化していたらそれはなぜか → アクティブルータが切り替わったから

⑬ 抜いたケーブルを挿し直しておく


アクティブとスタンバイの選出についてのオプションを確認していく

① l3sw01のl2sw01向けのケーブルを抜き、l3sw02がアクティブになったことを確認する

② この状態でl3sw01で抜いたケーブルを挿し直してもアクティブは切り替わらないはず。

なぜそうなると予想できるのか理由を考えてみる → アクティブルータがすでに決まっている場合は

ルータのプライオリティ値を最大にしてもアクティブルータの権利を得ることはできないから。

③ 実際にl3sw01で抜いたケーブルを挿し直して、アクティブルータは切り替わらなかったかを確認してみる

④ ルータで検証したときと違い、想定通りアクティブルータが切り替わらなかったのはなぜか

※LMSに置いているL3SWのデュアルアクティブについての資料も参考にすること

→HSRPはレイヤ3のプロトコルなのでレイヤ2が収束してから動き出す。STPは収束しているのでHSRP Helloの交換が可能。

よってHelloに含まれるPreemptなどのパラメータを識別できるため。

⑤ l3sw同士でHSRPのHelloメッセージ交換が待機時間無しですぐに行われるよう各スイッチで設定を変更してみる

※体感ではそれほど時間差を感じないかもしれないが設定してみる

※スイッチ間はトランクポートのため、portfastの設定はしないように

→(config)#spanning-tree mode rapid-pvst

⑥ 両方のレイヤ3スイッチに対して、HSRPプライオリティが高いルータが常にアクティブになる設定を追加する

⑦ l3sw01のL2SW向けケーブルを抜き、l3sw02がアクティブになったことを確認する

⑧ l3sw01で抜いたケーブルを挿し直して、アクティブルータがl3sw01に自動的に戻ることを確認する

⑨ 通信経路を確認してL3sw01経由になっていることを確認する


ここまでの作業が完了したら、最後に以下のログを採ります

l3sw01と02

show running-config

show ip route

show standby

show standby brief

RT01

show running-config

ファイルの命名規則は以下の通り

showコマンド 04-02_氏名_ホスト名_コマンド名_yyyymmdd.log


・VRRP


FHRP(First Hop Redundancy Protocol)の1つであり、LAN内のコンピュータから見て、

ほかのLANへの出入口となるデフォルトゲートウェイの冗長性を高めるためのマルチベンダー対応プロトコル


① ケーブルはまだ接続しない。構成図に従ってルータに対して設定を行う

-ホスト名

-ルータのLANポートに対するIPアドレス

-プロトコル構成図に従ったOSPFの設定

・loopback0を各ルータのルータIDとして指定する

・networkコマンドでLANポートのIPアドレスをピンポイントで指定する ※Loopback0も含める

・RT01~03間のコストを10、RT02~03間のコストを100とする

・l2sw側のLANポートはネイバー関係が構築されないようにする

② 構成図に従ってL2スイッチに対して設定を行う

-ホスト名

-通信用VLANとしてVLAN10の作成およびLANポートに対するアクセスポートの設定

③ 構成図に従ってPCのIPアドレスを設定する

-デフォルトゲートウェイはRT01側のIPアドレスで設定しておく

④ ケーブルを接続してPCから3.3.3.3に疎通確認を行い、問題なく疎通することを確認する。

また、通信経路も確認しておく(RT03からの経路確認は今回は不要)

-なぜその経路を選択したのか → RT01をデフォルトゲートウェイとして設定しているから。

⑤ PCから3.3.3.3に連続pingしたまま、RT01のL2SW向けのケーブルを抜く

- pingの応答は自動的に回復するかしないか。それはなぜか 

→回復しない。理由:RT02はデフォルトゲートウェイに設定されていないから

⑥ 確認ができたら連続pingを止めて、ケーブルを挿し直しておく

⑦ PC-A側のLANについて、デフォルトゲートウェイの冗長性を高めるため、2台のルータで設定を行う

-プロトコルは「VRRP」

-グループ番号は「10」

-仮想IPアドレスは「192.168.10.251」

-プライオリティはRT01を「100」、RT02を「95」

→vrrp 10 ip 192.168.10.251

→vrrp 10 priority 100/95

⑧ 2台のルータで現在の設定を確認しておく

-VRRPのパラメータが想定通りかを確認する

-現在のマスタールータはどちらか ※必ずRT01になるはず。それはなぜか

注) もし、フラッピング(LANポートがアップダウンを繰り返すメッセージが頻繁に出る)が起きた場合は、

スイッチとルータ間のLANポート同士の速度とデュプレックスを固定してみること

・speed:100 ・duplex:full

⑨ PCのデフォルトゲートウェイを再設定する

-VRRPを活かすためにはデフォルトゲートウェイのアドレスをどうすればよいか → 仮想IPアドレスにする

⑩ PCから3.3.3.3に疎通確認を行い、問題なく疎通することを確認する。

また、通信経路はマスタールータであるRT01側を経由していることを確認する

⑪ PC-Aから3.3.3.3に連続pingを行いながら、マスタールータ側でL2SW向けのケーブルを抜いてみる

-pingの応答は回復するのか。回復するならどれくらい時間がかかったのか。→15秒で回復

なぜそのような結果になるのか → 冗長化の仕組み

⑫ pingを止めて、通信経路を確認してみる

-手順⑩と比べて経路が変化がしているか。変化していたらそれはなぜか

→変化している。理由:RT02がバックアップルータからマスタールータに切り替わったため。

⑬ 抜いたケーブルを挿し直しておく


ここからは、マスタールータとバックアップルータのコントロールを行っていく

① HSRPの演習で確認したように、アクティブルータの選出で想定外のことが起こらないようあらかじめレイヤ2

スイッチで必要な設定をしておく → ポートファストを設定する

② RT01のL2SW向けケーブルを抜き、RT02をマスタールータにする

③ RT01で抜いたケーブルを挿し直してみる

-マスタールータが切り替わるはず →理由:プロンプトが有効になっているから

④ 両方のルータに対して、プライオリティに関係なくマスタールータが自動で切り替わらないように設定する

⑤ 手順②~③を行い、今度はマスタールータが自動的に切り替わらないことを確認する

⑥ 手順④の設定を削除する


ここまでの作業が完了したら、最後に以下のログを採ります

ルータ

show running-config

show ip route

show vrrp (RT01と02のみ)

show vrrp brief (RT01と02のみ)

ファイルの命名規則は以下の通り

showコマンド 04-03_氏名_ホスト名_コマンド名_yyyymmdd.log


☆FHRPのWAN側障害対策


・ルーティングによる制御



① 構成図に従ってレイヤ2スイッチに対してスイッチングの設定を行う

-ホスト名

-VTP ドメイン名はホスト名と同じ。他のスイッチと実質同期をしないモードを採用

-VLAN VLANの作成。アクセスポートの設定

レイヤ3スイッチ向けポートにトランクポートの設定 (今回はallowed vlan設定不要) → spanning-tree mode rapid-pvst

-STP スイッチ間で高速に収束するモードを採用 (今回はブリッジプライオリティ設定不要) → spanning-tree portfast

PCを接続したときにすぐに通信ができるようにする

② 構成図に従ってレイヤ3スイッチに対してスイッチングの設定を行う

-ホスト名

-VTP ドメイン名はホスト名と同じ。他のスイッチと実質同期をしないモードを採用 → vtp domain <ドメイン名>

-VLAN VLANの作成

レイヤ2スイッチ向けポートにトランクポートの設定 (今回はallowed vlan設定不要)

-STP スイッチ間で高速に収束するモードを採用 (今回はブリッジプライオリティ設定不要)

③構成図に従ってレイヤ3スイッチにルーティングの設定を行う

-VLAN用の仮想インターフェイスを作成する

-外部ルータRT01向けにルータとして動作するポートを設定する

④ 構成図に従ってレイヤ3スイッチにルーティングプロトコルを設定する

-ポートに設定したIPアドレスのみピンポイントで有効化されるようコマンドで指定する

-コスト値は以下のようにする

l3sw01~RT01間 10

l3sw02~RT01間 30

l3sw01~l3sw02間 50

-VLAN用の仮想インターフェイス同士でネイバー関係が構築されないようにする

⑤ 構成図に従ってレイヤ3スイッチでデフォルトゲートウェイ冗長化プロトコルを設定する

-プロトコルはHSRPを採用

-グループ番号 10

-仮想IPアドレス 192.168.10.252

-プライオリティ

l3sw01 100

l3sw02 85

-常にプライオリティの高いスイッチをアクティブに選出する


ここまでの作業が完了したら以下のログを採ります

レイヤ2スイッチ&2台のレイヤ3スイッチ&ルータ

show running-config

2台のレイヤ3スイッチ&ルータ

show ip route

show ip ospf neighbor

2台のレイヤ3スイッチのみ

show standby

show standby brief

ファイルの命名規則は以下の通り

showコマンド 04-04_氏名_ホスト名_コマンド名_yyyymmdd.log


(ログの取得および比較した後に再開)

⑥ PCのIPアドレスを設定する

-デフォルトゲートウェイのアドレスに注意すること

⑦ PCから1.1.1.1へ疎通ができることを確認する

⑧ l3sw01にコンソールケーブルを挿しておく。

PCから1.1.1.1への経路がアクティブルータであるl3sw01を経由していることを確認する

l3sw01のルーティングテーブルで1.1.1.1への経路を確認しておく

⑨ 引き続きl3sw01にコンソールケーブルを挿しておく。

PCから1.1.1.1へ連続pingしながら、l3sw01でRT01向けのケーブルを抜いてみる

-pingの応答はどうなったか → なくなるが約10秒後に回復

-ケーブルを抜いた直後からl3sw01のルーティングテーブルを繰り返し確認してみる

⑩ PCからの連続pingを止めて、PCから1.1.1.1への経路を確認する

-ケーブルを抜く前と比べて経路に変化はあったか。変化していた場合はなぜか

→変化はあった。理由:ルーティングテーブルに存在するもう一つの宛先への経路だから

-HSRPのアクティブルータは切り替わったか。切り替わっていないのならそれはなぜか

→切り替わっていない。理由:影響がないから。

⑪ 引き続きl3sw01にコンソールケーブルを挿しておく。

PCから1.1.1.1へ連続pingしながら、l3sw01で抜いたケーブルを元に戻してみる

-pingの応答はどうなったか → 変化なし

-ケーブルを挿し直した直後からl3sw01のルーティングテーブルを繰り返し確認してみる → l3sw02を経由する

⑫ PCからの連続pingを止めて、PCから1.1.1.1への経路を確認する

-ケーブルを挿し直す前と比べて経路に変化はあったか。変化していた場合はなぜか

→変化あり。理由:コストが低い経路が使われるから

-HSRPのアクティブルータは切り替わったか。切り替わっていないのならそれはなぜか

→切り替わっていない。理由:影響がないから


FHRPでWAN側に障害が発生した場合、FHRPの標準機能だけでは対応しない。

FHRPはLAN側のポートが正常であれば、アクティブ(マスター)の切り替えをしないからである

WAN側障害の対処として、本演習のような”渡り経路”によるLAN内のルーティングが許容されていれば、

ルーティングプロトコルによる経路の自動制御で迂回も可能である

・インターフェイストラッキング



① 構成図に従ってレイヤ2スイッチに対してスイッチングの設定を行う

-ホスト名

-VTP ドメイン名はホスト名と同じ。他のスイッチと実質同期をしないモードを採用

-VLAN VLANの作成。アクセスポートの設定

レイヤ3スイッチ向けポートにトランクポートの設定 (今回はallowed vlan設定不要)

-STP スイッチ間で高速に収束するモードを採用 (今回はブリッジプライオリティ設定不要)

PCを接続したときにすぐに通信ができるようにする

② 構成図に従ってレイヤ3スイッチに対してスイッチングの設定を行う

-ホスト名

-VTP ドメイン名はホスト名と同じ。他のスイッチと実質同期をしないモードを採用

-VLAN VLANの作成

レイヤ2スイッチ向けポートにトランクポートの設定 (今回はallowed vlan設定不要)

-STP スイッチ間で高速に収束するモードを採用 (今回はブリッジプライオリティ設定不要)

③構成図に従ってレイヤ3スイッチにルーティングの設定を行う

-VLAN用の仮想インターフェイスを作成する

-外部ルータRT01向けにルータとして動作するポートを設定する

④ 構成図に従ってレイヤ3スイッチにルーティングプロトコルを設定する

-ポートに設定したIPアドレスのみピンポイントで有効化されるようコマンドで指定する

-コスト値は以下のようにする

l3sw01~RT01間 10

l3sw02~RT01間 30

-VLAN用の仮想インターフェイス同士でネイバー関係が構築されないようにする

⑤ 構成図に従ってレイヤ3スイッチでデフォルトゲートウェイ冗長化プロトコルを設定する

-プロトコルはHSRPを採用

※必ずl3sw01から設定してl3sw01がアクティブになるようにすること

-グループ番号 10

-仮想IPアドレス 192.168.10.252

-プライオリティ

l3sw01 100

l3sw02 85

-常にプライオリティの高いスイッチをアクティブに選出するオプションは設定しない

⑥ PCのIPアドレスを設定する

-デフォルトゲートウェイのアドレスに注意すること

⑦ PCから1.1.1.1へ疎通ができることを確認する

⑧ PCから1.1.1.1への経路が、アクティブルータであるl3sw01を経由していることを確認する

ーl3sw01でルーティングテーブルに1.1.1.1への経路があることを確認する

⑨ PCから1.1.1.1へ連続pingしながら、l3sw01でRT01向けのケーブルを抜いてみる

-pingの応答は返ってくるのかこないのか → 帰ってこない

⑩ PCからの連続pingを止めて抜いたケーブルを挿し直す。

-ケーブルを抜く前と比べてl3sw01のルーティングテーブルに変化はあったか。あったのならそれはなぜか

→変化しない。

-HSRPのアクティブルータは切り替わったか。切り替わっていないのならそれはなぜか

→切り替わっていない。

⑪ l3sw01で以下の設定を行う

ー外部向け(WAN側)ポートを監視し、リンクがダウンしたらHSRPのプライオリティ値を変化させる

減らすプライオリティの値はデフォルトのままとする

→(config-if)#standby [番号] track <インターフェイス> [デクリメント](1~255の範囲で指定(オプション)。省略するとデフォルトで10)

⑫ 設定ができたら、PCから1.1.1.1へ連続pingしながら、l3sw01でRT01向けのケーブルを抜いてみる

-pingの応答は返ってくるようになったか → ならない

-HSRPのアクティブルータは切り替わったか。切り替わっていないのならそれはなぜか → 切り替わっていない。

⑬ PCからの連続pingを止めて抜いたケーブルを挿し直す。

l3sw01でHSRPのプライオリティ値を確認し、元の値に自動で戻っていることを確認する

⑭ l3sw01で再度以下の設定を行う

ー外部向け(WAN側)ポートを監視し、リンクがダウンしたらHSRPのプライオリティ値を変化させる

減らすプライオリティの値は考えて調整してみる(正解例は99減らすようにしている)

→(config-if)#standby 10 track g1/0/1 99

⑮ 設定ができたら、PCから1.1.1.1へ連続pingしながら、l3sw01でRT01向けのケーブルを抜いてみる

-pingの応答は返ってくるようになったか → ならない

-HSRPのアクティブルータは切り替わったか。切り替わっていないのならそれはなぜか → 切り替わっていない。

⑯ PCからの連続pingを止めて抜いたケーブルを挿し直す。

l3sw01でHSRPのプライオリティ値を確認し、元の値に自動で戻っていることを確認する

⑰ ここまでの手順でpingの疎通がうまくいっていない場合は、必要な追加の設定を考えてみる

特にHSRPのアクティブルータの切り替えがされないのはなぜなのかを調べてみる

なお、今回追加設定のコマンドはl3sw01と02両方に入れておくこと

→プロンプトの設定(config-if)#stanby 10 preempt

⑱ 設定ができたら、PCから1.1.1.1へ連続pingしながら、l3sw01でRT01向けのケーブルを抜いてみる

-pingの応答は、多少のパケットロスが発生するかもしれないが返ってくるようになるはず

-HSRPのアクティブルータは切り替わるっているはず。

これに伴い、PCから1.1.1.1への通信経路もl3sw02経由に切り替わっているはず

⑲ PCからの連続pingを止めて抜いたケーブルを挿し直す。

l3sw01でHSRPのプライオリティ値を確認し、元の値に自動で戻っていることを確認する


ここまでの作業が完了したら以下のログを採ります

レイヤ2スイッチ&2台のレイヤ3スイッチ&ルータ

show running-config

2台のレイヤ3スイッチ&ルータ

show ip route

show ip ospf neighbor

2台のレイヤ3スイッチのみ

show standby

show standby brief

ファイルの命名規則は以下の通り

showコマンド 04-05_氏名_ホスト名_コマンド名_yyyymmdd.log


(ログの取得および比較した後に再開)

ここからの手順は、LMSに置いているインターフェイストラッキングおよびプリエンプト遅延の資料も参考にすること

・プリエンプト遅延


① PCから1.1.1.1へ連続pingしながら、l3sw01でRT01向けのケーブルを抜いてみる

-インターフェイストラッキングによってアクティブルータがl3sw02に切り替わっていることを確認する

② PCからの連続pingを止めずに、l3sw01で抜いたケーブルを挿し直す

-pingの応答はどうなっているか。もし、回復まで数十秒かかるようなら、それだけお客さんの通信断が発生することになるので何らかの対処が必要

③l3sw01にコンソールケーブルを挿し、TeraTermが反応することを確認した上で、上記の手順①と②を続けて行ってみる

-手順②でケーブルを挿し直して10秒ほどでHSRPのアクティブに戻ったというログが出るはず。

ログが出たら、l3sw01でルーティングテーブルに1.1.1.1への経路が存在するかどうかを確認する。

また、この段階でPCからのpingの応答がどうなっているかも確認する →おそらく疎通ができてない

-さらに数十秒経過すると、OSPFのネイバー関係がFULLになったことを示すログが出るはず。

ログが出たら、l3sw01でルーティングテーブルに1.1.1.1への経路が存在するかどうかを確認する。

また、この段階でPCからのpingの応答がどうなっているかも確認する →おそらく疎通ができている

④ PCからの連続pingを止めて抜いたケーブルを挿し直す。

ー手順③で確認した内容から、なぜケーブルを挿し直したときの通信断が長くなるのかを考えてみる

<ポイント>

-”プリエンプトが有効な場合、3秒ごとに行われるHSRPのHelloメッセージ交換によって、

プライオリティの高いほうがアクティブルータにすぐ切り替わる“

-”ルーティングプロトコルは、リンクアップ後にHelloパケットの交換→データベース情報の交換という具合に

決まったプロセスに一定の時間がかかる。今回の場合はHSRPよりも遅い“

→ospfの計算が40秒で完了するのに対しアクティブルータへの切り替え確認はプロンプトによって

helloパケットの3秒ごとに行われるため。

⑤ ケーブルを挿し直したときの通信断の時間を、できるだけ発生させないようHSRPの設定を追加する。

なお、 設定するときの秒数のパラメータは自分で考えたり測ったりして決めること

※設定が分からない場合は、”プリエンプト遅延“で検索してヒントを探してみること

→(config-if)#standby 10 preempt delay minimum 60(0~36000秒設定可能、デフォルトは0)

⑥ 設定追加後、l3sw01にコンソールケーブルを挿したまま、再度手順①と②を続けて行ってみる

-pingはほぼ途切れずに通信を継続した状態になる

⑦ もう少し詳細に確認してみる

-ケーブルを挿し直しても、l3sw01でアクティブルータに切り替わったというログは出てこない

→プリエンプト遅延の時間が継続しているため、アクティブルータはl3sw02のまま

※この段階でPCから1.1.1.1への経路はl3sw02を経由している

RT01からの戻りもl3sw02を経由している(l3sw01経由はまだOSPFが収束していないため)

-数十秒後、l3sw01とRT01間でOSPFのネイバー関係がFULLになる

→OSPFが収束してルーティングテーブルに1.1.1.1への経路が復活

→プリエンプト遅延の時間が継続しているため、アクティブルータはl3sw02のまま

※この段階でもPCから1.1.1.1への経路はl3sw02を経由している

RT01からの戻りは、l3sw01を経由するようになった(コストの低いl3sw01経由の経路が復活)

このような行きと戻りが異なる経路は余り望ましくないが今回は一時的ということで許容する

-プリエンプト遅延経過後、 l3sw01でアクティブルータに切り替わったというログが出てくる

※PCから1.1.1.1への経路はアクティブルータであるl3sw01を経由する

RT01からの戻りはl3sw01を経由している。行きと戻りの経路が同じになった

■ プリエンプト遅延については正解例はありません



・スタック



おもにスイッチで使われる技術で、複数のスイッチを1台のスイッチに見せる技術のこと。

スイッチ間はスタックケーブルという装置固有のケーブルを使って接続する。

スイッチをスタックすると、以下のようなメリットがある

ーシンプルな構成

台数分の設定を行う必要がなく1台の装置として設定ができる。

監視・管理を行う場合でも1台として扱える

ー信頼性の向上

スタックメンバーのスイッチ間で複数のスイッチにまたがってLAGを構成できる。

1台のスイッチが故障した場合、でも残りのスイッチの接続で通信を継続できる

ースパニングツリーによる冗長

スイッチをスタックすれば、スパニングツリーを用いなくても容易に冗長性を確保できる

ー容易な増設

ポート不足などによる増設の場合、単にスイッチを増やすだけだと、

スイッチ間の配線やスパニングツリーなどを考慮する必要があるが、スタックすれば信頼性を保ちながら容易に増設が可能

ー容易な交換

スイッチを故障などにより交換した場合、スタックだと他の機器で設定が保存されているため、

接続するだけですぐに使えるようになる

ただし、スタックできるモデルのスイッチは通常のモデルに比べて高価である


<スタックを含めた初期化作業>

念のため、最初にスタックの設定の初期化を行う。以下の手順でスタック設定を初期化する

① LANケーブルとスタックケーブルが接続されている場合は外しておく

② それぞれのL3スイッチでshow runを確認。ポート番号が1/0/xxになっていることを確認する

※先頭が1ではなく2/0/xxとかになっている場合は講師まで

③ スイッチスタックのプライオリティを初期化する

switch(config)#no switch 1 priority

④ 通常のスイッチの初期化(startup-configの削除、vlan.datの削除)を行い、再起動する

※再起動前に設定を保存するか聞かれたらnoで進める


STEP1 スタック接続をしないパターン

① ケーブルはまだ接続しない。L2SWに対して設定を行う

-ホスト名

-VLAN10の作成およびアクセスポートの設定

-L3SW向けのトランクポートの設定 ※allowed不要

-スパニングツリーは通常のモードとする。ブリッジプライオリティもデフォルトのまま

② 2台のL3SWに対して設定を行う

-ホスト名

-VLAN10の作成およびL2SW向けおよびL3SW同士のトランクポートの設定 ※allowed不要

-構成図に従い、VLAN10のSVIに対するIPアドレスの設定

-スパニングツリーは通常のSTPモードとする

VLAN10のブリッジプライオリティをl3sw01で4096、 l3sw02で8192に設定する

③ 2台のL3SWでVLAN10のSVIポートに対してHSRPを設定する

グループ番号 10

仮想IPアドレス 192.168.10.254

プライオリティ l3sw01:105 l3sw02:95

プリエンプト 両方とも有効

④ 構成図に従ってLANケーブルを接続し、以下のことを確認する

STPのブロックポートがL2SWに存在している

HSRPのアクティブルータがl3sw01になっている

⑤ 確認ができたら、3台それぞれのスイッチで設定を保存しておく

⑥ 構成図に従ってPCにIPアドレスを設定する

なお、デフォルトゲートウェイのアドレスはHSRPの仮想IPアドレスとする

⑦ PCからデフォルトゲートウェイ(HSRPの仮想IPアドレス)に対して連続pingを実行する

⑧ 連続pingをしたままl3sw01の電源ケーブルを抜く

-pingの回復にかかる時間はどれくらいかを計測してみる →  約35秒

⑨ pingの回復が確認できたら停止する

⑩ 以下のことを確認する

・STPのブロックポートが存在しているか → 存在していない

・HSRPのアクティブルータがどうなっているか → 切り替わっている

・切り替えに30秒ほど時間がかかる → なぜそれほどの時間がかかるのか 

→STPによってリスニング状態とランニング状態で待機時間が発生するから

⑪ 確認ができたらl3sw01の電源を入れ、すべてのスイッチを初期化して再起動する

⑫ 初期化して再起動ができたら、すべてのLANケーブルを外しておく

STEP1はここまで

STEP2 スタック接続をするパターン

① ケーブルはまだ接続しない。初期化した2台のL3SWそれぞれでスイッチスタックの状態を確認しておく

→#show switch

② 2台のL3SWの電源ケーブルを一度抜く

③ スタックケーブルを接続する

-右図のようにスタックケーブルを接続する

-ケーブル接続したら電源を入れる

④ 起動したら、スタックの状態を確認する

⑤ PCが接続されたLANケーブルをスイッチのポートに挿して、ログに出てくるポート番号を確認する

⑥ 現在MasterではないスイッチをMasterにして役割を入れ替えてみる

-現在、Masterではないスタックメンバーのプライオリティを10で設定する

→(config)#switch 2 priority 10

-現在、Masterになっているスタックメンバーのプライオリティは5で設定する

→(config)#switch 2 priority 5

-スタックMACアドレスの持続性は永続的にする

→(config)#stack-mac persistent timer 0

⑦ 設定を保存して再起動する ※両方のスイッチで一斉に再起動がかかることを確認する

⑧ 再起動後のスタックの状態でMasterが変更されていることを確認する

⑨ 再度、PCが接続されたLANケーブルをスイッチのポートに挿して、ログに出てくるポート番号を確認し、

こちらは変更がないことを確認しておく ※Masterが常にスイッチ番号1になるわけではない

⑩ L3SWをSTEP2の構成図に従って設定していく

※Master側のスイッチにコンソール接続して設定する

-ホスト名はl3sw01

-VLAN10を作成してVLAN10のSVIも作成する。IPアドレスは192.168.10.254/24

-スパニングツリーは通常のモードとする。ブリッジプライオリティもデフォルトのまま

-L2SW向けのポートをトランクポートとして設定する(allowed vlan不要)

設定するポート番号に注意!スタックを構成する異なるスイッチのポートからそれぞれ接続している

⑪ L2SWもSTEP2の構成図に従って設定していく

-ホスト名はl2sw01

-VLAN10を作成する。また、PCが接続するポートをVLAN10のアクセスポートとする

-スパニングツリーは通常のモードとする。ブリッジプライオリティもデフォルトのまま

-L3SW向けのポートをトランクポートとして設定する(allowed vlan不要)

⑫ スイッチ間のトランクをLAGとして設定する

-論理ポート番号は1

-プロトコルは業界標準で、L3SW側が積極的なモード、L2SW側が受動的なモードを採用

設定するポート番号に注意!スタックを構成する異なるスイッチのポートからそれぞれ接続している

→(config-if)#channel-group 1 mode active/passive

⑬ STEP2の構成図に従ってケーブルを接続して以下のことを確認する

-LAGが正常に構成されている → sh etherchannel summary

-VLAN1と10でSTPでブロックポートがない → show spanning-tree

-PCからVLAN10のSVIにpingができる

⑭ L2SWとL3SWでVLAN1とVLAN10のSTPを無効にする

-最初のスタックのイメージ構成からするとスイッチングループは起きないはず

→(config)no spanning-tree  vlan 10

⑮ スタック構成でのソフトウェア及びハードウェアの耐障害性を確認する

一旦バックアップであるstartup-configを消しておく ※vlan.datの削除は不要

#show startup-config ←コンフィグが何も表示されなければOK

⑯ PCからVLAN10のSVIに連続pingした状態で、Master側のスイッチの電源ケーブルを抜いてみる

■連続pingは数秒レベルで回復する → 約10秒

-L2SWとL3SW間で1本のリンクが正常に稼働している状態

L2SWと正常稼働しているL3SW間のリンクは正常なのでLAGとしても正常と判断されている

-設定ファイル(running-config)がマスターとメンバーで同期されているため設定が消えてない

電源が入っているスイッチでshow running-configで設定が消えていないことを確認する

■マスターの役割が切り替わっている

-show switchコマンドや前面のランプにて確認する

⑰ 電源ケーブルを抜いたスイッチ側でケーブルを再度挿し直してみる

-スタックは自動的に再構成されるがマスターの役割は元に戻っていないはず

マスターの役割が自動的に切り替わるとrunning-configが上書きされる可能性があるため

ここまでの作業が完了したら、最後に以下のログを採ります

L3SW

show running-config

show etherchannel summary

show switch

ファイルの命名規則は以下の通り

showコマンド 04-06_氏名_ホスト名_コマンド名_yyyymmdd.log


スタックの設定は通常のスイッチを初期化しても消去されないため、以下の手順でスタック設定を初期化する

① LANケーブルとスタックケーブルを外す ※今回は電源入れたままでOK

② show switchでスイッチのメンバー番号を確認

-メンバー番号が1のスイッチについては以下のコマンド投入

l3sw01(config)#no switch 2 provision

-メンバー番号が2のスイッチについては以下のコマンド投入

l3sw01(config)#switch 2 renumber 1

コマンドを投入したら一度再起動をかける ※再起動前に設定を保存するか聞かれたらnoで進める

③ それぞれのスイッチで、スイッチスタックのプライオリティを初期化する

l3sw01(config)#no switch 1 priority

④ 通常のスイッチの初期化(startup-configの削除、vlan.datの削除)を行い、再起動する

※再起動前に設定を保存するか聞かれたらnoで進める

⑤ 再起動後コンフィグが初期化されていて、ポート番号が1/0/xxになっていれば完了


・NTP



Network Time Protocol。ネットワークに接続されたコンピュータや各種機器の時刻同期に用いられるプロトコルで、インターネット上で長く使われている。

NTPはネットワークを介して時刻同期を行う。相手のサーバが通知してきた時刻を信頼するだけでは、ネットワーク遅延により時刻のズレが生じてしまうため、サーバ・クライアント間の通信において、NTPメッセージを送信した時刻と受信した時刻をそれぞれがメッセージの中に含めている。

これにより、ネットワークでの遅延時間を推測し、ずれの少ない時刻同期を図る。

また、NTPでは階層構造を用いて時刻源の構成を表現している。階層構造の各層をstratumと呼び、stratumは0を最上位として15まで階層がある。

原子時計、GPS等の非常に正確な時刻限を”reference clock”と呼び、 階層構造の最上位であるstratum0としている。

このstratum0に接続されたNTPサーバをstratum1、 さらにstratum1を参照する。

NTPサーバをstratum2と、reference clockから経由するNTPサーバの数が増加するにつれ、stratumの数字が増えていく。つまり、NTPサーバは他のNTPサーバを時刻源として参照し、相手の持つstratumの数字を一つ増やし、 自身がさらに他のクライアントに対して時刻情報を提供することになる。

こうした階層構造を利用することで負荷分散を図るとともに、stratumの数値によってどのくらい信頼できる時刻源であるかが判断できるようになっている。

また、1台のサーバだけではそのサーバが正確な時刻を保持しているかどうか不明なため、

通常NTPサーバは上位stratumのNTPサーバを複数台参照することで、 時刻の正確さを高めることが行われている。


PCをRT01のNTPサーバとして動作させるため、NetTimeというアプリを準備する

1.インターネット接続ができるようにしておく

2.有線LANのIPアドレスを構成図に合わせて設定しておく

3.タスクバーのアイコンを右クリック→Properties

※タスクバーに常駐している。常駐していなければスタートメニューから起動

4. Settingをクリック

5.Time Serversの部分をすべて消して一番上に“ntp.nict.jp” と入力する

⇒このPCはNTPクライアントとして、日本標準時を提供するNTPサーバと時刻同期を行う

6.”Allow other computers to sync to this computer” にチェックを入れる

⇒このPCをNTPサーバとして、NTPクライアントに時刻情報を提供する

7.OKを押す

8.Windowsセキュリティの警告が出た場合、プライベートネットワーク、パブリックネットワークにチェックを入れて「アクセスを許可する」を押す

9.”Update Now”を押してNTPサーバと時刻同期を行うStatusがGoodになっていれば同期完了。Closeで閉じる

NetTimeの設定は以上


RT01をNTPクライアントとして設定する

① ケーブルはまだ接続しない。構成図に従ってルータに対して設定を行う

ホスト名

PC(NTPサーバ)と接続しているポートに対するIPアドレスの設定

② RT01をNTPクライアントとして設定する → (config)#ntp server <NTPサーバのIPアドレス>

NTPサーバとする → (config)#ntp master

③ RT01で時刻同期ができているかどうかを確認する → sh ntp status

NTPサーバと時刻同期しているか → sh ntp associations

タイムゾーンがずれている場合は、タイムゾーンの設定コマンドを追加する → sh clock detail → clock timezone JST 9

※うまく同期できない場合

1.Windowsファイアウォールで、Wi-fiが含まれる”パブリックネットワーク”を無効にする

(同期が確認できたらすぐに有効に戻してください)

2.それでもうまくいかなければ、先輩の研修生および講師に「NTPサーバを貸してください」と声をかける


ここまでの作業が完了したら、最後に以下のログを採ります

RT01

show running-config

show ntp associations

show ntp status

show clock detail

ファイルの命名規則は以下の通り

showコマンド 05-01_氏名_ホスト名_コマンド名_yyyymmdd.log


・SYSLOG



サーバコンピュータやネットワーク機器から出力されるログメッセージをIPネットワーク上で転送するための標準プロトコルのこと。

また、SYSLOGメッセージを送信するアプリケーションに対しても使われる。

SYSLOGはクライアント/サーバ型であり、ログメッセージを収集・保管するSYSLOGサーバと、SYSLOGサーバに向けてログメッセージを転送するSYSLOGクライアントになる。

ログメッセージを出力する機器はクライアント側になる。

なお、SYSLOGは大きく下記の状態で出力が可能

-コンソール:コンソールケーブルで作業時にメッセージが出てくるもの

-VTY:Cisco機器の場合、terminal monitorコマンドを実行することで、SSH/TELNETでアクセスしているときにメッセージ出力させることができる

-機器内部バッファ:Cisco機器の場合、 logging bufferedコマンドで保存容量・レベルを指定可能

-SYSLOGサーバ:外部のSYSLOGサーバに保存する機能を持たせ、そこに向けてログメッセージを転送する

この演習では、SYSLOGサーバに対してSYSLOGを送信した時の挙動を確認する


① ケーブルはまだ接続しない。

構成図に従ってPCのIPアドレスの設定を行う

3CDeamonを起動してSYSLOGサーバの項目をクリックする (自動的に待受状態になっているはず)

② 構成図に従ってルータ(RT01)に対して設定を行う

-ホスト名

-LANポート&Loopback0に対するIPアドレスの設定

-RT02向けのLANポートの開放 (IPアドレス設定はいらない)

③ もう1台のルータ(RT02)については、RT01向けのLANポートを開放しておくだけでよい

④ RT01でロギングの標準設定を確認しておく → sh log

-内部バッファが無効 Buffer logging:disabled

-ロギングトラップのレベルが6 Trap logging:level informational

⑤ RT01でSYSLOGの設定を行う

-内部バッファにシステムのログを保存できる容量を32768バイトにする ※この機種の標準は4096バイト

→(config)#logging buffered <サイズ>(4096以上)

-内部バッファに保存するログの対象レベルを6(informational)にする

→(config)#logging buffered <レベル>(0~7)

-ロギングトラップのレベルを4(warnings)にする

→(config)#logging trap <レベル>(0~7)

-メッセージを送信するときの送信をLoopback0にする

→(config)#logging source-interface Loopback0

-サーバのIPアドレスをSYSLOGサーバのアプリが起動しているPCのIPアドレスに設定する

→(config)#logging host 192.168.10.101

⑥ 再度ロギングの設定状態から想定通りの値になっているかを確認する

-内部バッファが有効でレベルが6 Buffer logging:level informational

-内部バッファのサイズが32768バイト Log Buffer(32768 bytes)

-ロギングトラップのレベルが4 Trap logging:level warnings

⑦ ケーブルを接続して、PCからルータのLoopback0宛で疎通ができることを確認する

⑧ RT02でRT01向けのケーブルを抜いて少し経ってから再度挿し直してみる

*Jul 23 06:52:03.299: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to down

*Jul 23 06:52:55.399: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to up

ログメッセージのフォーマット

seqno:timestamp:%facility-severity-MNEMONIC: description

seqno:ログメッセージのシーケンス番号。service sequence-numberコマンドが設定されているときのみ付加される

timestamp:ログメッセージが出力されたときの時間。service timestamp logコマンドが設定されているときに付加される

facility:ログメッセージの分類

severity:ログメッセージの重要度

MNEMONIC:ログメッセージの識別のための文字列

description:ログメッセージの詳細な内容

⑨ RT01の内部バッファに出力されたログが溜められていることを確認する

-showコマンドの出力で、最新のログメッセージは一番最後に表示される

⑩ SYSLOGサーバに出力されたログが表示されているかを確認する

もし、表示されていない場合はその理由を考えた上で、表示が出るようRT01で設定を調整する

→(config)#logging trap 5

⑪ 設定を調整したら、再度RT02でRT01向けのケーブルを抜いて少し経ってから再度挿し直してみる

SYSLOGサーバの画面にログメッセージの表示が出れば想定通り

ここで一旦指定のログを採っておく

ここまでの作業が完了したら、最後に以下のログを採ります

ルータ RT01のみ

show running-config

show logging

ファイルの命名規則は以下の通り

showコマンド 05-02_氏名_ホスト名_コマンド名_yyyymmdd.log


・SNMP



Simple Network Management Protocol。UDPを用いてネットワーク監視、管理を行うプロトコル。主に、ネットワーク機器とサーバコンピュータの状態監視に使われる。

ネットワーク機器では、各ポート上で送受信されたパケット数、エラーパケット数、ポート状態(up/down)、CPU使用率、メモリ使用率などを監視を行う。サーバに対しては、CPU使用率、メモリ使用率、ディスク使用率、プロセス監視、イベントログ監視、Syslog監視を行う。

SNMPでは、マネージャとエージェントという呼び方が出てくる

-マネージャ :エージェントから送られた管理情報を分かりやすく表示するソフトウェア

-エージェント :監視される機器上で動作するソフトウェア。指定された情報をマネージャに送信する

マネージャは、SNMPコマンド(Get/GetNext/GetBulk/Set)を送信する。

このコマンドは、管理情報の識別子(OID:Object Identifier)を含んでいて、この識別子によって管理情報を詳細に識別できる。

また、エージェントは、この識別子に対応した管理情報をマネージャにGetResponseコマンドで応答する

-Get Request :指定した識別子(OID)の管理情報をSNMPエージェントから取得

-GetNext Request :指定した識別子(OID)の次の管理情報をSNMPエージェントから取得

-Set Request :SNMPエージェントの制御

-Trap :SNMPエージェントからの状態通知


ルータをSNMPエージェントとして設定&動作確認

① ケーブルはまだ接続しない。

構成図に従ってPCのIPアドレスの設定を行う

※Wi-Fi無効 & Firewall機能無効

② 構成図に従ってルータRT01に対して設定を行う

-ホスト名

-LANポート&Loopback0に対するIPアドレスの設定

-RT02向けのLANポートの開放 (今回はIPアドレス設定はいらない)

③ RT01でSNMPエージェントとしての設定を行う

-SNMPバージョン v2c

-コミュニティ public 

-SNMPポーリング アクセスリスト番号1 Read-Only → access-list <番号> permit <ネットワークアドレス> [<wildcard>](デフォルトは0.0.0.0)

→ snmp-server community <コミュニティ名> [<ビュー名>] [<ro/rw>] [<ACL>]

(デフォルトro→読み取り権限にする、rw→読み取りと書き込み権限にする)

-SNMPサーバ TWSNMPがインストールされたマネージャのアドレス

→snmp-server host <IP> [version <1/2c/3 <auth/noauth/priv>> <コミュニティ名>(v3はユーザー名)

(auth→認証あり、暗号化なし。デフォルトnoauth→認証なし、暗号化なし。priv→認証化あり、暗号化あり。)

-トラップ対象 “snmp authentication” “snmp linkdown” “snmp linkup”“snmp coldstart” “snmp warmstart”

→snmp-server enable traps <タイプ> → snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart

-Trap送信元 Loopback0 → snmp-server trap-source Loopback0


TWSNMP(SNMPマネージャソフト)の設定

① TWSNMPを起動する

② 新規ボタンを押す

③ デスクトップに新規データベースを保存する

※ファイル名は任意

④ メイン画面の真ん中の白いところで
右クリック→自動発見をクリックする

⑤ モードが”SNMPv2c”であることを確認
開始IPと終了IPに監視対象のIPアドレスを入力 ※loopbackアドレスの入力を推奨

⑥ メイン画面に発見したSNMPエージェントが表示される


SNMPエージェントに対するポーリングを行う

① Wiresharkを起動しておく

② TWSNMPで発見したエージェントのアイコンを右クリックしてポーリングをクリック

③ WiresharkでSNMPのパケットを確認する


SNMPエージェントからトラップメッセージを送信する

※TWSNMPは使用しません

① RT01でRT02向けのケーブルを抜いてみる

② WiresharkでSNMP TRAPのパケットをチェックする

③ ケーブルを挿し直してみる

④ 再度、WiresharkでSNMP TRAPのパケットをチェックする


ここまでの作業が完了したら、最後に以下のログを採ります

ルータ RT01のみ

show running-config

ファイルの命名規則は以下の通り

showコマンド 05-03_氏名_ホスト名_コマンド名_yyyymmdd.log

また、TWSNMPを終了してデスクトップに保存したデータベースのファイルを削除します


・DHCP


DHCP(Dynamic Host Configuration Protocol)は、 IPv4ネットワークにおいて通信用の基本的な設定をクライアントに自動的に提供するためのプロトコル。

クライアントがIPv4での通信を行う際には、最低でも自身のIPv4アドレス、 サブネットマスク、デフォルトゲートウェイ、DNSサーバのアドレスを設定する必要がある。

ただ、このような設定を手動で行おうとすると、台数が増えるに従って手間が増えて間違いも起こりやすい。

そこで、DHCPを利用することにより、各クライアントはDHCPサーバに問い合わせをすることで、各種設定に必要な情報を自動的に入手して、自身の設定に反映することができる。

DHCPサーバは、クライアントからの要求に対してあらかじめプールされたIPアドレスの中から、使用されていないアドレスを選んで一定期間クライアントに割り当てる。

なお、DHCPのやり取りの中でクライアントからのメッセージ(DiscoveryおよびRequest)については、ブロードキャストアドレスのため、ルータを超えることはできません。

そのため、DHCPサーバをサブネット毎に設置する必要がある。

しかし、そのような運用は困難を伴うため、DHCPをルータを越えてサブネットを跨いで使えるDHCPリレーエージェントという機能もある


【本編】

① ケーブルはまだ接続しない

② 構成図に従ってRT01に対して設定を行う

-ホスト名

-LANポートに対するIPアドレスの設定

③ RT01でDHCPサーバの設定を行う

-念のためDHCPサービスの有効化コマンドを投入しておく ※デフォルトで有効なはず

-ルータに割り当てたIPアドレスおよびホストに割り当て可能なIPアドレスの最も若番のものを、除外する

→(config)#ip dhcp excluded-address <除外するIP> [<範囲で指定する際の最終アドレス>]

IPアドレスとして設定する

-プール名は”DHCP”で設定する → (config)#ip dhcp pool <プール名>

-ネットワークはPCを含むサブネットを範囲とする → (dhcp-config)#network <ネットワークアドレス> [<サブネットマスク>/<プレフィックス長>]

-デフォルトゲートウェイは構成図を見て通知するアドレスを指定する → (dhcp-config)#default-router <IP>(最大8つまで)

-DNSサーバは”10.1.1.1”と”10.1.1.2”を通知する → (dhcp-config)#dns-server <IP>(最大8つまで)

-リース期間は10分とする ※本来はもっと長い時間を設定する → (dhcp-config)#lease <days [hours] [minutes]/infinite>

④ DHCPサーバとしての設定が正しく投入されているかどうか確認する → sh ip dhcp pool

⑤ クライアントPCで有線LANのアダプタでDHCPの設定をしておく(右図)

⑥ クライアントPCとルータ間でケーブルを接続する

⑦ クライアントPCのコマンドプロンプト上で、念のためDHCPで取得したアドレスを開放するコマンドを一旦投入する→ipconfig/release

※コマンドについては正解ログ例のフォルダに正解例あり

※コマンドを実行すると、”メディアを接続していないと~”というエラーのような

メッセージが複数行表示されることもあるがそのまま先に進む

⑧ DHCPサーバで設定した以下の情報が自動的に取得できているかどうかを確認する → ipconfig/all

※コマンドについては正解ログ例のフォルダに正解例あり

-IPアドレス(おそらく割り当てから除外されたアドレス以外で最も若番のアドレス)

-デフォルトゲートウェイのアドレス(RT01のアドレス)

-DNSサーバのアドレス(10.1.1.1と10.1.1.2)

-DHCPサーバのアドレス(RT01のアドレス)

-リース期間(10分間)

→全て取得出来ていない

⑨ クライアントPCにIPアドレスが割り当たっていないため、1.1.1.1に疎通することができないことを確認する

⑩ その後アドレスを再取得するためのコマンドを投入する →ipconfig/renew

※コマンドについては正解ログ例のフォルダに正解例あり

※コマンドを実行すると、”メディアを接続していないと~”というエラーのようなメッセージが複数行表示されることもあるがそのまま先に進む

⑪ 再度DHCPサーバで設定した情報が自動的に取得できているかどうかを確認する

⑪ 1.1.1.1に疎通ができることを確認する

【事後作業】

★予期せぬトラブルを回避するために以下の作業を必ず行うこと

① 作業で使っている検証用PCのWi-Fiが無効になっていることを確認する

② 次ページに記載の指定のログを取得する

③ 事前作業でダウンロードしておいた正解例のログを比較をして間違っている部分ないかチェックをする

④ 最後のページのまとめを確認する。確認ができたらケーブルを抜いてルータを初期化する

なお、検証用PCのWi-Fiはまだ無効のまま

⑤ 初期化が完了したら検証用PCのWi-Fiを有効にしてもOK

ここまでの作業が完了したら、最後に以下のログを採ります

ルータ RT01

show running-config

show ip dhcp binding

ファイルの命名規則は以下の通り

showコマンド 05-04_氏名_ホスト名_コマンド名_yyyymmdd.log


・DHCPリレーエージェント



【本編】

① ケーブルはまだ接続しない

② 構成図に従ってRT01とRT02に対して設定を行う

-ホスト名

-LANポートに対するIPアドレスの設定

③ RT01でDHCPサーバの設定を行う

-念のためDHCPサービスの有効化コマンドを投入しておく ※デフォルトで有効なはず

-ルータに割り当てたIPアドレスおよびホストに割り当て可能なIPアドレスの最も若番のものを、除外する

IPアドレスとして設定する

-プール名は”DHCP2”で設定する

-ネットワークはPCを含むサブネットを範囲とする

-デフォルトゲートウェイは構成図を見て通知するアドレスを指定する

-DNSサーバは”10.1.1.1”と”10.1.1.2”を通知する

-リース期間は10分とする ※本来はもっと長い時間を設定する

④ DHCPサーバとしての設定が正しく投入されているかどうか確認する

⑤ クライアントPCで有線LANのアダプタでDHCPの設定をしておく(右図)

⑥ クライアントPCとルータ間およびルータ同士をケーブルを接続する

⑦ クライアントPCのコマンドプロンプト上で、念のためDHCPで取得したアドレスを開放するコマンドを一旦投入する

※コマンドを実行すると、”メディアを接続していないと~”というエラーのようなメッセージが複数行表示されることもあるがそのまま先に進む

⑧ その後アドレスを再取得するためのコマンドを投入する

※コマンドを実行すると、”メディアを接続していないと~”というエラーのようなメッセージが複数行表示されることもあるがそのまま先に進む

⑨ DHCPサーバで設定した以下の情報が自動的に取得できているかどうかを確認する

-IPアドレス(おそらく割り当てから除外されたアドレス以外で最も若番のアドレス)

-デフォルトゲートウェイのアドレス(RT02のアドレス)

-DNSサーバのアドレス(10.1.1.1と10.1.1.2)

-DHCPサーバのアドレス(RT01のアドレス)

-リース期間(10分間)

⑩ アドレスの取得ができていないはず。原因を考えて取得ができるよう設定を追加してみる

Ⅰ.PCからのDHCP要求(DHCP DiscoveryとDHCP Request)はブロードキャスト通信のため、ルータ越えができない。

このままだとDHCPサーバまで到達できないので、RT02からDHCPサーバへのDHCP要求がユニキャスト通信になるようRT02で設定を追加する

→(config-if)#ip helper-address <DHCPサーバのIP>

Ⅱ.Ⅰの設定をすると、DHCPサーバからRT02へのDHCP応答も当然ユニキャスト通信となる。

そのユニキャスト通信の宛先はⅠの設定コマンドを投入したポートのIPアドレスとなる。

RT01からそのポートへの到達はできるか。できなければスタティックルーティングの設定を追加する

⑪ 追加の設定をしたら、アドレスを再取得するためのコマンドを投入する

今度はIPアドレスが自動的に取得できていることを確認する

⑫ 2.2.2.2に疎通ができることを確認する


【事後作業】

★予期せぬトラブルを回避するために以下の作業を必ず行うこと

① 作業で使っている検証用PCのWi-Fiが無効になっていることを確認する

② 次ページに記載の指定のログを取得する

③ 事前作業でダウンロードしておいた正解例のログを比較をして間違っている部分ないかチェックをする

④ 最後のページのまとめを確認する。確認ができたらケーブルを抜いてルータを初期化する

なお、検証用PCのWi-Fiはまだ無効のまま

⑤ 初期化が完了したら検証用PCのWi-Fiを有効にしてもOK


ここまでの作業が完了したら、最後に以下のログを採ります

ルータ RT01

show running-config

show ip dhcp binding

ルータ RT02

show running-config

ファイルの命名規則は以下の通り

showコマンド 05-05_氏名_ホスト名_コマンド名_yyyymmdd.log

☆BGP



“Border Gateway Protocol”の略で、現在のインターネットにおいてプロバイダなどの相互接続時に

お互いの経路情報をやり取りするために使われる経路制御プロトコルです。

経路制御プロトコルの分類方法はいくつかありますが、制御しようとする経路の対象範囲によって

EGP(Exterior Gateway Protocol)と、IGP(Interior Gateway Protocol)の二つに大別することができます。

EGPはインターネット上で組織間の経路情報をやり取りする経路制御プロトコルであり、BGPはEGPに分類されます。

組織の内部で完結する経路制御プロトコルをIGPと呼び、OSPFはIGPに分類されます。


・AS


AS(AutonomousSystem)はおもにBGPで使われる用語であり、ネットワークの管理組織の単位。

多くの場合、同じポリシーで管理されている複数のネットワークをまとめてASとして扱います。

ASの代表例としてはインターネットサービスプロバイダ(ISP)ですが、最近はコンテンツを提供するコンテンツプロバイダも、ISPのポリシーに依存することなく独自のASで運用したりしています。

インターネット上ではAS同士はAS番号によって一意に識別され、ポリシーに基づいて相互に接続します。

なので、インターネットは世界中のASがつながることによってできたネットワークといえます。


・eBGPとiBGP



異なるAS間で経路情報交換するためのBGPルータのつながりをeBGP(eBGPピア)と呼びます。

また、AS内で経路情報交換するためのBGPルータのつながりをiBGP(iBGPピア)と呼びます。

eBGPはAS同士の接続、iBGPは自AS内を通過して他のASへ中継するトランジットASでよく使われます。

また、後でも説明しますが、BGPでアドバタイズされる経路情報にはその経路情報に”属性(アトリビュート)”を必ず付加します。

例えば、eBGPピアおよびiBGPピア両方で経路情報をアドバタイズするときは、必ず自身のAS番号を付加します。

これは“AS_PATH”属性と呼ばれます。


・AS番号



BGPは、他の経路制御プロトコルと違い、組織内での設計と機器の準備だけでは利用することができません。BGPでは経路制御を行う組織ごとにインターネットの世界で唯一の番号が割り当てられ、個々の経路を識別します。このインターネットの世界で唯一の番AS(Autonomous System)番号と呼びます。

AS番号はIPアドレスと同じくインターネットの貴重な資源であり、インターネット関連の団体が世界中のAS番号を管理しています。BGPによる経路制御を始めるには、このAS番号の割り当てを受けることが必要です。AS番号は原則として2バイトの大きさを持ち、0~65535の整数で表現されます。しかし、最近はAS番号の数が足りなくなってきたため、4バイト化が進んでいます。

AS番号はIPアドレスと同じく数種類に分けることができます。

IPアドレスのグローバルIPのように組織に割り当てられる番号や、プライベートIPのように組織内に閉じて外部に直接接続しないネットワークのためのプライベートAS番号などがあります。


主なAS番号(2バイトAS)

0→予約

1~43007→RIRへ割り振り(インターネットで一意の番号)

48128~64511→予約番号

64512~65534→プライベートAS

65535→予約番号


・BGPによる経路情報のアドバタイズ



IGP→プロトコルはRIP/OSPF/EIGRP、プロトコルの目的はAS内のすべてのネットワークアドレスへのIP到達性を確保する

(アドバタイズしたくないNWはフィルタリングなどで対応)

networkコマンドの意味は有効化されたインターフェイスでは、

・ネイバールータへ自ルータがプロトコルで学習して 保持している経路情報をアドバタイズする

・そのインターフェイスが属するネットワークアドレスを経路情報に含める


EGP→プロトコルはBGP、プロトコルの目的は異なるASに対して、自ASおよび他のASから流れてきたグローバルIPアド・レスの経路情報を渡すことで、

AS間のIP到達性を確保する。networkコマンドの意味は明確にBGPを通じてアドバタイズしたい経路情報を指定して伝達するため


もし、BGPのnetworkコマンドの意味がIGPと同じだと非常に問題が起こります。

なぜなら、自AS内と相手のAS内でプライベートIPアドレスが重複している可能性があり、

お互いのAS内のルーティングに重大な影響を与えてしまいます。

そこで、BGPでは明確にアドバタイズしたい経路情報を指定して伝達することが求められます。

なお、BGPピア(ネイバー)接続は、”neighbor”コマンドで別に行います。

ピア関係が確立したからといって、AS内の経路情報が自動的にアドバタイズされるわけではありません。


・BGPルータ同士でやり取りするメッセージ



BGPは信頼性を重視するため、TCP179番ポートを利用する。また、以下のメッセージを交換することで経路情報の交換や相互の監視を行っている


OPEN→OPENメッセージはTCPセッションの確立後、最初に交換されるメッセージです。

OPENメッセージはお互いのAS番号やピアの認証を行い、拡張機能などについて情報の交換を行います。

ピアの確立に問題が無ければ、後述のKEEPALIVEメッセージやUPDATEメッセージの交換に移ります。


KEEPALIVE→KEEPALIVEメッセージは、ピアが確立されていることを確認するために定期的に交換するメッセージです。

KEEPALIVEメッセージを交換する頻度は、OPENメッセージのホールドタイマの値から設定されます。

一般的にKEEPALIVEメッセージはホールドタイマの1/3の間隔で交換されます。

ホールドタイマの時間が過ぎてもKEEPALIVEメッセージやUPDATEメッセージが交換されないと、ピアがダウンしたと判断されます。


UPDATE→UPDATEメッセージは実際の経路情報を伝達するメッセージです。

UPDATEメッセージには新規にアナウンスする経路情報と削除する経路情報のリストが格納されています。

UPDATEメッセージの中には経路情報ごとにパス属性という属性情報が存在し、

経路制御に利用されます。パス属性の詳細については後述します。


NOTIFICATION→NOTIFICATIONメッセージはピアに対し、ピアの継続不可能なエラーが発生した場合

に送信されます。NOTIFICATIONメッセージを送信した送信者側は、

NOTIFICATIONメッセージを送信後、TCPのセッションを切断します。


・BGPパス属性(パスアトリビュート)


BGPは細かい経路制御を可能にするため、交換するUPDATEパケットに含まれる経路情報ごとにパス属性というものを付加することができる。

これにより、自ASへ向かってくるトラフィック、自ASから出ていくトラフィック、自ASを通過するトラフィック

などについてきめ細かく経路をコントロールしたりすることができる


・パス属性による経路制御の例



“MED”というアトリビュートの値の大小関係を設定することにより、

隣のASから自分のASに入ってくる通信の経路をコントロールできる。

以下の図例なら、 ISP#2のASからISP#1のASに入ってくる22.22.0.0/16宛の通信について、

ルートA(上の経路)を優先するようコントロールしている。

※ISP#2のAS内の経路はISP#2の設定に依存するが、最終的にISP#1に向かってくる通信は上の経路(ルートA)を通ってくる


“Local Preference”というアトリビュートの値の大小関係を設定することにより、

自分のASから隣のASに出ていく通信の経路をコントロールできる。

以下の図例なら、 ISP#2のASからISP#1のASの22.22.0.0/16宛の通信について、

ルートB(下の経路)を優先するようコントロールしている。

※図のISP#2にある2台のルータ(iBGPピア)でLocal Preferenceの値が交換されることにより、

ISP#2のASから22.22.0.0/16宛への通信は最終的に下のルータから出ていく。

※また、ISP#1側では先ほどのMEDの設定がされているが、次ページにあるパス属性の優先ルールに

よってLocalPreferenceが決定した経路が優先されているため意味が無い。


・パス属性の優先順位



UPDATEパケットに含まれる経路情報ごとに付加されるパス属性は、複数を付加することもできる。

このような場合、どの経路をBGPとして最適経路とするかは以下のように決められている。


<Ciscoにおける優先順位>

1 WEIGHT属性(Cisco 独自属性)の値が最大のもの

2 LOCAL_PREF属性の値が最大のもの

3 ローカルルータで(network や aggregate-address コマンドで)生成したルート

4 AS_PATH属性が最短のもの(経由した AS の数が少ないもの)

5 ORIGIN属性の値が最小のもの

0(IGP) = networkコマンドや aggregate-addressで生成されたルート (リモートルータ含む)

1(EGP) = EGPで受信したもの

2(Incomplete) = redistributeで再配布されたもの

6 MED属性が最小のもの

7 iBGPよりもeBGPが優先(もしベストパスが決まった場合であっても⑨でマルチパス選択へ)

8 NEXT_HOP属性へのIGP(RIP/OSPF/EIGRP)メトリックが最小 (ここでベストパスが決まっても⑨でマルチパス選択へ)

9 maximum-paths(デフォルト=1)が2以上である場合はマルチパスとして複数ルートをルーティングテーブルに掲載

10 eBGPから受信した最古のもの(フラッピングが発生しにくい)

11 ネイバーのルータIDが最小のもの(ルートリフレクタを含む場合、ORIGINATOR_IDが最小のもの)

12 CLUSTER_LIST属性が最短のもの

13 ネイバーのIPアドレスが最小のもの


☆まとめ



IGP→伝達先はおもにAS内のLAN。アドバタイズする経路はAS内の経路情報に限る。

ネットワーク設計は同一管理組織内で定めたポリシーで設計可能。

経路制御はバリエーションはBGPより少ない。ネイバールータ同士でメトリックの調整が必要


BGP→伝達先はおもにAS間のWAN。アドバタイズする経路は自AS内で他のASにアドバタイズしたい経路、他のASから流れていた経路。

ネットワーク設計は異なるASと合意を取りながらの設計が必要。

経路制御は-ASからの送信、AS向けの受信ともに柔軟な制御が可能。eBGPピア側のASに合意を取らなくてもほぼ自ASのみで制御が可能。

⭐︎BGPの基本設定


この演習に関する基本情報

・AS64512は通信事業者など各地への中継網(コアネットワーク網)を持ち、トランジットASを提供する

・AS65001と65002は同じ顧客が持つのASで遠く離れた拠点同士である

┗ポリシーが多少異なるネットワークなのであえて異なるAS番号としている

・顧客は通信事業者と契約しており、通信事業者のASを通じて自AS間の通信を可能にする

┗通信事業者間はBGPによる接続で、eBGPは直接接続しているポートのアドレスでピアを張ること

・アドバタイズする経路情報は顧客用ASにあるグローバルIPのネットワーク

・通信事業者内の経路はOSPFによって到達性を確保する

┗AS間のネットワーク情報はトランジットASにアドバタイズしない

(インターネットの世界では、AS間のネットワークは特定のASに属さないという暗黙のルールがあるみたいなので)

┗iBGPは、今後AS内でIGPによる冗長化が行われることを考慮してLoopback同士でピアを張ること


STEP0:準備

2人それぞれが2台ずつ初期化したルータを用意する。ケーブルはまだ接続しない


STEP1:各ルータの基本設定

-ホスト名

-LANポートおよびループバックに対するIPアドレスの設定


STEP2:IGPルーティングの設定

AS64512でOSPFを設定する

-基本情報にも記載の通り、以下に則って設定を行う

・通信事業者内の経路はOSPFによって到達性を確保する。今回はこの後のiBGPピア確立のために、

RT02とRT03のLoopback0同士が疎通できるよう構成図に従って設定する

・AS間のネットワーク情報はトランジットASにアドバタイズしない

┗インターネットの世界では、AS間のネットワークは特定のASに属さないという

暗黙のルールがあるみたいなので、AS間ではOSPFを有効にしてはいけない


STEP3:eBGPピアの設定

AS間のルータでeBGPピアを設定する

-直接接続している物理インターフェイスのIPアドレス同士でピアを張ること

-ピアの設定に使用するアドレスおよびAS番号は基本情報と構成図を参照する

→(config-if)#router bgp <AS>(1~65535) → (config-router)#neighbor <IP> remote-as <AS>

-EBGPピアが正常に確立できているかを確認する(summaryコマンドで)→sh ip bgp summary


STEP4:iBGPピアの設定

トランジットAS内のルータでiBGPピアを設定する

-AS64512内のiBGPは、Loopback同士でピアを張ること

┗BGPでは安定運用のためピアをダウンさせないことが重要で、Loopback同士でピアを張ることによって安定的なピア関係を実現できる。

リンクや物理インターフェイスが故障しても一定時間内に冗長化された経路を使ってLoopback同士の到達性が確保できればピア関係は維持される。

iBGPピアでは、ASの管理者がAS内の経路をコントロールできるため、Loopback同士でピアを確立させることが可能

(eBGPピアでも設定は可能だがAS間での合意が必要などハードルは高いと思われる)

-ピアを張る際にはオプションコマンドが必要なので調べること

→(config-router)#neighbor <IP> update-source loopback 0

┗オプションコマンドを設定してない場合、コマンドで指定したピアのアドレスに向けた送信元IPアドレスは、

ルーティングテーブルを参照して決定される→双方で指定したピアのアドレスと一致しているか?

-iBGPピアが正常に確立できているかを確認する(summaryコマンドで)


STEP5:BGPのピア設定が完了したら経路情報をアドバタイズする

① AS65001とAS65002において、PCを含むネットワークアドレスが対向のASにアドバタイズされていないことを確認する

┗IGPと異なり、ピアを確立するのと経路情報のアドバタイズは別のプロセス(コマンド)

② RT01(AS65001)とRT04(AS65002)において、それぞれの自ASのPCを含むネットワークアドレスをBGPでアドバタイズする

┗networkコマンドを使ってアドバタイズする → (config-router)#network <ネットワークアドレス> mask <サブネットマスク>

(ネットワークアドレスはルーティングテーブルの中のエントリとサブネットマスクも含めて完全一致)

③ コマンド投入後、BGPテーブルに自ASのネットワークアドレスが載っていることを確認する

┗載っていない場合は、networkコマンドの構文およびnetworkコマンドによってアドバタイズされるための条件を確認すること

④ BGPテーブルおよびルーティングテーブルをたどってどこまでアドバタイズされているのか確認する

┗各ルータでPCを含むネットワークアドレスがどこまでアドバタイズされているか確認する

┗対向のASまでは届いていないはずなので、届いていない理由を考えてみる


<④のヒント>

-各ルータのBGPテーブルでネットワークアドレスのnext-hop属性をチェックする → sh ip bgp

┗BGPの原則としてiBGPピアに経路情報をアドバタイズするときはネクストホップを変えない

-基本情報にあるように、AS間のネットワーク情報をトランジットASにアドバタイズしてはいけない

┗ネクストホップに到達性はあるのか? → ない

-ネクストホップへの到達性がない経路情報の扱い

┗経路情報としては不完全として扱われるためルーティングテーブルに載らない。

また、BGPピアにアドバタイズもされない

⑤ トランジットASであるAS64512内だけでこの問題を解決できるオプションを探してみる

┗探したらそのオプションのコマンドを投入してみる →(config-router)#neighbor <IP> next-hop-self

⑥ コマンド投入後、BGPテーブルを確認してnext-hop属性に変化があったかを確認する

⑦ ルーティングテーブルで対向ASのネットワークアドレス経路情報が載っていることを確認する →sh ip ro bgp

⑧ AS65001とAS65002それぞれのPC同士で疎通確認ができることを確認する


ここまでの作業が完了したら、最後に以下のログを採ります

4台共通

show running-config

show ip bgp

show ip route

show ip bgp summary

ファイルの命名規則は以下の通り

showコマンド 10-02_氏名_ホスト名_コマンド名_yyyymmdd.log


☆BGPパスアトリビュートによる経路制御



プロトコル構成(IGPルーティング)

・それぞれのAS内でIGP(OSPF)を有効にして、AS内でのIP到達性を確保する

・あくまで各AS内に限定したIP到達性の確保が目的のため、AS間のネットワークでは有効にしない


プロトコル構成(EGPルーティング)

・AS間およびトランジットAS内でEGP(BGP)を有効にして、AS間でのIP到達性を確保する

・eBGPピアは直接接続しているIPアドレスで設定する

・iBGPピアはAS内のIGPでの冗長構成を考慮して、Loopback0同士で設定する

・AS65001と65002ではnetworkコマンドを使って経路をアドバタイズする。結果としてPC-Aと

PC-B間で通信を可能にする


プロトコル構成(FHRP)

・AS65001と65002ではFHRPを使って自ASからの出口ルータを決定する

※BGPのパスアトリビュートでは制御しない

・自ASへの入口はBGPのパスアトリビュートによって制御する(後半の手順にて)

・なお、AS64512内については、自ASからの出口ルータおよび自ASへの入口ルータは

BGPのパスアトリビュートによって制御する



STEP0:準備

2人それぞれが2台ずつ初期化したルータを用意する。ケーブルはまだ接続しない

STEP1:基本設定

レイヤ2スイッチ

-ホスト名

-ルータおよびPCが接続されたポートはVLAN1のアクセスポート+Portfastで

ルータ

-ホスト名

-ループバックおよびLANポートに対するIPアドレスの設定

-管理用IPアドレスの設定

RT0x(config)#interface vlan 1

RT0x(config-if)#ip address 172.xx.yy.zz 255.255.255.0

-F2ポートをレイヤ2スイッチポート扱いとするため、VLAN1のアクセスポート+Portfastで設定する

レイヤ3スイッチ

-ホスト名

-ループバックに対するIPアドレスの設定

-ルータおよびレイヤ3スイッチとの接続ポートはルーテッドポートとしてIPアドレスを設定


STEP2:デフォルトゲートウェイの冗長化の設定

AS65001と65002それぞれにおいて、デフォルトゲートウェイの冗長化プロトコルを設定する

-パラメータは構成図を参照


STEP3:IGPルーティングの設定

各AS内でOSPFを設定する

-基本情報にも記載の通り、以下に則って設定を行う

・各AS内の経路はOSPFによって到達性を確保する。今回はこの後のiBGPピア確立のために、各ASにあるルータのLoopback0同士が疎通できるよう構成図に従って設定する

・AS間のネットワーク情報はトランジットASにアドバタイズしない

┗インターネットの世界では、AS間のネットワークは特定のASに属さないという暗黙のルールがあるみたいなので、AS間ではOSPFを有効にしてはいけない


STEP4:eBGPピアの設定

AS間のルータでeBGPピアを設定する

-直接接続している物理インターフェイスのIPアドレス同士でピアを張ること

-ピアの設定に使用するアドレスおよびAS番号は基本情報と構成図を参照する

-eBGPピアが正常に確立できているかを確認する(summaryコマンドで)


STEP5:iBGPの設定

各AS内のルータでiBGPピアを設定する

-AS内のiBGPはLoopback同士でピアを張ること

┗BGPでは安定運用のためピアをダウンさせないことが重要で、Loopback同士でピアを張ることによって安定的なピア関係を実現できる。リンクや物理インターフェイスが故障しても一定時間内に冗長化された

経路を使ってLoopback同士の到達性が確保できればピア関係は維持される

iBGPピアでは、ASの管理者がAS内の経路をコントロールできるため、Loopback同士でピアを確立させることが可能(eBGPピアでも設定は可能だがAS間での合意が必要などハードルは高いと思われる)

-ピアを張る際にはオプションコマンドが必要なので調べること

┗オプションコマンドを設定してない場合、コマンドで指定したピアのアドレスに向けた送信元IPアドレスは、ルーティングテーブルを参照して決定される→双方で指定したピアのアドレスと一致しているか?

-iBGPピアが正常に確立できているかを確認する(summaryコマンドで)



STEP6:BGPのピア設定が完了したら経路情報をアドバタイズする

① AS65001とAS65002において、PCを含むネットワークアドレスが対向のASにアドバタイズされていない

ことを確認する

┗IGPと異なり、ピアを確立するのと経路情報のアドバタイズは別のプロセス(コマンド)

② RT01(AS65001)とRT04(AS65002)において、それぞれの自ASのPCを含むネットワークアドレスを

BGPでアドバタイズする

┗networkコマンドを使ってアドバタイズする

③ コマンド投入後、BGPテーブルに自ASのネットワークアドレスが載っていることを確認する

┗載っていない場合は、networkコマンドの構文およびnetworkコマンドによってアドバタイズされる

ための条件を確認すること

④ BGPテーブルおよびルーティングテーブルをたどってどこまでアドバタイズされているのか確認する

┗対向のASまでアドバタイズされているはず

⑤ AS65001とAS65002それぞれのPC同士で疎通確認ができることを確認する

⑥ 疎通確認ができたらPC-A⇒PC-BおよびPC-B⇒PC-A向けの通信経路を確認してみると、以下のようになっているはず


通信経路の結果から、なぜその経路が選択されているのかを考えてみる

■PC-AからPC-Bへの経路 ※PC-BからPC-Aの経路も考え方は同じ

・AS65001からの出口 なぜPC-A→l2sw01→RT01なのか?

⇒デフォルトゲートウェイの冗長化プロトコルである●●●●によって、優先で出口となるルータが決定

されるため

・AS65001→AS64512 なぜRT01→l3sw01なのか?

⇒BGPのパス選択プロセスにより、●●●●で学習したルートよりも●●●●で学習した経路が優先

されるため (比較される経路について、LocalPreferenceやMED、AS PATHといったアトリビュートは等しいため)

・AS64512→AS65001 なぜl3sw01→RT03なのか?

⇒BGPのパス選択プロセスにより、●●●●で学習したルートよりも●●●●で学習した経路が優先

されるため (比較される経路について、LocalPreferenceやMED、AS PATHといったアトリビュートは等しいため)

・AS65002内 なぜRT03→PC-Bなのか?

⇒宛先IPアドレスからMACアドレスを探索するプロトコルである●●●のリクエストが、●●●●●●●●

通信によって同一ネットワーク内に一斉送信される。リクエストを受信したPC-Bが応答を返すことで

RT03は宛先の相手を特定できる


ここまでの作業が完了したら、最後に以下のログを採ります

レイヤ2スイッチを除いた6台共通

show running-config

show ip bgp summary

show ip bgp

show ip route

ファイルの命名規則は以下の通り

showコマンド 10-03_氏名_ホスト名_コマンド名_yyyymmdd.log


あなたはAS65001の管理者です。

AS内のRT01でハードウェアエラーの兆候を示すログが出力されてきており、機器の交換を実施する必要が出てきました。

調整の結果、交換作業はRT01のトラフィック量が最も少ない週末夜間に実施することになりました。

また、作業前にRT01にトラフィックが流れないようRT02にすべて寄せておく切り替えの作業が必要になります。

なお、この切り替え作業はユーザのトラフィックを100%救済する(パケットロス0)必要は無くベストエフォートで対応可能です。

最後に、この作業について、通信事業者であるAS64512の管理者への通知や設定変更の依頼は予定して

いません(つまり基本は自ASのみで作業を完結させる)


AS65001からの出口ルータをRT02にする(下図の青線の流れにする)

-作業はRT02のみで実施すること

ー新しい設定を追加することは禁止だが、既存の設定を変更するのはOKとする

-既存の設定を変更する際のパラメータは現在の設定値から+20とする

設定ができたら、想定通りの経路になっているかを確認してみる


AS65001への入口ルータをRT02にする(下図の赤線の流れにする)

-作業はRT01とRT02で実施する

-ルートマップを使った設定を採用する

┗ルートマップ名は “TRAFFIC_OUT” → (config)#route-map <ルートマップ名> permit/deny

┗適切なパスアトリビュートの種類を選択して下図の値を設定する 

→(config-route-map)#set <パスアトリビュート> <アトリビュート値>

┗適切なBGPピアにルートマップを適用し、経路情報に設定したアトリビュート値を付与してアドバタイズする

→ (config-router)#neighbor <IP> route-map <ルートマップ名> in/out

-上記の設定だけでうまくいかない場合は、l3sw01と02それぞれで設定コマンドを1行だけ追加してもよい

→(config-router)#neighbor <IP> next-hop-self

<ヒント>

AS64512の担当者がこのような状態を想定してあらかじめやっておくべき設定

-l3sw01とl3sw02のBGPテーブルで、AS65001とAS65002それぞれのネットワークアドレスのnext-hop

属性をチェックする

┗BGPの原則として、iBGPピアに経路情報をアドバタイズするときはネクストホップを変えない

-AS間のネットワーク情報をトランジットASにアドバタイズしてはいけない

┗ネクストホップに到達性はあるのか?

┗もし、ネクストホップへの到達性がない経路情報はどうなるのか?ルーティングテーブルに載るのか?

以上のことを考慮し、l3sw01と02それぞれに必要な設定を追加する


→clear ip bgp * soft in/out

ここまでの作業が完了したら、最後に以下のログを採ります

RT01とRT02

show running-config

show vrrp brief

l3sw01とl3sw02

show running-config

show ip bgp

show ip route

ファイルの命名規則は以下の通り

showコマンド 10-04_氏名_ホスト名_コマンド名_yyyymmdd.log

☆Fortigate(フォーティゲート)



アメリカのFortinet社が開発したファイアウォールおよび統合脅威管理(UTM)製品のブランド名であり、

この分野では世界一のシェアを誇る。UTMとは、さまざまなセキュリティ機能とルータをあわせた機器のイメージ。

1台の機器で様々な機能を提供できるため、導入コストがかからないという点では魅力。

(ただし、機能によってライセンスが必要なものもある)


・UTM(Unified Threat Management)

統合脅威管理製品のこと。ハッキング・マルウェア・ウィルスなどの脅威からネットワークを効率的かつ包括的に

保護する製品のことであり、ファイアウォール、VPN、アンチウイルス、不正侵入防御(IDS・IPS)、コンテンツフィ

ルタリング、アンチスパムなどの機能を1台の装置で提供する場合がほとんどである。

※Fortigateの場合、不正侵入防御(IDS・IPS)・コンテンツフィルタリング・アンチスパム機能については、

年度ごとの有償ライセンス契約が必要

★今回の研修では、ライセンス不要の主要機能であるファイアウォールをメインに学習していく

Fortigate FG-60Dのライセンス確認画面例

期限切れや利用不可となっているUTMの機能は有償のライセンス契約が必要


・FortiOS

FortiGateで動作しているOSのこと。Cisco製品のCiscoIOSのようなもの。

FortiOSのバージョンは3つの数字で表される

左から1番目の数字はメジャーバージョン、2番目はマイナーバージョン、3番目はパッチバージョンを表す。

また、その後はBuild番号が続く。



メジャーバージョン→メジャーバージョンは1刻みで5→6というようにアップデートされる。

変更されると新機能が追加されていたり、既存機能の仕様が一部変更されていたり、

GUIの画面表示がガラリと変更されたりする。

マイナーバージョン→マイナーバージョンは2刻みで0→2→4→6というようにアップデートされる。

メジャーバージョンと合わせて、5.6系や6.2系と呼ばれることが多い。

変更されると、メジャーほどではないが新機能が増えたり、

既存機能の仕様が一部変更されていたり、GUIの画面表示が一部変更されたりする。


パッチバージョン→パッチバージョンは1刻みで0→1→2というようにアップデートされていく。

この変更では機能やGUIの画面表示は大きく変更されず、バグ修正がおもな目的となる。


・製品型番

数字 :Fortigateの製品型番で数字は性能を表し、大きいほど性能が高くなる。

アルファベット :ASICの世代を表す。ASICとはおもに決められた処理を行うための専用チップであり、

世代が異なると、ASICの処理能力が大幅に向上する。 ※2020年時点の最新は「F」シリーズ


☆Fortigateのコマンド体系


FortigateはGUI/CLIの両方で様々な設定ができる

・GUI ビジュアルで変更箇所などが分かりやすい

・CLI GUIではできないより細かな設定が可能

ここでは、FortigateのCLIで使用するコマンドの体系について、概要レベルで説明する


config→設定の階層に移動

get→ステータス確認

show→config確認

dignose→ステータス詳細確認

execute→実行(ping・シャットダウンなど)

ailas→エイリアス

exit→ログアウト


showコマンドの一例

config情報を一覧で表示します。

Ciscoの『show running-config』に相当。ただし、出力が相当多い ※デフォルトでも2000行近く

FGT60Dxxxxxxxxxx # show


Forigateのコマンドは階層構造になっているため、一部の情報のみ出力することも可能

例)internalに分類されているインターフェイスの設定

FGT60Dxxxxxxxxxx # show system interface internal


configコマンドの一例

以下のコマンドは、Ciscoの”terminal length 0”に相当する設定 ※Ciscoと異なり設定として残る

FGT60Dxxxxxxxxxx # config system console

FGT60Dxxxxxxxxxx (console) # set output standard

FGT60Dxxxxxxxxxx (console) # end


以下のコマンドはホスト名の設定

FGT60Dxxxxxxxxxx # config system global

FGT60Dxxxxxxxxxx (global) # set hostname <任意の英数字ホスト名>

NEWHOSTNAME (global) # end


このコマンドはIPアドレスの設定

FGT60Dxxxxxxxxxx # config system interface

FGT60Dxxxxxxxxxx (interface) # edit internal5

FGT60Dxxxxxxxxxx (interface) # set ip 192.168.1.99 255.255.255.0

FGT60Dxxxxxxxxxx (interface) # set allowaccess ping https http ssh telnet

FGT60Dxxxxxxxxxx (interface) # end


getコマンドの一例

以下のコマンドは、Ciscoの”show version”に近い

FGT60Dxxxxxxxxxx # get system status


このコマンドはCiscoの”show interface”や”show ip interface brief”に近い

FGT60D4615014986 # get system interface


このコマンドはCiscoの”show ip route”に近い

FGT60D4615014986 # get router info routing-table all


executeコマンドの一例

pingを実行する場合、最初にexecuteコマンドが必要

FGT60D4615014986 # execute ping 192.168.1.99


Fortigateでは、configバックアップはGUI経由で取得するのが一般的と言われている

① GUI管理画面の右上のユーザー名から”設定”⇒”バックアップ”

② バックアップする場所(メディア)を選択 ※暗号化をオンにするとパスワードが設定可能

③ デフォルトでは 型番_日付_時間.conf という形式でバックアップされる


configのリストアもGUI経由で取得するのが一般的と言われている

① GUI管理画面の右上のユーザー名から”設定”⇒”リストア”

② リストア元のメディア、リストアするconfファイル、

暗号化バックアップの場合はパスワードを指定してOK

③ 再起動がかかることを確認してOKを押す

④ 再起動中はそのまま待つ

⑤ ログイン画面が出てくれば、リストア完了


・Fortigateへの接続(コンソール接続)


コンソール接続による接続方法(CLI)

① コンソールケーブルをFortigateのCONSOLEポートに挿し込む

② TeraTermを起動してシリアル経由で接続する準備をしておく

③ Fortigate本体の背面に電源ケーブルを挿すと、電源が自動的に入る

※今回使用するFG-60Dという機種は、電源スイッチ的なものはない

④ しばらく起動プロセスをそのまま待っていると、ログインプロンプトが表示される

login:admin (Enterキー)

Password:何も入力しない (Enterキー)

⑤ Welcome!と出てプロンプトが#になれば、CLIによるログイン完了

※もし、起動中に以下のようなメニューで止まった場合は、Qを押す。

そのまま起動すれば問題なし。再度メニューが出てくるようならOSが破損している可能性あり。

Fortigateは、起動中に電源ケーブルを抜いてしまうと、機器内部のファイルが

破損して、OSが起動しないなどトラブルが発生する可能性がある


・シャットダウン方法 その1

■CLIでシャットダウンコマンドを投入(おすすめ)

FGT60Dxxxxxxxxxx # execute shutdown

This operation will shutdown the system !

Do you want to continue? (y/n) → y

System is shutting down...

The system is going down NOW !!

FGT60Dxxxxxxxxx #

The system is halted.


・接続方法(ウェブ接続によるGUI)


① LANケーブルはまだ接続しない。

工場出荷時の初期状態では、FortiGateのポートが192.168.1.99に設定されているため、

PC側のIPアドレスをネットワーク192.168.1.0/24(.99以外)に設定する

② PCとFortiGate背面のLANポート1~5のいずれかをLANケーブル接続する ※ルータと同様の扱いで

③ http://192.168.1.99へ接続する ※推奨ブラウザはGoogleChromeまたはFirefox

④ 以下のようなブラウザの警告が出た場合は、「詳細設定」→ 「192.168.1.99 にアクセスする」

⑤ ログイン画面でNameに「admin」と入力してLoginをクリック ⇒ GUI画面が開く(※パスワードは入力不要)

CLIでログインした状態でGUIでログイン可能

Fortigateへの接続(ウェブ接続)

※パスワードは入力不要

admin を入力

Login をクリック

⑦ ログイン後に出てくる管理画面を確認する

⑧ 管理の画面がブラウザに表示されたら、その画面を開いたままにして先に進みます

⑥ PasswordChangeの画面が出たら、今回は変更

しないので「Later」または「後で」のボタンを押す


・言語の変更

GUIの管理画面のデフォルト言語は

英語になっているため、これを日本語に

変更する

① 画面左 「System」⇒「Admin」⇒「Settings」

② メイン画面の下のほうにある「View Settings」にある「Language」で「Japanese」を選択して、

画面の一番下にある「Apply」をクリック

③ 日本語に変更されたことを確認する

④ 画面右上のユーザ名をクリックしてログアウトを選択


■GUIでシャットダウン

①管理画面の右上ユーザ名をクリック⇒システム⇒シャットダウンをクリック

②1分程度待ってから電源を抜く

※シャットダウンはCLIが行ったほうが確実

表示が出てから1分程度待機し、本体のstatusランプが消灯していることを確認してから電源を抜くこと!


Fortigateへのログインと終了(SSH接続)

<参考>

■デフォルトでSSHでもCLIログイン可能

GUIの場合

ネットワーク⇒インターフェース internal アクセスの欄にSSHがある=SSH接続許可

FGT60Dxxxxxxxxxx # show system interface internal

config system interface

edit "internal"

set vdom "root"

set ip 192.168.1.99 255.255.255.0

set allowaccess ping https ssh http fgfm capwap

以下略

CLIでの確認例

#show system interface internal

↑SSHが許可されている


・ホスト名の設定


① Fortigate本体に電源を投入し、CLIで操作する準備をしておく

② ホスト名が初期状態の 型番+シリアル番号 になっていることを確認する

③ 以下のコマンドでホスト名を FGT01 に変更する


FGT60D4615014986 # config system global

ホスト名を変更するコマンド → FGT60D4615014986 (global) # set hostname FGT01

編集のモードを抜けると同時に設定保存※ciscoでいうcopy run startに相当 → FGT60D4615014986 (global) # end

ホスト名が変更された → FGT01 # 


④ 一度シャットダウンした後に、再度起動してみる

FGT01 login: admin

Password:

Welcome !

FGT01 # 変更されたホスト名のまま


⑤ GUIでログインする

ホスト名の設定(2)

⑥ システム → 設定のホスト名で”FGT01”を”FGT001”に変更する

⑦ 画面下部にある”適用”ボタンを押す

Copyright ©Garenet CO.,LTD. page 6

⑧ 再度、ダッシュボード⇒Mainでホスト名が変更されていることを確認する

ホスト名の設定(3)

⑨ CLIでもログインしなおすと、ホスト名がFGT001になっていることを確認する

FGT01 login: admin

Password:

Welcome !

FGT001 #


⑩ 面倒ですが、もう一度CLIでホスト名を”FGT01”に戻しておく

FGT001 # config system global

FGT001 (global) # set hostname FGT01

FGT001 (global) # end

FGT01 #

※ 以降の演習は、1台目はFGT01、2台目はFGT02というホスト名で進めていく


ここまでの作業が完了したら、最後に以下のログを採ります

・Fortigate

show system global

ファイルの命名規則は以下の通り

showコマンド 07-01-04_氏名_FGT01_showsystemglobal_yyyymmdd.log


・ポートの割り当てとアドレス設定


Fortigateの独立ポートとスイッチポート

Fortigateは機種によって、デフォルトのLANポートの種類が異なる。FG-60Dの場合、LANポートの1~7はすべてスイッチポートになっている。

スイッチポートはその名の通りレイヤ2スイッチのポートに相当。 Ciscoのイメージに当てはめると、

スイッチポートはデフォルトでVLAN1に属していて、GUIでログインするときに指定するアドレス(デフォルト:192.168.1.99)は、

管理用IPアドレスとなる。スイッチポートのままだと、重要な設定変更でエラーが出る場面が多いため、

初期段階でLANポートを独立ポート(Ciscoでいうところのルーテッドポート)に変更する設定を行うことがほとんど

① 現在のポートの状態を確認しておく

② 独立ポートへの切り替えを行っていく※

まず、切り替えに不要なDHCPの設定とファイアウォールポリシーを削除する

※GUIでも独立ポートへ切り替える設定は可能だが、設定したと同時にGUIの接続が切れてしまうため、CLIのほうがトラブルが少ない

FGT01 # config system dhcp server

FGT01 (server) # delete 1

FGT01 (server) # end

FGT01 #

FGT01 # config firewall policy

FGT01 (policy) # delete 1

FGT01 (policy) # end

③ ハードウェアスイッチを削除し、すべてのLANポートが独立モードになるようにする

FGT01 # config system virtual-switch

FGT01 (virtual-switch) # delete internal

FGT01 (virtual-switch) # end

④ 独立ポートになっていることを確認する

FGT01 # show system interface

⑤ 独立ポートに切り替え後、CLI経由でGUI接続のためのIPアドレスを再設定する必要がある。

LANポートの7番ポート(internal7)に192.168.1.99を設定する

FGT01 # config system interface

FGT01 (config) # edit internal7

FGT01 (internal7) # set ip 192.168.1.99 255.255.255.0

FGT01 (internal7) # set allowaccess ping https http ssh ← 管理者アクセス(許可するプロトコル)

FGT01 (internal7) # end

⑥ GUIでアクセスできることを確認する

⑦ Internal1について、以下のパラメータに基づいてCLIで設定する

アドレッシングモード マニュアル

IPアドレス 192.168.10.253/24

管理アクセス ping http https ssh

ロール(役割) LAN

FGT01 # config system interface

FGT01 (config) # edit internal1

FGT01 (internal1) # set ip 192.168.10.253 255.255.255.0

FGT01 (internal1) # set allowaccess ping http https ssh

FGT01 (internal1) # set role lan

FGT01 (config) # end

⑧ wan1インターフェイスについて、以下のパラメータに基づいてGUIで設定する

アドレッシングモード マニュアル

IPアドレス 10.1.1.253/30

管理アクセス ping

ロール(役割) WAN

⑨ アドレス設定の確認をしてみる

ここまでの作業が完了したら、最後に以下のログを採ります

・Fortigate

show system interface

ファイルの命名規則は以下の通り

showコマンド 07-01-05_氏名_FGT01_showsysteminterface_yyyymmdd.log


・Fortigateの管理者パスワード


ここまで管理者のパスワード設定をせずにきたが、この演習で設定を行う。

また、一定時間内に指定した試行回数の上限を超えてログインに失敗した場合に、

一定時間ログインさせないロックアウトや同一ユーザで複数ログイン(GUIとCLIで同時ログインなど)を認めない設定も試してみる。


① GUIで管理者パスワードを変更してみる。

画面右上のログインしているユーザ名 admin → パスワードの変更 をクリック

② パスワード変更の画面が表示される。

あたらしいパスワードおよびパスワードの再入力欄に kenshu と入力してOKを押す

③ ログイン画面に戻るので新しく設定したパスワードでログインしてみる

④ ログインできることが確認できたら、ログアウトしておく

⑤ 今度はCLIで管理者パスワードを変えてみる

FGT01 login: admin

Password: ******

Welcome !

FGT01 #

FGT01 # config system admin

FGT01 (admin) # edit admin

FGT01 (admin) # set password kenshu123

FGT01 (admin) # end

FGT01 login: admin

Password: *********

Welcome !

FGT01 #


⑥ 同じくセキュリティ強化のため、60秒の間に2回ログイン試行に失敗※2したらロックアウト※1するように設定する

FGT01 # config system global

FGT01 (global) # set admin-lockout-duration 60

FGT01 (global) # set admin-lockout-threshold 2

FGT01 (global) # end

※1 悪意のある第三者が、短時間に様々なパスワードを試行して不正にログインしようとするのを防ぐための対策の1つ。

基本的にGUIやSSH/TELNETの遠隔接続が対象。コンソール接続は基本的に対象外

※2 デフォルトでは60秒の間に3回ログイン試行に失敗するとロックアウトする

⑦ ロックアウトを確認するため、GUIのログインで意図的に誤ったパスワードを連続して入力する。

3回目以降は、先ほどCLIで設定した正しいパスワードを入力してもロックアウト中の画面が出る

⑧ 5分ほど待ってから正しいパスワードでGUIログインができることを確認する。ログインができたら、再度ログアウトしておく

⑨ セキュリティ強化のため、同時ログインを無効にしてみる

FGT01 # config system global

FGT01 (global) # set admin-concurrent disable

FGT01 (global) # end

⑩ 同時ログインの無効を確認するため、CLI(コンソール接続)がされた状態でGUIでのログインを試してみる

※CLIで設定した正しいパスワードを入力する

ログインが失敗すれば、同時ログインができなくなっていることが分かる

⑪ ちなみにこの設定のままでCLIからログアウト後、GUIのログインを試すとうまくいく。

また、GUIでログイン状態のままCLIでログインしようとしても”Login incorrect”でログインできなくなっている


ここまでの作業が完了したら、最後に以下のログを採ります

・Fortigate

show system admin

show system global

ファイルの命名規則は以下の通り

showコマンド 07-01-06_氏名_FGT01_showsystemadmin_yyyymmdd.log

07-01-06_氏名_FGT01_showsystemglobal_yyyymmdd.log


・初期化



FGT01 # execute factoryreset

This operation will reset the system to factory default!

Do you want to continue? (y/n)y

System is resetting to factory default...

The system is going down NOW !!

System is starting...

FGT60Dxxxxxxxxxx login:

初期化およびシャットダウン

確認が出るので 「y」を入力

ホスト名が型番+シリアルになれば初期化完了

⭐︎Fortigateによる拠点間VPN接続


ここからはFortigateとメインとしたIPSecVPNを設定していく


① INTERNETルータの設定

ホスト名:INTERNET

ポート 設定項目 設定パラメータ

F0 IPアドレス 203.0.113.1/24

F1 IPアドレス 198.51.100.1/24

※ルーティングの設定は不要


② Fortigateのネットワーク環境設定

まずCLIで独立ポートにする。そのままCLIで以下のパラメータでIPアドレスなどを設定する


ホスト名:FGT01

ポート 設定項目 設定パラメータ

Internal1 アドレッシングモード マニュアル

IPアドレス 192.168.1.254/24

管理アクセス HTTP HTTPS SSH ping

ロール(役割) LAN

wan1 アドレッシングモード マニュアル

IPアドレス 203.0.113.2/24

管理アクセス ping

ロール(役割) WAN


ホスト名:FGT02

ポート 設定項目 設定パラメータ

Internal1 アドレッシングモード マニュアル

IPアドレス 192.168.2.254/24

管理アクセス HTTP HTTPS SSH ping

ロール(役割) LAN

wan1 アドレッシングモード マニュアル

IPアドレス 198.51.100.2/24

管理アクセス ping

ロール(役割) WAN


③ 機器間でLANケーブルを接続する

※レイヤ2スイッチへの設定はとりあえず不要。指定のポートにケーブルを挿すだけでOK

スイッチは06-02-02の演習で使います

④ Fortigateでの設定

以降の手順は、internal1を通じたGUIでの設定をメインとして考える

スタティックルート設定

それぞれのFortigateで、VPNトンネルの相互に終端となるアドレスへの到達性を確保するため設定する

ホスト名 宛先ネットワーク ゲートウェイ※1 インターフェース※2 アドミストレイティブディスタンス

FGT01 198.51.100.0/24 203.0.113.1 wan1 10

FGT02 203.0.113.0/24 198.51.100.1 wan1 10

※1:ネクストホップアドレスと同義 ※2:出力インターフェース


・FortrigateでのVPNプロトコル設定


以下のVPNプロトコルのパラメータに従い、それぞれのFortigateでVPNトンネル(IPSec)の設定を進める


FGT01 FGT02

名前 FGT01toFGT02 FGT02toFGT01

テンプレートタイプ サイト間

リモートデバイスのタイプ Fortigate

リモートデバイス IPアドレス

リモートデバイスのIPアドレス 198.51.100.2 203.0.113.2

NAT設定 サイト間にNATなし

出力インターフェース wan1

認証方式 事前共有鍵

事前共有鍵 fortinet

ローカルインターフェース internal1

ローカルサブネット 192.168.1.0/24 192.168.2.0/24

リモートサブネット 192.168.2.0/24 192.168.1.0/24


・メイン画面の左側 “VPN” ⇒ ”IPsecウィザード”

VPNプロトコルのパラメータに従って以下を入力・設定する

-名前

-テンプレートタイプ

-リモートデバイスのタイプ

-NAT設定

・入力・設定が完了したら”次へ”のボタンを押す


・さらに、VPNプロトコルのパラメータに従って以下を入力・設定する

-リモートデバイス

-IPアドレス ※リモートデバイスのIPアドレス

-出力インターフェース

-認証方式

-事前共有鍵のキーフレーズ

・入力・設定が完了したら”次へ”のボタンを押す


・さらに、VPNプロトコルのパラメータに従って以下を入力・設定する

-ローカルインターフェース

-ローカルサブネット

-リモートサブネット

・入力・設定が完了したら”作成”のボタンを押す


・設定の完了画面が表示される


・メイン画面の左側 “モニタ” ⇒ ”IPsecモニタ”

作成したVPNトンネルが表示される

-現在表示されているカラムに”フェーズ2セレクタ”を追加する

いずれかのカラムの左側にある T のような部分を右クリック ⇒ 利用可能なカラムから”フェーズ2セレクタ”を選ぶ


<参考>VPNトンネルを自動でUPさせる方法

FGT0x# config vpn ipsec phase2-interface

FGT0x(phase2-interface)# edit FGT0xtoFGT0z ←VPNトンネルの名前

FGT0x# set auto-negotiate enable

FGT0x# end


・VPNのパラメータを確認してみる

“VPN” ⇒ “IPsecトンネル” ⇒ “カスタムトンネルへコンバート”

・”認証”の項目の編集ボタンをクリックすると以下の項目が確認できる

-認証方式

-IKEバージョン

-フェーズ1でのISAKMPメッセージの交換手順のモード


・”フェーズ1プロポーザル”の項目の編集ボタンをクリックすると以下の項目が確認できる

-フェーズ1で利用可能な暗号化と認証の組み合わせ

-フェーズ1で利用可能なDiffie-Hellmanグループ

-フェーズ1でのキーの有効時間


・”フェーズ2プロポーザル”の項目をダブルクリック⇒”高度な設定”をクリックすると以下の項目が確認できる

-フェーズ2で利用可能な暗号化と認証の組み合わせ

-フェーズ2で利用可能なDiffie-Hellmanグループ

-フェーズ2でのキーの有効時間


・確認が終わったら、画面下の”キャンセル”ボタンを押す

-キャンセルを押したときに、以下の画面が出てきた場合はOKをボタンを押す


ここまでの作業が完了したら、一旦以下のログを取得して正解例と比較します。

また、次ページから簡単にログの見るポイントを記載しています


・ログを見るポイント

FGT01のみ

show full-configuration vpn ipsec phase1-interface (フェーズ1の設定)

show full-configuration vpn ipsec phase2-interface (フェーズ2の設定)

get router info routing-table all (ルーティングテーブルの確認)

get vpn ike gateway (フェーズ1のトンネル ISAKMPSAの確認)

get vpn ipsec tunnel details (フェーズ2のトンネル IPSecSAの確認)

ファイルの命名規則は以下の通り

showコマンド 06-02_氏名_FGT01_コマンド_yyyymmdd.log

Copyright ©Garenet CO.,LTD. page 19


・ルーティングテーブルのポイント

FGT01 # get router info routing-table all

(略)

C 192.168.1.0/24 is directly connected, internal1

S 192.168.2.0/24 [10/0] is directly connected, FGT01toFGT02

S 198.51.100.0/24 [10/0] via 203.0.113.1, wan1

C 203.0.113.0/24 is directly connected, wan1

対向のLANネットワークへは、IPSecウィザードで作成したVPNトンネルを経由する


フェーズ1のトンネルの確認ポイント

FGT01 # get vpn ike gateway

vd: root/0

name: FGT01toFGT02

version: 1

interface: wan1 5

Fortigate同士でISAKMPのやり取りでフェーズ1を実行する

→addr: 203.0.113.2:500 -> 198.51.100.2:500

created: 4812s ago

IKE SA(ISAKMP SA)が確立(established)している

→IKE SA created: 1/1 established: 1/1 time: 23040/23040/23040 ms

IPSec SAが確立(established)している

→IPsec SA created: 1/1 established: 1/1 time: 20/20/20 ms

id/spi: 3 668779f6ed495422/07504c7437ab3065

direction: initiator

status: established 4812-4789s ago = 23040ms

お互いのVPNゲートウェイから提案されたパラメータからISAKMP SAのパラメータを決定

・暗号化アルゴリズム aes-128

・ハッシュアルゴリズム sha256

→proposal: aes-128-sha256

key: 6a210404d33f9a54-43f29ae47146a693

lifetime/rekey: 86400/81310

DPD sent/recv: 00000000/00000000

500=UDPポート500=ISAKMPプロトコル


IKE SA(ISAKMP SA)が確立(established)している

IPSec SAが確立(established)している

お互いのVPNゲートウェイから提案されたパラメータから

ISAKMP SAのパラメータを決定

・暗号化アルゴリズム aes-128

・ハッシュアルゴリズム sha256


フェーズ2のトンネルの確認ポイント

FGT01 # get vpn ipsec tunnel details

gateway

name: 'FGT01toFGT02'

type: route-based

local-gateway: 203.0.113.2:0 (static)

remote-gateway: 198.51.100.2:0 (static)

mode: ike-v1

interface: 'wan1' (5)

Rx(受信)、Tx(送信)のカウンタが上がっている

⇒VPNトンネルによる通信ができている

→rrx packets: 1 bytes: 120 errors: 0

tx packets: 1 bytes: 60 errors: 1

dpd: on-demand/negotiated idle: 20000ms retry: 3 count: 0

selectors

name: 'FGT01toFGT02'

auto-negotiate: disable

IPSecトンネルモード→mode: tunnel

VPNで接続するローカルネットワークとリモートネットワーク

→src: 0:192.168.1.0/255.255.255.0:0

dst: 0:192.168.2.0/255.255.255.0:0

SA

lifetime/rekey: 43200/39250

mtu: 1438

tx-esp-seq: d

replay: enabled

inbound

spi: 359df05b

IPSecトンネルで決定した暗号化アルゴリズム

→enc: aes-cb 40f2d2adf4b986b749db3aa7a5b1f3c6

IPSecトンネルで決定したハッシュアルゴリズム

→auth: sha1 3d6db0023b786a36ccb120897fc7675d6df4a018

outbound

spi: 38c55efa

enc: aes-cb fb31bbc25f6a07801ffbcc3baa4b1012

auth: sha1 f36e89c321b297d9337541f6902e93aafc8c2bcf

NPU acceleration: encryption(outbound) decryption(inbound)


・VPN接続のパケットをキャプチャする


この演習では、Fortigate間でやり取りされているVPN通信のパケットをキャプチャしてみる。

キャプチャ方法はミラーリング(CiscoのスイッチではSPAN機能)を使用する

VPN通信をキャプチャしてみる(1)

Switch(config)#monitor session 1 source interface gi 1/0/1

Switch(config)#monitor session 1 source interface gi 1/0/2

!

Switch(config)#monitor session 1 destination interface gi 1/0/24

①CatalystスイッチでのSPAN設定

06-02-01の演習構成で、レイヤ2スイッチに対して以下のローカルSPANの設定を行う

⇒これにより、”Gi1/0/1”と”Gi1/0/2”で送受信しているすべてのパケットを”G1/0/24”にミラーリング

(コピー)する

Switch(config)#monitor session 1 source interface gi 1/0/1

Switch(config)#monitor session 1 source interface gi 1/0/2

!

Switch(config)#monitor session 1 destination interface gi 1/0/24


②VPNトンネルを一旦ダウンさせておく

FGT01のGUIメイン画面の左側 “モニタ” ⇒ ”IPsecモニタ”

作成したVPNトンネルを選択し画面上のダウンをクリックする

③パケットキャプチャの準備

構成図の通りWiresharkがインストールされた3台目のPCを用意し、スイッチの1/0/24に接続する。

Wiresharkを起動して有線LAN(イーサネット)でパケットキャプチャを取る準備をしておく

④VPN通信を行う

PC-AとBの間でpingによる疎通確認を実行する

⑤キャプチャしたパケットを確認してみる

次ページ参照


フェーズ1のやりとり

“ISAKMP”でフィルタをかけると、ISAKMPプロトコルのパケットのみ表示される

ISAKMPパケットの詳細を見てみる


■IPヘッダ

送信元と宛先がVPNゲートウェイであるFortigateのアドレスを示している

フェーズ1のやりとりの確認(2)

■UDPヘッダ

送信元と宛先ポートが両方UDPの500番=ISAKMPプロトコルを示している

■ISAKMPヘッダ

SPI=SAを確立している相手を識別するキーのようなもの

EncryptedData=暗号化されたデータ部分


フェーズ2のやりとり

“ESP”でフィルタをかけると、ESPプロトコルのパケットのみ表示される

ESPパケットの詳細を見てみる


■IPヘッダ

送信元と宛先がVPNゲートウェイであるFortigateのアドレスを示している

フェーズ2のやりとりの確認(2)

■ESPヘッダ

元のパケットの先頭にESPプロトコルのヘッダが付与されている

-元のパケットが暗号化によって秘匿されている

-改ざんされていないかのチェックもされる

■IPヘッダ

ESPのプロトコル番号が50であることを示している。IPで直接カプセル化している


☆Ciscoルータによる拠点間VPN接続



・ルートベースIpsec

ルートベースのVPNを使用すると、数十のセキュリティポリシーを設定して、2つのサイト間にある1つのVPNトンネ

ルを通過するトラフィックを規制することができる。

ルートベース VPN では、Tunnel インターフェースが使用され、Tunnel を通る通信はすべて暗号化される。ど

の通信が Tunnel を通るか(=どの通信が暗号化されるか)はルーティングテーブルに基づいて決定される。


・ポリシーベースIpsec

ポリシーベースVPNの場合、各ポリシーはリモートピアとの個々のIPsecセキュリティアソシエーション(SA)を作成

し、それぞれが個々のVPNトンネルとしてカウントされる。例えば、ポリシーにグループ送信元アドレスとグループ

宛先アドレスが含まれている場合、アドレスセットに属するユーザーが宛先アドレスとして指定されたホストのい

ずれかと通信しようとするたびに、新しいトンネルがネゴシエートされ、確立される。

ポリシーベース VPN では、暗号化する対象通信をポリシー(ACL)によって決定する。設定としては crypto

map を作成し、それを発信インターフェースに適用する。この場合、Tunnel インターフェースは使用されない。


FortigateのVPN設定と違い、トンネルインターフェイスを設定する必要がある。

※参考(Fortigateにおけるトンネルインターフェイス)

FortigateではVPNが作成されるとトンネルインターフェイスも作成されている。


ここからはCiscoルータをメインとしたIPsecVPNを設定していく

※ケーブルはまだ接続しない。

①INTERNETの設定

・ホスト名:INTERNET

ポート 設定項目 設定パラメータ

g1/0/1 IPアドレス 203.0.113.1/24

g1/0/24 IPアドレス 198.51.100.1/24

※ルーティングの設定は不要


※L3スイッチのため、その他必要な設定を投入


②ホスト名の設定

ホスト名

RT01

RT02


③各ルータのインターフェイス設定

インターフェイス RT01 RT02

F1 192.168.1.254/24 192.168.2.254/24

F0 203.0.113.2/24 198.51.100.2/24


③スタティックルート設定

ホスト名 宛先ネットワーク ネクストホップ

RT01 198.51.100.0/24 203.0.113.1

RT02 203.0.113.0/24 198.51.100.1

それぞれで、 VPN トンネルの相互に終端となるアドレスへの到達性を確保するため設定する


トンネルインターフェイスを設定する。

ここではいったんmodeはそのまま。

RT01

interface Tunnel1

ip address 10.1.1.1 255.255.255.0

tunnel source 203.0.113.2

tunnel destination 198.51.100.2


RT02

interface Tunnel1

ip address 10.1.1.2 255.255.255.0

tunnel source 198.51.100.2

tunnel destination 203.0.113.2


R1-R2間のトンネルインタフェースで送受信するパケットをIPSecで暗号化します。

セキュリティプロトコル、暗号化アルゴリズム、ハッシュアルゴリズム、トランスフォームセットは以下のとおりです。

要素 設定

トランスフォームセット名 Set1

セキュリティプロトコル ESP

暗号化アルゴリズム 3DES

認証アルゴリズム SHA-1

モード トンネル

鍵交換 事前



R1-R2間のトンネルインタフェースで送受信するパケットをIPSecで暗号化します。

RT01

crypto isakmp policy 1

authentication pre-share

crypto isakmp key 6 takahashi address 198.51.100.2

RT02

crypto isakmp policy 1

authentication pre-share

crypto isakmp key 6 takahashi address 203.0.113.2


RT01,RT02共通で

crypto ipsec transform-set set1 esp-3des esp-sha-hmac


RT01,RT02共通で、IPSecプロファイルを作成します。

IPSecプロファイルにはトランスフォームセットを関連付けます。

最後にTunnel12にIPSecプロファイルを適用します。

tunnel protectionコマンドでTunnel12インタフェースにIPSecプロファイルを適用します。

また、カプセル化をデフォルトのGREからipsec ipv4とします。


共通

crypto ipsec profile set1

set transform-set set1

!

interface Tunnel1

tunnel protection ipsec profile set1

tunnel mode ipsec ipv4


PC-A,PC-BがVPN接続を介し相互に通信できるように、スタティックルートを設定します。

スタティックルート設定(VPN)

ホスト名 宛先ネットワーク ネクストホップ

RT01 192.168.2.0/24 10.1.1.2

RT02 192.168.1.0/24 10.1.1.1


ここまでの作業が完了したら、PC同士で相通確認を行います。

続いて、暗号化されたパケットをのぞいてみましょう。



ルータ間でやり取りされて いる VPN 通信のパケット をキャプチャ してみる。

キャプチャ方法はミラーリング(Cisco のスイッチでは SPAN 機能) を使用する。



☆ファイアウォール



おもに自社内ネットワーク内のコンピュータを不正アクセスやサイバー攻撃などから守るために使われるセキュリティ機能。

インターネットなどの外部ネットワークと自社内ネットワークの間に設置し、

外部ネットワークからの攻撃を監視・制御して自社内のネットワークを保護する役割を持つ


●ソフトウェア型

パソコンの有線および無線LANの出入りを監視・制御。代表的なものとしてWindowsファイアウォール機能

●ハードウェア型

ファイアウォール機能を持つネットワーク機器を外部と内部ネットワークの間に設置する。この演習ではこちらがメイン


・ファイアウォールの基本的な役割



信頼されていないネットワーク(おもにインターネットなどの外部ネットワーク)から、

信頼されているネットワーク(おもに自社内ネットワーク)へ直接的な不正侵入を防ぐ

信頼されているネットワークから信頼されていないネットワークへアクセスした際は、

信頼されていないネットワークから戻ってくる通信を許可する(ステートフルインスペクション)


ファイアウォールは、通過しようとするパケットを検査してあらかじめ許可したパケットだけを通過させる。

(パケットフィルタリング機能)

ファイアウォールによるパケットフィルタリングのパターンはいくつかある。

基本はスタティック(静的フィルタリング)であり、方向、宛先および送信元IPアドレス、プロトコル番号、

宛先および送信元ポート番号を事前に登録(ポリシールールの登録)しておくことでフィルタリングを可能にする。

ただし、スタティックのみだと行きと戻りの両方向でポリシールールを登録する必要があるため、

ステートフルインスペクションによって戻りのポリシールールは自動で追加される機能を持つ装置も最近は多い


・ファイアウォールのゾーン


Internal(内部) → 少なくとも1つのインターフェイスは、パブリックなネットワークから

直接アクセスできてはいけないプライベートなネットワークに接続されている

External(外部)→少なくとも1つのインターフェイスは、パブリックなネットワークに接続されている

DMZ(緩衝地帯)→少なくとも1つのインターフェイスは、おもにWebサーバやDNSサーバなど、

パブリックなネットワークとやり取りが必要なコンピュータ群が設置されている緩衝地帯のネットワークに接続されている


・ファイアウォールのポリシールール


ファイアウォールは基本的にポリシールール(単にポリシーとも)に基づいて動作する。

ポリシールールの基本は、ゾーン間の通信についてのルールを定めたものが多い


1 入Internal 出External 許可 すべて

2 Internal DMZ 許可 icmp,http,https,dns

3 External DMZ 許可 https,dns

4 External Internal 拒否 すべて


・ファイアウォール、IPS/IDS、WAF


守るべき部分によってはファイアウォールだけでは対処できないため、ファイアウォール

から派生したIDS/IPS(IntrusionDetectionSystem/IntrusionPrevention

System)やWAF(WebApplicationFirewall)の機能も併用することがある


高機能高価格の順番 

WAF→守るべき部分ウェブアプリケーション 対処可能な主な攻撃SQLインジェクション、クロスサイトスクリプティングなど 検知手段シグネチャによる振る舞い検知

IDS/IPS→サーバOS/ミドルウェア/ネットワーク DOS攻撃、SYNフラッド攻撃など 主にパターンマッチング

ファイアウォール→インフラ/ネットワーク ポートスキャン、不正アクセスなど 主にパターンマッチング


☆ファイアウォールの設定



① LANケーブルはまだ接続しない。ルータとスイッチについて、構成図に従って設定を行う

-ホスト名、 VLAN(スイッチ)、IPアドレス(ルータ)

② Foritgateにて以下の設定をCLI経由で行う

-ホスト名を FGT01 にする

-adminのパスワード設定は任意

-すべてのLANポートを独立ポート(物理インターフェース)にする

③ LANの1番ポートとwanの1番ポートについて、以下のパラメータに従って設定を行う

※CLI/GUIどちらからでもOK


Internal1 アドレッシングモード マニュアル

IPアドレス 192.168.10.253/24

管理アクセス HTTP HTTPS SSH ping

ロール(役割) LAN

この演習では、頻繁にPC同士の通信

を確認しながらGUI画面も確認する

必要があるため、敢えてGUIの管理

アクセスを設定している


wan1 アドレッシングモード マニュアル

IPアドレス 10.1.1.1/30

管理アクセス ping

ロール(役割) WAN

セキュリティ面を考慮すると、wan側の

管理アクセスは設定しないほうが安全

だが、演習ということでpingの応答は

返すようにしている


・ルーティング設定

Fortigateはルータとしての機能を持っているため、ルーティングを設定できる。

今回はスタティックルート(デフォルトルート)を設定する

① ルータ(RT01)で社内ネットワーク宛のスタティックルートを設定する

② Foritgate(FGT01)にて、外部ネットワーク向けのデフォルトルートを設定する

FGT01 # config router static

FGT01 (static) # edit 1

new entry '1' added

health check is down.

FGT01 (1) # set dst 0.0.0.0 0.0.0.0

FGT01 (1) # set gateway 10.1.1.2

FGT01 (1) # set device wan1

FGT01 (1) # end


FGT01 # show router static

config router static

edit 1 ←デフォルトルートの場合は表示されない

set gateway 10.1.1.2

set device "wan1"

next

end


・ファイアウォールのポリシー


ファイアウォールの基本はすべて拒否

ファイアウォールの考え方は” deny-by-default”

ポリシーによって明示的に許可されていないトラフィック以外はすべて遮断するという考え方を採用している。

これにより、外部からの攻撃のリスクを低減させることができる

この段階でPC-AとPC-B間でPingしても通信はできない

ルータとしてはルーティングできるが、ファイアウォールとしてゾーン間の通信はすべて拒否

されている。この後の演習で通信を許可するポリシーを作成していく手順を進める


ここまでの作業が完了したら、最後に以下のログを採ります

Fortigate

show system interface

show router static

ファイルの命名規則は以下の通り

showコマンド 07-02-02_氏名_ホスト名_コマンド名_yyyymmdd.log


・アドレスオブジェクト

アドレスオブジェクトの作成

ファイアウォールのポリシー設定を行う際、送信元および宛先の項目で指定するのは、

あらかじめ作っておいたアドレスのオブジェクトの中から選択する。

Fortigateも”アドレスオブジェクト”と呼ばれるものをあらかじめ作っておく必要がある。

個別のIPアドレス、サブネット、指定のIPアドレスの範囲などで作成ができる。

今回は、内部ネットワーク(192.168.10.0/24)と外部ネットワーク(192.168.100.0/24)の2つについて

アドレスオブジェクトを作成する


FGT01 # config firewall address

FGT01 (address) # edit INTERNET

new entry 'INTERNET' added

FGT01 (INTERNET) # set subnet 192.168.100.0 255.255.255.0

FGT01 (INTERNET) # next

FGT01 (address) # edit VLAN10

new entry 'VLAN10' added

FGT01 (VLAN10) # set subnet 192.168.10.0 255.255.255.0

FGT01 (VLAN10) # end


ここまでの作業が完了したら、最後に以下のログを採ります

Fortigate

show firewall address VLAN10

show firewall address INTERNET

ファイルの命名規則は以下の通り

showコマンド 07-02-03_氏名_ホスト名_コマンド名_yyyymmdd.log


・サービスオブジェクト

サービスオブジェクトは、主に送信元および宛先で使用するプロトコル、

およびTCP/UDPポート番号の組み合わせのこと。

ポリシー設定でサービスを設定する際も、あらかじめ作成されているサービスのリストの中から指定する


FGT01 # config firewall service custom

FGT01 (custom) # edit VLAN10toINTERNET_ICMP

new entry 'VLAN10toINTERNET_ICMP' added

FGT01 (VLAN10toINTERNET~CMP) # set category General

FGT01 (VLAN10toINTERNET~CMP) # set protocol ICMP

FGT01 (VLAN10toINTERNET~CMP) # unset icmptype

FGT01 (VLAN10toINTERNET~CMP) # end


ここまでの作業が完了したら、最後に以下のログを採ります

Fortigate

show firewall service custom VLAN10toINTERNET_ICMP

ファイルの命名規則は以下の通り

showコマンド 07-02-04_氏名_ホスト名_コマンド名_yyyymmdd.log


・ポリシーの作成

ファイアウォールポリシーとはアクセス制限のルールのことであり、

ファイアウォールを含めたネットワークのセキュリティポリシーに相当する。

企業および組織の方針に従ったポリシーとするため、リスク分析などから必要なトラフィックのリストを作成する。

このリストを元にファイアウォールのポリシーを策定していく。

ファイアウォールを通過するトラフィックのうち、必要なトラフィックかどうか=通過させてよいかどうかの判断要素として、

IPアドレス、プロトコル、アプリケーション、コンテンツ、アクセスするユーザ名などがある。

通常、ファイアウォールの考え方は” deny-by-default”。

つまり、ポリシーによって明示的に許可されていないトラフィック以外はすべて遮断するという考え方を採用している。

これにより、外部からの攻撃のリスクを低減させることができる


・ポリシーを作成する前に・・・

暗黙のDenyのみが存在している状態で、PC同士で疎通確認をしてみる

※PCのWi-FiおよびWindowsDefenderなどによるファイアウォール機能を無効にすることを忘れずに!

-疎通ができるかできないか。その結果の理由はなぜか


FGT01 # config firewall policy

FGT01 (policy) # edit 1

new entry '1' added

FGT01 (1) # set name TRUSTtoUNTRUST

FGT01 (1) # set srcintf internal1

FGT01 (1) # set dstintf wan1

FGT01 (1) # set srcaddr VLAN10

FGT01 (1) # set dstaddr INTERNET

FGT01 (1) # set action accept

FGT01 (1) # set schedule always

FGT01 (1) # set service VLAN10toINTERNET_ICMP

FGT01 (1) # set nat enable

FGT01 (1) # end


ここまでの作業が完了したら、最後に以下のログを採ります

Fortigate

show firewall policy

ファイルの命名規則は以下の通り

showコマンド 07-02-05_氏名_ホスト名_コマンド名_yyyymmdd.log


・NATモード

Fortigateはファイアウォールだけでなくルータとしても動作する。

また、外部と内部の境界に設置されることを想定し、

デフォルトでNAT機能が有効になっている (機種・OSのバージョンによって例外あり)

これにより、グローバルアドレスへの変換および内部ネットワークアドレスの隠蔽が行われ、

より安全に外部ネットワークとの通信ができる


NATが有効であることの確認

① PC-B側でWiresharkを起動しておく

② PC-AからPC-Bに疎通確認をしてみる

③ PC-Aから受信したICMPのパケットの送信元アドレスを確認する

※ # get system session list というコマンドでNATテーブルの確認ができる


・ログの確認


Fortigateでは、ファイアウォールポリシーに適合したトラフィックについて、ログを取得することができる。

ただし、ログを適切に取得するためには以下の3点を抑えておく必要がある

Ⅰ全体的なログの取得設定の実施

“ログ&レポート” → “ログ設定” → “ログ設定”→ “イベントロギング”

“すべて”を選択 → “適用”ボタン

Ⅱポリシーごとのログの取得設定の実施

“ポリシー&オブジェクト” → ”IPv4ポリシー” → ”ログ取得したいポリシーを選択” → “編集” →

”ロギングオプション” → “すべてのセッション”を選んでOKを押す

Ⅲ取得するログレベル(severity level)の設定

Foritigateでは、ロギングレベルの確認/変更をGUIからではできない。

そのため、CLIを利用して設定を変更および確認する必要がある

①ログをメモリにバッファ(メモリロギング)する機能が有効になっているか確認

FGT01 # show full-configuration log memory setting

config log memory setting

set status enable

set diskfull overwrite

end

【disableになっている場合】

config log memory setting

set status enable

end

②severity levelを確認

FGT01 # show full-configuration log memory filter

config log memory filter

set severity warning

set forward-traffic enable

set local-traffic disable

set multicast-traffic enable

set sniffer-traffic enable

(略)

end

③severity levelを変更

GT01 # config log memory filter

FGT01 (filter) # set severity information

FGT01 (filter) # end

④再度severity levelを確認

FGT01 # show full-configuration log memory filter

config log memory filter

set severity information

set forward-traffic enable

set local-traffic disable

set multicast-traffic enable

set sniffer-traffic enable

(略)

end

ログを確認する

-PC-AからPC-Bに疎通確認を行う

- “ログ&レポート” → “転送トラフィック”

-疎通結果がログとして保存されている


CLIによるバッファされたログの確認

FGT01 # execute log display


☆DMZ



■シナリオ

外部に公開したいウェブサーバがあり、これを安全に公開するためにファイアウォールのポリシーによる

通信制御を適用する。

また、インターネットに対して内部LAN、DMZ、事業者用ネットワークそれぞれの存在を隠ぺいする

ためにNAT機能も活用する

■おもなポイント

・NATによるネットワークの存在やIPアドレスの隠ぺい

┣ 外部向けルータRT01

ファイアウォールの存在および事業者用ネットワークを隠ぺいするためスタティックNATを使う

┣ ファイアウォール

内部LANからの発信元IPアドレスを隠ぺいするためポリシーでNATを有効にする

DMZネットワークを隠ぺいするため、バーチャルIP機能を使って宛先IPアドレスを変換する

・ファイアウォールでのポリシーによる通信制御

内部LANから事業者間ネットワークおよびインターネットへの通信は制限なし

内部LANからDMZへはサーバのメンテナンスをおもな目的とした通信は許可する

事業者ネットワーク・インターネットからウェブサーバ向けの通信は許可する

サーバなどを踏み台にして内部へ侵入される、あるいは外部へ情報が持ち出されることを防ぐ

ため、上記以外のゾーン間通信は認めない


① 内部LANスイッチl2sw01の設定

-ホスト名、VLAN作成、アクセスポート割り当て

② 外部向けルータRT01の設定

-ホスト名、IPアドレス

-スタティックNATの設定

・コマンドはip nat inside sourceを使用する

・203.0.113.254宛に入ってきた通信の宛先を10.1.1.1に変換する

┗外部ネットワークやインターネットからやってくるさまざまな利用者からファイアウォールや事業者用ネット

ワークの存在を隠ぺいするため(あくまでも簡易的)

・発信元が10.1.1.1で発信されようとする通信は、発信元を203.0.113.254に変換してから発信する

┗インターネットへ向けた発信で、発信元IPアドレスに含まれる事業者用ネットワーク用のIPアドレス

(10.1.1.1)を隠ぺいするため

③ Foritgateで以下の設定を行う

-ホスト名を FGT01 にする

-すべてのLANポートを独立ポート(物理インターフェース)にする

④ Foritgateで以下のポートに対してパラメータに従った設定を投入する

※CLI/GUIどちらからでもOK

Internal1→アドレッシングモード マニュアル

IPアドレス 192.168.10.253/24

管理アクセス http、https、ping、ssh

ロール(役割) LAN

wan1→アドレッシングモード マニュアル

IPアドレス 10.1.1.1/30

管理アクセス ping

ロール(役割) WAN

dmz→アドレッシングモード マニュアル

IPアドレス 192.168.80.99/24

管理アクセス ping

ロール(役割) DMZ

⑤ Foritgateでインターネット向けのデフォルトルートを設定する

⑥ Foritgateでアドレスオブジェクトを作成する

・内部ゾーン用

名前 VLAN10

サブネット 192.168.10.0/24

インターフェース Internal1

・DMZ用

名前 DMZ

サブネット 192.168.80.0/24

インターフェース dmz

・外部ゾーン用 ※外部ゾーンはany(すべて)として指定しないことが多いが今回は敢えて指定する

名前 INTERNET

サブネット 203.0.113.0/24

インターフェース wan1

⑥ バーチャルIP機能でFortigateに着信したパケットの宛先IPアドレスを変換する(宛先NAT)

・名前は DNATtoDMZ

・宛先NATの条件は以下の通り

Foritgateのwan1に着信した通信の中で ・・・①

ウェブサーバへのHTTPリクエストについては ・・・②

宛先をDMZのウェブサーバ宛に変換する ・・・③

なお、宛先ポートは変換しない ・・・④

⑦ FGT01で以下のポリシーを作成する。サービスオブジェクトは元々用意されているものを利用すること

ID 設定項目 設定パラメータ

1 名前 INTERNETtoDMZ

入力インターフェース wan1

出力インターフェース dmz

送信元アドレス INTERNET

宛先アドレス DNATtoDMZ

アクション accept

スケジュール always

サービスオブジェクト HTTP

NAT 有効

【外部ゾーンからDMZへのポリシー】

-インターネットを起点としたウェブサーバへの通信のみ許可するためサービスはHTTPに限定

なお、事業者間ネットワークを起点とする通信は許可しないため、送信元アドレスオブジェクトを

指定-wan1(10.1.1.1)宛のHTTPリクエストについては、先ほど設定したバーチャルIPの機能を適用し、宛先を

ウェブサーバのアドレスに変換することで到達することができる

-DMZからインターネットへの戻りはステートフルインスペクションにより自動的に許可される

-DMZからの戻り通信については、今回は敢えて無効にする


【内部ゾーンから外部ゾーンへのポリシー】

-内部LANを起点としたインターネットへの通信を許可する。サービスは限定せずすべての通信を許可する

なお、事業者間ネットワークへの通信はセキュリティ上許可しない

-インターネットからの戻り通信については、ステートフルインスペクションによって自動的に許可される

-NAT機能は必要。事業者間ネットワークに出ていくときに送信元となる内部LANのアドレスを隠ぺいするため


【内部ゾーンからDMZへのポリシー】

-内部LANを起点としたDMZへの通信を許可する

-サービスはウェブサーバへのメンテナンスを前提とした通信のみ許可する

-DMZからの戻り通信については、ステートフルインスペクションによって自動的に許可される

-NAT機能は一応有効にして、不必要にDMZのアドレスが外に漏れないようにしておく


ここまでの作業が完了したら、最後に以下のログを採ります

Fortigate

show router static

show system interface

show firewall policy

show firewall vip

Router

show running-config

ファイルの命名規則は以下の通り

showコマンド 07-02-08_氏名_ホスト名_コマンド名_yyyymmdd.log


☆FortigateにおけるHA


HAとはHigh Availability(高可用性)の略。FortiGateのHAとは、複数台の機器で冗長構成を構築すること。

HAにすることで、運用中のサービス停止時間をできる限り小さくできる。

FortigateのHAでの標準プロトコルとしてFGCP(FortiGate Cluster Protocol)がある。

FGCPを利用した場合、ほかのネットワーク機器からは1台のFortigateに見える。

TCP/UDP/ICMP/NATを含めたトラフィックのフェールオーバーが可能※Ciscoでいうスイッチスタックに似ている

FGCPによるFortiGateのHAには以下のパターンがある


・アクティブ/パッシブ

通常時は1台をマスター(アクティブ)、もう1台をスレーブ(パッシブ)として動作させる最もベーシックな構成。

機器間でコンフィグが同期され、マスターで異常が発生した場合はスレーブにフェールオーバー(自動切替)が行われる

・アクティブ/アクティブ

マスターとなったFortigateが、他のFortigateに処理を負荷分散する方式。

アンチウィルス、IPSといった負荷のかかる処理を分散してパフォーマンスを向上させる場合などに利用される。

ファイアウォール機能をメインとして利用する場合は向かない


FGCPによるHAを構成するには以下の要件を満たす必要がある

-同一の機種・ハードウェア構成

-同一のOSバージョン ※今回演習で使うFortigateのバージョンはすべて同じに揃えている

-同一のオペレーティングモード(NAT or トランスペアレント)

-同一のVDOMモード(有効 or 無効)

-専用のハートビート(死活監視)のためのポートを設定できる

なお最大4台まで参加可能

HAを構成するとマスター側のコンフィグが他の機器に同期される。その後、マスター側で設定した

内容は自動的に同期して他の機器のコンフィグにも反映される。

ただし、以下は機器固有の設定となるため同期されない

-ホスト名

-HAオーバーライドの有効/無効

-HAデバイスプライオリティ


① 2台のL2SWに対して、ホスト名およびVLANの設定を行う。

続けて、2台のPCに対してIPアドレスおよびデフォルトゲートウェイの設定を行う

② 初期化済みのFortigateを2台用意

今回は、FGCPプロトコルを利用したマスター/スレーブのHAを構成するため、

マスターにする機器とスレーブにする機器をあらかじめ決める。

決めたら2台とも電源を投入してマスター側から設定を始める


<マスター側の設定>

nternal1→アドレッシングモード マニュアル

IPアドレス→192.168.10.253/24

管理アクセス→HTTP HTTPS SSH ping

ロール(役割)→LAN

wan1→アドレッシングモード マニュアル

IPアドレス→192.168.100.1/24

管理アクセス→ping

ロール(役割)→WAN


③ マスターとスレーブ両方の機器で、モニターポートにLANケーブルを接続する

※ハートビートはまだ接続しない

④ それぞれのGUIで、モニターポートがリンクアップを示す緑色になっていることを確認する

Fortigateのマスター選出のルールについて

◆詳細は副読本“Fortigate完全攻略”の173ページと176ページを参照

◆このページの段階でのポイント

・切り戻し(preempt)はデフォルトの無効状態

・HAのageタイムは300秒以上の差がある(マスター/スレーブそれぞれでHA設定を完了したタイミングの時間差)

-詳細は副読本174ページのタイム差を確認できるコマンドを参照

⑤ スレーブになることが想定されるFGT02にコンソール接続してログインしておく

⑥ タイムアウトしないうちに、ハートビートインターフェースとしたLANポート3番同士を接続する

⑦ しばらくすると、FGT02がスレーブに移行するメッセージが出てくる

⑧ FGT02でマスターのコンフィグが同期されているか確認する

FGT02 # show system interface internal1

config system interface

edit "internal1"

set vdom "root"

set ip 192.168.10.253 255.255.255.0

set allowaccess ping https ssh http

set type physical

set role lan

set snmp-index 13

next

end

FGT02 # show system interface wan1

config system interface

edit "wan1"

set vdom "root"

set ip 192.168.100.1 255.255.255.0

set allowaccess ping

set type physical

set role wan

set snmp-index 2

next

end

⑨ GUIにログインしてみる

⑩ もう1つのハートビートインターフェースであるLANポート4番同士もケーブルを接続する

⑪ GUIのダッシュボードに戻る

メイン画面の右下にある歯車のアイコンをクリック→ウィジェット追加

⑫ システム → HAステータスをクリック → 閉じる

⑬ HAステータスが表示される


CLIでHAが想定通り構成されているかどうかの確認ポイント

#get system ha

group-name HAを構成するグループ名

mode 構成 ※a-pならアクティブ/パッシブ構成

hbdev ハートビートするパケットを送信するインターフェイスと優先度

session-pickup セッションピックアップの有効/無効

override オーバーライド(切り戻し)の有効/無効

priority プライオリティの数値

monitor モニタしているポート名

#get system ha status

HA Health Status HA構成が正常に組めているか ※OKなら大丈夫

Mode 構成 ※HA A-Pならアクティブ/パッシブ構成

override オーバーライド(切り戻し)の有効/無効

Master マスターのホスト名

Slave スレーブのホスト名


ここまでの作業が完了したら、最後に以下のログを採ります

・FGT01およびFGT02

show system ha

get system ha

get system ha status

ファイルの命名規則は以下の通り

show system ha 07-03-01_氏名_ホスト名_showsystemha_yyyymmdd.log

get system ha 07-03-01_氏名_ホスト名_getsystemha_yyyymmdd.log

get system ha status 07-03-01_氏名_ホスト名_getsystemhastatus_yyyymmdd.log


・HA構成時の障害に対する動作



<wan側インターフェイスで疑似的な通信障害を発生させる>

① FGT01に対して、以下のパラメータに基づいてファイアウォールポリシーを作成および適用する

② PC-AからPC-Bに向けて連続pingを行う

-コマンドプロンプトよりExPingを使ったほうが間隔をより短くできる(100ミリ秒とか200ミリ秒とか)ので

オススメ

③ 連続pingをした状態で、マスターとなっているFGT01のwan1からLANケーブルを抜く

-連続pingの結果はどうなるか。確認ができたら連続pingを止めておく

④ GUIで現在のHAの状態を確認してみる

⑤ 再度、PC-AからPC-Bに連続pingをしながら、FGT01のwan1にケーブルを挿し直してみる

-連続pingの結果はどうなったか

-マスタとスレーブの関係は元に戻ったのか戻らなかったのか。なぜそのような結果になったのか

⑥ 切り戻し(フェイルバック)を有効にしてみる

デフォルトでは切り戻しは無効になっている

-切り戻しを有効にする場合、演習で使っているFortiOS5.6の場合は、以下のコマンドでのみ設定可能

-プライオリティの高いほうで有効にすると、すぐに低いほうからマスタを奪い取りにいく

⑦ GUIでHAの確認をすると、プライオリティが高いFGT01が自動でマスタになっている

⑧ 切り戻しが無効な状態に戻してみる

⑨ GUIでHAの確認をするとFGT02が自動でマスタに戻っている

<ハートビートインターフェイスで疑似的な障害を発生させる>

FGCPにおけるハートビートインターフェイスのデフォルトの動きは以下の通り

-200ミリ秒ごとにハートビートのパケットを送信して死活監視

-6回連続でハートビートがエラー(ロスト)したらマスタとスレーブを切り替え

-169.254・・・のリンクローカルアドレスを自動的に割り当てるので、個別のIPアドレスの設定は不要

① 切り戻しを有効にしてFGT01がマスタ、FGT02がスレーブになっていることを確認する

② PC-AからPC-Bに向けて連続pingしておく

③ 連続ping中にハートビートインターフェイスの3番ポートのLANケーブルを抜く(FGT01,02どちらでも)

-連続pingの結果はどうなったか

-連続pingを止めてから、GUI画面でマスタとスレーブを確認する

④ 連続pingを再開し、もう1つのハートビートインターフェイスである4番ポートからもLANケーブルを抜いてみる

-連続pingの結果はどうなったか

-連続pingを止めてから、GUI画面でマスタとスレーブを確認する

ハートビートインターフェイスのケーブルが2本とも抜けている状態

⑤ ハートビートインターフェイスの3番ポート同士のケーブルを挿し直して、GUI画面でHAが再度構成されて

いることを確認する (画面に変化がない場合は更新ボタンを押す)

⑥ ハートビートインターフェイスの4番ポート同士のケーブルを挿し直して、⑤と変化がないことを確認する

<セッションピックアップの確認>

セッションピックアップは、ファイアウォールのセッションテーブルを同期する機能。おもに、HTTPやSSHなどの

TCPセッションが同期され、フェイルオーバが発生してもセッションが可能な限り維持される

① FGT01がマスタ、FGT02がスレーブであることを確認しておく

② l2sw02でTELNET受け付けられるように設定をする

-特権パスワードを kenshu123 で設定

-VLAN100を管理VLANとして、IPアドレス192.168.100.201/24を設定

-TELNETの認証はユーザ名とパスワードの組み合わせ

ユーザ名:telnet パスワード:telnet123

③ PC-Aからl2sw02のIPアドレスに疎通確認して問題ないことを確認する

④ PC-Aからl2sw02のIPアドレスに向けてTELNETを行ってみる

-OKかNGか。NGならなぜそのような結果になったのか

⑤ TELNETがNGになった場合は、既存のファイアウォールポリシー(ポリシー名:TEST)に必要なポリシーを

追加してみる

⑥ ポリシーを更新したら、再度PC-Aからl2sw02のIPアドレスにTELNETを試す。

今度は接続できることを確認する

⑦ PC-AからTeraTerm経由のTELNETでl2sw02にログインしたままの状態にする

⑧ マスタであるFGT01のwan1からLANケーブルを抜いてみる

-TELNETのセッションが切れたかどうか

-マスタとスレーブがどうなっているか

⑨ 確認ができたらwan1のケーブルを挿し直しておく

CLIでHAが想定通り構成されているかどうかの確認ポイント

#get system ha

group-name HAを構成するグループ名

mode 構成 ※a-pならアクティブ/パッシブ構成

hbdev ハートビートするパケットを送信するインターフェイスと優先度

session-pickup セッションピックアップの有効/無効

override オーバーライド(切り戻し)の有効/無効

priority プライオリティの数値

monitor モニタしているポート名

#get system ha status

HA Health Status HA構成が正常に組めているか ※OKなら大丈夫

Mode 構成 ※HA A-Pならアクティブ/パッシブ構成

override オーバーライド(切り戻し)の有効/無効

Master マスターのホスト名

Slave スレーブのホスト名


ここまでの作業が完了したら、最後に以下のログを採ります

・FGT01

show system ha

get system ha

get system ha status

show firewall policy

ファイルの命名規則は以下の通り

show system ha 07-03-02_氏名_FGT01_showsystemha_yyyymmdd.log

get system ha 07-03-02_氏名_FGT01_getsystemha_yyyymmdd.log

get system ha status 07-03-02_氏名_FGT01_getsystemhastatus_yyyymmdd.log

show firewall policy 07-03-02_氏名_FGT01_showfirewallpolicy_yyyymmdd.log

☆ロードバランサ


AX1030

A10ネットワークスという会社が販売している高速ロードバランサ”A10 Networks Thunder/AXシリーズ”

の1つ。高いコストパフォーマンスを実現した先進の負荷分散装置&セキュリティゲートウェイである


電源を投入する

① 演習で使用するAX1030にオプションの冗長化電源が搭載されている場合は、電源ケーブルを2本

用意しておく

AX1030の起動~ログイン~終了まで(2)

② 1本だけ電源ケーブルを挿してみる

-本体前面のランプは点灯しているか

③ しばらくすると起動と同時に音が鳴り響く(ピーというどちらかといえば不快な音)

早めに2本目の電源を挿しこんでみる

-エラー音はならなくなったかどうか


ログイン(コンソール接続によるCLI)

① コンソールケーブルを前面のConsoleポートに接続する

② TeraTermを起動する

③ 以下のように進めていく


AX1030 login: admin

Password:a10

ACOS system is ready now.

[type ? for help]

AX1030>enable

Password:

AX1030#


ログイン(ウェブ接続によるGUI)

① LANケーブルはまだ接続しない。

工場出荷時の初期状態では、MGMTポートにIPアドレス”172.31.31.31”が設定されている。

PC側の有線LANのIPアドレスを172.31.31.xxx/24(.31以外)に設定する

② PCと前面のMGMTポート間をLANケーブル接続する

③ http://172.31.31.31へ接続する

※推奨ブラウザはGoogleChromeまたはFirefox

④ 以下のようなブラウザの警告が出た場合は、「詳細設定」→ 「172.31.31.31にアクセスする」

<続き>ログイン(ウェブ接続によるGUI)

⑤ ログイン画面が出たら、ユーザー名に admin 、パスワードに a10 と入れてログインボタンを押す

AX1030の起動~ログイン~終了まで(5)

⑥ メイン画面が表示される ※デフォルトで日本語表示になっているはず


終了(シャットダウン)の方法 –CLIの場合-

AX1030#shutdown

Shutting Down System Now !!!

Proceed with shutdown? [yes/no]:yes


終了(シャットダウン)の方法 –GUIの場合

GUI画面左上で コンフィグ のタブをクリックする

→設定→アクション→シャットダウン 

しばらくして本体前面のランプが消灯していたらシャットダウン完了


・ホスト名の設定


① 本体に電源を投入し、CLIで操作する準備をしておく

② ホスト名がデフォルトの AX1030 であることを確認する

③ 以下の手順でホスト名を LB01 に変更して設定を保存する


AX1030#configure terminal

AX1030(config)#hostname LB01

LB01(config)#

LB01(config)#end

LB01#write memory←設定保存 ※ciscoでいうcopy run startに相当

Building configuration...

Write configuration to secondary default startup-config

[OK]

LB01#

LB01#reload

Do you wish to proceed with reload? [yes/no]:yes

LB01 login:


④ コンフィグ→システム設定→DNSをクリック

⑤ LB01 となっているホスト名を LB001 に変更してOKを押す

⑥ GUIのメイン画面でホスト名が変更されていることを確認する

⑦ CLIでもログインしなおすと、ホスト名がLB001になっていることを確認する

LB001 login: admin

Password:

Last login: Wed Dec 16 03:55:22 GMT 2020 on ttyS0

ACOS system is ready now.

[type ? for help]

LB001>enable

Password:

LB001#

⑧ ホスト名を AX01 に変更して保存します

LB001#conf t

There exists an open "config" session

Would you want to enable multi-config feature?(yes/no)yes

LB001(config)#hostname AX01

AX01(config)#end

AX01#write memory

Building configuration...

Write configuration to secondary default startup-config

[OK]


・時刻の設定


AX01(config)#clock timezone Asia/Tokyo nodst

AX01#clock set 20:05:00 December 16 2020

AX01#show clock detail

*20:05:25 JST Wed Dec 16 2020

Time source is hardware calendar


NTPサーバと同期する場合

AX01(config)#ntp server 10.1.1.1

AX01(config)#ntp enable


・アドレス設定


CLIによるマネージメントポートのIPアドレス設定

アドレス設定(1)

AX01#show run interfaces management

interface management

ip address 172.31.31.31 255.255.255.0

!

① 現在のマネージメントポートのIPアドレスを確認(デフォルト値)

② IPアドレスを192.168.1.1/24に変更してみる

AX01#conf t

AX01(config)#interface management

AX01(config-if:management)#ip address 192.168.1.1 255.255.255.0

AX01(config-if:management)#enable

③ PCのIPアドレスを192.168.1.xxx/24(xxxは任意)に設定し、

MGMTポートととPCをLANケーブルで接続する。

④ ブラウザを起動して192.168.1.1にGUIでログインできることを確認する。

確認ができたらログアウトしてブラウザを閉じておく。


CLIによるLANポートのIPアドレス設定(物理ポート)

① ルータを1台用意する

ホスト名をRT01で設定し、fe0のLANポートに構成図のIPアドレスを設定する

② ロードバランサのETH1(本体前面の1と書かれたLANポート)に構成図のIPアドレスを設定する

AX01(config)#interface ethernet 1

AX01(config-if:ethernet1)#ip address 10.0.0.2 255.255.255.0

AX01(config-if:ethernet1)#enable

③ ルータとロードバランサをLANケーブルで接続する

ETH1のL/AとSP両方のランプが点灯する

L/A:リンク確立時に点灯・データ転送時に点滅

SP :Speed

④ ロードバランサからルータに向けてpingできることを確認してみる


CLIによるLANポートのIPアドレス設定(論理ポート)

① レイヤ2スイッチを1台用意する。

ホスト名をl2sw01で設定し、管理VLAN10で構成図のIPアドレスを設定する

② ロードバランサのETH2に構成図のIPアドレスを設定する

ただし、物理ポートではなく論理ポート(VirtualEthernet:CiscoでいうSVI)を設定する

AX01(config)#vlan 10

指定ポートをこのVLANのアクセスポートに設定

→AX01(config-vlan:10)#untagged ethernet 2

論理ポート(CiscoでいうSVI)作成

→AX01(config-vlan:10)#router-interface ve 10

AX01(config-vlan:10)#exit

AX01(config)#interface ve 10

AX01(config-if:ve10)#ip address 10.1.1.2 255.255.255.0

AX01(config-if:ve10)#exit

③ ETH2ポートを有効化する

AX01(config)#interface ethernet 2

AX01(config-if:ethernet2)#enable

④ スイッチとロードバランサをLANケーブルで接続する

⑤ ロードバランサからスイッチに向けてpingできることを確認してみる

ここまでの作業が完了したら、最後に以下のログを採ります

show running-config

ファイルの命名規則は以下の通り

showコマンド 08-01-03_氏名_AX01_showrunningconfig_yyyymmdd.log


・パスワードの設定


① ログイン時のパスワードをCLIで変えてみる

AX01#conf t

ログインパスワードを a10→a10pass に変更

→AX01(config)#admin admin password a10pass

AX01(config-admin:admin)#enable

Modify Admin User successful!

② イネーブルモード(特権モード)に切り替えるためのパスワードをCLIで変えてみる

AX1030#conf t

イネーブルパスワードを なし→enpass に変更

→AX1030(config)#enable-password enpass

AX1030(config)#exit


① GUIで管理者パスワードを変更してみる。

さきほど、CLIで変更したログインパスワードでログインする

② コンフィグタブを押し、パスワードの右をクリックする

③ パスワード欄に新しい管理者パスワードを入力してOKを

押すと、ログイン時のパスワードが変更される

④ イネーブルパスワード欄に新しいenableパスワードを入力

してOKを押すと、enableパスワードが変更される

⑤ GUIからログアウトする

⑥ GUIで新しいパスワードでログインできることを確認する

⑦ CLIで新しいパスワードでログインができ、

新しいイネーブルパスワードでイネーブルモードに切り替えることができることを確認する


・初期化およびシャットダウン



ログは勝手に初期化されないため、手動でクリア

LB01#clear audit

LB01#clear log


LB01#conf t

LB01(config)#system-reset

Do you want to reboot the system after the System Reset?[yes/no]:yes

Proceed to reset System to its default configuration [yes/no]:yes


☆インライン構成


ツーアーム(Two-arm)とも呼ばれる構成で、通信経路にロードバランサが挟み込まれます。

構成が単純なため、ほかの構成に比べてトラブルが少ないと言われています。

ただし、ロードバランスしないサーバとの通信もロードバランサを通るため、

帯域を十分に確保しておく必要があります。

また、ロードバランサが故障すると全体の通信が止まるため、冗長化の検討が必要です。

特徴、構成がシンプル

ロードバランサがリアルサーバのゲートウェイとなる

クライアント側とサーバ側でネットワークを分割

クライアントの送信元IPアドレスを保持する


準備

① PCを3台用意する (演習用3台。3台目のPCはキャビネットに保管。詳しくは講師まで)

② 演習用の2台はWebサーバとする

-LMSの「Webサーバを作る手順」に従って設定する

-2台を見分けるために、index.htmlの中身を編集してWebServer01と02としておく

③ (貸与PCはクライアントPCとしてPingやウェブブラウザでの検証に使用する)

④ 構成図に従って3台のPCのIPアドレスを設定する

※Webサーバのデフォルトゲートウェイはロードバランサのve100のアドレス


・基本設定


① ケーブルはまだ接続しない。構成図に従ってL2SWを設定する

-ホスト名、VLAN作成、アクセスポートの設定

② ロードバランサにでログインする ※この後の手順例はコンソール接続によるCLIを想定

③ ロードバランサの基本設定を行う

・ホスト名を LB01 で設定

・Ethernet1を物理ポートとして設定、Ethernet2をVLAN100の論理ポートとして設定

・(単純なインライン構成のため、スタティックルートなどのルーティング設定は不要)

④ 設定が完了したらLANケーブルを接続する

・クライアントPCとServer01/02間で疎通ができることを確認する

・クライアントPCのWebブラウザからServer01/02それぞれのIPアドレスをURLで指定すると、画面が

表示されることを確認する

※セキュリティの関係などから、WebサーバのリアルなIPアドレスは隠ぺいしておくべきだが、今回は演習

ということで敢えてリアルなIPアドレスとのやり取りを確認している


これからロードバランサに負荷分散の設定を行う。

この設定により、負荷分散の動作は以下の流れで行われる

① クライアントのウェブブラウザのURLにhttp://192.168.10.80と入力

→ロードバランサの仮想IPアドレス/仮想ポート(192.168.10.80:TCP Port80)宛にHTTPリクエストを送信

② ロードバランサは、仮想IPアドレス/仮想ポートに着信したパケットについて、

振り分け方式(メソッド)に従って振り分けるサーバを決定する

③ ロードバランサは、決定したサーバの宛先IPアドレス/宛先ポートに書き換えてパケットを転送する

④ パケットを受信したサーバは、受信したHTTPリクエストの送信元IPアドレス/ポート番号宛にHTTPレスポンスを応答する

⑤ ロードバランサは、HTTPレスポンスの送信元IPアドレス/ポート番号を、

自身の仮想IPアドレス/仮想ポートに書き換えてクライアントにパケットを転送する


実際にサーバロードバランシングの設定を行っていく

ロードバランサに実際のサーバ(物理サーバ:リアルサーバ)の情報を設定する

・サーバ名

-ロードバランサ上での識別名を登録 ※今回は”HTTPsv01”と”HTTPsv02”とする

・IPアドレス&ポート番号

-リアルサーバに設定されたIPアドレス

-リアルサーバが待ち受けをしているアプリケーションポート番号およびトランスポートプロトコル

※ここで設定したIPアドレスおよびポート番号に対して、レイヤ3/4のヘルスチェックが有効になる


LB01(config)#slb server HTTPsv01 192.168.100.101

LB01(config-real server)#port 80 tcp

LB01(config-real server-node port)#exit

LB01(config-real server)#exit

LB01(config)#slb server HTTPsv02 192.168.100.102

LB01(config-real server)#port 80 tcp

LB01(config-real server-node port)#end


・サーバロードバランシングの設定


ロードバランサに実際のサーバ(物理サーバ:リアルサーバ)の情報を設定する

・サーバ名

-ロードバランサ上での識別名を登録 ※今回は”HTTPsv01”と”HTTPsv02”とする

・IPアドレス&ポート番号

-リアルサーバに設定されたIPアドレス

-リアルサーバが待ち受けをしているアプリケーションポート番号およびトランスポートプロトコル

※ここで設定したIPアドレスおよびポート番号に対して、レイヤ3/4のヘルスチェックが有効になる

LB01(config)#slb server HTTPsv01 192.168.100.101

LB01(config-real server)#port 80 tcp

LB01(config-real server-node port)#exit

LB01(config-real server)#exit

LB01(config)#slb server HTTPsv02 192.168.100.102

LB01(config-real server)#port 80 tcp

LB01(config-real server-node port)#end


メンバーとして登録したリアルサーバをグループ化する

・サービスグループ名およびトランスポートプロトコル

-グループを識別するために名称を指定する ※今回は”HTTP-SG”とする

-次のバーチャルサーバの設定段階で、

このサービスグループと紐づいている仮想IPアドレス/仮想ポートに

着信したパケットを書き換えるときのトランスポートプロトコルの指定

・memberコマンドで先ほど設定したリアルサーバ名を登録

-リアルサーバの設定で指定したサーバ名

-振り分けられたリアルサーバ宛パケットの宛先ポート番号

・methodコマンドで負荷分散のメソッドを設定

-メンバーとして登録したリアルサーバへの振り分け方式の指定

※今回はラウンドロビン方式

LB01(config)#slb service-group HTTP-SG tcp

LB01(config-slb svc group)#member HTTPsv01:80

LB01(config-slb svc group)#member HTTPsv02:80

LB01(config-slb svc group)#method round-robin

LB01(config-slb svc group)#end


クライアントからの通信を受け付けるバーチャルサーバを設定する

・バーチャルサーバ名および仮想IPアドレス

-バーチャルサーバを識別するために名称を指定 ※今回は”HTTP-VS”とする

-仮想IPアドレス(バーチャルIP:vIP)を指定

・仮想のポート番号

-トランスポートプロトコルおよびポート番号を指定

※クライアントから仮想IPアドレスおよび仮想ポート番号宛に着信したパケットを負荷分散の対象とする

・ひもづけるサービスグループ名の指定

-負荷分散の対象のパケットが仮想IPアドレス/仮想ポート宛に着信したら、サービスグループのルール

(振り分けメソッド、振り分けるリアルサーバ、書き換える宛先IPアドレスおよび宛先ポート)に従う

LB01(config)#slb virtual-server HTTP-VS 192.168.10.80

LB01(config-slb vserver)#port 80 tcp

LB01(config-slb vserver-vport)#service-group HTTP-SG

LB01(config-slb vserver-vport)#end


ここまでの作業が完了したら、以下のログを採っておきます

show running-config

ファイルの命名規則は以下の通り

showコマンド 08-02-01_氏名_LB01_showrunningconfig_yyyymmdd.log


・ヘルスチェック


ロードバランサがサーバの稼働状況をチェックすること。ヘルスモニタとも呼ばれる。

ロードバランサはクライアントからのリクエストを受け付けて、これを内部ネットワークに設置された複数のサーバ

に振り分けていく。このときに、ダウンしているサーバにリクエストを振り分けてしまうと、正常な処理が行えない。

そこで、リクエストを渡すサーバがダウンしていないかどうかをヘルスチェックで常に確認している


この演習ではアクティブチェック(アクティブモニタ)を採用する。

アクティブチェックは、ロードバランサからサーバにヘルスチェックのためのテスト用パケットを定期的に送り、

そのレスポンスによって正常性を確認する方法

レイヤ3チェック→定期的にICMPによる応答が返ってくるか

※pingによるIPアドレスの応答があるかどうか

レイヤ4チェック→定期的にサーバとTCP3ウェイハンドシェイクを行い成立するか

※宛先となる待受ポートがオープンしているか

レイヤ7チェック→定期的にアプリケーションの擬似的なリクエストを送信してサーバからのレスポンスがあるか

※HTTPの場合、GETリクエストを送って正常なレスポンス(レスポンスコード200 OKなど)が返ってくるか


演習で使っているA10のロードバランサでは、show slb serverコマンドによって、

各リアルサーバへの振り分け状況およびレイヤ3、レイヤ4ヘルスチェックの結果の概要を確認することができる。

ヘルスチェックがNG(down)の場合は、ロードバランサはそのリアルサーバに振り分けを行わない

80/tcp レイヤ4、Total レイヤ3

TotalがUp、ICMP(ping)でこのコンピュータのIPアドレス宛のヘルスチェックがOK

80/tcpがUp、CPポート80宛へのヘルスチェックがOK

→Webサーバのアプリが正常に起動して待受のポートがオープンしていると推測


show health statコマンドでヘルスチェックの状況のみを確認することができる。

後述するレイヤ7ヘルスチェックを設定した場合、show slb serverでは確認ができないため、

このコマンドでの確認が必要となる


ロードバランシングの確認

① クライアントPCでウェブブラウザを起動する

キャッシュの影響をできるだけ受けずに検証するため、シークレットブラウジングで起動する

┗GoogleChromeなら”シークレットウィンドウ”のことを指す

※シークレットブラウジングの動作の特徴 (どのブラウザもほぼ一緒)

-閲覧履歴、Cookie とサイトのデータ、フォームへの入力情報は保存されない

-ダウンロードしたファイルと作成したブックマークは保持される

-アクセスしたウェブサイトについては、社内の管理者や

② シークレットブラウジングでアドレス欄にバーチャルサーバの仮想IPアドレスを入力する

③ 繰り返しアクセスをしてみる。

-新規タブを作成→バーチャルサーバの仮想IPアドレスの入力→ウェブページの確認を繰り返す

-同じタブでF5キーを繰り返して押し、サーバ側にサイトのリロードを要求する

※F5キーの連打は禁止!

F5アタックというサーバに負荷をかけてダウンさせることを狙ったサイバー攻撃の1つ。

インターネットのウェブサイトで行うと、悪質な攻撃者とみなされ犯罪者になる恐れがある


CLIによる負荷分散状況の確認

ラウンドロビン方式だからといって、常に50:50の割合にはならない

繰り返しアクセスして、各リアルサーバのカウンタ値が徐々にでも上昇していれば今回はOK


GUIによる負荷分散状況の確認

モニタ → SLB → サービス → サーバー

※マネージメントポートのアドレスはデフォルトの172.31.31.31/24のため、

PCのアドレスを172.31.31.xxx/24に設定してから確認する必要あり


クライアントPCでのパケットキャプチャ結果

クライアントからウェブブラウザ経由でロードバランサの仮想IP宛にアクセス

ウェブサーバからの応答はロードバランサの仮想IPを送信元としてクライアントに戻っている

→サーバ自身のアドレスはクライアントから隠蔽される

HTTP GETメソッド

→HTTP通信でウェブブラウザなどのクライアントからウェブサーバへと送られるHTTPリクエストの一種

HTTPステータスコード(レスポンスコード)

→HTTPにおいてウェブサーバからのレスポンスの意味を表現する3桁の数字

200 OK

→リクエストは成功し、レスポンスとともにリクエスト内容に応じた情報が返される。

クライアントのウェブブラウザでページが正しく表示された場合は、基本このステータスコードをサーバが返している


標準で有効なレイヤ3およびレイヤ4のヘルスチェックに加えて、

レイヤ7のヘルスチェックの設定を行う


① レイヤ7ヘルスチェックの作成

定期的にロードバランサからサーバに向けて疑似的なHTTP GETリクエストを発信し、

レスポンスコード200が返ってくれば、このヘルスチェックは正常

LB01(config)#health monitor HTTP-CHECK

LB01(config-health:monitor)#method http expect response-code 200


ウェブサーバへのリクエスト(HTTP GET要求)に対して、

ウェブサーバからHTTPのレスポンスコード200(200 OK)が返ってくれば、

ウェブサーバ上のコンテンツ(ウェブページ)は正しく存在している


② サービスグループまたはリアルサーバに対してヘルスチェックを適用する前にテストコマンドでチェック

Node status:レイヤ3チェック/レイヤ4チェック HTTP status:レイヤ7チェック

LB01#health-test 192.168.100.101 port 80 monitorname HTTP-CHECK count 3

node status UP.

HTTP Status Code OK.

node status UP.

HTTP Status Code OK.

node status UP.

HTTP Status Code OK.


③ 今回はサービスグループに対してヘルスチェックを適用する

(グループ内のすべてのリアルサーバに対して適用)

LB01(config)#slb service-group HTTP-SG tcp

LB01(config-slb svc group)#health-check HTTP-CHECK

(参考:リアルサーバごとヘルスチェックを適用することも可能)

LB01(config)# slb server HTTPsv01 192.168.100.101

LB01(config-real server)# port 80 tcp

LB01(config-real server-node port)# health-check HTTP-CHECK


レイヤ3のヘルスチェックの動作を確認

④ サーバケーブルを抜いてみる

-かんたんWebサーバの場合 ・・・PCからLANケーブルを抜く

-Linux仮想マシンの場合 ・・・Ethernet(enp0s3)の接続をオフにする


ウェブブラウザでロードバランサの仮想IPアドレスに繰り返しアクセスしたとき、

正常動作しているウェブサーバからのみ応答が返ってくるはず


⑤ サーバのケーブルを挿し直す

-かんたんWebサーバの場合 ・・・PCにLANケーブルを挿し直す

-Linux仮想マシンの場合 ・・・Ethernet(enp0s3)の接続をオンにする


レイヤ4のヘルスチェックの動作を確認

⑥ サーバの待受ポート(今回はTCPポート80)をクローズする

-かんたんWebサーバの場合 ・・・待ち受け停止のボタンを押す

-Linux仮想マシンの場合 ・・・端末画面上管理者モードで"systemctl stop httpd"と入力

ウェブブラウザでロードバランサの仮想IPアドレスに繰り返しアクセスしたとき、

正常動作しているウェブサーバからのみ応答が返ってくるはず


⑦ サーバの待受ポート(今回はTCPポート80)をオープンする

-かんたんWebサーバの場合 ・・・待ち受け開始のボタンを押す

-Linux仮想マシンの場合 ・・・端末画面上管理者モードで"systemctl start httpd"と入力


レイヤ7のヘルスチェックの動作を確認

⑧ ウェブサーバに仮想マシン(Apache)を使っている場合は、以下の手順でドキュメントディレクトリにある

index.htmlの名称をindex11.html変更してみる

※簡単Webサーバを使っている場合は、index.htmlの名称を変更してもDOWNにならないため、

show health statコマンドを打ち込んで出力を確認するのみでOK

仮想マシンの端末の画面上で、管理者モードにて#rename index index11 index.htmlと入力

⇒このコマンドでファイル名がindex.html→index11.htmlへ変更される

レイヤ3/4のヘルスチェックは正常だが、レイヤ7のチェックがDOWNになる

⇒GETレスポンスで存在することが想定されているデフォルトのウェブページindex.htmlが無いため

┗ウェブブラウザで直接サーバのIPアドレスを指定してもウェブページは表示されないはず


⑨ 手順⑧でファイル名を変更した場合は元に戻す。

ドキュメントディレクトリにあるindex11.htmlの名称をindex.htmlに戻す

仮想マシンの端末の画面上で、管理者モードで#rename index11 index index11.htmlと入力

⇒このコマンドでファイル名がindex11.html→index.htmlへ変更される


[参考]

ヘルスのチェック一覧にレイヤ7チェックが存在していることを確認する


ここまでの作業が完了したら、以下のログを採っておきます

show running-config

ファイルの命名規則は以下の通り

showコマンド 08-02-03_氏名_LB01_showrunningconfig_yyyymmdd.log


☆ワンアーム構成


クライアントとサーバ間の通信経路に対して、ロードバランサが枝分かれした形で接続される形態。

インライン(ツーアーム)に比べて、現状動作しているネットワークにロードバランサを組み込んだり、

リアルサーバを増設する際に物理構成に大きな変更を与えることが無い点、

クライアントとサーバ間の通信経路上にロードバランサが存在しないため、

メンテナンスしやすい点がおもなメリットして挙げられます。

ただし、気を付けるべきは通信経路で、リアルサーバのデフォルトゲートウェイがL3SWやルータの場合、

レスポンスがロードバランサを経由せずクライアントに直接戻ろうとします。

ただ、これではTCPのセッションが確立できず、通信エラーの原因となります。

ロードバランサでの送信元アドレス変換など何らかの対策が必要となります


準備

① PCを3台用意する (演習用3台。3台目のPCはキャビネットに保管。詳しくは講師まで)

② 演習用の2台はWebサーバとする

-LMSの「Webサーバを作る手順」に従って設定する

-2台を見分けるために、index.htmlの中身を編集してWebServer01と02としておく

③ (貸与PCはクライアントPCとしてPingやウェブブラウザでの検証に使用する)

④ 構成図に従って3台のPCのIPアドレスを設定する

■ウェブサーバのデフォルトゲートウェイはRT01のf0で設定すること


■WebサーバのデフォルトゲートウェイをRT01にする理由

この演習ではレイヤ4スイッチ(レイヤ4バランシング)を採用し、クライアントとWebサーバ間のHTTP

セッションを少なくすることでロードバランサの負荷を下げ、応答速度の向上を狙う

レイヤ4スイッチとしての動作(レイヤ4バランシング)

・レイヤ3/4の情報を基に負荷分散

・セッション維持機能を利用しやすい(IPアドレスベースでもできる)

・セッションがロードバランサで終端しない

⇒クライアント~サーバ間で1つのセッションを張る。ロードバランサはセッションを中継するのみ。

なので負荷はそれほど高まらない

・レイヤ3/4の比較的単純な情報を参照するので、高度な負荷

分散はできないがロードバランサへの負荷はそれほど高まらない


レイヤ7スイッチとしての動作(レイヤ7バランシング)

・レイヤ7の情報を基に負荷分散

・セッションがロードバランサで終端する

⇒クライアント~LB間とLB~サーバ間で別々のセッションを張る。

ロードバランサはアプリケーション層の複雑な情報まで読み解く必要があり、結果負荷は高まる

・アプリケーション層の情報を参照することで、より細やかで高度なバランシングが可能だが、

複雑な情報を読み解くためロードバランサへの負荷は高まる



・基本設定


① ケーブルはまだ接続しない。構成図に従ってL2SWを設定する

-ホスト名、VLAN作成、アクセスポートの設定

② ロードバランサにでログインする ※この後の手順例はコンソール接続によるCLIを想定

③ ロードバランサの基本設定を行う

・ホスト名を LB01 で設定

・Ethernet1をVLAN100の論理ポートとして設定

・ロードバランサからクライアントのネットワークに戻るための経路をスタティックルートで追加

④ 設定が完了したらLANケーブルを接続する

・クライアントPCとServer01/02間で疎通ができることを確認する

・クライアントPCのWebブラウザからServer01/02それぞれのIPアドレスをURLで指定すると、

画面が表示されることを確認する

※セキュリティの関係などから、WebサーバのリアルなIPアドレスは隠ぺいしておくべきだが、

今回は演習ということで敢えてリアルなIPアドレスとのやり取りを確認している


実際にサーバロードバランシングの設定を行っていく

ロードバランサに実際のサーバ(物理サーバ:リアルサーバ)の情報を設定する

・サーバ名

-ロードバランサ上での識別名を登録 ※今回は”HTTPsv01”と”HTTPsv02”とする

・IPアドレス&ポート番号

-リアルサーバに設定されたIPアドレス

-リアルサーバが待ち受けをしているアプリケーションポート番号およびトランスポートプロトコル

※ここで設定したIPアドレスおよびポート番号に対して、レイヤ3/4のヘルスチェックが有効になる

LB01(config)#slb server HTTPsv01 192.168.100.101

LB01(config-real server)#port 80 tcp

LB01(config-real server-node port)#exit

LB01(config-real server)#exit

LB01(config)#slb server HTTPsv02 192.168.100.102

LB01(config-real server)#port 80 tcp

LB01(config-real server-node port)#end


メンバーとして登録したリアルサーバをグループ化する

・サービスグループ名およびトランスポートプロトコル

-グループを識別するために名称を指定する ※今回は”HTTP-SG”とする

-次のバーチャルサーバの設定段階で、このサービスグループと紐づいている仮想IPアドレス/仮想ポートに

着信したパケットを書き換えるときのトランスポートプロトコルの指定

・memberコマンドで先ほど設定したリアルサーバ名を登録

-リアルサーバの設定で指定したサーバ名

-振り分けられたリアルサーバ宛パケットの宛先ポート番号

・methodコマンドで負荷分散のメソッドを設定

-メンバーとして登録したリアルサーバへの振り分け方式の指定 ※今回はラウンドロビン方式

LB01(config)#slb service-group HTTP-SG tcp

LB01(config-slb svc group)#member HTTPsv01:80

LB01(config-slb svc group)#member HTTPsv02:80

LB01(config-slb svc group)#method round-robin

LB01(config-slb svc group)#end


クライアントからの通信を受け付けるバーチャルサーバを設定する

・バーチャルサーバ名および仮想IPアドレス

-バーチャルサーバを識別するために名称を指定 ※今回は”HTTP-VS”とする

-仮想IPアドレス(バーチャルIP:vIP)を指定

・仮想のポート番号

-トランスポートプロトコルおよびポート番号を指定

※クライアントから仮想IPアドレスおよび仮想ポート番号宛に着信したパケットを負荷分散の対象とする

・ひもづけるサービスグループ名の指定

-負荷分散の対象のパケットが仮想IPアドレス/仮想ポート宛に着信したら、サービスグループのルール

(振り分けメソッド、振り分けるリアルサーバ、書き換える宛先IPアドレスおよび宛先ポート)に従う

LB01(config)#slb virtual-server HTTP-VS 192.168.100.80

LB01(config-slb vserver)#port 80 tcp

LB01(config-slb vserver-vport)#service-group HTTP-SG

LB01(config-slb vserver-vport)#end


ロードバランシングの確認

① 今回のロードバランシングはレイヤ4スイッチ(レイヤ4バランシング)を採用する。

そのためリアルサーバのデフォルトゲートウェイアドレスをRT01に設定していることを再度確認する

② クライアントのブラウザから http://192.168.100.80 にアクセスできるか ⇒できない

③ 送信元アドレスを変換するためのNATテーブルを手動で作成して適用する

・NATプール名 SNAT

・NATプールのアドレス範囲 192.168.100.250/24 – 192.168.100.250/24

※設定コマンドは、Google検索で”A10 送信元NAT”で検索してみるとヒントが出てくるかも・・・

→(config)#ip nat pool SNAT 192.168.100.250 192.168.100.250 netmask /24
(config)#slb virtual-server HTTP-VS 192.168.100.80
(config-slb vserver)#port 80 tcp
(config-slb vserver-vport)#source-nat pool SNAT

④ 再度クライアントからウェブブラウザ経由でロードバランサの仮想IPアドレスにアクセスしてみる

ウェブページが表示されてロードバランシングも利いているはず

ここまでの作業が完了したら、以下のログを採っておきます

ロードバランサ

show running-config

ファイルの命名規則は以下の通り

showコマンド 08-02-04_氏名_LB01_showrunningconfig_yyyymmdd.log

ログ取得後は、インライン構成のときと同じように、確認およびヘルスチェックのシナリオを行っておきます


☆パーシステンス


準備

① PCを3台用意する (演習用2台と貸与PC1台)

② 演習用の2台はWebサーバとする

-LMSの「Webサーバを作る手順」に従って設定する

-2台を見分けるために、index.htmlの中身を編集してWebServer01と02としておく

③ (貸与PCはクライアントPCとしてPingやウェブブラウザでの検証に使用する)

④ 構成図に従って3台のPCのIPアドレスを設定する

★リアルサーバのデフォルトゲートウェイはRT01を指定すること!

① ワンアームの構成を作る。手順はワンアーム構成の演習手順をそのまま実施すればよい

② ワンアーム構成が完成したら、ロードバランシングすることを確認する

③ 復習も兼ねて以下のレイヤ7ヘルスチェックの設定を追加する

④ 設定追加後もレイヤ3/4/7それぞれのヘルスチェックに問題が出ていないことを確認する

パーシステンス(セッション維持)の設定を追加で行う

-割り振るサーバを固定する要素 :Cookie情報を利用したCookie persistence

-テンプレート名 :Cookie-infoという名前で作成

-テンプレートの適用 :バーチャルサーバに適用

port 80 tcpコマンドの下ではテンプレートが適用できない

┗Cookie情報はHTTPレスポンスのHTTPヘッダに含まれてい

┗port 80 httpコマンドの下で適用するのが正解

┗no port 80 tcpで削除してから入れ直す必要あり

┗グループやNATの紐づけも入れ直す必要あり

→(config)#slb template persist cookie Cookie-info
(config)#slb virtual-server HTTP-VS 192.168.100.80
(config-slb vserver)#no port 80 tcp
(config-slb vserver)#port 80  http
(config-slb vserver-vport)#source-nat pool SNAT
(config-slb vserver-vport)#service-group HTTP-SG
(config-slb vserver-vport)#template persist cookie Cookie-info

⑤ クライアントのブラウザからロードバランサの仮想IPアドレスへ接続を確認してみる

-Chromeのシークレットウィンドウの場合、画面を閉じるとCookieがクリアされる。

最初にロードバランサによって振り分けられたウェブサーバのCookie情報を利用したセッションを維持するため、

タブを増やしながら仮想IPアドレスへのアクセスを続けてみる

⑥ ヘルスチェックでエラーが出ていないのに、

同じサーバのウェブページが出続ければセッション維持ができていると言える


■クライアントから最初にロードバランサの仮想IPアドレスにアクセスしたときのレスポンスのパケット

200 OKのレスポンスにSet-Cookieが含まれていて、これがクライアントのブラウザに保存される。

また、ロードバランサも200 OKのレスポンスに含まれるこのCookieを保持して、

どのサーバから発行されたのかを記憶している

■ブラウザに保存されたCookieの情報(Chromeの場合F12キーを押すと表示できる)

ブラウザでCookieを消去されるか有効期限が切れるまで、

ブラウザはこのCookieをGETリクエストに含めて発信する。

そして、受け取ったロードバランサはこのCookieを発行したサーバにリクエストを振り分ける

ここまでの作業が完了したら、以下のログを採っておきます

ロードバランサ

show running-config

ファイルの命名規則は以下の通り

showコマンド 08-02-05_氏名_LB01_showrunningconfig_yyyymmdd.log onto

☆Linux


VirtualBoxを用いた環境

コンピュータの仮想化と呼ばれる技術を使って、あたかも複数台のコンピュータが起動しているように見せる

本研修では、パソコンやサーバコンピュータに直接Linuxをインストールしているのではなく、

WindowsOS上に仮想化ソフトウェア※1と呼ばれるアプリケーションをインストールし、

その上にCentOS(RedHat系のLinux)をインストールしてLinux環境を構築している。

※1:本研修ではOracle VM VirtualBox(以下VirtualBox)を使用

VirtualBox、CentOSともに無料で配布されているため、自宅でも同様の環境を簡単に構築することができる


・事前確認

仮想環境を作る演習用マシンを決める

-2台ある演習用PCの両方で、VirtualBoxをインストールして仮想

環境を構築することが可能。

-ただし、メモリ搭載量および次ページのハードディスク空き容量により、

仮想環境上で作成できる仮想マシンの数が決まってくる

NS-x→8GB PCごとに異なるため確認が必要

ハードディスクに空きがあれば、4~5台は可能

TST-x→4GB PCごとに異なるため確認が必要

ハードディスクに空きがあれば、2~3台は可能


ハードディスクの空き容量を事前に確認しておく

-この後Linuxの仮想マシンを作成するときに、仮想マシン1台当たり12GBのハードディスク容量を必要する

-仮想マシンを複数台作成する場合は、12GB×台数分の空き容量が必要となる

-最低でも2台(空き容量30GB以上)、できれば3台以上(空き容量42GB以上)が望ましい


仮想マシンを作成するためのイメージファイル(インストール用ファイル)が存在していることを確認する

①デスクトップにある”NWS研修アプリリスト”フォルダ → ”MiracleLinux”フォルダを開く

②MIRACLELINUX-x-rtm-x86_64.isoが存在していることを確認する

※xの部分はバージョンの数字。基本は8.4を使用


本研修ではすでにダウンロードしているインストーラを使用してインストールを行う

(バージョン6.1.14)

■デスクトップにある”NWS研修アプリリスト”フォルダ

→”VirtualBox6.1.14”

→フォルダ内のexeファイルをダブルクリックして実行


VirtualBoxのインストール

特別な設定をしない限り、デフォルト設定のままインストールすればよい

※インストール途中で以下のようなメッセージ画面が出た場合は”インストール”をクリック


インストール後、起動できるかどうかを確認。起動が確認できたら一旦終了しておく


☆仮想マシン



■OS(オペレーティングシステム)とは

ソフトウェア(アプリ)とハードウェアをつなぐ役割を担っている。

特にアプリの開発者からするとOSがハードウェアの違いを吸収してくれるため、

OSで決められた命令やルールに従ってプログラミングさえすれば、

そのOSでサポートされているさまざまなハードウェアは、プログラミング通りの動作をしてくれる。

また、ユーザの操作をコンピュータへ正しく伝える役割も担っている

■Linuxとは

WindowsやMacOSと同じくOSの1つだが、無料で使えるオープンソースという特徴がある。

オープンソースとは、世界中に公開されている無料のソースコードを指し、

Linuxをベースとした開発・改良を誰でも簡単に行える。

【主な特徴】

・オープンソースのため導入コストが他のOSに比べると低い

・自由にソースコードを書き換えられるためカスタマイズ性が高い

・ユーザ権限が厳しく管理されており、安全性の高いサーバを構築できる

■MiracleLinuxとは

サイバートラスト株式会社が提供する無償かつ日本製のRedHatEnterpriseLinuxのクローンであり、

Linuxディストリビューション(Linuxの亜種)の1つ。

日本のサービスレベルに求められる信頼性、安全性、可用性、セキュリティ機能を兼ね備えている


■MiracleLinuxをインストールするための仮想的な保存領域(仮想マシン)を生成

①VirtualBoxを起動して”新規”ボタンをクリック

②仮想マシンの作成

名前

MiracleLinux

マシンフォルダ

c:¥virtualbox

※上記を手入力 自動でフォルダが作成される

タイプ

Linux

バージョン

Red Hat(64-bit)

③”次へ”をクリックする


③メモリーサイズ

1024MBのままで次へ

④ハードディスク

仮想ハードドライブを作成するを選択して作成ボタン

⑤ハードディスクのファイルタイプ

VDIを選択して次へ

⑥物理ハードディスクにあるストレージ

可変サイズを選択して次へ

⑦ファイルの場所とサイズ

サイズを8.00GB→12.00GBに変更して作成

⑧仮想マシンが作成されたことを確認


■続けて作成した仮想マシンにMiracleLinuxをインストールしていくための準備

①作成した仮想マシンを選択して”設定”をクリックする

②システム→“EFIを有効化”にチェックを入れる

③ディスプレイ→グラフィックスコントローラ 「VMSVGA」を選択

④ストレージ → コントローラーIDE → → ディスクファイルを選択

⑤事前に確認したMiracleLinuxのイメージファイル(isoファイル)を選択して「開く」をクリック

⑥コントローラーIDEのところにISOファイルが追加されたことを確認する

⑦ネットワーク → アダプター1

-”ネットワークアダプタを有効化”にチェック

-割り当てを”ブリッジアダプター”

-名前を有線LANアダプタ

“Intel Ethernet Connection・・・”

⑧ネットワーク → アダプター2

-”ネットワークアダプタを有効化”にチェック

-割り当てを”NAT”

-名前は選択できないため空欄のまま

⑨OKを押して設定画面を閉じる

⑩VirtualBoxのメイン画面に戻るので、ここまで設定した項目が仮想マシンに反映されていることを確認


■仮想マシンにMiracleLinuxをインストールしていく

①作成した仮想マシンを起動する

【ホストキー】

ゲスト(仮想マシン)からホスト(VirtualBoxをインストールしているPC)へ操作を移動する際のキー。

Windowsでは右側のCtrlキーが割り当てられている ※環境設定にて変更可能

例えば、仮想マシン上で操作中にホストPCからpingによる疎通を確認したい

場合に、ホストキーを押すとマウスカーソルが仮想マシンの外側で動かせるようになります

②起動ハードディスクの選択が出てくるので、isoファイルを選んで「起動」をクリック

③キーボードで“Test this media 8 install MIRACLE LINUX・・・“を選んでEnterキーを押す。

しばらく待つ

④”日本語”を選択して”続行”をクリック

⑤インストール概要画面で、KDUMPを無効にする

“kdumpを有効にする”のチェックを外して”完了”を押す

⑥インストールの概要画面でインストール先の指定を行う

“ATA VBOX HARDDISK”をクリックした後に”完了”を押す

⑦インストールの概要画面でrootパスワードの指定を行う

ユーザ名:rootは最初から管理者の権限を持つ

パスワードが脆弱なので完了を2回押す

本来は、管理者権限を不正に奪われないように複雑なパスワードにすべき

⑧インストールの概要画面でユーザーの作成を行う

■”このユーザーを管理者にする”のチェックは入れない

今回は、任意の名前で作成するユーザーに管理者権限を付与せず一般ユーザーとして作成される。

また、一般ユーザーでも不正にアクセスログインされないよう本来は複雑なパスワードにすべき

⑨”インストールの開始”を押す

⑩30~40分ひたすら待つ

⑪インストールが完了すると、システムの再起動ボタンが押せるようになるので押す

⑫再起動後、ライセンスへの同意を行う

⑬しばらくするとログイン画面が出るので、ユーザ名”centos”をクリックし、

パスワードに centos と入力して”サインイン”を押す

⑭プライバシー画面で位置情報サービスを”オフ”にして”次へ”を押す

⑮オンラインアカウントへの接続は”スキップ”

⑯”使い始める”をクリック

⑰ホストPCのWi-Fiをつなげる

⑱仮想マシンの画面右上辺りをクリックしてメニューを出す

⑲Ethernet(enp0s3)の右側の▼をクリックし、”有線設定”をクリックする

⑳Ethernet(enp0s3)の右側の歯車アイコンをクリックする

㉑”自動接続する”にチェックを入れてから適用を押す

㉓”自動接続する”にチェックを外してから適用を押す

㉒Ethernet(enp0s8)の右側の歯車アイコンをクリックする

㉔Ethernet(enp0s8)を”オン”に切り替えてから、右側の

歯車アイコンをクリックする

㉕”DNS”の項目にIPアドレスが表示されていることを確認する

96.45.45.45

96.45.46.46

※自動接続のチェックは外したまま

適用ボタンを押す

㉖画面の右上をクリックしてメニューを出す

電源を示す母田をクリックする

㉗”電源オフ”をクリックして仮想マシンを終了する


・仮想マシンでのWi-Fi接続



仮想のルータを介して仮想マシンがホストPCのWi-Fi経由で簡単にインターネットに接続できる

①ホストPCのWi-Fiを有効にする

②仮想マシンの画面右上辺りをクリックしてメニューを出す

③Ethernet(enp0s3)の右側の▼をクリックし、”有線設定”をクリックする

④Ethernet(enp0s8)を”オン”に切り替えてから、右側の

歯車アイコンをクリックする

⑤”DNS”の項目にIPアドレスが表示されていることを確認する

※自動接続のチェックは外したまま

DNSにIPアドレスが表示されていれば、仮想マシンからホスト

PCのWi-Fiを経由してインターネット接続が可能です

DNSの欄にIPアドレスが出てこない場合は次ページの手順を試してみること


DNSの欄にIPアドレスが出てこない場合

ⅰ 改めて手順①で、そもそもホストPCからインターネットに接続できるかを確認する

・接続できない

→社内LANのトラブルが無いか (講師に確認)

→Wi-Fiのネットワークアダプタに有線LANと間違えてIPアドレスを設定していないか

・接続できた → ⅱを試す

ⅱ 仮想マシン上で、Wi-Fiのオフ→オンを再度試してみる (手順④)

・DNSの欄にIPアドレスが表示されない → ⅲを試す

ⅲ VirtualBoxのネットワークを再設定してみる

ネットワーク → アダプター2の割り当てを”NAT”から”ブリッジアダプタ”に変更してOKを押す

もう一度、ネットワーク → アダプター2の割り当てを”NAT”に戻してOKを押す


・仮想マシンでWi-Fiをオフ


①Ethernet(enp0s8)を”オフ”に切り替える

②ホストPCのWi-Fiを無効にする

※ホストPCでWi-Fiをつなげる必要が無ければ、仮想マシンと一緒にオフにしておくことをお勧めします


・仮想マシンでの有線LAN接続


仮想のスイッチを介して仮想マシンとホストPCが同じサブネットでつながる

⇒仮想マシンが簡単に演習の環境に参加できる

③Ethernet(enp0s3)の右側の歯車アイコンをクリックする

④”自動接続する”にはチェックを入れたままメニューの”IPv4”をクリックする

⑤”手動”にチェックを入れてからアドレス欄を編集し、適用ボタンを押す

⑥ホストPCの有線LANアダプタにLANケーブルを接続し、 電源の入ったスイッチなどに接続してリンクアップさせる

(これをしないと、仮想マシンの有線LANアダプタが使えない)


☆クローン



サーバ構築作業での失敗を想定して、先ほどインストールしたばかりの

仮想マシンのクローン(複製)を、先に作成しておくことをおすすめします

①VirtualBoxのメイン画面で作成した仮想マシンをクリックして色を反転させておく

②VirtualBoxのメイン画面から仮想マシン→クローン

③新しいマシンの名前とパス

名前:元の仮想マシン名と異なる名前

パス :最初に仮想マシンを作成した時と同じパス

”C:¥virtualbox”を指定する

そのまま次へ進む

④クローンのタイプで、すべてのクローンを選択して

クローンのボタンを押す

⑤しばらく待つ

⑥メイン画面にクローンの仮想マシンが作成される


・一般ユーザにsudoコマンドを使える権限

sudoコマンドは、一般ユーザに対してコマンド実行の単位でroot権限を与える仕組みのこと。

管理者権限での操作が必要なときにrootユーザに切り替える必要がないため、

セキュリティ面での効果が期待できる。

また、実行するたびにログが記録されるため、

root権限を使ったコマンドの実行を後から確認する監査を行うことができるメリットもある。

細かく設定すれば、特定の操作を行うコマンドの実行を特定のユーザにだけ許可するといった使い方もできる


① 仮想マシンを起動する ※クローンを作成している場合はクローンのイメージで

② ログイン画面が出るので、ユーザ名”centos”をクリックしてパスワード centos と入力してログイン

③ ターミナルの起動を起動する。

画面上部の「アクティビティ」をクリックし、左端にいくつかのアイコンが表示された中から”端末”をクリック

④ 端末(ターミナル)が起動する ※Linuxのコマンドラインインターフェイスによる操作のための画面

⑤ 端末で管理者権限で操作できるようにする

端末の画面ではコマンドの先頭にある記号は以下の意味を示す

$ 一般ユーザでの実行

# root ユーザの実行

管理者権限を持つrootユーザへ切り替えるため以下のコマンドを実行する

$ su root

パスワード:root ←実際は非表示。インストール時に設定したrootユーザのパスワード

# ←プロンプトが#になればrootでログインしている

⑥ 一般ユーザ”centos”に対して、sudoコマンドを使える権限(実質の管理者権限)を付与する

# usermod –G wheel centos

# (特にメッセージは出ない)

⑦ ユーザ権限の設定を反映させるため一度ログアウトする

$ su root

パスワード:root ←実際は非表示。インストール時に設定したrootユーザのパスワード

# ←プロンプトが#になればrootでログインしている

# usermod –G wheel centos

# (特にメッセージは出ない) 画面右上

画面右上の▼をクリック



centos⇒ログアウトを選択



確認ウィンドウでログアウトをクリック

⑧ ログイン画面が出るので、ユーザ名”centos”をクリックしてパスワード centos と入力してサインイン

⑨ sudo権限が付与されていることをコマンドで確認する

idコマンドを入力すると、centosユーザが所属しているグループが表示される。

この中に”wheel”というグループ名が入っていればOK


・ウェブサーバ構築のためのインストール作業


① あらかじめ仮想マシンからWi-Fiに接続できるようにネットワークを準備しておく

※仮想マシンのWi-Fi環境については、”仮想マシンのネットワークについて”のシナリオに記載

② ターミナルの起動を起動する

③ インターネット上からApacheをインストールする

ユーザcentosのままで、sudoによる管理者権限でApache※のインストールを行うコマンドを実行する

※Apacheについては、副読本”ゼロからわかるLinuxWebサーバ超入門”のp.102~108辺りを参照

$ sudo dnf install httpd


・ウェブサーバ構築のためのIPアドレスの設定作業


① 仮想マシンのネットワークの資料に従い、Wi-Fiをオフにする

② 有線LANアダプタを有効にする

③ ホストPCと仮想マシンの有線LANアダプタのIPアドレスを設定する

アドレスは任意で決めてよいが、有線アダプタ同士はブリッジアダプタ≒仮想スイッチでつながっていると考えるため、

同じサブネットでIPアドレスを設定すること ※デフォルトゲートウェイの設定はとりあえず不要

また、ホストPCの有線LANアダプタをリンクアップさせておく必要がある点も注意

④ 以下のように設定が正しく反映されているかを確認した上で、

ホストPCから仮想マシンに疎通ができることを確認しておく

$ ip a

$ sudo nmcli connection show enp0s3 | grep ipv4.address

アドレスが反映されていない場合は、以下のコマンドで有線LANアダプタの再起動を実施してみる

$ sudo nmcli connecotion down enp0s3

$ sudo nmcli connecotion up enp0s3


・ウェブサーバの構築作業


① Apacheを起動させる

また、正常に起動しているかも合わせて確認する

※Apacheの起動およびステータス確認については、

副読本”ゼロからわかるLinuxWebサーバ超入門”のp.113~117辺りを参照

$ sudo systemctl start httpd

$ sudo systemctl status httpd

② Apacheも自動起動

仮想マシンが起動したときに、Apacheも自動起動するように設定しておく

$ sudo systemctl enable httpd

③ LinuxのFirewall設定変更

外部からLinuxマシンへのHTTPリクエストを受付できるようにFirewall機能を無効にしておく

※Firewall機能については、副読本”ゼロからわかるLinuxWebサーバ超入門”のp.124~130辺りを参照

$ sudo firewall-cmd --add-port=80/tcp --permanent

$ sudo firewall-cmd --reload

④ Linuxのテキストエディタを使ってテスト用のウェブページを作成する

viというLinux標準のテキストエディタで、ドキュメントルート上に簡易なhtmlファイル(ウェブページ)を作成

してみる

※ドキュメントルートおよびviを使ったhtmlファイルの作成については、

副読本”ゼロからわかるLinuxWebサーバ超入門”のp.118~123辺りを参照


⑤ ホストPC(ウェブクライアント)のウェブブラウザで、URLに仮想マシン(ウェブサーバ)のIPアドレスを入力すると、

viエディタで作成したhtmlファイルがウェブページとして表示されることを確認してみる

※他のコンピュータからのブラウザからhtmlファイルへの接続については、

副読本”ゼロからわかるLinuxWebサーバ超入門”のp.134~135辺りを参照

⑥ WinSCPというファイル転送ソフトを使ってすでに作成しているhtmlファイルをアップロードしてみる

WinSCP ・・・ファイルを暗号化しコンピュータ間でファイル転送を行う代表的なアプリケーションの1つ

アップロード ・・・リモートコンピュータ(おもにサーバ)に指定ファイルをディレクトリに置くこと

※WinSCPを使った接続については、副読本”ゼロからわかるLinuxWebサーバ超入門”のp.156~159辺りも参照

⑦ ロードバランサの演習で作成したindex.htmlをデスクトップにコピーして置いておく

⑧ WinSCPを起動して以下のパラメータを入力

転送プロトコル :SCP

ホスト名 :仮想マシンのIPアドレス

ポート番号 :22

ユーザ名 :root

パスワード :root

入力が完了したらログインボタンを押す

⑨ 右のような画面が出たら、いいえのボタンを押す

⑩ 画面が左右に分割されている

左・・・ホストPC 右・・・リモートPC(仮想マシン)

⑪ 仮想マシンのディレクトリをたどって、/var/www/html

に到達する

⑫ 先ほどviエディタで作成したindex.htmlが存在しているので、

このファイルを右クリック→名前の変更でindex2.html にする

⑬ ホストPC側のディレクトリをたどってデスクトップを表示させる。

デスクトップにある index.html を仮想マシンの /var/www/html にドラッグアンドドロップでコピーする

⑭ ファイル転送の確認画面が出たら、そのままOKを押す

⑮ 仮想マシンの /var/www/html に index.html が

コピーされたことを確認する

⑯ ホストPC(ウェブクライアント)のウェブブラウザで、URLに仮想マシン(ウェブサーバ)のIPアドレスを入力すると、

WinSCPで転送したhtmlファイルがウェブページとして表示されることを確認してみる


☆認証サーバ(Radiusサーバ)


RADIUS(Remote Authentication Dial In User Service)という認証プロトコルを使って、

認証サービスを提供するサーバのことです。

以前は電話回線によるダイヤルアップサービスの認証サーバとしてよく使われていました。

近年ではWi-Fiアクセスポイントでの認証などで使われています。

認証サーバを使うメリットとして、さまざまなところに配置されているネットワーク機器の認証を一元管理することが挙げられます。

定期的なパスワード変更を求められるような場合でも、

機器1台1台に個別にログインして変更しなくても、RADIUSサーバ上で変更すればそれで済みます。

また、設定をすることでアカウンティング(課金)情報も取得することができます。

どの利用者がいつ利用したのかが分かるため、システムの利用監査にも利用することができます。

最近は、強固なセキュリティを実現するために、

ワンタイムパスワードや証明書認証のインフラとしても利用することができます。


・RADIUS認証サーバアプリのインストール


① 仮想マシンのWi-Fiをオンにしてインターネット接続が可能な状態にする

② RADIUS認証サーバアプリ(FreeRadius)の情報を事前に確認する

$ sudo dnf info freeradius

③ RADIUSサーバアプリ(FreeRadius)をインストールする

$ sudo dnf install freeradius freeradius-utils-x.y.zz

※x,y,zの数字は情報のページで表示されていたバージョンを入力

④ インストール以降の手順でインターネット接続は不要なため、仮想マシンのWi-Fiをオフにしておく

⑤ インストールしたFreeRadiusのバージョンが、インストール時に確認したバージョンであることを確認する

$ radiusd -v


・FreeRADIUSの構築


⑥ RADIUSのログ出力を有効化する

“radiusd.conf”を編集する

$ sudo vi /etc/raddb/radiusd.conf

337行目、361行目、362行目をno ⇒ yesに編集する

⑦ RADIUS認証の対象となるRADIUSクライアントを定義する

“clients.conf”を編集する

$ sudo vi /etc/raddb/clients.conf

241~244行にあるサンプル的なものを利用して編集する

241 client private-network-1 {

242 ipaddr = 192.0.2.0/24 10.8.8.0/24 ←RADIUSクライアントのネットワークを指定

243 secret = testing123-2 secretkey ←RADIUSサーバとクライアント間の秘密鍵

244 }

※先頭の#(コメントアウト)を必ず消しておくこと!

:wq! 編集が完了したら保存して終了

この編集により、RADIUSサーバで認証されるRADIUSクライアントを制限し、不正な認証を抑制する

・ipaddr :RADIUS認証の要求を発信するRADIUSクライアントのアドレスを制限

・secret :RADIUSクライアント(この演習ではレイヤ2スイッチ)とRADIUSサーバ間の秘密の共有鍵

⑧ 認証用アカウントを定義する

“users.conf”を編集する

$ sudo vi /etc/raddb/users

87~88行にあるサンプル的なものを利用して編集する

84 # The canonical testing user which is int most of the

85 # examples.

86

87 bob user01 Cleartext-Password := “hello openup”

↑サンプルのユーザ名bobを消してuser01に変更。また、パスワードもhelloからopenupに変更

88 Reply-Message := “Hello, ${user-Name}”

↑認証がOKのときクライアントに返すメッセージ。今回は特に変更の必要なし

※この2行の先頭の#(コメントアウト)を必ず消しておくこと!

:wq! 編集が完了したら保存して終了

⑨ FreeRADIUSのサービスを起動して、変更した設定を読みこませる

FreeRADIUSの構築(4)

$ sudo systemctl restart radiusd.service

⑩ RADIUSの通信をCentOS内のファイアウォールで許可しておく

$ sudo firewall-cmd --add-service=radius --zone=public --permanent

success

$ sudo firewall-cmd --reload

success

$ sudo firewall-cmd --list-all --zone=public


・RADIUSクライアントの設定


準備

① 初期化されたレイヤ2スイッチを1台用意する

② ホスト名を”l2sw01”で設定する

③ 管理VLAN4094を作成する

④ 任意のLANポートをVLAN4094のアクセスポートに設定する

⑤ VLAN4094のVLANインターフェイスに管理用IPアドレス10.8.8.1/24を設定する

⑥ 特権パスワードを設定する ※文字列は任意


設定

① AAAモデルの有効化→l2sw01(config)#aaa new-model

② RADIUSサーバの指定(IPアドレス、ポート番号、秘密共有鍵)

l2sw01(config)#radius-server host 10.8.8.222 auth-port 1812 acct-port 1813

key secretkey

③ すべての認証でRADIUSによる認証を使うようにする

コンソール接続でも遠隔接続でもRADIUS認証が強制的に採用される

l2sw01(config)#aaa authentication login default group radius local

④ RADIUS認証が使用できない場合に備えてローカル認証を仕込んでおく

l2sw01(config)#username local01 password local01


・RADIUS認証の確認


① 仮想マシンのPCとは別のPCを1台用意する

② TeraTermを起動してスイッチにコンソール接続してみるとユーザ名を求めるプロンプトが表示される

User Access Verification

Username:

③ RADIUSサーバで作成した認証用アカウントを入力する

User Access Verification

Username:user01

Password:openup (非表示)

Hello, user01

④ 認証が成功すればユーザモードになる。以後特権モードへの移行も可能

⑤ 一度ログアウトする

⑥ スイッチと仮想マシンのPC間のLANケーブルを抜去する

⑦ ケーブルを抜去した状態で再度RADIUS認証のアカウントでスイッチへのコンソール接続を試してみる。

認証が失敗したメッセージが表示される

User Access Verification

Username:user01

Password:

% Authentication failed


⑧ 何度か試しているうちに、以下のようなログメッセージが表示される

RADIUS認証の確認(2)

User Access Verification

Username:user01

Password:

% Authentication failed

%RADIUS-4-RADIUS_DEAD: RADIUS server 10.8.8.222:1812,1813 is not responding.

%RADIUS-4-RADIUS_ALIVE: RADIUS server 10.8.8.222:1812,1813 is being marked alive.

RADIUSクライアントとRADIUSサーバ間の通信がNGになっていることを示す

※ユーザ名やパスワード誤りによる認証の失敗が発生しているわけではない

⑨ (再確認)RADIUS認証の仕組みが使えない場合の緊急回避としてローカル認証を設定

l2sw01(config)#aaa authentication login default group radius local

※あくまでRADIUSクライアントとサーバ間での通信トラブルなどによってRADIUS認証の仕組みが

使えない場合の備え。ユーザ名やパスワードを忘れたときの緊急手段ではない

⑩ 緊急回避の手段としてのローカル認証を試す

User Access Verification

Username:local01

Password:local01 (非表示)

⑪ ローカル認証が成功してユーザモードになる。以後特権モードへの移行も可能

※TELNET/SSHでログインするときも基本的には同じ

確認が終わったらサーバをシャットダウンして終了

この記事が気に入ったらサポートをしてみませんか?