LAN スイッチング : スパニング ツリー プロトコル

単方向リンク検出プロトコル機能の説明と設定

2008 年 7 月 23 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2007 年 7 月 9 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
問題の定義
単方向リンク検出プロトコルの動作のしくみ
UDLD の動作モード
提供状況
設定と監視
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、Unidirectional Link Detection(UDLD; 単方向リンク検出)プロトコルが、スイッチド ネットワークでのトラフィックのフォワーディング ループとブラック ホールの発生を防止するのに、どのように役立つかを説明しています。

前提条件

要件

このドキュメントに関する特別な要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアに限定されるものではありません。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

問題の定義

Spanning-Tree Protocol(STP; スパニングツリー プロトコル)を使用すれば、冗長な物理トポロジを解決して、ループが発生しないツリー状の転送トポロジを構築できます。

この機能は、1 つまたは複数のポートをブロックすることによって実現されます。1 つ以上のポートをブロックすることにより、転送トポロジにループがなくなります。STP の動作は、Bridge Protocol Data Unit(BPDU; ブリッジ プロトコル データ ユニット)の受信と送信に依存しています。ポートがブロックされたスイッチ上で動作する STP プロセスで、そのポートのアップストリームの(指定された)スイッチからの BPDU が受信されなくなると、STP により最終的にはそのポートの STP 情報がエージング アウトされて、forwarding 状態に移行されます。こうなると、フォワーディング ループまたは STP ループが発生します。

ループになったパスをパケットが無限に回り始め、ますます帯域幅が消費されるようになります。その結果、ネットワークが停止する可能性があります。

ポートが up 状態なのに、スイッチが BPDU を受信しなくなる場合があるのはなぜでしょうか。これは単方向リンクが原因です。次の状況が発生すると、リンクは単方向とみなされます。

  • リンクの接続の両端が up 状態になっている。ローカル側はリモート側から送信されたパケットを受信していないが、リモート側はローカル側から送信されたパケットを受信している。

次のシナリオについて考えます。矢印は STP BPDU の流れを示しています。

77a.gif

通常の運用では、ブリッジ B は、リンク B-C に指定されています。ブリッジ B は BPDU を C へ送信しますが、C ではそのポートがブロックされています。B からの BPDU がそのリンク上に正しく送信されていることが C で認識されている間は、ポートがブロックされます。

ここで、リンク B-C に C 方向の障害が発生したらどうなるかを考えます。C は B からのトラフィックを受信しなくなりますが、B は引き続き C からのトラフィックを受信します。

C はリンク B-C 上の BPDU を受信しなくなり、最後の BPDU で受信した情報のエージングが行われます。maxAge STP タイマーの設定によりますが、これには最大 20 秒かかります。ポートの STP 情報がエージング アウトされると、そのポートの状態は blocking から listeninglearning に移行し、最終的には forwarding STP 状態に移行します。このようになると、A-B-C の三点内にブロッキング ポートがなくなるので、フォワーディング ループが発生します。パケットはこのパスを循環することになり(B は引き続き C からのパケットを受信します)、リンクが完全にいっぱいになるまで帯域幅がさらに使用されていきます。その結果、ネットワークがダウンします。

77b.gif

別の問題として、単方向リンクが原因でトラフィックのブラックホールが発生する場合もあります。

単方向リンク検出プロトコルの動作のしくみ

フォワーディング ループが発生する前に単方向リンクを検出するために、Cisco では UDLD プロトコルの開発と実装を行いました。

UDLD は、レイヤ 1(L1)メカニズムとともに動作して、リンクの物理的な状態を判別するレイヤ 2(L2)プロトコルです。レイヤ 1 では、オートネゴシエーションによって、物理的シグナリングと障害検出が行われます。UDLD では、隣接ルータの識別情報の検出や正しく接続されていないポートのシャットダウンなど、オートネゴシエーションでは行えないタスクが実行されます。オートネゴシエーションと UDLD の両方を有効にすると、レイヤ 1 とレイヤ 2 の検出機能がともに動作して、物理的および論理的な単方向接続と他のプロトコルの動作不良が防止されます。

UDLD は、隣接デバイス間でプロトコル パケットを交換することによって動作しています。UDLD が正しく動作するには、リンク上の両方のデバイスで UDLD がサポートされており、それぞれのポートで有効になっている必要があります。

UDLD が設定されている各スイッチ ポートでは、そのポート自身のデバイス ID またはポート ID およびそのポートの UDLD で認識された隣接デバイスまたは隣接ポートの ID が格納された、UDLD プロトコル パケットが送信されます。隣接ポートでは、もう一方の側から受信したパケットに、自分のデバイス ID またはポート ID(エコー)が認識される必要があります。

着信 UDLD パケットで、自分のデバイス ID またはポート ID を特定の期間認識できないと、リンクは単方向とみなされます。

