キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
63064
閲覧回数
16
いいね!
4
返信

Cataystのループ検出機能について

j.takahashi
Level 1
Level 1

現行のCatalystシリーズにおいて監視フレームによる他Switch配下のループ検知(遮断)機能の有無について教えて頂けないでしょうか?

(Catalyst2960/3750//6500/IE3010等)

storm-controlは閾値設定が必要であり、閾値以下の場合には機能しない為、監視フレームでのループ検知、遮断の機能有無について

探しております。

keep aliveパケット(監視フレーム)によるloop detectは可能と理解しておりますが、宛先(送信元も)が自物理InterfaceのMACアドレスである

為に他Switchが配下に接続されていた場合、そのSwitch配下にてループが発生した場合には機能しないと言う理解です。

storm-control、keepalive以外にループを検知して遮断(shutdown/block等)をする機能があるか否か?

もしくはそのような機能を有する機種があるのであれば、お教え頂けないでしょうか?

また、ループ時はMACFLAP等のログが上がるかもしれませんが、遮断ができない為有効とは考えておりません。

例 [cat3750]--[cat2960]--[ユーザSwtich]====|×ループ発生

上記でcat2960のダウンリンクでループを検知して遮断する機能を模索しております。

以上、よろしくお願いします。

1 件の受理された解決策

受理された解決策

すみません、返事が遅くなりました。

また、前回、他社製のスイッチを「リピータ HUB」と考え回答してしまいました。
申し訳ありません。

Takahashi 様の仰る通り、MAC アドレスを学習するスイッチでは、keepalive を転送せず、結果、ループを検出できない可能性が高いです。(稀に mac-address table の Ageout のタイミングで転送→検出する事がありますが、現実的ではありません。)

BPDU Guard については、他社製スイッチが「STP は未対応でも BPDU を透過するスイッチ」であれば、ループを検出する事が可能です。

FS724TX というスイッチがこれに該当するので、試しに検証してみましたが上手く機能(ループを検出しポートを閉塞)しました。

▼Catalyst2960 設定例

Switch(config)#errdisable recovery cause bpduguard
Switch(config)#errdisable recovery interval 30
Switch(config)#int fa 0/1
Switch(config-if)# spanning-tree bpduguard enable
Switch(config-if)# spanning-tree portfast

!...L2 ループ発生時、自身の BPDU を受信すると、ポートを閉塞する(errdisable)。
一定時間(*)経過後、ループフリー(BPDU を受信しない)であれば、ポートを復旧する。
(*) 任意:最小 30秒~ 最大 86400秒で設定可能。

もちろん、他社スイッチが BPDU を透過しない場合は使えません。

結論ですが、Takahashi 様が想定されている環境下で、確実にループを検出し、閉塞するのは難しいかもしれません。


ALAXALA 社の "L2ループ検知機能" 的な機能があるかも調査してみましたが、見つけることはできませんでした。

以上、ご参考になれば幸いです。

元の投稿で解決策を見る

4件の返信4

t-yamashita
Level 7
Level 7

こんにちは。

Catalyst2960 で KeepAlive を有効にする事で、ご質問の構成におけるループを検知し、Errdisable によるポートの閉塞が可能と考えます。

keepAlive 以外では、STP の BPDU Guard により上記と同様の動作が可能かと思います。

(参考)

http://www.cisco.com/en/US/tech/tk389/tk621/technologies_tech_note09186a00806cd87b.shtml

必要であれば、検証してみますので気軽に言ってください。

ご返信ありがとうございます。

keepaliveとBPDU Guardについてお教え頂きましたが、申し訳有りません

私の説明不足により構成に誤解を与えてしまわないよう念のため想定して

いる構成を再度ご説明させて下さい。

[Catalyst3750]---[Catalyst2960]---[他社製Switch]======⊃ ×ループ

※他社製SwitchはSTP未対応でダウンリンク同士を接続してしまいループ発生

上記のように他社製Switch(エンドユーザ設置のSTP未対応)の配下で同一筐体

でUTP等を接続してしまった場合には、他社製Switch内にてループが発生して

しまい、ブロードキャストやマルチキャストはUplinkである、Catalyt2960に流れて

しまうかと思います。

上記構成であった場合、お教え頂いた機能では対応できないと理解していた

物ですから、他の仕組み(機能)を模索していたのですが、keepalive等で対応

できるのであれば検証や内容ご教授頂けると助かります。

ちなみに、以下が私の理解なので、誤りあればご指摘下さい。

・keepalive

送信元/宛先が物理I/F MACなので、他社製Switchではフォワーディングされない為

折り返ってこず、検出が不可

・BPDU Guard

BPDUが元々流れてない為検出不可(BPDUについて、先の問合せではご説明して

おりませんでした、申し訳有りません)

・storm-control

閾値以下であった場合は検出不可

・loopguard

元々BPDUが流れてこないため機能しないので検出不可

※keepaliveは送信したポート以外で受信した場合には機能しないと理解しております

がこちらも謝りあればご指摘下さい。

(上記構成例とは異なりますが、STPを止めているVlanにてCatalyst2960のダウン

リンク同士を接続したパターンや、上記構成例にて他社製Switchのダウンリンクと

Catalyst2960の別のダウンリンクを接続した場合等の検出可否)

以上、私の理解になりますが、誤り等あればご指摘頂けると助かりますし、検証

頂けますと助かります。

Keepaliveの宛先がマルチキャストアドレス等に変更可能で、Catalystが折り返って

来たkeepaliveパケットを理解できれば検出は可能と考えております。

お忙しい中恐縮ですが、ご連絡お待ちしております。

すみません、返事が遅くなりました。

また、前回、他社製のスイッチを「リピータ HUB」と考え回答してしまいました。
申し訳ありません。

Takahashi 様の仰る通り、MAC アドレスを学習するスイッチでは、keepalive を転送せず、結果、ループを検出できない可能性が高いです。(稀に mac-address table の Ageout のタイミングで転送→検出する事がありますが、現実的ではありません。)

BPDU Guard については、他社製スイッチが「STP は未対応でも BPDU を透過するスイッチ」であれば、ループを検出する事が可能です。

FS724TX というスイッチがこれに該当するので、試しに検証してみましたが上手く機能(ループを検出しポートを閉塞)しました。

▼Catalyst2960 設定例

Switch(config)#errdisable recovery cause bpduguard
Switch(config)#errdisable recovery interval 30
Switch(config)#int fa 0/1
Switch(config-if)# spanning-tree bpduguard enable
Switch(config-if)# spanning-tree portfast

!...L2 ループ発生時、自身の BPDU を受信すると、ポートを閉塞する(errdisable)。
一定時間(*)経過後、ループフリー(BPDU を受信しない)であれば、ポートを復旧する。
(*) 任意:最小 30秒~ 最大 86400秒で設定可能。

もちろん、他社スイッチが BPDU を透過しない場合は使えません。

結論ですが、Takahashi 様が想定されている環境下で、確実にループを検出し、閉塞するのは難しいかもしれません。


ALAXALA 社の "L2ループ検知機能" 的な機能があるかも調査してみましたが、見つけることはできませんでした。

以上、ご参考になれば幸いです。

ご返信ありがとうございました。

やはり想定するケースでの検知、遮断は難しそうと言う事を理解しました。

お忙しい中の調査、ご返信ありがとうございました。