寄り道しながらCCIE

IT関連、ゲーム

loopdetect検証(続)

時間が空きました。SR-X324T2のloopdetect機能検証の続き。

・loopdetect portdisable

・loopdetect portblock

・syslog、SNMP TRAP

構成

port1と2を直結させる

f:id:nanishikori:20170918125135p:plain

loopdetect portdisable

以下を設定。

f:id:nanishikori:20170918125509p:plain

(ちなみに上記コマンドの後 commit コマンドを実行しないと設定が反映されません。富士通製の仕様)

loop検知後の結果

(リカバリ時間はinterval 10s × 10の100秒)

f:id:nanishikori:20170918125951p:plain

両ポートで検知しているため、どちらもportdisableになっています。

そしてリカバリ時間が経過しても自動で復旧しません。復旧させる場合は以下のコマンドを実行します。もちろんループ状態を解除してからです。

f:id:nanishikori:20170918130332p:plain

実行後は即元通りになります。

f:id:nanishikori:20170918130612p:plain

portdisableオプションは手動で復旧させなければならない点が注意です。

loopdetect portblock

以下を設定。

f:id:nanishikori:20170918131139p:plain

loop検知後の結果

f:id:nanishikori:20170918131624p:plain

 

portdisableと異なり、countの値が表示されています。ループ状態が解除された後

countが10になる(100秒経過する)と自動的にportblockが解除される仕様です。

(今回の構成ではループ解除=リンクダウンになり、detected状態が即リセットされるため実際に試せていません)

syslog、SNMP TRAPによる監視

上記のportdisable、portblockではあくまでも自機のポートを閉塞するだけであり、異なる機器でループ状態となっている場合はあまり意味がありません。自機への影響を防ぐだけです。となると結局は人が検知してループ状態を解除し、復旧させるしかありません。

syslog

loop検知時のsyslogメッセージは以下になります。

 

l2loopd: Configuration Testing Protocol detects a loop in port 1 and port 2

 

・syslogサーバーの設定例

SR-X324T2(config)# syslog server 0 address 192.168.11.10

 

・syslog facilityの設定例(デフォルトは23=local7)

SR-X324T2(config)# syslog facility 22

 

サーバー側でrsyslog(facilityを合わせる)やfirewall(udp port=514許可)の設定をすればサーバー側のログに出力できます。

SNMP TRAP

・trap送信の設定例

SR-X324T2(config)# snmp service on
SR-X324T2(config)# snmp manager 0 192.168.11.10 public v2c

 

SR-X324T2(config)# snmp trap loopdetect enable

ファームウェアが1.05ではsnmp trap loopdetectは存在しないため、2.00にアップデートする必要があります。アップデート手順は以下を参考。

ネットワーク機器 無線LANソリューション SR-Mシリーズ アップデートモジュール インストールの詳細手順 - Fujitsu Japan

 ・アップデートファイル、拡張MIBファイルのダウンロードURL

ネットワーク機器 サーバ収容スイッチ SR-Xシリーズ アップデートモジュール - Fujitsu Japan

 

サーバー側でsnmptrapを受信するための設定は割愛。上記拡張MIBファイルの取り込み必要。参考サイト・・・

snmptrapd 設定方法

CentOS snmptrapd へ MIBファイルを追加する - OSSゆいまーる広場

 

設定後、実際にTRAPを受信した際のメッセージは以下になりました。

※冒頭一部省略。

 

[UDP: [10.10.0.100]:162->[192.168.11.10]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2833995) 7:52:19.95#011SNMPv2-MIB::snmpTrapOID.0 = OID: SRX-MIB::srxLoopDetect#011SRX-MIB::srxLoopDetectSendIfIndex.7001 = INTEGER: 7001#011SRX-MIB::srxLoopDetectRecvIfIndex.7001 = INTEGER: 7002#011SRX-MIB::srxLoopDetectStatus.7001 = INTEGER: detect(2)

 

syslogの方がわかりやすいです。

 

以上のように、syslogやSNMP TRAPをzabbixなどと連携してメール通知を行えばリアルタイムで人間が検知可能かと思います。

 

loopdetectの検証は今回で終了します。

年末にCCNPの更新があるので、その勉強過程で行った検証を一部記事にする予定です。