UDLD の概要
UDLD は、光ファイバまたはツイストペア イーサネット ケーブルを使用して接続されたデバイスからケーブルの物理設定をモニタしたり、単一方向リンクの存在を検出したりできるようにするためのレイヤ 2 プロトコルです。このプロトコルが単一方向リンクを正常に識別してディセーブルにするには、接続されたすべてのデバイスで UDLD がサポートされていなければなりません。UDLD は単一方向リンクを検出すると、影響を受けるポートをディセーブルにして警報を発信します。単一方向リンクは、スパニング ツリー トポロジ ループを含むさまざまな問題を引き起こす可能性があります。
動作モード
UDLD では、通常(デフォルト)とアグレッシブの 2 つの動作モードがサポートされます。通常モードの UDLD は、光ファイバ接続でのポートの誤った接続による単一方向リンクを検出できます。アグレシッブ モードの UDLD は、光ファイバ リンクおよびツイストペア リンク上の片方向トラフィックと、光ファイバ リンク上のポートの誤った接続による単一方向リンクも検出できます。
通常およびアグレッシブの両モードの UDLD は、レイヤ 1 のメカニズムを使用してリンクの物理ステータスを学習します。レイヤ 1 では、自動ネゴシエーションによって物理的なシグナリングと障害検出が処理されます。UDLD は、ネイバー ID の検出や誤って接続されたポートのシャットダウンなど、自動ネゴシエーションでは実行不可能な処理を実行します。自動ネゴシエーションと UDLD の両方をイネーブルにすると、レイヤ 1 と 2 の検出機能が連動し、物理的および論理的な単一方向接続と他のプロトコルの誤動作が回避されます。
ローカル デバイスが送信したトラフィックをネイバーが受信したのにネイバーから送信されたトラフィックをローカル デバイスが受信しない場合に、単一方向リンクが発生します。
通常モードの UDLD は、光ファイバ ポートの光ファイバが誤って接続されている場合に単一方向リンクを検出しますが、レイヤ 1 メカニズムはこの誤った接続を検出しません。ポートが正しく接続されていてもトラフィックが片方向である場合、単一方向リンクを検出するはずのレイヤ 1 メカニズムがこの状況を検出できないため、UDLD は単一方向リンクを検出できません。この場合、論理リンクは不確定と見なされ、UDLD はポートをディセーブルにしません。
UDLD が標準モードで、1 組のファイバ ストランドの 1 つが切断された場合、自動ネゴシエーションがアクティブであれば、レイヤ 1 メカニズムがリンクの物理的な問題を検出するため、リンクは維持されません。この場合、UDLD は何の処理も行わず、論理リンクは不明となります。
アグレッシブ モードでは、UDLD はこれまでの検出方法で単一方向リンクを検出します。アグレッシブ モードの UDLD は、2 つのデバイス間の障害発生が許されないポイントツーポイント リンクの単一方向リンクも検出できます。また、次のいずれかの問題が発生している場合に、単一方向リンクも検出できます。
• 光ファイバ リンクまたはツイストペア リンクで、ポートの 1 つがトラフィックを送受信できない。
• 光ファイバ リンクまたはツイストペア リンクで、ポートの 1 つがダウンし、残りのポートが稼動している。
• ケーブルのうち 1 本の光ファイバが切断されている。
これらの場合、UDLD は影響を受けたポートをディセーブルにします。
ポイントツーポイント リンクでは、UDLD Hello パケットをハートビートと見なすことができ、ハートビートがあればリンクは正常です。逆に、ハートビートがないということは、双方向リンクを再確立できない限り、リンクをシャットダウンする必要があることを意味しています。
レイヤ 1 の観点からケーブルの両方の光ファイバが正常な状態であれば、アグレッシブ モードの UDLD はそれらの光ファイバが正しく接続されているかどうか、およびトラフィックが正しいネイバー間で双方向に流れているかどうかを検出します。自動ネゴシエーションはレイヤ 1 で動作するため、このチェックは自動ネゴシエーションでは実行できません。
単一方向リンクの検出方法
UDLD は次の 2 つのメカニズムを使用して動作します。
• ネイバー データベース メンテナンス
UDLD は、アクティブな各ポート上で Hello パケット(アドバタイズまたはプローブとも呼ばれます)を定期的に送信して、他の UDLD 対応ネイバーに関して学習し、各デバイスがネイバーに関する情報を保持できるようにします。
スイッチが Hello メッセージを受信すると、エージング タイム(ホールドタイムまたは Time To Live(TTL))が経過するまで、情報をキャッシュします。古いキャッシュ エントリの期限が切れる前に、スイッチが新しい Hello メッセージを受信すると、古いエントリが新しいエントリで置き換えられます。
UDLD の稼動中にポートがディセーブルになったり、ポート上で UDLD がディセーブルになったり、またはスイッチをリセットした場合、UDLD は設定変更の影響を受けるポートの既存のキャッシュ エントリをすべて消去します。UDLD は、ステータス変更の影響を受けるキャッシュの一部をフラッシュするようにネイバーに通知するメッセージを少なくとも 1 つ送信します。このメッセージは、キャッシュを継続的に同期するためのものです。
• イベントドリブン検出およびエコー
UDLD は検出メカニズムとしてエコーを利用します。UDLD デバイスが新しいネイバーを学習するか、または同期していないネイバーから再同期要求を受信すると、接続の UDLD デバイス側の検出ウィンドウを再起動して、エコー メッセージを返送します。この動作はすべての UDLD ネイバーに対して同様に行われるため、エコー送信側では返信エコーを受信するように待機します。
検出ウィンドウが終了し、有効な応答メッセージが受信されなかった場合、リンクは、UDLD モードに応じてシャットダウンされることがあります。UDLD が通常モードにある場合、リンクは不確定と見なされ、シャットダウンされない場合があります。UDLD がアグレッシブ モードにある場合は、リンクは単一方向と見なされ、ポートはディセーブルになります。
通常モードにある UDLD が、アドバタイズまたは検出段階にあり、すべてのネイバーのキャッシュ エントリが期限切れになると、UDLD はリンクアップ シーケンスを再起動し、未同期の可能性のあるネイバーとの再同期を行います。
アグレッシブ モードをイネーブルにしていて、ポートのすべてのネイバーがアドバタイズまたは検出段階で期限切れになると、UDLD はリンクアップ シーケンスを再起動し、未同期の可能性のあるネイバーとの再同期を行います。高速な一連のメッセージの送受信後に、リンク ステートが不確定のままの場合、UDLD はポートをシャットダウンします。
図 25-1 に、単一方向リンク状態の例を示します。
図 25-1 UDLD による単一方向リンクの検出
UDLD の設定
ここでは、次の設定情報について説明します。
• 「UDLD のデフォルト設定」
• 「設定時の注意事項」
• 「UDLD のグローバルなイネーブル化」
• 「インターフェイス上での UDLD のイネーブル化」
• 「UDLD によってディセーブルにされたインターフェイスのリセット」
UDLD のデフォルト設定
表 25-1 に、UDLD のデフォルト設定を示します。
表 25-1 UDLD のデフォルト設定
|
|
UDLD グローバル イネーブル ステート |
グローバルにディセーブル |
ポート別の UDLD イネーブル ステート(光ファイバ メディア用) |
すべてのイーサネット光ファイバ ポート上でディセーブル |
ポート別の UDLD イネーブル ステート(ツイストペア(銅線)メディア用) |
すべてのイーサネット 10/100 および 1000BASE-TX ポート上でディセーブル |
UDLD アグレッシブ モード |
ディセーブル |
設定時の注意事項
UDLD 設定時の注意事項を次に示します。
• UDLD は Asynchronous Transfer Mode(ATM; 非同期転送モード)ポート上ではサポートされていません。
• UDLD 対応ポートは、別のスイッチの UDLD 非対応ポートに接続されている場合に単一方向リンクを検出できません。
• モード(通常またはアグレッシブ)を設定する場合は、リンクの両側に同じモードを設定します。
注意 ループ ガードは、ポイントツーポイント リンクだけで動作します。リンクの各終端には、STP を実行するデバイスを直接接続することを推奨します。
UDLD のグローバルなイネーブル化
アグレッシブ モードまたは通常モードで UDLD をイネーブルにし、スイッチのすべての光ファイバ ポートに設定可能なメッセージ タイマーを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
udld { aggressive | enable | message time message-timer-interval } |
UDLD の動作モードを指定します。 • aggressive :すべての光ファイバ ポート上で、UDLD をアグレッシブ モードでイネーブルにします。 • enable :スイッチ上のすべての光ファイバ ポート上で、UDLD を通常モードでイネーブルにします。UDLD はデフォルトでディセーブルになります。 個々のインターフェイスの設定は、 udld enable グローバル コンフィギュレーション コマンドの設定よりも優先されます。 アグレッシブおよび通常モードの詳細については、「動作モード」を参照してください。 • message time message-timer-interval :アドバタイズ フェーズに存在し、双方向と検出されたポートにおける UDLD プローブ メッセージ間の間隔を設定します。指定できる範囲は 7 ~ 90 秒です。 インターフェイス コンフィギュレーション コマンドを使用します。詳細については、「インターフェイス上での UDLD のイネーブル化」を参照してください。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show udld |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
UDLD をグローバルでディセーブルにするには、 no udld enable グローバル コンフィギュレーション コマンドを使用して、すべての光ファイバ ポート上で通常モードの UDLD をディセーブルにします。すべての光ファイバ ポート上でアグレッシブ モードの UDLD をディセーブルにする場合は、 no udld aggressive グローバル コンフィギュレーション コマンドを使用します。
インターフェイス上での UDLD のイネーブル化
ポート上で、UDLD をアグレッシブ モードまたは通常モードでイネーブルにするか、または UDLD をディセーブルにするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
UDLD のためにイネーブルにするポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
udld port [ aggressive ] |
UDLD はデフォルトでディセーブルになります。 • udld port :指定されたポート上で、UDLD を通常モードでイネーブルにします。 • udld port aggressive :指定されたポート上で、UDLD をアグレッシブ モードでイネーブルにします。 インターフェイス コンフィギュレーション コマンドを使用します。 アグレッシブおよび通常モードの詳細については、「動作モード」を参照してください。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show udld interface-id |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
UDLD によってディセーブルにされたインターフェイスのリセット
UDLD によってディセーブルにされたすべてのポートをリセットするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
udld reset |
UDLD によってディセーブルにされたすべてのポートをリセットします。 |
ステップ 2 |
show udld |
設定を確認します。 |
次のコマンドを使用して、ポートを起動することもできます。
• shutdown インターフェイス コンフィギュレーション コマンドの後に no shutdown インターフェイス コンフィギュレーション コマンドを実行すると、ディセーブルされたポートが再起動されます。
• no udld { aggressive | enable } グローバル コンフィギュレーション コマンドの後に udld { aggressive | enable } グローバル コンフィギュレーション コマンドを実行すると、ディセーブルされたポートが再びイネーブルになります。
• no udld port インターフェイス コンフィギュレーション コマンドの後に udld port [ aggressive ] インターフェイス コンフィギュレーション コマンドを実行すると、ディセーブルされた光ファイバ ポートが再びイネーブルになります。
• errdisable recovery cause udld グローバル コンフィギュレーション コマンドを実行すると、UDLD の error-disabled ステートから自動回復するタイマーをイネーブルにできます。さらに、 errdisable recovery interval interval グローバル コンフィギュレーション コマンドを実行すると、UDLD の error-disabled ステートから回復する時間を指定できます。