目次
オートネゴシエーション
オートネゴシエーション機能とは、UTPケーブルを利用する10BASE-T/100BASE-TX/1000BASE-Tなどのイーサネット規格のポートで機能します。イーサネットのポート同士を接続しているとき、両端のポートの通信速度、通信モード(全二重/半二重)を自動的に最適化する機能です。
オートネゴシエーション機能に対応したイーサネットポート同士を接続した場合、それぞれ「FLP(Fast Link Pulse)バースト」と呼ばれるパルス信号を送出します。このFLPバーストのやり取りによって、互いの通信速度とサポートする通信モードを検出し、下の表の優先順位に従って最適なものを選択します。
優先順位 | 通信速度/全二重通信/半二重 |
1 | 1000BASE-T 全二重 |
2 | 1000BASE-T 半二重 |
3 | 100BASE-TX 全二重 |
4 | 100BASE-TX 半二重 |
5 | 10BASE-T 全二重 |
6 | 10BASE-T 半二重 |
ほとんどの機器でオートネゴシエーションに対応しているので、対向のポート同士で最適な通信速度と通信モードが自動的に決まります。
オートネゴシエーションが失敗する場合
「オート」という言葉から、「対向のポートの速度と全二重/半二重に自動的に合わせる」と思ってしまいがちです。「対向に合わせる」のではなくて、「お互いのポートがサポートしている一番良い速度と通信モードを決める」のがオートネゴシエーションです。
このことをきちんと理解しておかないと、オートネゴシエーションが失敗するような設定をしてしまいます。たとえば、片方を1000Mbps 全二重固定の設定をして、その対向ポートをオートネゴシエーションの設定にした場合です。オートネゴシエーションの設定をしているポートが1000Mbps 全二重になることを期待している設定ですが、うまく機能しません。
固定の設定をしているポートからはFLPを送りません。そのため、オートネゴシエーションの設定をしているポートでは、対向のポートで利用できる速度や通信方式がわからなくなります。速度は、電気信号から判別できるので合わせることができますが、全二重か半二重かはわかりません。本来、イーサネットは半二重通信なので判別できないときは、半二重として動作するようにしていることがほとんどです。その結果、対向のポート同士で全二重と半二重が一致しなくなってしまいます。
全二重/半二重の不一致
オートネゴシエーションが機能せずに、対向のポートで半二重と全二重の通信モードが一致しないと、あるときは通信ができ、あるときは通信ができないという不安定なネットワークになってしまいます。半二重/全二重の不一致のトラブルは、規則性がなく断続的に通信ができなくなるのでとてもわかりにくいトラブルです。半二重と全二重が一致していなくても、ポートがダウンすることはありません。ポートがダウンしていれば、「何かがおかしい」とすぐに気が付きますが、ポートのリンク自体はアップしているので気が付きにくいトラブルです。全二重/半二重が一致していないと、リンクはアップしていても、アプリケーションのスループットが著しく落ち込んでしまうような現象になります。
レイヤ2スイッチの1つのポートに1台のホストを接続しているマイクロセグメンテーションのとき、原理的には衝突は発生しません。半二重のポートでも、ポイントツーポイントで接続している場合、送信用の電気信号と受信用の電気信号が分離されているからです。しかし、半二重ポートはCSMA/CDの動作に基づいて、イーサネットフレームを送信中に受信用の信号を受け取ると、擬似的な衝突とみなして、他のホストが衝突の検出を確実に行うことができるようにジャム信号を送信します。そして、擬似的な衝突が発生すると、イーサネットフレームが失われてしまいます。イーサネットフレームは再送されますが、その間にTCPのレベルでセグメントが失われてしまうことがあります。TCPセグメントが失われると、ネットワークが混雑しているとして、送信レートを下げて再送します。その結果、アプリケーションのデータ転送のスループットが低下してしまうことになります。
Cisco機器で、全二重と半二重が不一致になっている状態について、以下の記事で詳しく解説しています。
オートネゴシエーションが失敗しないために
オートネゴシエーションが失敗しないようにするために、対向のポート同士で二重モードの設定を合わせておくことが重要です。オートネゴシエーションを利用するなら、両方のポートでオートネゴシエーションを有効にします。半二重または全二重固定の設定をするなら、両方のポートで半二重または全二重固定の設定をします。「対向のポートの設定はきちんと合わせる」ことが原則です。
レイヤ2スイッチの仕組み
- レイヤ2スイッチの概要 ~ひとつのネットワークを作る~
- レイヤ2スイッチの動作 ~MACアドレスに基づいて転送~
- 演習:レイヤ2スイッチの動作[Cisco]
- コリジョンドメインとブロードキャストドメイン
- レイヤ2スイッチの転送方式
- 全二重通信 ~送信も受信も同時に~
- オートネゴシエーション ~両端のポートの一番いい速度/モードにする~
- Cisco 全二重/半二重の不一致(duplex mismatch)
- ポートセキュリティ ~つながっているPCは正規のPCですか?~
- Cisco ポートセキュリティの設定
- Ciscoポートセキュリティの設定例
- SPAN ~ネットワークのモニタリング~
- スパニングツリーの概要 ~イーサネットフレームの転送経路を冗長化~
- BPDU ~スパニングツリーの制御情報~
- スパニングツリーの仕組み ~ルートブリッジを中心とした転送経路を決める~
- スパニングツリー ポートIDでルートポートが決まるとき
- スパニングツリーのポートの状態 ~ブロッキング/リスニング/ラーニング/フォワーディング~
- TCN BPDUによるトポロジ変更通知
- PVST ~VLANごとにスパニングツリーを考える~
- スパニングツリー(PVST)の設定と確認
- PortFast ~すぐにフォワーディング状態にする~
- スパニングツリーの設定例
- RSTP ~高速なスパニングツリー~
- RSTPの設定例
- ルートガード
- BPDUガード/BPDUフィルタ
- PoE ~UTPケーブルで電源供給~
- イーサチャネルの概要 ~複数のイーサネットリンクをまとめる~
- イーサチャネルの負荷分散 ~単純に帯域幅が増えるわけではない~
- L2イーサチャネルの設定 ~スイッチポートをまとめる~
- L3イーサチャネル ~ルーテッドポートをまとめる~
- イーサチャネルの設定例 L3イーサチャネルとL2イーサチャネルの接続
- LACP/PAgPのshowコマンド
- [Juniper-Cisco相互接続] L2リンクアグリゲーションの設定例
- [Juniper-Cisco相互接続] L3リンクアグリゲーションの設定例
- ストームコントロール