エコーアルゴリズムを使用すれば、次の問題を検出できます。

  • リンクは両側で up 状態になっているが、パケットは片側だけで受信されている。

  • リモート側の同じポートに受信ファイバと送信ファイバが接続されていない場合の配線ミス。

UDLD により単方向リンクが検出されると、対応するポートが無効にされて、次のメッセージがコンソールに表示されます。

UDLD-3-DISABLE: Unidirectional link detected on port 1/2. Port disabled

UDLD によってシャットダウンされたポートは、手動で再び有効にするか、(設定されている場合は)errdisable タイムアウトの有効期限が切れるまで、無効のままになります。

UDLD の動作モード

UDLD は、normalaggressive の 2 つのモードで動作可能です。

normal モードでは、ポートのリンク状態が双方向と判別されている場合に UDLD 情報がタイムアウトした場合、UDLD では何のアクションも取られません。UDLD のポート状態は undetermined となります。ポートは STP の状態に従って動作します。

aggressive モードでは、ポートのリンク状態が双方向と判別されている場合に、ポート上のリンクが引き続き up 状態の間に UDLD 情報がタイムアウトすると、UDLD ではポートの状態の再確立が試みられます。再確立に失敗したら、ポートは errdisable 状態になります。

UDLD が動作しているポートで、保留時間の間に隣接ポートから UDLD パケットが受信されないと、UDLD 情報のエージング アウトが発生します。ポートの保留時間はリモート ポートによって規定され、リモート側のメッセージ間隔に依存します。メッセージ間隔が短ければ短いほど、保留時間が短くなって検出が速くなります。最近実装された UDLD では、メッセージ間隔を設定できます。

一部の物理的な問題や全二重/半二重のミスマッチが原因でポートでのエラー率が高くなると、UDLD 情報がエージング アウトする場合があります。この場合のパケットの廃棄はリンクが単方向になったことを意味するものではないので、normal モードの UDLD では、そのようなリンクが無効にされることはありません。

適正な検出時間を確保するためには、正しいメッセージ間隔を選択できることが重要です。メッセージ間隔は、フォワーディング ループが形成される前に単方向リンクを検出できる程度には速い必要がありますが、スイッチの CPU を過負荷にする程であってはなりません。デフォルトのメッセージ間隔は 15 秒ですが、これはデフォルトの STP タイマーでフォワーディング ループが形成される前に単方向リンクを検出するのに十分な速さです。検出時間は、メッセージ間隔のおよそ 3 倍です。

次に、例を示します。Tdetection ~ message_interval x3

このように、15 秒のデフォルトのメッセージ間隔の場合は 45 秒になります。

単方向リンクの障害の場合、STP が再コンバージするまでに Treconvergence=max_age + 2x forward_delay かかります。デフォルト タイマーの設定では、20+2x15=50 秒かかります。

適切なメッセージ間隔を選択して、Tdetection < Treconvergence の関係を維持できるようにすることを推奨いたします。

aggressive モードでは、情報がエージング アウトされると、UDLD では 8 秒間パケットが毎秒送信されてリンク状態の再確立が試みられます。リンク状態を引き続き判別できない場合は、リンクが無効になります。

Aggressive モードでは、さらに次の状況が検出されます。

  • ポートがスタックしている(ポートの片側は送信も受信もしていないが、リンクは両側で up 状態である)。

  • リンクの片側は up 状態で、もう一方の側は down 状態である。この問題は、ファイバ ポートで発生する場合があります。ローカル ポートの送信ファイバが抜かれると、ローカル側のリンクは up 状態のままです。しかし、リモート側では down 状態になります。

最近では、これらの場合に両側のリンクを down 状態にするために、ファイバの FastEthernet のハードウェアに Far End Fault Indication(FEFI)機能が実装されています。ギガビット イーサネットでは、リンク ネゴシエーションによって同様の機能が実現されています。銅線ポートでは、イーサネット リンクのパルスを使用してリンクが監視されているので、このタイプの問題は通常発生しません。両方のケースともに重要なのは、ポート間が接続されていないので、フォワーディング ループは形成されないという点です。ただし、リンクの片側が up 状態で、もう一方の側が down 状態の場合は、トラフィックのブラックホールが発生する可能性があります。Aggressive モードの UDLD は、そのような状況を防止する設計になっています。

提供状況

