ループ対策
装置独自の機能ですが、ループ検知、ストーム制御など多くの装置で採用されているループ対策機能について説明します。
ループ対策の必要性
LANスイッチには多くのパソコンが接続されますが、居室などで複数のパソコン、プリンターが接続される場合はインターフェースが不足するため、居室用のLANスイッチを独自に設置することもあります。また、LANスイッチに自由にパソコンを接続可能な環境もあります。
このような場合、STP(Spanning Tree Protocol)や代替え機能を利用しても、ループによりブロードキャストストームが発生する可能性が高いです。
例えば、通信できないためLANスイッチを見てみると近くに接続されていないケーブルがある、通信できるようになるかもしれないと思って取りあえずLANスイッチに挿してみた、これだけでループが発生して最悪のケースではループを発生させた近辺だけでなく、全ネットワークが停止します。これは、少しネットワークがわかっている人は行いませんが、たくさんの人が使うネットワークでは非常に多くあるトラブルです。
STPを有効にしていればある程度は防げますが、居室用スイッチがBPDUを透過せずにSTPでループを検知できなかったり、LANスイッチでは端末を接続するインターフェースのSTPを無効にすることもあるため、別途ループ対策を行うことは運用を行う上で非常に重要です。
ループ検知
LANスイッチは、独自にループを検知するしくみを持っている装置が多いです。代表的なしくみは、独自のループ検知フレームを送信し、自身にフレームが戻ってきた場合にループと認識する方法です。
1つ目のパターンは、LANスイッチ自身の異なるインターフェース間を直結してループが発生した場合です。
2つ目のパターンは、配下の居室用スイッチでループが発生した場合です。
3つ目のパターンは、配下の2台の居室用スイッチをまたがってループが発生した場合です。
ループを検知したインターフェースは遮断されるため、ループが回避されます。
上記のパターンすべてを検知できる機器もありますし、一部のパターンしか検知できない機器もあります。
ストーム制御
実際にブロードキャストストームが発生しているか監視して、ループと判断する方法もあります。インターフェースで受信するフレームを監視しておき、一定量を越えるとループしていると判断し、該当のインターフェースを遮断します。これをストーム制御と言います。また、一定量のことを閾値(しきいち)といいます。
この方法は、ループ検知で示した3パターンすべてのループを検知できますが、閾値をどの値にするかの検討が難しいのが難点です。
例えば、通常でも最大300Mbpsを越える通信量があるのに、200Mbpsを越えると遮断する設定にすると通常の通信が成り立ちません。
逆に、200Mbpsしかないのに800Mbpsを越えると遮断する設定にすると、ブロードキャストストームが発生してしばらくしないと遮断されませんし、遮断の機能自体が働かないことも多いです。
ブロードキャストストームで厄介なのは、ブロードキャスト宛てのフレームはすべての装置宛てのため、LANスイッチ自体も受信してしまってCPUで処理される点です。LANスイッチはフレームの転送能力は高いのですが、自身宛てのフレームはそれほど多いことを前提としていないため、ブロードキャスト宛てのフレームが大量にループするとすぐにCPU負荷が高くなり、ほとんど反応しない状況になります。
遮断する機能はCPUを使うため、例えば1000Base-Tでは1Gbpsあるため余裕を見て閾値を800Mbpsとした場合でも、先にCPU負荷が高くなって無応答になると遮断する機能自体が働きません。つまり、ブロードキャストストームが発生したままになり意味がありません。
このため、ループ検知と合わせて適用し、最初は余裕を見た数字としておいて、測定で通信量を把握した後、設定する値を決める必要があります。
関連ページ
- 応用編「スパニングツリー代替え機能」
- LANスイッチ間のループを防止するための、STPの代替えとなる機能を説明しています。
- 設定編「ストーム制御の設定 - Catalyst」
- Catalystでのストーム制御の設定方法を説明しています。