独自ループ検出

独自ループ検出

1. 機能概要

本製品は、構成したネットワーク環境でループが発生していないかどうかを検出する独自の仕組みを提供します。
LAN/SFPポートおよび論理インターフェース (以降、「ループ検出対応インターフェース」という)から独自のループ検出フレームを送信し、そのフレームが自身に戻ってくるかどうかを監視します。
送信フレームが自身に戻ってきた場合、該当ポートでループが発生していると判断します。

2. 用語の定義

LDF (Loop Detection Frame)

ループ検出のために使用するヤマハ独自のイーサーネットフレーム。

3. 機能詳細

3.1. ループ検出 動作仕様

本製品のループ検出仕様について、以下に示します。

  1. 本製品のループ検出は、システム全体の有効・無効制御に加え、ループ検出対応インターフェースごとに有効・無効制御が行えます。
    ループ検出対応インターフェースでループ検出を機能させる場合は、システム全体の設定が 有効 になっている必要があります。

    • システム全体の設定は、グローバルコンフィギュレーションモードで loop-detect コマンド を使用します。

    • ループ検出対応インターフェースごとの設定は、 インターフェースモードで loop-detect コマンド を使用します。

  2. ループ検出機能の初期設定は、以下のようになっています。(初期状態では機能していません)

    • システム全体の設定: 無効

    • ループ検出対応インターフェースの設定: 有効

  3. ループ検出、スパニングツリープロトコルともにシステム全体の設定が 有効 に設定されている場合、ループ検出対応インターフェースの設定は、スパニングツリープロトコルを優先的に扱います。

  4. ループ検出機能が有効となっている本製品は、以下の動作を行います。

    • ループ検出フレーム (以降、「LDF」という) を、リンクアップしているループ検出対応インターフェースから 2秒間隔 で送信します。
      ただし、ミラーリング設定を行ったポート(ミラーポート)は、 ループ検出機能対象外 とします。

    • 送信したLDFを自身で受信した場合、ループが発生したと判断し、LDFの受信ポートは以下の動作を行います。

      • Port Shutdown

        • 送信と受信のループ検出対応インターフェースが同じ場合、該当ポートをシャットダウンします。

        • シャットダウン後、5分後にリンクアップし、LDFの送信を再開します。(ループが発生している場合は、本動作が繰り返されます。)

        • 5分の監視時間内に該当ポートをリンクアップしたい場合は、 no shutdown コマンドを使用します。

      • Port Blocking

        • 以下のいずれかに該当した場合、LDFの受信ポートはLDF以外のフレームを遮断します。

          • 論理インターフェースから送信したLDFを、LAN/SFPポートで受信した

          • スタティック論理インターフェースから送信したLDFを、LACP論理インターフェースで受信した

          • 送信と受信のインターフェース種別が同じで、インターフェース番号の大きいほうがLDFを受信した

        • LDFは定期的に送信しますが、他機器からのLDFの転送は行いません。

        • Blockingしたループ検出対応インターフェースは、5秒間、自身が送信したLDFを検出しなかった場合、ループが解消したと判断し、通常の通信を再開します。

      • Port Detected

        • 以下のいずれかに該当した場合、他のポートでブロッキングを行っているため、LDFの受信ポートは通常の通信を継続します。

          • LAN/SFPポートから送信したLDFを、論理インターフェースで受信した

          • LACP論理インターフェースから送信したLDFを、スタティック論理インターフェースで受信した

          • 送信と受信のインターフェース種別が同じで、インターフェース番号の小さいほうがLDFを受信した

    • ループを検出すると、本製品のポートランプ表示を専用の状態に変更し、以下のSYSLOGメッセージを出力します。

      • [LOOP]: inf: Detected Loop! : port1.1, 1.3 …​ , sa1,3 …​, po1,3 <1>

    • ループ解消後の通信再開と合わせて、本製品のポートランプ表示を復旧し、以下のSYSLOGメッセージを出力します。

      • [LOOP]: inf: Recovered Loop! : port1.1, 1.3 … , sa1,3 …, po1,3 …

  5. ループ検出したループ検出対応インターフェースで Shutdown / Blocking 動作を行わずに、強制的に Detected 動作にすることができます。

    • 本設定は、 loop-detect blocking disable コマンドを使用します。

    • 本設定が有効な場合、次に大きな番号のポートでPort Blockingが実施されます。(Shutdown動作は行われません。)

  6. ループ検出状態(Detected, Blocking)は、 loop-detect reset コマンドにより、強制的に解消することができます。(MODEボタンのある機種では、MODEボタンの3秒間長押しでも可能。)
    ループ検出中のポートでリンクダウンが発生した場合も同様に、検出状態は解消されます。 (ポートランプ表示を復旧し、SYSLOGメッセージを出力します。)

  7. ループ検出機能の状態は、 show loop-detect コマンドで確認できます。以下を表示します。

    • システムの有効/無効状態の表示

    • ループ検出状態の表示(ループ検出対応インターフェース単位の状態)

  8. ループ検出機能が無効な状態で、ループ検出対応インターフェースで LDF を受信すると、他の全ポートから受信フレームをそのまま転送します。
    ただし、ミラーリング設定を行ったポート(ミラーポート)は、転送対象外とします。

  9. 以下のような場合、本製品に接続されているハブで発生しているループを検出できないことがあります。

    • 接続中のハブでループ検出が行われている

    • 接続中のハブでループ検出フレームが転送されない

