新しく配属された現場で、ケーブルを1本ずつ目で追いかけずに「このスイッチの先に何がつながっているか」を確認するとしたら、どのコマンドを使うでしょうか? また、複数の機器のログを時系列で正しく突き合わせるには、何をあらかじめ揃えておく必要があるでしょうか?
CDP/LLDPは隣接機器同士の「名刺交換」でした。NTPは全機器の時計を1つに揃える仕組みでしたね。この2つを実機で確認します。
この演習でできるようになること
show cdp neighbors/show cdp neighbors detailで隣接機器の情報を確認できる- ルーターをNTPクライアントとして設定し、時刻同期の状態を確認できる
logging hostでSyslogサーバーへのログ送信を設定できる
使用トポロジ
ルーター2台(R1・R2)をシリアルまたはイーサネットで直結し、それぞれにスイッチとPCをぶら下げた構成です。さらにNTPサーバー役のサーバーPCと、Syslogサーバー役のサーバーPC(Server-PT、Syslogサービスを有効化)を1台ずつ配置します。
show cdp neighborsを実行し、R2とSW1が一覧に表示されている状態準備
- Router 2911を2台、Switch 2960を2台、PC-PTを2台、Server-PTを2台(NTPサーバー役・Syslogサーバー役)配置します。
- ルーター同士はシリアルケーブル(またはギガビットポートを使う場合はクロスケーブル、Packet Tracerの自動判定に任せても構いません)で接続します。
- 各ルーターとスイッチ、スイッチとPCはストレートケーブルで接続します。
- サーバーPCはそれぞれ空いているルーターのポートやスイッチにストレートケーブルで接続し、IPアドレスを設定します。
手順
ステップ1:CDPで隣接機器を確認する
CDPはデフォルトで有効なので、追加設定なしで確認できます。
R1> enable
R1# show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
R2 Ser 0/0/0 178 R 2911 Ser 0/0/0
SW1 Gig 0/1 156 S 2960 Fas 0/1
より詳しい情報(相手のIPアドレスなど)を見たい場合は次のコマンドを使います。
R1# show cdp neighbors detail
外部と接続するインターフェースなど、情報を漏らしたくないポートでは次のコマンドで無効化できます(今回は演習用に確認のみで構いません)。
R1(config)# interface Serial0/0/0
R1(config-if)# no cdp enable
ステップ2:NTPで時刻を同期する
サーバーPC(NTPサーバー役)でNTPサービスを有効化したうえで、R1・R2をNTPクライアントとして設定します。
R1(config)# ntp server 192.168.100.10
同期状況を確認します。
R1# show ntp status
Clock is synchronized, stratum 2, reference is 192.168.100.10
ステップ3:Syslogサーバーへログを送る
Syslogサーバー役のサーバーPCでSyslogサービスを有効にしたうえで、R1に送信先を設定します。
R1(config)# logging host 192.168.100.20
R1(config)# logging trap informational
logging host でSyslogサーバーのアドレスを指定し、logging trap で送信するメッセージの重要度のしきい値(ここではInformational=レベル6以上を送信)を指定します。
確認
CDPの隣接情報、NTPの同期状態、Syslogの送信先設定をそれぞれ確認します。
R1# show cdp neighbors
R1# show ntp associations
R1# show running-config | include logging
意図的にインターフェースをshutdown/no shutdownしてログイベントを発生させ、Syslogサーバー(Server-PT)の「Services > SYSLOG」画面にログが記録されることも確認しておきましょう。
R1(config)# interface GigabitEthernet0/1
R1(config-if)# shutdown
R1(config-if)# no shutdown
合格チェックリスト
show cdp neighborsでR2とSW1(隣接するすべての機器)が表示されるshow ntp statusでsynchronizedと表示され、stratum値が確認できるlogging hostの設定がshow running-configで確認できる- インターフェースの状態変化がSyslogサーバー側にログとして記録される
no cdp enableを実行したインターフェースでは、相手側から自分の情報が見えなくなる
つまずきポイント
- CDPが無効化された環境での確認漏れ:一部の演習環境や本番機器では、セキュリティ方針として
no cdp runが既定になっていることがあります。何も表示されないときは、まずCDP自体が有効かを確認しましょう。 - NTPサーバー側の設定漏れ:クライアント側だけ設定しても、サーバーPCでNTPサービスが有効になっていなければ同期できません。サーバーPCの「Services」タブでNTPがOnになっているか確認しましょう。
logging trapのレベル指定ミス:しきい値をemergencies(レベル0)のように厳しくしすぎると、ほとんどのログが送信されず「動いていないように見える」ことがあります。まずはinformational程度で試すと分かりやすいです。
show cdp neighbors を実行しても何も表示されませんでした。考えられる原因として適切なものはどれでしょう?
答えを見る
考えられる原因の1つは、そのデバイスまたはインターフェースでCDPが無効化されていることです(no cdp run でグローバルに、no cdp enable でインターフェース単位に無効化できます)。また、相手機器がCiscoではない場合はCDPに応答しないため、その場合はLLDP(show lldp neighbors)で確認する必要があります。
CDPで隣接機器を自動発見し、NTPで時刻を揃え、Syslogでログを1か所に集める——現場の運用でまさに毎日使う組み合わせだよ。時刻がバラバラだと障害調査が振り出しに戻る、というのを身をもって実感してもらえたら嬉しいな。次はいよいよ自動化とSDNの章。まずは「なぜ自動化が必要なのか」を見ていくよ。