LAN上でハブやスイッチなどでネットワークループが構成されると、ネットワーク全体が遅くなりインターネットやサーバーにつながらないなどの問題に直面することがあります。ネットワークループとはどのようなものか、どのように原因個所を特定して解決すればよいかなどを説明していきたいと思います。
ネットワークループとは
ネットワークループとはネットワーク機器のハブやスイッチがループ上に構成されている状態のことです。この状態では、ブロードキャストストームと呼ばれる事象が発生します。
ネットワーク上をブロードキャストパケットが破棄されることなく永久にぐるぐると回り続けてしまうので徐々にネットワークリソースを使い果たし最終的にはネットワーク全体がダウンしてしまいます。
ネットワークループ構成
ループ構成は、あるハブやスイッチが送信したパケットがまた戻ってきてしまう経路があることです。
たとえば、代表的なブロードキャストフレームはARPというプロトコルで使用されます。ARP は IPアドレスから MACアドレスを解決するためにフレームをブロードキャストします。
ループ構成上に送信されたブローキャストフレームによりブロードキャストストームという現象が引き起こされます。
たとえば、以下のような構成がループ構成になります。
3台構成の場合の例
2台構成の場合の例
ただし、冗長化機能を備えたスイッチなどでは、2台以上の機器を使って意図的にループ構成を作っておいて一方の経路を障害時のバックアップ用として自動的に切り替える仕組みがあります。ちなみに、以下のように1台でもループ状態を作成することができます。
1台でもループ構成を作れます。
ネットワークループの症状
とにかく急にネットワーク全体が使いものにならないくらい遅くなる現象が見られます。発生した直後から以下のような症状がみられます。
- インターネットのサイト表示が遅くなる、またはつながらない
- サーバへの接続が失敗したりうまくいかない
- 同じネットワークに接続している端末すべてで同じようにネットワークが使えない
- 接続しているPCなどのCPUやメモリなどのリソースに高負荷がかかる
このとき、原因がネットワークループによるものであれば、ネットワーク機器のLEDを見るとあきらかに高速に点滅し続けています。
例として、簡易的にスイッチ1台でループ構成を作ってみた時のLEDを確認してみましょう。動画では右端にPCを接続しています。4番ポートと5番ポートを1本のLANケーブルで接続してループを作っています。
※気づいた方もいるかもしれませんが、Ciscoのスイッチを使っています。本来はループを検知し遮断する機能を持っていますが、検証のため機能をOFFにしています。
ループの原因個所を特定する
Ciscoのようなビジネス用の機器を使っている場合は、ログからループ個所を絞っていくことも可能です。
例)同じ送信元MACアドレスをもつパケットが2つのポート間で重複して届いていることを示すログ
*Mar 1 01:37:20.224: %SW_MATM-4-MACFLAP_NOTIF: Host 80fa.5b65.xxxx in vlan 1 is flapping between port Gi0/5 and port Gi0/4
しかし、小規模オフィスなどでは市販の気軽に使える安価なハブやスイッチを使用しているところも多いかとおもいます。管理もあまりされておらず、各個人が自由にLANケーブルを抜いたり挿したりができるためネットワークループが起こりやすい状況になりがちです。
ネットワークループによる障害だと判断できれば、問題のハブやスイッチで以下の方法を試しながら原因を特定していきます。
①問題がおこる直前に接続したLANケーブルを抜く。
ブロードキャストストームが発生するとすぐにネットワークが正常に繋がらないという症状が出てくるので、症状の直前に接続作業などおこなった人がいないか確認し、そのLANケーブルを特定して抜くだけでひとまず解決できるはずです。
②ハブに接続されているLANケーブルを1つ1つたどってループ構成になっている個所を特定する。
ハブに接続しているLANケーブルがわりと少なく簡単に接続先を確認できる状態なら、この方法でハブ同士が接続されているループ個所を特定して取り除きます。
あらかじめハブ同士が接続しているポートがあるなら区別できるように普段から分かるようにしておくことも大切です。
③1本ずつ外して点滅状態を確かめる
本数が多すぎたり、行き先をたどりづらい場合は怪しい個所を1本ずつ抜いてLEDの高速点滅状態がおさまるまで試します。
抜いた時に高速点滅がおさまらなければ、あとで戻す場所がわからなくなりそうな場合はその都度挿しなおしておいたほうが良いです。
ループの防止策
接続間違いが発生しないように物理的にポートに蓋をしたり、LANケーブルの端に接続先がわかるようにネームタグを付けたりして、きちんと普段から管理しておくことがネットワークループの防止に有効です。
また、一般的なハブよりも高価になりますが、ビジネス用のネットワーク機器のような高機能なネットワーク機器には、ポートを設定により使用不可にしたり、ループを検知して知らせてくれる機能や、自動的にループを遮断してポートを使用不可にするなどの機能が備わっているものもあるのでこういったものを利用するのも良いかと思います。
例)ネームタグ
例)RJ45用ポートキャップ
最後に
ネットワーク障害の報告として「あまったLANケーブルがあったから挿しておきました。」とか「ハブを移動させた際にいったんケーブルを抜いたらどこに何を挿していたかわからなくなり、とりあえずそこらへんのを全部さしておいた。」などは一般的なループ発生原因の可能性となる例です。
このように何かをきっかに障害が起こっている場合は、原因を絞りやすいのですが、「何も触っていない」などそんなはずはないのですがこれを言われることが経験上最も多いと言ってもよいかもしれません。。
ネットワークループの原因個所を特定するには少々手間のかかる作業が必要になるかもしれませんが、原因を作らせないためにも防止策として紹介した方法のようにそもそも誤った接続ができないように管理したり、不明なLANケーブルを気軽に接続しないように周知しておくことが大切です。
参考リンク
STP(Spanning Tree Protocol)とは – 概要と仕組み
コメント