3.2. ループ検出例

以下に本製品におけるループ検出例を示します。

  • ループ検出例

ループ検出ケース 構成例 ループ検出状況

1

image

自分が送信したLDFを受信することでループを検出します。
 port1.1 : Shutdown

2

image

同一端末の複数ポートでループを検出した場合、大きい番号の
ポートをBlockingします。
 port1.1 : Detected
 port1.3 : Blocking

3

image

複数のポートをBlockingすることで、ループを回避します。
Blocking Portの選択は、Case2と同じ規則となります。
 port1.1 : Detected
 port1.2 : Blocking
 port1.3 : Blocking

4

image

複数組のループを検出した場合、各組で大きい番号のポートを
Blockingします。
 port1.1 : Detected, port1.2 : Blocking
 port1.3 : Detected, port1.4 : Blocking

5

image

スイッチ同士でループが起きた場合、どちらか一方でループが
検出されます。
○スイッチ#Aのport1.3で検出した場合
 port1.1: Detected, port1.3: Blocking

○スイッチ#Bのport1.7で検出した場合
 port1.5: Detected, port1.7: Blocking

6

image

ケーブルが繋がっている6ポートのうち、ループ検出が一番早かった
一つのポートをBlockingします。
○スイッチ#Aのport1.2で検出した場合
 port1.1: Detected, port1.2: Blocking
+
○スイッチ#Bのport1.4で検出した場合
 port1.3: Detected, port1.4: Blocking

○スイッチ#Cのport1.6で検出した場合
 port1.5: Detected, port1.6: Blocking

7

image

各ポートから送信したLDFが、各ポートに戻ってくるため、
port1.5, port1.6ともにShutdownします。
 port1.5 : Shutdown
 port1.6 : Shutdown

8

image

スイッチ#Bのport1.6をBlockingします。
タイミングによってはスイッチ#Aのport1.1はShutdownしますが、
スイッチ#Bのport1.6をBlockingすることで、スイッチ#Aのport1.1の
ループは解消されます。
 スイッチ#A port1.1 : Shutdown
 スイッチ#B port1.5 : Detected
 スイッチ#B port1.6 : Blocking

4. 関連コマンド

関連コマンドについて、以下に示します。
コマンドの詳細は、コマンドリファレンスを参照願います。

操作項目 操作コマンド

ループ検出機能の有効・無効設定(システム)

loop-detect enable/disable

ループ検出機能の有効・無効設定(インターフェース)

loop-detect enable/disable

ループ検出時のPort Blockingの設定