通常モードの UDLD は、次のバージョンで使用可能です。

  • Catalyst 4500/4000、5500/5000、および 6500/6000 ファミリ スイッチでは Catalyst OS バージョン 5.1.1 以降

  • Catalyst 2900XL および 3500XL スイッチでは Cisco IOS(R) ソフトウェア リリース 12.0(5)XU 以降

  • Catalyst 2940 スイッチでは Cisco IOS ソフトウェア リリース 12.1(13)AY 以降

  • Catalyst 2950 スイッチでは Cisco IOS ソフトウェア リリース 12.0(5)WC(1) 以降

  • Catalyst 2955 スイッチでは Cisco IOS ソフトウェア リリース 12.1(12c)EA1 以降

  • Catalyst 2970 スイッチでは Cisco IOS ソフトウェア リリース 12.1(11)AX 以降

  • Catalyst 3550 スイッチでは Cisco IOS ソフトウェア リリース 12.1(4)EA1 以降

  • Catalyst 3560 スイッチでは Cisco IOS ソフトウェア リリース 12.1(19)EA1 以降

  • Catalyst 3750 スイッチでは Cisco IOS ソフトウェア リリース 12.1(11)AX 以降

  • Cisco IOS システム ソフトウェアが稼働している Catalyst 6500/6000 スイッチでは Cisco IOS ソフトウェア リリース 12.1(2)E 以降

  • Cisco IOS が稼働している Catalyst 4500/4000 スイッチでは Cisco IOS ソフトウェア リリース 12.1(8a)EW 以降

Aggressive モードは、次のソフトウェア バージョン以降で実装されています。

  • Catalyst 4500/4000、5500/5000、および 6500/6000 ファミリスイッチでは Catalyst OS バージョン 5.4.3 以降

  • Cisco IOS システム ソフトウェアが稼働している Catalyst 6500/6000 スイッチでは Cisco IOS ソフトウェア リリース 12.1(3a)E3 以降

  • Catalyst 2950 スイッチでは Cisco IOS ソフトウェア リリース 12.1(6)EA2 以降

  • Catalyst 2955 スイッチでは Cisco IOS ソフトウェア リリース 12.1(12c)EA1 以降

  • Catalyst 2970 スイッチでは Cisco IOS ソフトウェア リリース 12.1(11)AX 以降

  • Catalyst 3550 スイッチでは Cisco IOS ソフトウェア リリース 12.1(4)EA1 以降

  • Catalyst 3750 スイッチでは Cisco IOS ソフトウェア リリース 12.1(11)AX 以降

設定と監視

次のコマンドは、CatOS が稼働している Catalyst スイッチで UDLD の設定の詳細を示します。次のコマンドを使用して、まず UDLD をグローバルに有効にする必要があります(デフォルトでは無効になっています)。

Vega> (enable) set udld enable
UDLD enabled globally

次のコマンドを発行します。UDLD が有効かどうかを確認します。

Vega> (enable) show udld
UDLD:  enabled
Message Interval: 15 seconds

また、次のコマンドを使用して、必要なポートで UDLD を有効にすることも必要です。

Vega> (enable) set udld enable 1/2
UDLD enabled on port 1/2

UDLD がポートで有効なのか無効なのか、およびリンクの状態を確認するには、show udld port コマンドを発行します。

Vega> (enable) show udld port
UDLD              : enabled
Message Interval  : 15 seconds

Port      Admin Status  Aggressive Mode  Link State
--------  ------------  ---------------  ----------------
 1/1      enabled       disabled         undetermined
 1/2      enabled       disabled         bidirectional

ポートごとに set udld aggressive-mode enable <module/port> コマンドを発行すると、Aggressive モードの UDLD が有効になります。

Vega> (enable) set udld aggressive-mode enable 1/2
Aggressive UDLD enabled on port 1/2.
Vega> (enable) show udld port 1/2
UDLD              : enabled
Message Interval  : 15 seconds

Port      Admin Status  Aggressive Mode  Link State
--------  ------------  ---------------  ----------------
 1/2      enabled       enabled         undetermined

メッセージ間隔を変更するには、次のコマンドを発行します。

Vega> (enable) set udld interval 10
UDLD message interval set to 10 seconds

間隔は 7 から 90 秒の範囲で設定できます。デフォルトは 15 秒です。

IOS UDLD の設定の詳細は、次のドキュメントを参照してください。

  • Cisco IOS システム ソフトウェアが稼働している Catalyst 6500/6000 スイッチの場合は、『UDLD の設定』を参照してください。

  • Catalyst 2900XL/3500XL スイッチの場合は、『スイッチ ポートの設定』の「単方向リンク検出の設定」のセクションを参照してください。

  • Catalyst 2940 スイッチの場合は、『UDLD の設定』を参照してください。

  • Catalyst 2950/2955 スイッチの場合は、『UDLD の設定』を参照してください。

  • Catalyst 2970 スイッチの場合は、『UDLD の設定』を参照してください。

  • Catalyst 3550 スイッチの場合は、『UDLD の設定』を参照してください。

  • Catalyst 3560 スイッチの場合は、『UDLD の設定』を参照してください。

  • Cisco IOS が稼働している Catalyst 4500/4000 の場合は、『UDLD の設定』を参照してください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 10591