Auto-Negotiation (オートネゴシエーション) の問題 - ネットワーク管理者というお仕事

ネットワーク管理者というお仕事

元ネットワーク管理者のブログ。最初はネットワーク管理を中心に書いていましたが、最近はユーザ寄りのお話が多めです

Sponsored link 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) |
ネットワーク機器の便利な機能に"Auto-Negotiation(オートネゴシエーション)機能"があります。

Auto-Negotiationは、
接続した機器(ポート)間で通信速度と通信モード(半2重/全2重)を折衝し、最適なものに自動設定してくれる仕組み。
Auto-Negotiationを設定しておけば、いちいち相手の機器のポートスピードを調べて設定する必要がなくなるので、非常に良く使われている設定の一つなのですが・・・
実は、このAuto-Negotiation機能には一つ大きな問題があります。

それは、機器間で通信モード(半2重/全2重)の設定が合わないという状況がしばしば発生する点です。

これを聞くと、機器間の相性や通信障害でAuto-Negotiationがまくいかない事がかなりあるんだ?、とお考えになるでしょう。しかし、私の経験では機器間の相性や通信障害でミスマッチが発生したというケースはありません。相性があるという話は先輩からも聞いた事がありますが、ベンダーの方に話を聞くと最近はほとんど無いとの事でした。


では、何が要因でこのような現象がしばしば発生するのか?

実はAuto-Negotiationの仕様に答えがあります。

Auto-Negotiationは相手側の機器とFLP(Fast Link Pulse)というパルスを交換する事で通信モードを決定します。しかし、相手側の機器が固定設定をしている、もしくはAuto-Negotiation機能を有していない場合、このFLPパルスが相手から送られてきません。

では、どうするか。

Auto-Negotiationの仕様では、相手側の機器からAuto-Negotiationの応答がない場合、ポート設定は半2重にする事になっています。従って、片方がAuto-negotiaton、片方が全2重固定という設定を行なった場合、必ずミスマッチが発生してしまうのです。

なお、通信速度については相手側の機器がAuto-negotiaton設定でなくとも自動認識されます
(確かAuto-sensingという機能)。

参考までにCiscoの動作はここに掲載されています。

ネットワーク管理者をしていると、このような状況(ミスマッチ)をしばしば見かけます(注1)。一方で、ネットワークやサーバの教科書にはこういう事は載っていません。また、この問題の質が悪い点として、とりあえず通信は確保されてしまうという点があります。その為、ネットワーク管理者やネットワークエンジニアでもこの問題を知らない、もしくは気付いていないという方が結構いらっしゃるのではないでしょうか。


なお、発見方法についてブログに書かれている方がいらっしゃいましたのでリンクを貼らせて頂きます。

 まだAuto-negotiation設定にしてますか?

ここに書かれている通り、オートネゴシエーションによる不整合が発生しているポートでは通信エラーが多数発生しています。従って、日頃からきちんとポートステータスやエラーログをチェックさえしていれば、ポート設定の不整合を見つける事はそれほど難しくはありません。

今回は以上ですが、ネットワーク機器を新しく設置した際は必ず全ポートのステータスを確認しましょう。この問題は熟練したNEさんでも結構見落とします。



2009/2/20追記
特にWANとの繋ぎには注意して下さい。通信業者が設置するEthernet装置のポートがAutoNegoになっているか固定かを必ず確認し、Ethernet装置とそれと繋がる機器の設定を合わせる必要があります(Ethernet装置側がオートネゴならそれに繋がる端末もオートネゴ、固定なら固定に)。これを怠るとせっかく広帯域の回線を敷設しても十分なパフォーマンスを得られない可能性があります。

次回は、対策について書きます。



追記
今更ですが、
CiscoのSWやルータでこのような設定のアンマッチ状態を放置した場合、ここに書いたように通信は一応確保されますが、そのポートだけある日突然通信が出来なくなるケースを実際の現場で何度か経験しています(通信はできないのですが、リンクランプは付いたままでステータス上もリンクアップしている状態。ErrDisableの状況と似ていますが、shutdown→no shutdownでも復旧せず。また当時はErrDisable機能もなかったと思う。Cisco2514でも現象が出ていたし)。同じポートで何度も再現するので最初はポートの故障を疑いましたが、どのケースもネゴシエーション設定が整合していなかったこと、ネゴシエーション設定を合わせることで再現しなくなった事から、原因はネゴシエーション設定の不整合にあるものと思われます。既に10年ほど前の話なのでOSのバージョンアップで修正されている可能性が高いとは思いますが、同じような現象が発生した場合はオートネゴシエーション設定を疑ってみると良いかもしれません。



更に追記
注1)更に今更ながら、ギガビットイーサーネットの事について無視している事に気づきましたので補足。ギガビットイーサーネット(1000Base-T等)からオートネゴが標準となった為、ギガビットイーサーネットが普及している現在では、Auto negotiation <-> 固定というミスマッチで繋げてしまうケースはかなり減っているものと思われます。ただし、1000Baseのオートネゴに関しては相性問題とも取れる事例をネットで結構目にします(症状としてはONU<->ルータ間などで頻繁にWAN側がリンクダウンする。いつの間にか100Base-Tになっているな

ど)ので、両端で固定設定が出来るのであれば状況によっては固定にした方が良さそうです。

次回のリンクが間違っていますよ

2010.10.18 22:39 URL | hria #- [ 編集 ]

修正しました。教えて頂きありがとうございます。

2010.10.19 06:01 URL | かまち #- [ 編集 ]












管理者にだけ表示

トラックバックURL↓
http://netstaff.blog92.fc2.com/tb.php/20-87bfb4dd

| ホーム |  


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。