電源が入っていないPCを接続しておくと通信障害が発生する?!怪現象
2010年前後だったと記憶していますが、確か1000BASE-Tのスイッチが出回り始めてしばらくの時期でしたが、複数の法人様ネットワークで類似と思われる通信障害が発生していました。
「なぜか電源が入っていないPCのLANケーブルを抜くと障害が改善する」
という共通事項があったのです。
残念ながら、問題発生の起因となったフレームがどのようなフレームであったか、すでに記憶にないのですが、筆者が実際に現地で調査したある法人様環境では、起動していないPCを収容するポートのリンク速度を示すランプが10Mbpsを表していたため、PCのBIOSで設定を変更して改善させることができました。
Wake ON LAN待機時のリンク速度・Duuplex Modeデフォルト値
最近のPCはどうなのでしょう?筆者がこの問題の調査にあたっていた時、特に2010年前後は、PCにWake On LAN(WOL)機能が搭載されだした時期のようで、デフォルトの設定では有効になっていて、シャットダウンしてもWOLで起動させるために使われるMagic Packet受信待ち状態であり、「10Mbps・半二重」でリンクしてしまうPCが多くあった記憶があります。こういったPCはシャットダウン時に一度スイッチ側のリンクランプが消灯し、改めて10Mbpsを表す色で点灯していました。起動時もいったん消灯し、起動中に改めて100Mbpsを表す色で点灯しました。
これらのPCでは、知る限りでは、BIOSの設定を変更すれば「WOL無効」や「100Mbps・Auto Nego」にも設定は変更可能なのですが、「初期状態で確実にWOLできる」ことを狙ったのか、当時、WOL機能を搭載していたPCのデフォルト値は、実機で確認した限りでは、法人向け・コンシューマ向けを問わず、いずれも「10Mbps・半二重」でした。
マルチキャスト通信の台頭とWOLによる障害
さて、同じスイッチングHUBにシャットダウンした状態のPCが数台つながると。。。
スイッチ全体でマルチキャスト通信が滞ってしまう!
ということが発生してしまうのです。なぜなら、高速でスイッチに流れ込むマルチキャストのストリームが、10Mbps半二重でリンクしたポートで詰まってしまうからなのです。この事象は、10BASE-T機器など10Mbps半二重でリンクする機器があれば、比較的簡単に再現させることが可能です。
「ブリッジの掟」に従うスイッチでは、マルチキャストフレームを、受信したポート以外の全ポートにフラッディングしようとしますが、10Mbps半二重でリンクしたポートでは、最大でも10Mbpsでしか出力されていきません。やがて、スイッチのパケットバッファが満杯になってしまい、フロー制御が有効であればマルチキャストフレームを送り込んでくるポートの先の機器にPauseフレームを送るなどして送信を止めるよう要請します(ほとんどのノンインテリジェントスイッチでは、フロー制御が有効)。要請された機器が必要なタイミングでマルチキャストフレームを送信できなくなるため、同じスイッチにつながっているほかの機器にも必要なタイミングでマルチキャストフレームが届かなくなる、というわけです。
昨今では、ひかりTVなどブロードバンド放送やPC教室の動画配信などマルチキャスト動画配信利用などが増えています。ひかりTVが広く使われだした時期から、個人様からのお問い合わせで
「無線ルータに接続したひかりTVの映像が乱れる。なぜかPCを起動するか、そのPCの配線を抜くと収まる」
というものが複数あり、BIOSの設定変更をお試しいただくよう案内させた結果、改善したというご報告をいただいた事例がありました(改善の連絡をいただく例はかなり稀です)。
なお、同様のメカニズムで発生する事象としては、
「Wi-Fiで接続したひかりTVチューナやPCでひかりTVを視聴すると、宅内のネットワーク通信に障害が発生する」
というものがあります。ひかりTVの映像データを送るマルチキャストフレームが無線LAN区間で送られるのですが、Wi-Fiではマルチキャストフレームについて、確実に届けるために、規格上の最低転送レートで送信するためです。その転送レートは、2Mbpsないし5Mbpsといった低さであるため、バッファーがいっぱいになってしまうわけです。解決策としては、Wi-Fiルータの無線設定のうち「マルチキャストレート設定」をデフォルトの「自動」から変更することですが、無線で通信する距離が長い場合、高く設定しすぎると通信に失敗することも発生しやすくなりますし、低すぎれば効果が得られないことにもなりますので、試行錯誤して決めていく以外にありません。
残った未解明問題も
法人様現場で発見したWOL設定変更での改善方法は、その後の個人様環境でのマルチキャスト通信障害事例にはそこそこ有効だったのですが、実は法人様現場での通信障害の解決には至らなかった事例の方が多くありました。通信障害の事象も単に通信が滞るのではなく、ループが発生したような状態になっていました。ループ検知機能を搭載し始めたスイッチ製品で遭遇し、実際にループ検知のランプ状態やブザー鳴動が起きていたのです。
そのような現場では、当該のPCを収容するスイッチを別製品に交換する(あるいはUSB接続のLANインタフェースを追加する)ことで障害を解決しました。問題が起きた場合の機器の組み合わせは、大方次のようなものでした。
- 100BASE-TXまでのLANポートを持つそこそこ古いPC。WOL機能はないか、無効な状態。
- 比較的初期の1000BASE-Tスイッチ製品
結局、詳細なメカニズムは筆者在職中には解明できないまま、スイッチとPCの世代交代が進んだためか事象発生そのものが無くなっていったのですが、およそ次のようなことが発生していたのではないか?と推定しています。
- 問題が発生するPCのLANポートで電源が切れている状態の時、完全であるかどうかはさておき、一定リンクしている状態が発生する
- スイッチ側から送信信号のペアに送信されたLANの信号が、詳細メカニズムは不明ながら問題のPCのLANポートを経由し、受信信号のペアで信号と検知できるだけのレベルで現れる
- スイッチの当該ポートは送信信号と受信検知した信号内容が同じなため、ループを検知する
問題が発生するPC側LANポートの経年変化も伴っていたかもしれませんが、PC側LANポートの電源が切れている状態でのインピーダンス次第で1項・2項の状況が発生し、その時のスイッチ側受信信号検知閾値を超えて受信信号として検知してしまう事象だったのではないか?と考えています。
コメント