loop-detect blocking enable/disable

ループ検出時のPort Blocking持続時間の設定

loop-detect blocking interval

ループ検出状態のリセット

loop-detect reset

ループ検出 設定状態の参照

show loop-detect

5. コマンド実行例

ループ検出機能が有効になっていると、以下のような構成のとき、本製品上で発生しているループを検出します。

  • [例1] 本製品内でループが発生

    image

  • [例2] 本製品に接続されている他社ハブでループが発生

    image

LANポート #1 と #3 でループを検出するように設定します。

■設定手順

  1. システム全体のループ検出機能を有効にします。

    Yamaha(config)#loop-detect enable (1)
    1 システム全体のループ検出機能を有効にする
  2. LANポート #1 と #3 のループ検出機能を有効にします。

    Yamaha(config)#interface port1.1
    Yamaha(config-if)#spanning-tree disable (1)
    Yamaha(config-if)#loop-detect enable (2)
    Yamaha(config-if)#loop-detect blocking enable (3)
    (上記設定をLANポート #3 に対しても行います。)
    1 LANポートごとのスパニングツリー機能を無効にする
    2 LANポートごとのループ検出機能を有効にする
    3 Blockingを有効にする
    • LANポートごとのループ検出機能の有効化、blockingの有効化は、初期値として設定されているため特に設定する必要はありません。

  3. ループ検出機能の設定を確認します。
    LANポート #1 と #3 でループ検出機能が有効(*)になっていることが確認できます。

    Yamaha>show loop-detect
    loop-detect: Enable
    
    port      loop-detect    port-blocking           status
    -------------------------------------------------------
    port1.1        enable(*)        enable           Normal
    port1.2        enable           enable           Normal
    port1.3        enable(*)        enable           Normal
    port1.4        enable           enable           Normal
    port1.5        enable           enable           Normal
    port1.6        enable           enable           Normal
    port1.7        enable           enable           Normal
    port1.8        enable           enable           Normal
    port1.9        enable           enable           Normal
       :             :                :                :
    -------------------------------------------------------
    (*): Indicates that the feature is enabled.
  4. ループ検出が発生した場合、ループ検出機能の状態が確認できます。

    • 例1の場合

      Yamaha>show loop-detect
      loop-detect: Enable
      
      port      loop-detect    port-blocking           status
      -------------------------------------------------------
      port1.1        enable(*)        enable         Detected (1)
      port1.2        enable           enable           Normal
      port1.3        enable(*)        enable         Blocking (2)
      port1.4        enable           enable           Normal
      port1.5        enable           enable           Normal
      port1.6        enable           enable           Normal
      port1.7        enable           enable           Normal
      port1.8        enable           enable           Normal
      port1.9        enable           enable           Normal
         :             :                :                :
      -------------------------------------------------------
      (*): Indicates that the feature is enabled.
      1 LANポート #1 はDetected状態になる
      2 LANポート #3 はBlocking状態になる
    • 例2の場合

      Yamaha>show loop-detect
      loop-detect: Enable
      
      port      loop-detect    port-blocking           status
      -------------------------------------------------------
      port1.1        enable(*)        enable         Shutdown (1)
      port1.2        enable           enable           Normal
      port1.3        enable(*)        enable           Normal
      port1.4        enable           enable           Normal
      port1.5        enable           enable           Normal
      port1.6        enable           enable           Normal
      port1.7        enable           enable           Normal
      port1.8        enable           enable           Normal
      port1.9        enable           enable           Normal
         :             :                :                :
      -------------------------------------------------------
      (*): Indicates that the feature is enabled.
      1 LANポート #1 はShutdown状態になる

6. 注意事項

  • 論理インターフェースに束ねるLAN/SFPポートは、ループ検出の設定 (有効・無効、Port Blocking) が同じである必要があります。

    • ループ検出の設定が異なるLAN/SFPポートは論理インターフェースとして束ねることはできません。

    • ループ検出の設定は論理インターフェースに所属しているLAN/SFPポートに対して行うことができません。