STPトポロジの保護@BCMSN
今日のところは、Spanning-treeの方でまとめて覚えるといいです。
認定公式ガイドでも
「第10章 スパニングツリープロトコロルトポロジの保護」
のところで詳細に解説されています。
公式ガイド、量は多いんですが、ここの解説はとりわけイメージし易かったです。
あと、ここと、ここが、とても参考になります。むしろここだけ見てろやな勢いです。CCstudyさんはネ申だと思います。最初30minutesさんで概要→テキスト一通り→CCstudyさんを見たときの「なるほど感」は異常。
-----------------------
公式ガイドと黒本にのっとって、ざくっとまとめてみます。
……といいつつ、無茶に長くなった('A`)
-----------------------
STPをループフリー状態にしておく
= BPDU(Bridge Protocol Data Unit)の送受信による
……という前提はあらかじめ確認しておきましょう。
-------------
①ルートガード
★予期せぬスイッチがSTPトポロジに追加された時の対策
「1つのポートに対してBPDUを転送するリレー処理以外を禁止する機能(公式ガイド)」
「予期せぬスイッチ」が追加された時の問題点とは?
1.ルートブリッジがそのスイッチに変更される
2.STP再計算中(50秒)、N/Wが使えない
【具体的に何をするのか】
・上位BPDUの受信を禁止する
・受信したら、ルート不整合(root inconsistent)状態にしてデータ送受信禁止
・上位BPDUが途絶えたら復旧
【デフォルト】
無効
なので、ポートごとに設定しなきゃなりません。
※(config)#interface range Fa0/1 - 10 みたいな手もあり。
【設定】
公式ガイドの言うように「1つのポートに対して」なので、
(config-if)#spanning-tree guard root
になります。
②BPDUガード
★portfastが設定されたポートにスイッチが挿された場合の対策
・アクセス層スイッチ(のPCなどを接続する側)に設定(推奨)
・それ以外には設定しない(BPDUの動きを考えましょう)
【具体的に何をするのか】
・BPDUを受信すると問答無用でerr-disableしてshutdown
⇒復旧は手動 or タイムアウト機能の事前設定
【デフォルト】
無効
【設定】
①一回で全ての「portfast」対象ポートに設定
(config)#spanning-tree portfast bpduguard default
②ポートごとに設定
(config)#spanning-tree bpduguard enable
③BPDUフィルタリング
★グローバル設定
→BPDU送信しない&BPDU受信したらフィルタリング解除
★I/Fで設定
→BPDU送受信を完全禁止 = STP無効化
→BPDUガード<BPDUフィルタリング
それぞれの性質で使うシーンが見えてくると思います。
グローバルの場合は「送信を防ぐ」だけなので、「基本PCしか接続されないけども、もしかしたらネットワーク拡大の際にスイッチが来るかもしれない(来ても良いように他の部分は設定されている前提)」状態の時に選択できるでしょう。
I/Fの場合、どうあっても勝手には解除されないので、「ここから先は絶対にSTPに干渉させねぇ。絶対にだ!」という場合に使いますね。ネットワーク管理者としては、(最終的には)こっちの方が安心感があるでしょうし、セキュリティ的にも良いと思います。勝手に変な接続されて、何かが微妙に狂ってくるという可能性を「排除」できるのは大きいです。どうせ変なことした人を問い詰めても「何もやってない」と言うわけですし(笑)。
-------------
④ループガード
まずSTPの「ブロッキングポート」のおさらい。
このステータスのポートは、「データ送受信はしないが、万が一正規のルートがダウンした場合に備えて、常に様子を見ている」状態です。
補うと「~備えて、届けられるBPDUの中身を常に確認している」。
彼が本気になる条件としては、「(1)書状(BPDU)にて、『頼む、やってくれ』」と言われるか、「(2)定時連絡が途絶えた。出撃する必要があるだろう」と自発的に判断するかのどちらかです。
(1)ならSTP的にそういう話がついているので問題ないです。
が、(2)の場合は、単純に何らかの事故でBPDUが届かなかった場合には「勘違い出撃」になって、ループが発生する危険があります。
なので、「知らせが来なくなっても、知らせ来てないフラグを立てて黙っていろ(roop inconsistent)」と命令する。
それがループガードです。
ルートガードに比べると恐ろしくフランクなまとめですが、だいたい合ってるはず。
【デフォルト】
無効
【設定】
①(config)#spanning-tree loopguard default
②(config-if)#spanning-tree guard loop
※loopguardだったりguard loopだったりで紛らわしいですが仕方ない。
【その他】
cisco的には、ループガードと↓のUDLD(アグレッシヴ)を併用することをオススメしています。
⑤UDLD
解説はここ参照。
UDLDで取り得る選択肢は二つ。
・ノーマルモード
・アグレッシヴモード
ノーマルはSyslogに「障害出たよ」と記録するだけ。週刊誌みたいですね。
アグレッシヴモードは障害発生時に「err-disable」にまで持って行きます。救急車みたいですね。
【設定】(アグレッシヴモードの場合)
①(config)#udld aggressive
※グローバルの場合「光ファイバポート」のみ対応
②(config-if)#udld port aggressive
※こちらはEtherでもOK。①より優先度が上。
---------------
という感じで、黒本ベースでおおよそまとまった気がします。
だがしかし、
自分の「まとめ」見ていて自分で「?」になってるていたらく。
これってつまり「?」なところは、
自分のものになってないってことなんですよね。
覚えるというよりも理解する。
BCMSNのみならず、他の試験の合格体験記でも同様の言葉をたくさん見ますが、やっぱりそういうことでしょうねー。
BSCIの時も「暗記じゃなくてどういうシチュエーションの場合にはどうしたらいいのか?」と考えるようにしたら、OSPFだろうがEIGRPだろうがIntegrated IS-ISだろうが、
「方法論だけの問題」になって、結果的にどんな方向の問題でも自信持てるようになりましたし。
そしてここらでガッツリやっておけば、次のTSHOOTも分かりやすいんじゃないかなと期待しつつ。
ラストスパート頑張りまする。