(57)【特許請求の範囲】
【請求項１】
スイッチに適用されるループ障害ハンドリング方法であって、
前記方法は、
第１のパケットを受け取るステップであって、前記第１のパケットは、送信元メディアアクセスコントロール（MAC）アドレスを含み、前記送信元MACアドレスは、前記第１のパケットを生成する装置のMACアドレスである、ステップと、
前記送信元MACアドレスに対応する第１のフラッピング回数を取得するステップであって、前記第１のフラッピング回数は、前記送信元MACアドレスが前記スイッチの異なったポート間でフラッピングする回数を示す、ステップと、
前記第１のフラッピング回数に基づいて、前記スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定するステップと、
前記スイッチが位置する前記ネットワークの中で前記ループ障害が生ずるとき、前記送信元MACアドレスに対応するフラッピングポート群を取得するステップであって、前記フラッピングポート群は、前記送信元MACアドレスがそれらに対して順次にフラッピングする前記スイッチの複数のポートを含む、ステップと、
前記複数のポートのうちのプライマリポートを決定するステップであって、前記プライマリポートは、抑制されねばならないポートである、ステップと、
前記プライマリポート上のフラッディング抑制機能を有効化するステップであって、前記フラッディング抑制機能は、前記プライマリポートによる受け取られたフラッディングパケットの転送を抑制するために使用され、ユニキャストパケットは、前記フラッディング抑制機能によって抑制されない、ステップと、
を含む、方法。
【請求項２】
前記方法は、
前記複数のポートのうちのセカンダリポートを決定するステップであって、前記セカンダリポートは、任意選択で抑制されるポートである、ステップと、
前記セカンダリポート上の前記フラッディング抑制機能を有効化するステップと、
をさらに含み、
前記スイッチが位置する前記ネットワークがイーサネットであるとき、前記セカンダリポートは前記スイッチのアクセス側ポートまたはネットワーク側ポートであり、または、
前記スイッチが位置する前記ネットワークが多数リンク透過的相互接続（TRILL）ネットワークもしくは仮想拡張可能ローカルエリアネットワーク（VXLAN）であるとき、前記セカンダリポートは前記スイッチのアクセス側ポートである、請求項１に記載の方法。
【請求項３】
前記方法は、
前記ループ障害が回復したことを決定した後、各抑制されたポートへ抑制解除命令を送信するステップであって、前記抑制解除命令は、前記抑制解除命令を受信するポートが受け取られたフラッディングパケットを転送することをトリガするために使用される、ステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記送信元MACアドレスに対応する第１のフラッピング回数を取得する前記ステップは、
前記送信元MACアドレスに基づいてフラッピング情報テーブルを探索して前記送信元MACアドレスに対応するフラッピング情報エントリを取得するステップであって、前記フラッピング情報エントリは、前記フラッピングポート群および前記第１のフラッピング回数を含む、ステップと、
前記フラッピング情報エントリから前記第１のフラッピング回数を取得するステップとを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記フラッピング情報エントリは、前記送信元MACアドレスに対応するフラッピング開始時刻をさらに含み、
前記第１のフラッピング回数は、特に、前記フラッピング開始時刻から開始して、前記送信元MACアドレスが前記スイッチの異なったポート間でフラッピングする回数であり、
前記第１のフラッピング回数に基づいて、前記スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定する前記ステップは、
前記第１のフラッピング回数を予め設定されたフラッピング閾値と比較し、前記第１のフラッピング回数が前記フラッピング閾値以上であるとき、前記スイッチが位置する前記ネットワークの中で前記ループ障害が生ずると決定するステップ、または、現在システム時刻と前記フラッピング開始時刻との間の第１の時間差を決定し、前記第１の時間差に対する前記第１のフラッピング回数の比率を計算して第１のフラッピング頻度を取得し、前記第１のフラッピング頻度を予め設定されたフラッピング頻度閾値と比較し、前記第１のフラッピング頻度が前記フラッピング頻度閾値以上であるとき、前記スイッチが位置する前記ネットワークの中で前記ループ障害が生ずると決定するステップを含む、請求項４に記載の方法。
【請求項６】
前記フラッピング情報エントリは、前記スイッチのMACアドレステーブルの中の前記送信元MACアドレスに対応するMACエントリの最終更新時刻をさらに含み、前記ループ障害が回復したことを決定する前記ステップは、
前記現在システム時刻と前記MACエントリの前記最終更新時刻の間の第２の時間差を計算するステップと、
前記第２の時間差が指定期間以上であるとき、前記ループ障害が回復したことを決定するステップとを含む、請求項４または５に記載の方法。
【請求項７】
前記送信元MACアドレスに基づいて前記フラッピング情報テーブルを探索する前記ステップの前に、前記方法は、
前記第１のパケットを受け取る第１のポートを決定するステップと、
前記第１のポートが前記送信元MACアドレスに対応する前のポートとは異なるとき、前記第１のポートに基づいて前記フラッピング情報テーブルを更新するステップであって、前記前のポートは、前記スイッチが前記第１のパケットを受け取るときの前記送信元MACアドレスに対応する前記MACエントリの中のポートである、ステップとをさらに含む、請求項４から６のいずれか一項に記載の方法。
【請求項８】
前記フラッピング情報テーブルは、前記送信元MACアドレスに対応する前記フラッピング情報エントリを含み、前記第１のポートは、前記フラッピングポート群の中に既にあり、
前記第１のポートに基づいて前記フラッピング情報テーブルを更新する前記ステップは、
前記フラッピング情報エントリの中の前記最終更新時刻を、前記スイッチが前記第１のポートに基づいて前記MACエントリを更新する時刻に変更するステップと、
前記フラッピング情報エントリの中の前のフラッピング回数に１を加えて前記第１のフラッピング回数を取得するステップであって、前記前のフラッピング回数は、前記フラッピング情報テーブルが更新される前の前記フラッピング情報エントリの中のフラッピング回数である、請求項７に記載の方法。
【請求項９】
前記フラッピング情報テーブルは、前記送信元MACアドレスに対応する前記フラッピング情報エントリを含み、前記第１のポートは、前記フラッピングポート群の中になく、
前記第１のポートに基づいて前記フラッピング情報テーブルを更新する前記ステップは、
前記第１のポートを前記フラッピングポート群に順次に加えるステップと、
前記フラッピング情報エントリの中の前記最終更新時刻を、前記スイッチが前記第１のポートに基づいて前記MACエントリを更新する時刻に変更するステップと、
前記フラッピング情報エントリの中の前のフラッピング回数に１を加えて前記第１のフラッピング回数を取得するステップであって、前記前のフラッピング回数は、前記フラッピング情報テーブルが更新される前の前記フラッピング情報エントリの中のフラッピング回数である、請求項７に記載の方法。
【請求項１０】
前記フラッピング情報テーブルは前記送信元MACアドレスに対応する前記フラッピング情報エントリを含まず、前記第１のポートに基づいて前記フラッピング情報テーブルを更新する前記ステップは、
前記フラッピング情報テーブルに、前記送信元MACアドレスに対応する前記フラッピング情報エントリを加えるステップと、
前記前のポートおよび前記第１のポートを、前記フラッピング情報エントリの中の前記フラッピングポート群に順次に加えるステップと、
前記フラッピング情報エントリに、前記送信元MACアドレスに対応する前記MACエントリの前記フラッピング開始時刻および前記最終更新時刻を加えるステップであって、前記フラッピング開始時刻は、前記スイッチが、前記第１のポートが前記前のポートとは異なることを決定した時刻であり、前記MACエントリの前記最終更新時刻は、前記スイッチが、前記第１のポートに基づいて前記MACエントリを更新した時刻である、ステップと、
前記フラッピング情報エントリの中のフラッピング回数を１に設定して前記第１のフラッピング回数を取得するステップとを含む、請求項７に記載の方法。
【請求項１１】
前記スイッチが位置する前記ネットワークがイーサネットであるとき、前記プライマリポートは、前記スイッチのアクセス側ポートもしくはネットワーク側ポートであり、または、
前記スイッチが位置する前記ネットワークが多数リンク透過的相互接続（TRILL）ネットワークもしくは仮想拡張可能ローカルエリアネットワーク（VXLAN）であるとき、前記プライマリポートは、前記スイッチのアクセス側ポートである、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
スイッチであって、
第１のパケットを受け取るよう構成された受け取りユニットであって、前記第１のパケットは、送信元メディアアクセスコントロール（MAC）アドレスを含み、前記送信元MACアドレスは、前記第１のパケットを生成する装置のMACアドレスである、受け取りユニットと、
前記送信元MACアドレスに対応する第１のフラッピング回数を取得するよう構成された第１の取得ユニットであって、前記第１のフラッピング回数は、前記送信元MACアドレスが前記スイッチの異なったポート間でフラッピングする回数を示す、第１の取得ユニットと、
前記第１のフラッピング回数に基づいて、前記スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定するよう構成された第１の決定ユニットと、
前記スイッチが位置する前記ネットワークの中で前記ループ障害が生ずるとき、前記送信元MACアドレスに対応するフラッピングポート群を取得するよう構成された第２の取得ユニットであって、前記フラッピングポート群は、前記送信元MACアドレスがそれらに対して順次にフラッピングする前記スイッチの複数のポートを含む、第２の取得ユニットと、
前記複数のポートのうちのプライマリポートを決定するよう構成された第２の決定ユニットであって、前記プライマリポートは、抑制されねばならないポートである、第２の取得ユニットと、
前記プライマリポート上のフラッディング抑制機能を有効化するよう構成された抑制有効化ユニットであって、前記フラッディング抑制機能は、前記プライマリポートによる受け取られたフラッディングパケットの転送を抑制するために使用され、ユニキャストパケットは前記フラッディング抑制機能によって抑制されない、抑制有効化ユニットと、
を含むスイッチ。
【請求項１３】
前記第２の決定ユニットは、前記複数のポートのうちのセカンダリポートを決定するよう構成され、前記セカンダリポートは、任意選択で抑制されるポートであり、
前記抑制有効化ユニットは、前記セカンダリポート上の前記フラッディング抑制機能を有効化するようさらに構成され、
前記スイッチが位置する前記ネットワークがイーサネットであるとき、前記セカンダリポートは前記スイッチのアクセス側ポートまたはネットワーク側ポートであり、または、
前記スイッチが位置する前記ネットワークが多数リンク透過的相互接続（TRILL）ネットワークもしくは仮想拡張可能ローカルエリアネットワーク（VXLAN）であるとき、前記セカンダリポートは前記スイッチのアクセス側ポートである、請求項１２に記載のスイッチ。
【請求項１４】
前記第１の決定ユニットは、前記ループ障害が回復したかどうかを決定するようさらに構成され、
前記スイッチは、前記第１の決定ユニットが前記ループ障害が回復したことを決定した後、各抑制されたポートへ抑制解除命令を送信するよう構成された抑制解除ユニットをさらに含み、前記抑制解除命令は、前記抑制解除命令を受信する前記ポートが受け取られたフラッディングパケットを転送することをトリガするために使用される、請求項１２または１３に記載のスイッチ。
【請求項１５】
前記第１の取得ユニットは、前記送信元MACアドレスに基づいてフラッピング情報テーブルを探索して前記送信元MACアドレスに対応するフラッピング情報エントリを取得するよう構成され、前記フラッピング情報エントリは、前記フラッピングポート群および前記第１のフラッピング回数を含む、請求項１２から１４のいずれか一項に記載のスイッチ。
【請求項１６】
前記フラッピング情報エントリは、前記送信元MACアドレスに対応するフラッピング開始時刻をさらに含み、
前記第１のフラッピング回数は、特に、前記フラッピング開始時刻から開始して、前記送信元MACアドレスが前記スイッチの異なったポート間でフラッピングする回数であり、
前記第１の決定ユニットは、
前記第１のフラッピング回数を予め設定されたフラッピング閾値と比較し、前記第１のフラッピング回数が前記フラッピング閾値以上であるとき、前記スイッチが位置する前記ネットワークの中で前記ループ障害が生ずると決定し、または、
現在システム時刻と前記フラッピング開始時刻との間の第１の時間差を決定し、前記第１の時間差に対する前記第１のフラッピング回数の比率を計算して第１のフラッピング頻度を取得し、前記第１のフラッピング頻度を予め設定されたフラッピング頻度閾値と比較し、前記第１のフラッピング頻度が前記フラッピング頻度閾値以上であるとき、前記スイッチが位置する前記ネットワークの中で前記ループ障害が生ずると決定するよう構成される、請求項１５に記載のスイッチ。
【請求項１７】
前記フラッピング情報エントリは、前記スイッチのMACアドレステーブルの中の前記送信元MACアドレスに対応するMACエントリの最終更新時刻をさらに含み、
前記ループ障害が回復したかどうかを決定するとき、前記第１の決定ユニットは、前記現在システム時刻と前記MACエントリの前記最終更新時刻の間の第２の時間差を計算し、前記第２の時間差が指定期間以上であるとき、前記ループ障害が回復したことを決定するよう構成される、請求項１５または１６に記載のスイッチ。
【請求項１８】
前記スイッチは、更新ユニットをさらに含み、前記更新ユニットは、
前記第１のパケットを受け取る第１のポートを決定し、
前記第１のポートが前記送信元MACアドレスに対応する前のポートとは異なるとき、前記第１のポートに基づいて前記フラッピング情報テーブルを更新するよう構成され、前記前のポートは、前記スイッチが前記第１のパケットを受け取るときの前記送信元MACアドレスに対応する前記MACエントリの中のポートである、請求項１５から１７のいずれか一項に記載のスイッチ。
【請求項１９】
前記フラッピング情報テーブルは、前記送信元MACアドレスに対応する前記フラッピング情報エントリを含み、前記第１のポートは、前記フラッピングポート群の中に既にあり、
前記更新ユニットは、
前記フラッピング情報エントリの中の前記最終更新時刻を、前記スイッチが前記第１のポートに基づいて前記MACエントリを更新する時刻に変更し、
前記フラッピング情報エントリの中の前のフラッピング回数に１を加えて前記第１のフラッピング回数を取得するよう構成され、前記前のフラッピング回数は、前記フラッピング情報テーブルが更新される前の前記フラッピング情報エントリの中のフラッピング回数である、請求項１７に記載のスイッチ。
【請求項２０】
前記フラッピング情報テーブルは、前記送信元MACアドレスに対応する前記フラッピング情報エントリを含み、前記第１のポートは、前記フラッピングポート群の中になく、
前記更新ユニットは、
前記第１のポートを前記フラッピングポート群に順次に加え、
前記フラッピング情報エントリの中の前記最終更新時刻を、前記スイッチが前記第１のポートに基づいて前記MACエントリを更新する時刻に変更し、
前記フラッピング情報エントリの中の前のフラッピング回数に１を加えて前記第１のフラッピング回数を取得するよう構成され、前記前のフラッピング回数は、前記フラッピング情報テーブルが更新される前の前記フラッピング情報エントリの中のフラッピング回数である、請求項１８に記載のスイッチ。
【請求項２１】
前記フラッピング情報テーブルは前記送信元MACアドレスに対応する前記フラッピング情報エントリを含まず、前記更新ユニットは、
前記フラッピング情報テーブルに、前記送信元MACアドレスに対応する前記フラッピング情報エントリを加え、
前記前のポートおよび前記第１のポートを、前記フラッピング情報エントリの中の前記フラッピングポート群に順次に加え、
前記フラッピング情報エントリに、前記送信元MACアドレスに対応する前記MACエントリの前記フラッピング開始時刻および前記最終更新時刻を加え、前記フラッピング開始時刻は、前記スイッチが、前記第１のポートが前記前のポートとは異なることを決定した時刻であり、前記MACエントリの前記最終更新時刻は、前記スイッチが、前記第１のポートに基づいて前記MACエントリを更新した時刻であり、
前記フラッピング情報エントリの中のフラッピング回数を１に設定して前記第１のフラッピング回数を取得するよう構成される、請求項１８に記載のスイッチ。
【請求項２２】
前記スイッチが位置する前記ネットワークがイーサネットであるとき、前記プライマリポートは、前記スイッチのアクセス側ポートもしくはネットワーク側ポートであり、または、
前記スイッチが位置する前記ネットワークが多数リンク透過的相互接続（TRILL）ネットワークもしくは仮想拡張可能ローカルエリアネットワーク（VXLAN）であるとき、前記プライマリポートは、前記スイッチのアクセス側ポートである、請求項１２から２１のいずれか一項に記載のスイッチ。
【請求項２３】
スイッチであって、
前記スイッチは、第１のメモリ、プロセッサ、および複数のポートを含み、
前記第１のメモリは、プログラムコードを格納するよう構成され、
前記プロセッサは、請求項１から１１のいずれか一項に記載の前記方法を行うために前記プログラムコードを呼び出し、前記複数のポートのうちのプライマリポートを抑制し、それによって、前記プライマリポートが、受け取られたフラッディングパケットを転送しないか、または、受け取られたフラッディングパケットを抑制比率に従って転送するよう構成される、スイッチ。
【請求項２４】
請求項１２から２２のいずれか一項または請求項２３に記載のスイッチを複数含むネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2016年12月6日に中国特許庁に出願された「ループ障害ハンドリング方法およびスイッチ」なる名称の中国特許出願第201611110936.5号に基づく優先権を主張し、その全体が参照により本明細書に組み込まれる。
【０００２】
[技術分野]
本発明は、ネットワーク通信技術に関連し、特に、ループ障害ハンドリング方法およびスイッチに関する。
【背景技術】
【０００３】
イーサネット（登録商標）における誤ったネットワーク配線またはスイッチの誤った構成は、イーサネットにループ（英語：loop）を生じさせうる。パケットがループの中で転送されると、ブロードキャストストームが形成され、このことはネットワーク全体のサービスに深刻な影響を与える。イーサネットループによって生ずるブロードキャストストームを考慮して、ネットワーク管理者は、イーサネットスイッチがループ障害に関連するポートを自動的かつ正確に見つけ、ネットワーク全体に対する悪影響を回避するために、イーサネットの中でループ障害が生ずるときは関連するポートをブロックできることを期待する。
【０００４】
ループ障害によって生ずるリスクを最小化するため、通常、イーサネット・リング・ネットワークの中で、スパニングツリープロトコル（英語：Spanning Tree Protocol、略してSTP）またはイーサネット・リング・プロテクション・スイッチング（英語：Ethernet Ring Protection switching、略してERPS）といったリング・プロテクション・プロトコルが展開される。リング・プロテクション・プロトコルは、物理リング（英語：ring）ネットワーク上の論理ループ・フリー・ネットワークの計算をサポートする。しかしながら、STPまたはERPSといったリング・プロテクション・プロトコルは、構成が正しい場合にのみ、ネットワークが論理的にループを形成しないことを確実とすることができる。ネットワークの中に誤った配線もしくは誤った構成が存在するとき、または、イーサネット・リング・ネットワーク等にアクセスしたユーザネットワークの中にループが形成されるとき、STPまたはERPSといったリング・プロテクション・プロトコルは、ループ障害を解決することができない。同様に、データセンターの大規模レイヤ２ネットワークでは、複数のアクセススイッチが同じアグリゲーション（またはコア）スイッチにアクセスし、それによって、全てのアクセススイッチが相互接続される。ネットワーク配線が誤っているとき、または、スイッチが誤って構成されているとき、ループはまた、大規模レイヤ２ネットワークの中に生ずる。その結果として、スイッチによって送られたフラッディングパケットがアグリゲーション（またはコア）スイッチを通って他のスイッチに到達した後、フラッディングパケットは、他のスイッチによってスイッチに送り返され、ブロードキャストストームを生ずる。
【０００５】
現在、比較的一般的なループ障害ハンドリング方法では、スイッチは、プローブ・パケットを送り、プローブ・パケットが複数回に亘って同じポートによって受け取られたかどうかを監視することにより、ネットワークの中にループが存在するかどうかを決定する。プローブ・パケットがスイッチのポートによって複数回に亘って受け取られるならば、スイッチは、ポートが不良ポートであると決定し、ループ・プロテクション動作を（英語：loop protection action）を行い、すなわち、不良ポートをブロック（英語：block）する。
【０００６】
しかしながら、ループの中の複数のスイッチが同時にループ・プロテクション動作を行う（すなわち、ループを検出している各スイッチがスイッチの不良ポートをブロックする）ならば、リング・ネットワークの中に複数のブロッキング・ポイントが形成される。このことは、通常のサービスの中断を生じさせうる。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の実施形態は、ネットワークの中でループが生ずるとき、複数のネットワーク装置によって同時に行われるループ・プロテクション動作によって生ずるサービスの中断を回避するためのループ障害ハンドリング方法を提供する。
【０００８】
本発明の実施形態の第１の態様は、ループ障害ハンドリング方法を提供する。スイッチは、第１のパケットを受け取り、第１のパケットは、送信元メディアアクセスコントロールMACアドレスを含み、送信元MACアドレスは、第１のパケットを生成する装置のMACアドレスである。スイッチは、送信元MACアドレスに対応する第１のフラッピング回数を取得し、第１のフラッピング回数は、送信元MACアドレスがスイッチの異なったポート間でフラッピングする回数を示す。スイッチは、第１のフラッピング回数に基づいて、スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定する。スイッチは、スイッチが位置するネットワークの中でループ障害が生ずるとき、送信元MACアドレスに対応するフラッピングポート群を取得し、フラッピングポート群は、送信元MACアドレスがそれらに対して順次フラッピングするスイッチの複数のポートを含む。スイッチは、複数のポートのうちのプライマリポートを決定し、プライマリポート上のフラッディング抑制機能を有効化し、プライマリポートは、抑制されねばならないポートであり、フラッディング抑制機能は、プライマリポートによる受け取られたフラッディングパケットの転送を抑制するために使用される。プライマリポートによる受け取られたフラッディングパケットの転送の抑制は、プライマリポートがプライマリポートによって受け取られるフラッディングパケットを転送しないこと、またはプライマリポートによって受け取られるいくつかのフラッディングパケットのみを転送することを有効化することである。
【０００９】
本発明の第１の態様における方法では、ループ障害を検出するとき、スイッチは、スイッチの複数のフラッピングポートを決定し、複数のフラッピングポートから少なくとも１つのプライマリポートを選択し、少なくとも１つのプライマリポートの各々の上のフラッディング抑制機能を有効化することができ、それによって、各プライマリポートは、プライマリポートによって受け取られるフラッディングパケットを転送しないか、または、プライマリポートによって受け取られるいくつかのフラッディングパケットのみを転送する。本発明において、スイッチのプライマリポートによって受け取られたフラッディングパケットの転送のみが抑制され、他の種別のパケットは抑制されない。したがって、従来のループ・プロテクション解決手段におけるすべてのフラッピングポートをブロックすることによって生ずるネットワークサービス中断が回避されうる。
【００１０】
スイッチが各プライマリポート上のフラッディング抑制機能を有効化することは、スイッチが各プライマリポートへ第１のフラッディング抑制命令を送信してフラッディング抑制機能を有効化することであってもよく、または、スイッチがユーザによって行われるスイッチ構成に従って各プライマリポート上のフラッディング抑制機能を直接有効化することであってもよい。
【００１１】
第１の態様の第１の実装態様において、プライマリポートは、１つ以上のポートでありうる。複数のプライマリポートがある場合、スイッチは、複数のプライマリポートの各々の上のフラッディング抑制機能を有効化する。このことは、ネットワークサービス中断を回避しつつ、ネットワークの中でのブロードキャストストームの形成を回避し、ネットワーク全体に対するループ障害の悪影響を減少させることができる。
【００１２】
第１の態様の第２の実装態様において、スイッチは、複数のポートのうちのセカンダリポートを決定し、セカンダリポートは、任意選択で抑制されるポートである。スイッチは、セカンダリポート上のフラッディング抑制機能を有効化する。セカンダリポートは、その上でスイッチが送信元MACアドレスを最も早く学習するポートである。加えて、スイッチが位置するネットワークがイーサネットであるとき、プライマリポートはスイッチのアクセス側ポートであってもよく、セカンダリポートもまた、スイッチのアクセス側ポートまたはネットワーク側ポートであってもよい。たしかに、プライマリポートとセカンダリポートとは、スイッチの異なったポートである。スイッチが位置するネットワークが多数リンク透過的相互接続TRILLネットワークまたは仮想拡張可能ローカルエリアネットワークVXLANであるとき、プライマリポートおよびセカンダリポートの双方がスイッチのアクセス側ポートである。
【００１３】
スイッチがセカンダリポート上のフラッディング抑制機能を有効化することは、スイッチがセカンダリポートへ第2のフラッディング抑制命令を送信してフラッディング抑制機能を有効化することであってもよく、または、スイッチがユーザによって行われるスイッチ構成に従ってセカンダリポート上のフラッディング抑制機能を直接有効化することであってもよい。
【００１４】
従来のループ障害プロテクション解決手段とは異なり、本発明の本実施形態によって提供される方法は、イーサネットに適用されるだけでなく、TRILLネットワークまたはVXLANがアクセス側ループを回避できないという不利な点を補償するために、TRILLネットワークまたはVXLANに適用されてもよい。
【００１５】
第３の実装態様において、スイッチはさらに、スイッチが位置するネットワークの実際の利用に基づいて、抑制される必要のあるフラッディングパケットの種別を決定し、決定されたフラッディングパケットの種別を第１のフラッディング抑制命令および／または第2のフラッディング抑制命令に加えてもよく、それによって、第１のフラッディング抑制命令および／または第2のフラッディング抑制命令を受信する各ポートは、フラッディングパケットを正しく抑制し、ブロードキャストストームを回避することと、ネットワーク転送能力を完全に使用することとの間の均衡が取られる。フラッディングパケットの種別は、ブロードキャスト、未知のマルチキャスト、および未知のユニキャストのうちの1つ以上を含む。
【００１６】
加えて、スイッチはさらに、第１のフラッディング抑制命令および／または第2のフラッディング抑制命令を受信するポートによって全てのフラッディングパケットを抑制することによって生ずるネットワークサービス中断を回避するために、各種別のパケットの対する抑制比率を設定し、抑制比率を第１のフラッディング抑制命令および／または第2のフラッディング抑制命令に加えてもよい。
【００１７】
第１の態様の第４の実装態様において、ループ障害が回復したことを決定した後、スイッチは、各抑制されたポートへ抑制解除命令を送信し、抑制解除命令は、抑制解除命令を受信するポートが、受け取られたフラッディングパケットを転送することをトリガするために使用される。
【００１８】
第４の実装態様において、スイッチは、ループ障害が回復したかどうかを自動的に検出し、ループ障害が回復したことを決定した後、抑制されたポートを抑制解除しうる。このことは、ループ障害の回復を速め、ネットワーク利用を向上させうる。
【００１９】
第１の態様の第５の実装態様において、送信元MACアドレスに対応する第１のフラッピング回数を取得するとき、スイッチは、送信元MACアドレスに基づいてフラッピング情報テーブルを探索して送信元MACアドレスに対応するフラッピング情報エントリを取得し、フラッピング情報エントリは、フラッピングポート群および第１のフラッピング回数を含む。スイッチは、フラッピング情報エントリから第１のフラッピング回数を取得する。
【００２０】
第５の実装態様は、第１のフラッピング回数を取得するための具体的な方法を提供する。フラッピングポート群と第１のフラッピング回数とを同じエントリの中に格納することは、探索時間を短縮し、探索効率を向上させうる。
【００２１】
第１の態様の第６の実装態様において、第１のフラッピング回数は、特に、フラッピング開始時刻から開始して、送信元MACアドレスがスイッチの異なったポート間でフラッピングする回数である。スイッチは、次の２つの手法のうちの１つで、第１のフラッピング回数に基づいて、スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定しうる。第１の手法では、スイッチは、第１のフラッピング回数を予め設定されたフラッピング閾値と比較し、第１のフラッピング回数がフラッピング閾値以上であるとき、スイッチが位置するネットワークの中でループ障害が生ずると決定し、または、第２の手法では、スイッチは、現在システム時刻とフラッピング開始時刻との間の第１の時間差を決定し、第１の時間差に対する第１のフラッピング回数の比率を計算して第１のフラッピング頻度を取得し、第１のフラッピング頻度を予め設定されたフラッピング頻度閾値と比較し、第１のフラッピング頻度がフラッピング頻度閾値以上であるとき、スイッチが位置するネットワークの中でループ障害が生ずると決定する。
【００２２】
第６の実装態様は、ループ障害を決定するための具体的な方法を提供する。本発明の本実施形態において提供されるフラッピング情報テーブルの中のフラッピング開始時刻に基づいて、スイッチは、複数の方法を使用することによって、スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定しうる。このことは、ループ障害の検出の柔軟性を向上させる。
【００２３】
第１の態様の第７の実装態様において、フラッピング情報エントリは、スイッチのMACアドレステーブルの中の送信元MACアドレスに対応するMACエントリの最終更新時刻をさらに含む。ループ障害が回復したかどうかを決定するとき、スイッチは、現在システム時刻とMACエントリの最終更新時刻の間の第２の時間差を計算し、第２の時間差が指定期間以上であるとき、ループ障害が回復したことを決定する。
【００２４】
第７の実装態様において、スイッチは、ループ障害が回復したことを自動的に決定し、各抑制されたポートへ抑制解除命令を自動的に送信しうる。このことは、ネットワークサービスの回復を速める。
【００２５】
第１の態様の第８の実装態様において、送信元MACアドレスに基づいてフラッピング情報テーブルを探索する前に、スイッチは、第１のパケットを受け取る第１のポートを決定する。第１のポートが送信元MACアドレスに対応する前のポートとは異なるとき、スイッチは、第１のポートに基づいてフラッピング情報テーブルを更新し、前のポートは、スイッチが第１のパケットを受け取るときの送信元MACアドレスに対応するMACエントリの中のポートである。
【００２６】
第１の態様の第９の実装態様において、フラッピング情報テーブルは、送信元MACアドレスに対応するフラッピング情報エントリを含み、第１のポートは、フラッピングポート群の中に既にあり、第１のポートに基づいてフラッピング情報テーブルを更新するとき、スイッチは、フラッピング情報エントリの中の最終更新時刻を、スイッチが第１のポートに基づいてMACエントリを更新する時刻に変更し、フラッピング情報エントリの中の前のフラッピング回数に１を加えて第１のフラッピング回数を取得し、前のフラッピング回数は、フラッピング情報テーブルが更新される前のフラッピング情報エントリの中のフラッピング回数である。
【００２７】
第１の態様の第１０の実装態様において、フラッピング情報テーブルは、送信元MACアドレスに対応するフラッピング情報エントリを含み、第１のポートは、フラッピングポート群の中になく、第１のポートに基づいてフラッピング情報テーブルを更新するとき、スイッチは、第１のポートをフラッピングポート群に順次加え、フラッピング情報エントリの中の最終更新時刻を、スイッチが第１のポートに基づいてMACエントリを更新する時刻に変更し、フラッピング情報エントリの中の前のフラッピング回数に１を加えて第１のフラッピング回数を取得し、前のフラッピング回数は、フラッピング情報テーブルが更新される前のフラッピング情報エントリの中のフラッピング回数である。
【００２８】
第１の態様の第１１の実装態様において、フラッピング情報テーブルは送信元MACアドレスに対応するフラッピング情報エントリを含まず、第１のポートに基づいてフラッピング情報テーブルを更新するとき、スイッチは、フラッピング情報テーブルに、送信元MACアドレスに対応するフラッピング情報エントリを加え、前のポートおよび第１のポートを、フラッピング情報エントリの中のフラッピングポート群に順次加え、フラッピング情報エントリに、送信元MACアドレスに対応するMACエントリのフラッピング開始時刻および最終更新時刻を加え、フラッピング情報エントリの中のフラッピング回数を１に設定して第１のフラッピング回数を取得する。フラッピング開始時刻は、スイッチが、第１のポートが前のポートとは異なることを決定した時刻であり、MACエントリの最終更新時刻は、スイッチが、第１のポートに基づいてMACエントリを更新した時刻である。
【００２９】
第８乃至第１１の実装態様において、スイッチは、送信元MACアドレスに対応するフラッピング情報エントリをフラッピング情報テーブルの中へ瞬時に記録及び更新し、フラッピング情報エントリの更新は、スイッチがMACアドレスに関連する最新の情報を取得することを可能とする。したがって、フラッピング情報エントリに基づくスイッチの動作の正確性および柔軟性が向上される。
【００３０】
本発明の実施形態の第１の態様の実装態様の上述の配置順序は、単なる例である。論理的な矛盾がなければ、第１の態様の各実装態様、ならびに、各実装態様における異なったステップを行う順序、および引用または参照関係は、本発明の保護範囲に影響を与えることなく要件に従ってランダムに調整されうる。
【００３１】
本発明の実施形態の第２の態様は、スイッチを提供し、スイッチは、第１の態様における方法および第１の態様の様々な実装態様を実施しうる複数のユニットを含む。複数のユニットおよび各ユニットによって具体的に行われる機能については、請求項を参照されたい。
【００３２】
本発明の実施形態の第３の態様は、スイッチを提供し、スイッチは、メモリ、プロセッサ、および複数のポートを含む。メモリは、プログラムコードを格納するよう構成され、プロセッサは、第１の態様における方法および第１の態様の様々な実装態様を実施するためのプログラムコードを呼び出すよう構成される。
【００３３】
本発明の実施形態の第４の態様は、コンピュータ命令を提供し、コンピュータ命令が呼び出されるとき、第１の態様における方法および第１の態様の様々な実装態様が実施されうる。
【００３４】
本発明の実施形態の第５の態様は、ネットワークシステムを提供し、ネットワークシステムは、第２の態様における複数のスイッチまたは第３の態様における複数のスイッチを含む。
【００３５】
本発明の実施形態における技術的な解決手段をより明らかに説明するため、以下、実施形態を説明するために必要な添付図面を簡単に説明する。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態によるイーサネットループの概略図である。
【図２】図１中のループによって生ずるブロードキャストストームの概略図である。
【図３】本発明の実施形態によるデータセンタ・ネットワーク・ループの概略図である。
【図４】図３中のループによって生ずるブロードキャストストームの概略図である。
【図５】本発明の実施形態によるループ障害ハンドリング方法の概略フローチャートである。
【図６】本発明の実施形態によるフラッピング情報テーブルの概略構造図である。
【図７】本発明の実施形態による他のフラッピング情報テーブルの概略構造図である。
【図８】本発明の実施形態によるスイッチの概略構造図である。
【図９】本発明の実施形態による他のスイッチの概略構造図である。
【発明を実施するための形態】
【００３７】
以下、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的な解決手段を説明する。
【００３８】
メディアアクセスコントロール（英語：media access control、略してMAC）アドレス学習は、スイッチの基本機能であり、また、スイッチが動作するときに有効化されねばならない機能である。MACアドレス学習は、パケットを受け取った後、スイッチが、パケットの送信元MACアドレスとスイッチがパケットを受け取るポートとを取得し、送信元MACアドレスとポートの間のマッピング関係をMACアドレステーブルの中に記録することを意味する。学習されたマッピング関係は、スイッチによってパケット転送のために使用されうる。スイッチが同じMACアドレスを異なったポート上で学習すると、スイッチは、MACアドレスに対応するMACアドレスフラッピング（英語：flapping）が存在すると決定し、または、スイッチは、MACアドレスがスイッチの異なったポート間でフラッピングすると決定する。スイッチはまた、ループ検出機能を有する。MACアドレスフラッピングを検出し、MACアドレスフラッピングが予め設定された条件を満たすとき、スイッチが位置するネットワークの中にループが存在すると決定されうる。
【００３９】
図１中に示すように、図１は、本発明の実施形態によるイーサネットループの概略図である。イーサネット100は、スイッチ11、スイッチ12、スイッチ13、スイッチ14、およびスイッチ15を含む。誤ったネットワーク配線またはネットワーク装置の誤った構成により、スイッチ12、スイッチ13、スイッチ14、およびスイッチ15は、（図１中に太い実線によって示されるような）ループを形成し、すなわち、イーサネット100の中でループ障害が生ずる。
【００４０】
図２に示すように、スイッチ11が、ポート111を使用することによって、その送信元アドレスがMAC1であるフラッディング（flooding）パケットを受け取った後、スイッチ11は、ポート111以外のポートを通じてフラッディングパケットをブロードキャストする。フラッディングパケットは、その送信先MACアドレスがブロードキャストアドレスであるブロードキャストパケットに加え、未知のマルチキャストパケット（その送信先MACアドレスはブロードキャストアドレスではないが、送信先MACアドレスはスイッチ11によって学習されないマルチキャストパケット）、および、未知のユニキャストパケット（その送信先MACアドレスはブロードキャストアドレスではないが、送信先MACアドレスはスイッチ11によって学習されないユニキャストパケット）を含み、ここでフラッディングパケットは、BUM（英語：broadcast, unknown unicast and multicast）パケットとも称される。スイッチ12は、ポート122およびポート123を使用することによってフラッディングパケットをブロードキャストし続ける。スイッチ13およびスイッチ15は、ポート131およびポート151をそれぞれ使用することによってフラッディングパケットを受け取る。そして、スイッチ13およびスイッチ15はまた別々にフラッディングパケットをブロードキャストする。最終的に、フラッディングパケットは、ブロードキャストドメイン全体の中で連続的にブロードキャストされ、ブロードキャストストームを形成する。
【００４１】
図３に示すように、図３は、本発明の実施形態によるデータセンタ・ネットワーク・ループの概略図である。データセンタ・ネットワークは、大規模レイヤ２ネットワークである。大規模レイヤ２ネットワークは、多数リンク透過的相互接続（英語：Transparent Interconnection of Lots of Links、略してTRILL）ネットワークまたは仮想拡張可能ローカルエリアネットワーク（英語：Virtual eXtensible Local Area Network、略してVXLAN）でありうる。大規模レイヤ２ネットワークは、アクセスレイヤおよびコアレイヤを含む。大規模レイヤ２ネットワークは、２つのみのレイヤを有するため、コアレイヤは、アグリゲーションレイヤとも称されうる。アクセスレイヤは、アクセススイッチ32a、32b、および32cを含む。コアレイヤは、コアスイッチ31aおよび31bを含む。各アクセススイッチは、双方のコアスイッチに接続される。いずれのコアスイッチもまた、全てのアクセススイッチに接続される。しかしながら、コアスイッチ31aと31bの間には接続はない。一般的に、大規模レイヤ２ネットワークの中にはループは存在せず、ループ回避プロトコルを実行する必要もない。しかしながら、ネットワーク配線が誤っているか、または、ネットワーク構成が誤っているとき、ループは、大規模レイヤ２ネットワークの中においても生ずる。図３は、大規模レイヤ２ネットワークの中の誤った配線によって生ずるループを示す。アクセススイッチ32a、コアスイッチ31a、およびアクセススイッチ32bは、ループを形成する。アクセススイッチ32a、コアスイッチ31b、およびアクセススイッチ32bもまた、ループを形成する。加えて、各アクセススイッチは、少なくとも１つの仮想マシン（英語：virtual machine、略してVM）とさらに通信しうる。図は、アクセススイッチ32aと通信する仮想マシン41を示す。TRILLネットワークにおいて、アクセススイッチは、端末装置がTRILLネットワークにアクセスすることを可能とするスイッチである。VXLANにおいて、アクセススイッチは、VXLANトンネルエンドポイント（英語：VXLAN tunnel endpoint、略してVTEP）と称されてもよい。
【００４２】
図４は、図３中のシナリオにおいてブロードキャストストームを発生させるプロセスの概略図である。図４中の破線によって示されるように、アクセススイッチ32aが、アクセス側ポート32a1を使用することによって、仮想マシン41によって送られその送信元MACアドレスがMAC2であるフラッディングパケットを受け取るとき、スイッチ32aは、ポート32a1以外の他のポート、すなわちポート32a2、32a3、および32a4を通じて、フラッディングパケットをブロードキャストする。このようにして、フラッディングパケットは、コアスイッチ31a、アクセススイッチ32b、およびコアスイッチ31bに、それぞれ到達する。フラッディングパケットを受け取る各スイッチは、フラッディングパケットをブロードキャストモードで、フラッディングパケットを受け取るポート以外のポートを通じて送る。例えば、コアスイッチ31aおよびコアスイッチ31bは、フラッディングパケットをブロードキャストモードでアクセススイッチ32bおよび32cへそれぞれ送り、アクセススイッチは、ポート32b1およびポート32b3を使用することによって、フラッディングパケットをブロードキャストモードで、コアスイッチ31aおよびコアスイッチ31bへそれぞれ送る。アクセススイッチ32bによって送られるフラッディングパケットを受け取った後、コアスイッチ31aは、フラッディングパケットをブロードキャストモードで、アクセススイッチ32aおよびアクセススイッチ32cへそれぞれ送る。アクセススイッチ32bから、アクセススイッチ32bによって送られるフラッディングパケットを受け取った後、コアスイッチ31bは、フラッディングパケットをブロードキャストモードで、アクセススイッチ32aおよびアクセススイッチ32cへ送る。このようにして、アクセススイッチ32aは、アクセススイッチ32a自体によって送られるフラッディングパケットを受け取り、パケットを転送し続ける。したがって、ブロードキャストストームが形成される。
【００４３】
フラッディングパケットは、仮想ローカルエリアネットワーク（英語：virtual local area network）の中でのみ伝送されうるため、本発明の全ての実施形態においてフラッディングパケットを送ることは、フラッディングパケットを、フラッディングパケットと同じVLANで構成されたポートへ送ることを意味する。
【００４４】
図２または図４中のブロードキャストストームを抑制するために、本発明は、図５に示すループ障害ハンドリング方法を提供する。方法は、図１および図２中の各スイッチに適用され得、または、図３および図４中の各アクセススイッチに適用され得る。S501において、スイッチは、第１のパケットを受け取り、第１のパケットは、送信元MACアドレスを含む。
【００４５】
第１のパケットは、スイッチによって受け取られる任意のパケットである。送信元MACアドレスは、第１のパケットを発生する装置のMACアドレスであり、例えば仮想マシン41のMACアドレスMAC2でありうる。第１のパケットを発生する装置は、セッションを開始する必要のある物理的な端末装置または仮想端末装置、たとえばパーソナルコンピュータまたは仮想マシンである。第１のパケットは、イーサネットフレーム、TRILL-カプセル化パケット、またはVXLAN-カプセル化パケットのうちの任意の１つでありうる。第１のパケットがイーサネットフレームであるとき、送信元MACアドレスは、イーサネットフレームのイーサネットヘッダの中に含まれる。第１のパケットがTRILLパケットであるとき、送信元MACアドレスは、TRILLパケットの内側パケットヘッダの中に含まれる。第１のパケットがVXLANパケットであるとき、送信元MACアドレスは、VXLANパケットの内側パケットヘッダの中に含まれる。
【００４６】
S502において、スイッチは、送信元MACアドレスに対応する第１のフラッピング回数を取得する。
【００４７】
第１のフラッピング回数は、送信元MACアドレスがスイッチの異なったポート間でフラッピングする回数を示す。
【００４８】
一実装態様において、スイッチは、フラッピング情報テーブルを維持し、フラッピング情報テーブルの各エントリは、MACアドレスのフラッピング情報を記録する。各MACアドレスのフラッピング情報は、MACアドレスに対応するフラッピングポート群と、MACアドレスがスイッチに対してフラッピングする回数とを含む。加えて、各MACアドレスのフラッピング情報は、MACアドレスのフラッピング開始時刻と、スイッチのMACアドレステーブルの中のMACアドレスに対応するMACエントリの最終更新時刻とをさらに含みうる。図６は、スイッチ11上のフラッピング情報テーブルの概略図である。フラッピング情報テーブルの中のフラッピング情報は、単なる例である。他の実装態様において、フラッピング情報の内容は、異なったテーブル又は異なった記憶空間の中に別々に格納されうる。しかしながら、内容が複数のテーブルの中に別々に格納されているか、同じテーブルの中に格納されているかにかかわらず、最終的にスイッチは、送信元MACアドレスと内容との間の対応関係を認識する必要がある。フラッピング情報テーブルの中の情報は、スイッチのMACアドレス学習プロセスにより連続的に更新される。
【００４９】
したがって、S502は、具体的には、送信元MACアドレスに基づいてフラッピング情報テーブルを探索して送信元MACアドレスに対応するフラッピング情報エントリを取得すること、および、フラッピング情報エントリの中の第１のフラッピング回数を取得することを含みうる。第１のフラッピング回数は、具体的には、送信元MACアドレスが、フラッピング開始時刻から開始して、スイッチの異なったポート間でフラッピングする回数である。
【００５０】
一実装態様において、スイッチは、MACアドレスに対応する前のポートが、現在学習されているMACアドレスのポートとは異なると決定するときのみ、MACアドレスに対応するフラッピング情報エントリを作成する。したがって、送信元MACアドレスに対応するフラッピング情報エントリを取得するために送信元MACアドレスに基づいてフラッピング情報テーブルを探索する前に、任意選択で、方法は、以下のステップをさらに含みうる。
【００５１】
A1. スイッチは、第１のパケットを受け取る第１のポートを決定する。
【００５２】
A2. 第１のポートが、送信元MACアドレスに対応する前のポートとは異なるとき、スイッチは、第１のポートに基づいてフラッピング情報テーブルを更新する。前のポートは、スイッチが第１のパケットを受け取るときに送信元MACアドレスに対応するMACエントリの中のポートである。第１のポートが前のポートとは一致しないとき、このことはMACアドレスがフラッピングすることを示す。スイッチは、MACアドレステーブルを更新し、第１のポートに基づいてフラッピング情報テーブルを更新する。MACアドレステーブルを更新することは、MACアドレステーブルの中の送信元MACアドレスに対応するMACエントリの中の前のポートを、第１のポートと置き換えることを意味する。
【００５３】
フラッピング情報テーブルを更新することは、３つのケースを含む。
【００５４】
第１のケース（A2-1で示す）では、フラッピング情報テーブルは、送信元MACアドレスに対応するフラッピング情報エントリを含み、第１のポートは、送信元MACアドレスに対応するフラッピングポート群の中に既にあり、第１のポートに基づいてフラッピング情報テーブルを更新することは、フラッピング情報エントリの中の最終更新時刻を、スイッチが第１のポートに基づいてMACエントリを更新する時刻に変更することと、フラッピング情報エントリの中の前のフラッピング回数に１を加えて第１のフラッピング回数を取得することとを含む。前のフラッピング回数は、フラッピング情報テーブルが更新される前のフラッピング情報エントリの中のフラッピング回数である。
【００５５】
第２のケース（A2-2で示す）では、フラッピング情報テーブルは、送信元MACアドレスに対応するフラッピング情報エントリを含み、第１のポートは、送信元MACアドレスに対応するフラッピングポート群の中になく、第１のポートに基づいてフラッピング情報テーブルを更新することは、スイッチが、第１のポートをフラッピングポート群に順次加えることと、フラッピング情報エントリの中の最終更新時刻を、スイッチが第１のポートに基づいてMACエントリを更新する時刻へ変更すること、およびフラッピング情報エントリの中の前のフラッピング回数に１を加えて第１のフラッピング回数を取得することとを含む。前のフラッピング回数は、フラッピング情報テーブルが更新される前のフラッピング情報エントリの中のフラッピング回数である。スイッチが、送信元MACアドレスについて、対応するフラッピング情報エントリを生成したため、この場合は、フラッピングポート群の中の第１のポートの前に少なくとも２つのフラッピングポートが含まれることが知られうる。
【００５６】
第３のケースでは（A2-3で示す）、フラッピング情報テーブルは送信元MACアドレスに対応するフラッピング情報エントリを含まず、第１のポートに基づいてフラッピング情報テーブルを更新することは、スイッチが、フラッピング情報テーブルに、送信元MACアドレスに対応するフラッピング情報エントリを加えることと、前のポートおよび第１のポートを、フラッピング情報エントリの中のフラッピングポート群に順次加えることと、フラッピング情報エントリに、送信元MACアドレスに対応するMACエントリのフラッピング開始時刻および最終更新時刻を加えることと、フラッピング情報エントリの中のフラッピング回数を１に設定して第１のフラッピング回数を取得することとを含む。フラッピング開始時刻は、スイッチが第１のパケットを受け取る時刻である。MACエントリの最終更新時刻は、スイッチが第１のポートに基づいてMACエントリを更新する時刻である。フラッピング情報テーブルは、送信元MACアドレスに対応するフラッピング情報エントリを含まず、なぜならば、スイッチは、送信元MACアドレスのフラッピングを初めて検出したか、または、なぜならば、送信元MACアドレスに対応する前のフラッピング情報エントリが古くなった（削除された）からである。
【００５７】
他の実装態様において、スイッチがMACアドレスを学習するかぎり、スイッチは、MACアドレスについての対応するフラッピング情報エントリをフラッピング情報テーブルに加える。この場合、初期のフラッピング情報エントリは、スイッチがその送信元MACアドレスがMACアドレスであるパケットを受け取るポートと、スイッチのMACアドレステーブルがポートに基づいて更新される時刻のみを含み、エントリの他の内容は、nullまたは０である。その後、スイッチは、上述の実装態様と同じ方法で、MACアドレスのフラッピング状態に基づいてフラッピング情報テーブルを更新する。
【００５８】
S503において、スイッチは、第１のフラッピング回数に基づいて、スイッチが位置するネットワークの中でループ障害が生ずるかどうかを決定する。
【００５９】
スイッチが位置するネットワークの中でループ障害が生じないとき、スイッチは、従来の方法で、第１のパケットを転送する。スイッチが位置するネットワークの中でループ障害が生ずるとき、スイッチは、S504を行う。
【００６０】
一実装態様において、スイッチは、第１のフラッピング回数を予め設定されたフラッピング閾値と比較し、第１のフラッピング回数がフラッピング閾値以上であるとき、スイッチが位置するネットワークの中でループ障害が生ずると決定する。具体的には、スイッチは、フラッピング閾値と、検出期間とを予め設定しうる。第１のフラッピング回数が検出期間内のフラッピング閾値以上であるとき、スイッチは、ネットワークの中でループ障害が生ずると決定する。例えば、検出期間は、5分間であり、フラッピング閾値は、20である。図６に示すケースでは、MAC1に対応するフラッピング回数がT0から開始して５分間以内に２０よりも少ないとき、スイッチは、ネットワークの中でループ障害が発生しないと考慮する。図７に示すケースでは、MAC1に対応するフラッピング回数が、T1から開始して5分間以内に２０よりも大きいとき、スイッチは、ネットワークの中でループ障害が生ずると考慮する。加えて、検出期間は、MACアドレスに対応するフラッピング情報エントリを古くするために使用される。例えば、MAC1に対応するフラッピング情報エントリは、T0から開始して5分後に古くなる（すなわち、削除される）。このようにして、スイッチによって毎回読まれるフラッピング回数は、検出期間内のフラッピング回数であり、フラッピング回数は、期間に亘って累積されない。
【００６１】
他の実装態様において、スイッチはさらに、予め設定されたフラッピング頻度閾値に基づいて、ループ障害が生ずるかを決定しうる。送信元MACアドレスに対応する第１のフラッピング回数を決定した後、スイッチはまず、第１のフラッピング頻度を計算し、第１のフラッピング頻度は、第１のフラッピング回数に対する現在システム時刻とフラッピング開始時刻T0の間の差の比率によって決定される。フラッピング頻度がフラッピング頻度閾値以上であるとき、ネットワークの中でループ障害が生ずると考えられる。例えば、フラッピング頻度閾値が１回/秒であり、フラッピング開始時刻T0が10:00:00 a.m.であり、現在システム時刻が10:00:20 a.m.であり、読まれたフラッピング回数が図７に示す30回であると想定すると、計算により得られるフラッピング頻度は、30/20 = 1.5 回/秒である。1.5 回/秒は、1 回/秒よりも大きいため、ループ障害が生ずると決定されうる。
【００６２】
S504において、スイッチは、送信元MACアドレスに対応するフラッピングポート群を取得し、フラッピングポート群は、送信元MACアドレスがそれらに対して順次フラッピングする複数のポートを含む。
【００６３】
S505において、スイッチは、複数のポートのうちのプライマリポートを決定する。
【００６４】
複数のポートは、スイッチに属する。複数のポートは、送信元MACアドレスが複数のポートに対してフラッピングする時間系列に基づいて配置される。プライマリポートは、抑制されねばならないポートである。複数のポートは、セカンダリポートをさらに含み、セカンダリポートは、任意選択で抑制されるポートである。なお、本発明において、プライマリポートおよびセカンダリポートは、異なったポート上の異なる動作を説明するためだけに用いられることに留意されたい。本発明のいずれの実施形態の実装態様においても、物理的な分割または分類に基づく格納がフラッピングポート群の中の複数のポートに対して行われるべきということは要求されない。
【００６５】
図２中のスイッチ11を例として用いて、その送信元MACアドレスがMAC1であるフラッディングパケットは、スイッチ11のポート111にまず到達し、スイッチ11は、MAC1に対応するフラッピングポート群の中のポート111をまず記録する。ポート112を使用することによってブロードキャストパケットが送出された後、ループが存在するため、スイッチ11は、ポート112を使用することによってブロードキャストパケットを再び受け取る。この場合、スイッチ11は、ポート112上でMAC1を再び学習し、スイッチは、ポート112をMAC1に対応するフラッピングポート群に順次加える。したがって、MAC1に対応するフラッピングポート群は、{111, 112}であり、これはMAC1がその上で順次に学習される２つのポート111および112を含む。
【００６６】
図２に示すシナリオでは、セカンダリポートは、スイッチによって最も早くフラッピングポート群に加えられるポートを含み、プライマリポートは、スイッチによってプライマリポートの後にフラッピングポート群に加えられる１つ以上のポートを含む。このケースでは、スイッチ11のポート111はセカンダリポートであり、ポート112はプライマリポートである。
【００６７】
同様に、図２中の他のスイッチのフラッピングポート群は、以下のとおりであり、すなわち、
スイッチ12: {121, 122, 123}、ここでポート121はセカンダリポートであり、ポート122および123はプライマリポートである；
スイッチ13: {131, 132}、ここでポート131はセカンダリポートであり、ポート132はプライマリポートである；
スイッチ14: {141, 142}、ここでポート141はセカンダリポートであり、ポート142はプライマリポートである；および
スイッチ15: {151, 152}、ここでポート151はセカンダリポートであり、ポート152はプライマリポートである。
【００６８】
図４に示すシナリオでは、TRILLネットワークおよびVXLANは、設計原理においてネットワーク側ループが排除されているため、ネットワーク側では追加的な処理は要求されない。したがって、送信元MACアドレスに対応するフラッピングポート群が決定されているとき、第１のパケットを受け取るポートがアクセス側ポートであるかネットワーク側ポートであるかをさらに区別する必要がある。アクセススイッチ上で、仮想マシンまたは他のアクセススイッチを接続するために使用されるポートは、アクセス側ポートであり、コアスイッチを接続するために使用されるポートは、ネットワーク側ポートである。図４に示すシナリオでは、セカンダリポートは、スイッチによって最も早くフラッピングポート群に加えられるアクセス側ポートを含み、プライマリポートは、スイッチによってセカンダリポートの後にフラッピングポート群に加えられる１つ以上のアクセス側ポートを含む（簡潔性のため、図４中、スイッチ32bのプライマリポートは図示されないが、実際のネットワークでは、プライマリポートは必ず存在する）。
【００６９】
一実装態様において、ポートの属性を記録するために、フラッピングポート群に記述情報が加えられてもよい。この場合、アクセススイッチ32aおよび32bのフラッピングポート群は、以下であってもよく、すなわち、
アクセススイッチ32a: {32a1: アクセス側, 32a2: アクセス側, 32a3: ネットワーク側, 32a4: ネットワーク側}、ここでポート32a1はセカンダリポートであり、ポート32a2はプライマリポートである；および
アクセススイッチ32b: {32b1: アクセス側, 32b2: ネットワーク側, 32b3: ネットワーク側}、ここで、アクセススイッチ32bは、セカンダリポート32b1のみを有し、プライマリポートは図示されない。
【００７０】
他の実装態様において、ポートの属性を記録するために、フラッピングポート群にコアスイッチについての情報が加えられてもよい。例えば、TRILLネットワークについて、ネットワーク側インタフェースに代えてコアスイッチのニックネーム（英語：nickname）が使用されてもよく、この場合、アクセススイッチ32aおよび32bのフラッピングポート群は、以下であってもよく、すなわち、
アクセススイッチ32a: {32a1, 32a2, nickname31a, nickname31b}、ここでポート32a1はセカンダリポートであり、ポート32a2はプライマリポートである；および
アクセススイッチ32b: {32b1, nickname31a, nickname31b}、ここでアクセススイッチ32bのセカンダリポート32b1のみが図示され、プライマリポートは図示されない。
【００７１】
他の例として、VXLANについて、ネットワーク側インタフェースに代えてコアスイッチのインターネット・プロトコル（英語：Internet Protocol）アドレスが使用されてもよく、この場合、アクセススイッチ32aおよび32bのフラッピングポート群は、以下であってもよく、すなわち、
アクセススイッチ32a: {32a1, 32a2, IP31a, IP31b}、ここでポート32a1はセカンダリポートであり、ポート32a2はプライマリポートである；および
アクセススイッチ32b: {32b1, IP31a, IP31b}、ここでアクセススイッチ32bのセカンダリポート32b1のみが図示され、プライマリポートは図示されない。
【００７２】
S506において、スイッチは、各プライマリポート上のフラッディング抑制機能を有効化し、フラッディング抑制機能は、各プライマリポートによって受け取られたフラッディングパケットの転送を抑制するために使用される。
【００７３】
プライマリポートのうちの各フラッピングポート上のフラッディング抑制機能を有効化することに加え、任意選択で、本発明の本実施形態において、セカンダリポートによって受け取られたフラッディングパケットの転送を抑制するために、フラッディング抑制機能はさらに、セカンダリポート上で有効化されてもよい。
【００７４】
スイッチが各プライマリポート上のフラッディング抑制機能を有効化することは、スイッチが各プライマリポートへ第１のフラッディング抑制命令を送信してフラッディング抑制機能を有効化することであってもよく、または、スイッチがユーザによって行われるスイッチ構成に従って各プライマリポート上のフラッディング抑制機能を直接有効化することであってもよい。
【００７５】
スイッチがセカンダリポート上のフラッディング抑制機能を有効化することは、スイッチがセカンダリポートへ第2のフラッディング抑制命令を送信してフラッディング抑制機能を有効化することであってもよく、または、スイッチがユーザによって行われるスイッチ構成に従ってセカンダリポート上のフラッディング抑制機能を直接有効化することであってもよい。
【００７６】
本発明の本実施形態におけるいかなるフラッディング抑制命令も、フラッディング抑制命令を受信するポートによるフラッディングパケットの受け取りを抑制するために使用されない。
【００７７】
加えて、各フラッディング抑制命令は、抑制パラメータを含んでもよく、抑制パラメータは、抑制割合または抑制比率でありうる。抑制割合は、フラッディング抑制命令を受信するポートがフラッディングパケットを送るのに許される割合を示すために使用される。抑制比率は、フラッディング抑制命令を受信するポートによって受け取られる抑制されるべきフラッディングパケットの比率を示すために使用される。一実装態様において、抑制パラメータが完全な抑制を示すとき（これは、例えば、1, 100, または100%によって示されうる）、フラッディング抑制命令を受信するポートは、フラッディングパケットを転送することが禁止される。抑制パラメータが部分的な抑制を示すとき（これは、例えば、0.95, 95, または95%によって示されうる）、フラッディング抑制命令を受信するポートは、対応する比率の受け取られたフラッディングパケットを転送してもよい。第１のフラッディング抑制命令の中の抑制パラメータは、第2のフラッディング抑制命令の中の抑制パラメータと同じであっても、異なってもよい。
【００７８】
加えて、第１のフラッディング抑制命令および第2のフラッディング抑制命令のいずれも、抑制されるべきパケットを示すために、抑制されるべきパケットの種別をさらに含みうる。例えば、第１のフラッディング抑制命令の中に含まれるパケットの種別がブロードキャストパケットであるとき、第１のフラッディング抑制命令は、ブロードキャストパケットのみを抑制し、未知のユニキャストパケットおよび未知のマルチキャストパケットを抑制しない。
【００７９】
本発明において、各プライマリポート上のフラッディング抑制機能を有効化すること、および、セカンダリポート上のフラッディング抑制機能を有効化することの順序は、限定されない。
【００８０】
明らかに、本発明の本実施形態において、ループ障害が生じたときに、検出されたフラッピングポートの全てが完全にブロックされるわけではなく、それに代えて、受け取られるフラッディングパケットの転送は、いくつかのみまたはすべてのフラッピングポートにおいて完全に禁止されるか部分的に禁止される必要がある。これは、従来技術とは異なる。本発明の各実施形態において、ネットワーク全体に対するループ障害の悪影響が減少されえ、ブロードキャストストームが回避されうる。加えて、ユニキャストトラフィックは、転送され続けてもよく、ネットワークにおいてサービス中断が生じない。加えて、検出に誤りがあったとしても、サービスに対する大きな悪影響もまた回避されうる。
【００８１】
図７に示すように、フラッピング情報テーブルは、スイッチが、送信元MACアドレスに対応するフラッピングポート群の中のポート上のフラッディング抑制機能を有効化したかどうかを示すために使用される抑制フラグをさらに含んでもよい。例えば、図７中、抑制フラグは1であり、スイッチが、フラッピングポート群の中のポート（システム設定によれば、ポートは、プライマリポートでもよく、またはプライマリポートおよびセカンダリポートであってもよい）上のフラッディング抑制機能を有効化したことを示す。抑制フラグが0であるならば、このことは、スイッチがフラッピングポート群の中のポート上のフラッディング抑制機能を有効化していないことを示す。当業者はさらに、他の抑制フラグを設定しうる。例えば、抑制フラグが設定されているかぎりは、スイッチがフラッディング抑制命令を送信したと考慮される。
【００８２】
スイッチがフラッディング抑制機能を有効化した後、本発明の本実施形態における方法は、任意選択で、S507をさらに含む。
【００８３】
S507. ループ障害が回復したことを決定した後、スイッチは、各抑制されたポートへ抑制解除命令を送信し、抑制解除命令は、抑制解除命令を受信するポートが受け取られたフラッディングパケットを転送することをトリガするために使用される。
【００８４】
抑制されたフラッピングポートは、少なくとも各プライマリポートを含み、セカンダリポートをさらに含みうる。
【００８５】
本発明の一実装態様において、ループ障害が回復したことを決定することは、指定期間の後に送信元MACアドレスがフラッピングしないときは、ループ障害が排除されたと決定することを含みうる。スイッチは、現在システム時刻からフラッピング情報テーブルの中の送信元MACアドレスに対応するMACエントリの最終更新時刻を差し引くことによって第２の時間差を取得し、第２の時間差を指定期間と比較し、第２の時間差が指定期間以上であるときは、送信元MACアドレスが指定期間の後にフラッピングしないと決定し、すなわち、ループ障害が回復したことを決定してもよい。例えば、MACエントリの最終更新時刻が10:05:00 a.m.であり、指定期間が5分間であると想定すると、現在システム時刻が10:10:01であるとき、スイッチは、送信元MACアドレスが5分間に亘ってフラッピングしないと決定する。したがって、スイッチは、ループ障害が回復したと考慮し、フラッピングポート群の中の抑制されたポートへ抑制解除命令を送信する。抑制解除命令を送信した後、スイッチは、送信元MACアドレスに対応するフラッピング情報エントリをフラッピング情報テーブルから削除するか、フラッピング情報テーブルから履歴データベースへ移動させる。
【００８６】
上述のように、本発明の本実施形態における解決手段によれば、ループ障害回復は自動的に検出されえ、ループ・プロテクション動作が発せられる。このことは、ネットワークの堅牢性を向上させる。
【００８７】
図５に示す方法を実施するために、本発明の実施形態は、スイッチ800をさらに提供する。図８は、本発明の実施形態によるスイッチ800の概略構造図である。図５に対応して、スイッチ800は、
S501およびS501の様々な実装態様を行うよう構成された受け取りユニット801と、
S502およびS502の様々な実装態様を行うよう構成された第１の取得ユニット802と、
S503およびS503の様々な実装態様を行うよう構成された第１の決定ユニット803と、
S504およびS504の様々な実装態様を行うよう構成された第２の取得ユニット804と、
S505およびS505の様々な実装態様を行うよう構成された第２の決定ユニット805と、
S506およびS506の様々な実装態様を行うよう構成された抑制有効化ユニット806と、
S507およびS507の様々な実装態様を行うよう構成された抑制解除ユニット807と、
を含む。
【００８８】
第１の取得ユニット802および第２の取得ユニット804は、同じ取得ユニットであってもよく、異なった取得ユニットでもよい。第１の決定ユニット803および第２の決定ユニット805は、同じ決定ユニットであってもよく、異なった決定ユニットであってもよい。
【００８９】
加えて、スイッチ800は、フラッピング情報テーブルを格納するよう構成された記憶ユニットをさらに含みうる。スイッチ800は、MACアドレスがフラッピングするときにフラッピング情報テーブルを更新するよう構成された更新ユニットをさらに含みうる。
【００９０】
図８中の上述のユニットの分け方は、例であって、図８に示すスイッチが、図５に示す方法を完全に実施しうることを示すことが意図されているにすぎない。実際の実装態様では、本発明の本実施形態における機能的ユニットは、１つの処理ユニットの中に統合されてもよく、または、各ユニットは、物理的に別個に存在してもよく、または、２つ以上のユニットが１つのユニットへ統合されてもよい。例えば、上述の実施形態では、第１の取得ユニット802および第２の取得ユニット804は、同じユニットであってもよく、異なったユニットであってもよい。具体的には、スイッチ800におけるユニットの分け方は、他の方法であってもよい。各ユニットは、ハードウェアの形式で実施されてもよく、または、ソフトウエア機能ユニットの形で実施されてもよい。
【００９１】
図５に示す方法を実施するために、本発明の実施形態は、他のスイッチ900をさらに提供する。図９は、本発明の実施形態によるスイッチ900の概略構造図である。
【００９２】
図９を参照するに、スイッチは、第１のメモリ901、プロセッサ902、および複数のポート903を含み、第１のメモリ901、プロセッサ902、および複数のポート903は、バス904によって相互接続される。バス904は、周辺コンポーネント相互接続（英語：peripheral component interconnect, PCI 略して）バスまたは、拡張工業標準アーキテクチャ（英語：extended industry standard architecture、略してEISA）バス等であってもよい。バスは、アドレスバス、データバス、制御バス等に分類されうる。表現の便宜上、図９において、バスを表すために１つの太線のみが使用されているが、このことは、バスが１つしかないこと、または１種類のバスしかないことを意味するものではない。
【００９３】
第１のメモリ901は、プログラムコードを格納するよう構成される。プロセッサ902は、図５に示す方法および方法の特定の実装態様を実施するためにプログラムコードを呼び出し、複数のポートのうちのプライマリポートおよび／またはセカンダリポートを抑制するよう構成され、それによって、プライマリポートおよび／またはセカンダリポートは、受け取ったフラッディングパケットを転送しないか、受け取ったフラッディングパケット抑制比率に従って転送する。プログラムコードは、具体的にはコンピュータプログラム命令でありうる。コンピュータプログラム命令がプロセッサ902によって呼び出されるとき、図５に示す方法および方法の具体的な実装態様が実施されうる。
【００９４】
複数のポート903の各々は、プロセッサ902がプログラムコードを呼び出すとき、プロセッサ902の制御下でパケットを受け取るか、または廃棄するよう構成される。
【００９５】
スイッチ900は、第２のメモリ905をさらに含んでもよく、第２のメモリ905は、スイッチ900のフラッピング情報テーブルを記憶するよう構成される。
【００９６】
第１のメモリ901および第２のメモリ905は、同じメモリであってもよく、異なったメモリであってもよい。
【００９７】
第１のメモリ901および第２のメモリ905は、ランダムアクセスメモリ（英語：random access memory、略してRAM）、フラッシュメモリ、読み出し専用メモリ（英語：read-only memory、略してROM）、消去可能プログラマブル読み出し可能メモリ（英語：erasable programmable ROM、略してEPROM）、電気的消去可能プログラマブル読み出し専用メモリ（英語：electrically EPROM、略してEEPROM）、レジスタ、ハードディスク、リムーバブルハードディスク、コンパクトディスク読み出し専用メモリ（CD-ROM）、または当技術分野で既知のいかなる他の形の記憶媒体であってもよい。
【００９８】
プロセッサ902は、中央処理装置（英語：central processing unit、略してCPU）、特定用途向け集積回路（英語：application-specific integrated circuit、略してASIC）、ディジタル信号プロセッサ（英語：digital signal プロセッサ、略してDSP）、または本発明の実施形態を実施するよう構成された１つ以上の集積回路でありうる。
【００９９】
上述の説明は、本発明の実装態様の例にすぎない。当業者は、本発明の原理から逸脱することなく、いくつかの改善または改良を行うことができ、改善または改良は本発明の保護範囲内であることに留意されたい。
【符号の説明】
【０１００】
11〜16  スイッチ
111, 112, 121, 122, 123, 131, 132, 141, 142, 151, 152  ポート
【図１】
0006820423.tif 000002
【図２】
0006820423.tif 000003
【図３】
0006820423.tif 000004
【図４】
0006820423.tif 000005
【図５】
0006820423.tif 000006
【図６】
0006820423.tif 000007
【図７】
0006820423.tif 000008
【図８】
0006820423.tif 000009
【図９】
0006820423.tif 000010