なんかてきとうに

わりと個人的な忘備録的ですよ。

お勉強

STP 関連

Portfast

PortfastというのはDisable Listening Learning Forwarding の行程を経ずに すぐForwardingに移行したいポートに設定するものです。

相手がSTPをしゃべらないルータやサーバ、クライアントPCといったものが接続される予定のポートに設定します。

Portfastが無効になっていると、Listening Learning それぞれ15秒の待ちが入るので最低30秒はデータの送受信ができません。

一部のDHCPクライアントなどがこの感にタイムアウトしてしまうこともあるようです。

そんなPortfastですが、そこにスイッチを接続すると、BPDUを受け取った時点で標準ではPortfastの設定はなかったことになります

BPDU guard

BPDU guard は通常、Portfastを設定したポートに設定することが多いです。

そこにスイッチが接続されるはずがない、接続されてはまずい、というポートに設定しておくことで、スイッチがつながれてBPDUが流れてきたらそのポートを err-disabled にして接続を断してしまいます。

BPDU guardの設定は、ポート単位に個別で設定する方法と、Portfastが設定されたポートに一括で設定する方法の2つがあります。

前者はinterface configuration mode で spanning-tree bpduguard enable と設定します。

後者はgrobal configuration mode で spanning-tree portfast bpduguard default と設定します。

ちなみに、後者で設定した場合、特定のportfastが有効になっているポートで BPDU guardを無効化する場合は interface configuration mode で spanning-tree bpduguard disable と設定します。

err-disabled からの回復ですが、ポートを手動でshutdown , up する必要があります。

Root guard

Root guard は必ずしもPortfastを設定したポートだけに設定するとは限りません。

Root guard を設定したポートでは、現在のRoot Bridgge ID より優先度の高いBPDUを受信したらそのポートを一時的にroot-inconsistent blockingにして送受信を断します。

BPDUの受信がやめば再び通常のポートに戻ります。

ここでBPDUの受信がやむというのは、ForwardDelayの間BPDUが来ないということです。

設定はポート単位でしか行えず、 interface configuration mode で spainnig-tree guard root と設定します。

BPDU filter

BPDU filter も Portfastを設定したポートで使用することが多いです。

BPDU filter も BPDU guard と同様にポート単位に個別で設定する方法と、Portfastが設定されたポートに一括で設定する方法の2つがあります。

前者はinterface configuration mode で spanning-tree bpdufilter enable と設定します。

後者はgrobal configuration mode で spanning-tree portfast bpdufilter default と設定します。

後者で設定した場合、特定のportfastが有効になっているポートで BPDU filterを無効化する場合は interface configuration mode で spanning-tree bpdufilter disable と設定します。

BPDU guardでは2つの設定方法のうち、どちらの設定方法でも動作は同じでしたが、BPDU filterの場合は 設定方法によって動作に変化が生じます。

ポート単位で個別に設定した場合、そのポートではBPDUの送信、受信を全く行わなくなります。

一括で設定した場合、ポートがアクティブになったらBPDU Helloを最大11回送ります。 その間にBPDU Helloを受信しなければBPDUの送信をやめます。受信すればBPDU filter を無効化します。 BPDUの送信をやめている最中でも、BPDUを受信すればBPDU filter を無効にしてBPDUの送信を始めます。