これまでの記事では主にL3のネットワーク層に関するが多かったので、今回はデータリンク層に該当するL2に関する技術を紹介します。
ネットワークエンジニアなら一度は耳にしたことがあるループ
このループですが、実際に引き起こしたり、どれだけ危険なのか目に見えて体験した人はあまり多くないかもしれません。
今回は、L2技術で一番事故に直結しやすいブロードキャストストーム。この恐ろしさとどうやって防ぐのかに関してご紹介します。
ブロードキャストストームとは
同じネットワーク内にいる全員にデータを送るブロードキャストが、ストーム(嵐、暴風雨)のように発生している状態がブロードキャストストームです。
このブロードキャストですが、ブロードキャストフレーム(例:ARP要求やDHCP Discoverなど)がネットワーク上を大量に流れ、スイッチによって繰り返し全ポートに転送し続ける(=フラッディング)ことが発生します。
L2ループが存在するためブロードキャストが循環し、フラッディングが収束せず輻輳・CPU逼迫を招く事象が発生します。
このような事態を防ぐために、スパニングツリーなどのループ防止技術が導入されており、スイッチ間の経路を制御することで論理的なループを排除し、ブロードキャストストームを未然に防ぎます。
よくあるスパニングツリーの構成
3台構成
CCNAやCCNPの資格試験の教科書だと3台や4台構成でご紹介されているので、もし設計図などで同じようなスイッチ構成を目にしたら「これスパニングツーの設定がありそうだから注意が必要かも」って気が付きやすいかもしれません。
実際の現場ではこういう2台構成も非常に多い
しかし、実際の現場では2台構成でも普通にスパニングツリーが使われており、2台ならスイッチ間でポートチャネル組んでいるだけなら大丈夫かなって思考になり、その瞬間にループ事故のリスクが引き起こされることも珍しくありません。
だからこそ、今回の検証では2台構成でもブロードキャストストームが引き起こされ、その影響の怖さ、およびそれに対しての防止コンフィグで検証を行います。
検証構成
画像はパケットトレーサーの829機器ですが、実際はCisco892機器のスイッチポートを使用して検証を行っております。
コンフィグ
R1
vlan 10
spaninng-tree vlan 10
interface FastEthernet0
switchport access vlan 10
interface FastEthernet1
switchport access vlan 10
interface Vlan10
ip address 192.168.20.1 255.255.255.0
!
R2
vlan 10
spaninng-tree vlan 10
interface FastEthernet0
switchport access vlan 10
interface FastEthernet1
switchport access vlan 10
interface Vlan10
ip address 192.168.20.2 255.255.255.0
!
実験前の各機器のCPU使用率
使用率は1~2%でほとんど通信が起きていない。
ループ実験開始 *危険なので絶対に真似しないでください
R1&R2に対しての投入コンフィグ
R1(config)# no spaning-tree vlan 10
R2(config)# no spaning-tree vlan 10
*スパニングツリーを無効にし、ブロッキングポートを設定しないことで
ループを発生させることが目的
実行した結果
CPUの使用率がほぼ100%になりループが発生。
こういうループを引き起こさないための対策
ストームコントロール設定
int range Fa 0-1
storm-control broadcast level 50.00
storm-control action shutdown
*閾値が50%を超えたら、自動でFa0とFa1のポートをシャットダウン
これは検証のため50%にしていますが、実務では5~10%で設定することが多いです。
もう一回ループを発生させた結果
ストームコントロールによって、閾値50%を検知したらシャットダウン
ルーターのCPU使用率変化
50%近くなるとそこから、CPU使用率が一気に減少
恐ろしいのがループが始まった瞬間、10秒ほどで2%→50%近くに上昇していること
もし、100Gbps使用のデータセンター系のスイッチでループなんて起きてしまった時は、地獄絵図になるでしょう。。