(57)【要約】  レイヤ２ソースアドレスを用いた選択的レイヤ２ポートブロッキングのための方法、システム及びコンピュータプログラム製品が開示される。一の方法によると、レイヤ２フレームが受信される。レイヤ２フレーム内のレイヤ２ソースアドレスに基づいて、I/Oポートブロックリストが識別される。レイヤ２フレームが転送されるべき１組のポートが識別される。フレームは、I/Oポートブロックリスト内にも存在する１組のポートに転送されることをブロックされる。
2009527190.tif 000002
【特許請求の範囲】
【請求項１】
レイヤ２ソースアドレスに基づく選択的レイヤ２ポートブロッキングのための方法であって、
(a)レイヤ２フレームを受信する段階と、
(b)前記レイヤ２フレーム内のレイヤ２ソースアドレスに基づいて、入出力(Ｉ/Ｏ)ポートブロックリストを識別する段階と、
(c)前記フレームが転送される１組のポートを識別するためにフォワーディング段階ルックアップを実行する段階と、
(d)前記Ｉ/Ｏポートブロックリスト内にも存在する前記１組の中のポートへの前記レイヤ２フレームのフォワーディングをブロックする段階と
を備える方法。
【請求項２】
前記レイヤ２ソースアドレスに基づいて、Ｉ/Ｏポートブロックリストを識別する段階は、レイヤ２フォワーディングテーブル内でレイヤ２学習段階ルックアップを実行する段階を含む請求項１記載の方法。
【請求項３】
前記フォワーディング段階ルックアップを実行する段階は、レイヤ２フォワーディングテーブル内のルックアップを実行する段階と、前記レイヤ２フレーム内のVLANタグに対応するVLANのメンバーを含む前記１組のポートを識別する段階とを含む請求項１記載の方法。
【請求項４】
前記フォワーディング段階ルックアップを実行する段階は、レイヤ３マルチキャストパケットとして前記パケットを識別する段階と、前記フレームが転送される前記１組のレイヤ２ポートを決定するためにレイヤ３フォワーディングテーブル内のルックアップを実行する段階とを含む請求項１記載の方法。
【請求項５】
前記フォワーディング段階ルックアップを実行する段階は、レイヤ３ユニキャストフレームとして前記フレームを識別する段階と、前記フレームが転送される前記１組のポートを識別するためにレイヤ３フォワーディングテーブル内のルックアップを実行する段階とを含む請求項１記載の方法。
【請求項６】
前記Ｉ/Ｏポートブロックリストは、前記レイヤ２フレームが転送されないポートを表すビットを有するビットマップによって表わされ、前記フォワーディング段階ルックアップの間に識別された前記１組のポートは、前記レイヤ２フレームが転送される前記１組のポートを表すビットを有するビットマップによって表わされ、かつ前記リスト内に存在する前記１組の中のポートへの前記レイヤ２フレームのフォワーディングをブロックする段階は、前記Ｉ/Ｏポートブロックリストを表す前記ビットマップを用い、前記フレームが転送される前記ポートを表す前記ビットマップをマスクする段階を含む請求項１記載の方法。
【請求項７】
前記レイヤ２フレームはイーサネット（登録商標）フレームを備え、さらにレイヤ２フレームを受信する段階は、イーサネット（登録商標）スイッチで前記レイヤ２フレームを受信する段階を含む請求項１記載の方法。
【請求項８】
前記レイヤ２フレームはインターネットプロトコル(ＩＰ)ペイロードを有するイーサネット（登録商標）フレームを備え、そこからレイヤ２フレームを受信する段階は、ＩＰルータでレイヤ２フレームを受信する段階を含む請求項１記載の方法。
【請求項９】
レイヤ２ソースアドレスを用いた選択的レイヤ２ポートブロッキングのためのシステムであって、前記システムは、
(a)レイヤ２フォワーディング情報を有するエントリを含み、前記エントリの少なくとも１つは受信されたレイヤ２フレームが転送されないポートを示す入出力(Ｉ/Ｏ)ポートブロックリストを含むフォワーディングデータベースと、
(b)レイヤ２フレームを受信し、前記レイヤ２フレーム内のレイヤ２ソースアドレスに基づいて前記Ｉ/Ｏポートブロックリストを前記フォワーディングデータベース内に配置し、フレームが転送される１組のポートを決定し、かつ、前記フレームに対して位置付けられた前記Ｉ/Ｏポートブロックリスト内に存在する前記１組の中のポートへの前記フレームのフォワーディングをブロックするためのフォワーディングエンジンと、
を備えるシステム。
【請求項１０】
前記フォワーディングエンジンは、前記フォワーディングデータベース内のレイヤ２学習段階ルックアップを実行することにより、前記Ｉ/Ｏポートブロックリストを識別するのに適する請求項９記載のシステム。
【請求項１１】
前記フォワーディングエンジンは、前記レイヤ２フレーム内のレイヤ２宛先アドレスに基づいて前記フォワーディングデータベース内のルックアップを実行することにより、前記フレームが転送される前記１組のポートを識別するのに適する請求項９記載のシステム。
【請求項１２】
前記フォワーディングエンジンは、前記フレームをレイヤ３マルチキャストフレームとして識別し、かつ、前記フォワーディングデータベース内のレイヤ３フォワーディングテーブルでルックアップを実行することにより、前記フレームが転送される前記１組のポートを識別するのに適する請求項９記載の方法。
【請求項１３】
前記フォワーディングエンジンは、前記フレームをレイヤ３ユニキャストフレームとして識別し、かつ、前記フォワーディングデータベース内のレイヤ３フォワーディングテーブル内でルックアップを実行することにより、前記フレームが転送される前記１組のポートを識別するのに適する請求項９記載の方法。
【請求項１４】
前記Ｉ/Ｏポートブロックリストは、前記フレームが転送されないポートを表すビットを有するビットマップにより表わされ、前記フレームが転送される前記１組のポートは、前記フレームが転送されるポートを表すビットを有するビットマップによって表わされ、かつ前記フォワーディングエンジンは、前記フレームが前記Ｉ/Ｏポートブロックリストビットマップと共に転送される前記１組のポートに対応するビットマップをマスクすることによって、前記ブロッキングを実行するのに適する請求項９記載のシステム。
【請求項１５】
前記フォワーディングエンジンは、レイヤ２フォワーディングエンジンを含み、かつ、前記フォワーディングデータベースは、レイヤ２フォワーディングデータベースを含む請求項９記載のシステム。
【請求項１６】
前記フォワーディングエンジンは、レイヤ３フォワーディングエンジンを含み、かつ、前記フォワーディングデータベースは、レイヤ３フォワーディングデータベースを含む請求項９記載のシステム。
【請求項１７】
前記フォワーディングエンジンは、レイヤ２及びレイヤ３フォワーディングエンジンを含み、かつ、前記フォワーディングデータベースは、レイヤ２及びレイヤ３フォワーディングテーブルを含む請求項９記載のシステム。
【請求項１８】
(a)レイヤ２フレームを受信する段階と、
(b)前記レイヤ２フレーム内のレイヤ２ソースアドレスに基づいてレイヤ２ポートブロッキングリストを識別する段階と、
(c)前記フレームが転送される１組のポートを識別するためにフォワーディング段階ルックアップを実行する段階と、
(d)前記ポートブロッキングリスト内にも存在する前記１組の中のポートへの前記レイヤ２フレームのフォワーディングをブロッキングする段階と、
を有する段階を実行するためのコンピュータ読取可能な媒体に表現され、コンピュータで実行可能な命令を含むコンピュータプログラム製品。
【請求項１９】
前記レイヤ２ソースアドレスに基づいてＩ/Ｏポートブロックリストを識別する段階は、レイヤ２フォワーディングテーブル内でレイヤ２学習段階ルックアップを実行する段階を含む請求項１８記載のコンピュータプログラム製品。
【請求項２０】
前記フォワーディング段階ルックアップを実行する段階は、レイヤ２フォワーディングテーブル内でルックアップを実行する段階と、前記レイヤ２フレーム内のVLANタグに対応するVLANのメンバーを含む前記１組のポートを識別する段階とを含む請求項１８記載のコンピュータプログラム製品。
【請求項２１】
前記フォワーディング段階ルックアップを実行する段階は、前記パケットをレイヤ３マルチキャストパケットとして識別する段階と、前記フレームが転送される前記１組のレイヤ２ポートを決定するためにレイヤ３フォワーディングテーブル内でルックアップを実行する段階とを含む請求項１８記載のコンピュータプログラム製品。
【請求項２２】
前記フォワーディング段階ルックアップを実行する段階は、前記フレームをレイヤ３ユニキャストフレームとして識別する段階と、前記フレームが転送される前記１組のポートを識別するためにレイヤ３フォワーディングテーブル内でルックアップを実行する段階とを含む請求項１８記載のコンピュータプログラム製品。
【請求項２３】
前記Ｉ/Ｏポートブロックリストは、前記レイヤ２フレームが転送されないポートを表すビットを有するビットマップによって表わされ、前記フォワーディング段階ルックアップの間に識別された前記１組のポートは、前記レイヤ２フレームが転送される前記１組のポートを表すビットを有するビットマップによって表わされ、かつ前記リスト内に存在する前記１組の中のポートに対する前記レイヤ２フレームのフォワーディングをブロックする段階は、前記Ｉ/Ｏポートブロックリストを表す前記ビットマップを用い、前記フレームが転送される前記ポートを表す前記ビットマップをマスクする段階を含む請求項１８記載のコンピュータプログラム製品。
【請求項２４】
前記レイヤ２フレームは、イーサネット（登録商標）フレームを含み、かつレイヤ２フレームを受信する段階は、イーサネット（登録商標）スイッチで前記レイヤ２フレームを受信する段階を含む請求項１８記載のコンピュータプログラム製品。
【請求項２５】
前記レイヤ２フレームはインターネットプロトコル(ＩＰ)ペイロードを有するイーサネット（登録商標）フレームを備え、そこからレイヤ２フレームを受信する段階は、ＩＰルータでレイヤ２フレームを受信する段階を含む請求項１８記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連する出願）
本出願は、2006年2月17日出願の米国仮特許出願No.11/356,614の利益を主張し、その開示は参照することにより全体が本書に援用される。
【０００２】
（技術分野）
本書に記述される主題は、レイヤ２(layer 2)ポートブロッキングを実行する方法、システム及びコンピュータプログラム製品を含む。さらに、特に本書に記述される主題は、レイヤ２ソースアドレスを用いたレイヤ２ポートブロッキングを実行する方法、システム及びコンピュータプログラム製品を含む。
【背景技術】
【０００３】
イーサネット（登録商標）スイッチのようなレイヤ２スイッチングデバイスでは、パケット又はフレームがポートで受信される場合、ルックアップ(lookup)がレイヤ２フォワーディングテーブル(forwarding table)で一般的に実行される。前記ルックアップは、フレーム内のレイヤ２宛先アドレスに基づいて実行される。テーブル内に宛先アドレスに対するエントリ(entry)が存在する場合、前記フレームは、前記エントリに対応する単数または複数の出力ポートに転送される。前記フレームに対するエントリがテーブルに存在しない場合、前記フレームは、該フレームが受信されたポート以外の全ての出力ポートに送出される。
【０００４】
バーチャルローカルエリアネットワーク(VLAN)は、フレームのレイヤ２フラッディングドメイン(flooding domain)を限定するのに用いられることができる。例えば、レイヤ２フレームがVLANタグを含み、かつ、前記フォワーディングテーブルルックアップの間に、エントリが前記フレームの前記レイヤ２宛先アドレスに位置付けされない場合、前記フレームは、前記フレームに識別されたVLANタグと同一のVLANのメンバー (member)であるポートにのみ送出される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
レイヤ２パケットフォワーディングデバイスにフレームが到着する時に一般に発生する別のルックアップは、学習段階(learning phase)ルックアップと言われる。学習段階の間、レイヤ２スイッチングデバイスのポートにフレームが到着すると、前記フレーム内のレイヤ２ソースアドレスが読み取られる。フォワーディングテーブルエントリが前記レイヤ２ソースアドレスに対して存在するか否かを決定するため、ルックアップが前記レイヤ２ソースアドレスを用いたレイヤ２フォワーディングテーブル内で実行される。前記レイヤ２ソースアドレスに対応するフォワーディングテーブルエントリが前記フォワーディングテーブルに存在しない場合、前記フレームが受信されたポートに設定されたエントリに対するフォワーディング情報と共に、前記レイヤ２ソースアドレスを前記フォワーディングテーブルに追加することにより、前記レイヤ２ソースアドレスが学習される。前記学習されたソースアドレスに対応するレイヤ２宛先アドレスを有するパケットが正しいポートに転送されるよう、この情報がスイッチ内で他のポートと通信されてもよい。前記レイヤ２ソースアドレスが前記フォワーディングテーブルにすでに存在する場合、前記レイヤ２ソースアドレスはすでに学習されたものとし、学習段階を終了する。
【０００６】
場合によっては、レイヤ２ポートブロッキングの実行が望まれる。例えば、ポートＡ-Ｃが全て同一のVLANのメンバーであるにも関わらず、ポートＡ及びＢが、ポートＣとではなく、互いに通信できることが望まれるかもしれない。そのようなポートブロッキングを実行するための一つの方法は、１つのポートのみからのフレームが、該ポートが通信することを許された複数のポートに行くよう、レイヤ２スイッチングデバイスをハードワイヤ（hard-wire）することである。そのような解決策は、細かさと柔軟性を欠く。例えば、ポートＡから幾つかのパケットがポートＣに転送されることを許容するとともに、他のパケットがポートＡからポートＣに転送されるのをブロックすることが望まれる。
【０００７】
レイヤ２ポートブロッキングを提供する他の２つの方法は、本書に記述された主題の譲受人によって、限定学習(limit learning)及びMACロックダウン(MAC lockdown)として言及されている。限定学習によると、学習され得る設定されたMACアドレス数は、VLAN基礎ごとに構成される。一旦、MACアドレス数が学習されると、フレームが新しいMACソースアドレスを伴って到着する場合に、ブラックホールエントリに対応するMAC宛先アドレスと共に受信されたあらゆるパケットが廃棄されるよう、そのブラックホールエントリがそのMACソースアドレスに対するフォワーディングテーブルに追加される。前記MACロックダウン機構(feature)では、オペレータがレイヤ２スイッチにランタイムコマンドを発行してレイヤ２フォワーディングテーブルをロックダウンし、前記コマンド後に付加的なエントリが学習されないようにする。学習されるよう試みられる次のMACアドレスは、前記テーブルに対するブラックホールエントリとして追加され、前記ブラックホールエントリに対応するMAC宛先アドレスを有するパケットが廃棄される。
【０００８】
一方、これらのセキュリティ機構は、それらの本来の目的にそれぞれ適しているものの、レイヤ２ソースアドレスを用いた選択的レイヤ２ポートブロッキングを実行するための改良された方法、システム及びコンピュータプログラム製品に対して長年にわたる必要性が存在する。
【課題を解決するための手段】
【０００９】
一の態様によると、本書に記述される主題は、レイヤ２ソースアドレスを用いた選択的レイヤ２ポートブロッキングを実行するための方法を含む。前記方法は、レイヤ２フレームを受信する段階と、前記レイヤ２フレーム内のレイヤ２ソースアドレスに基づいて、I/0ポートブロックリストを識別する段階とを含む。フォワーディング段階(forwarding phase)ルックアップは、前記レイヤ２フレームが転送されるべき１組のポートを識別するために実行される。前記１組内にあって前記ブロックリスト内にも存在するポートへの前記レイヤ２フレームのフォワーディングがブロックされる。
【００１０】
本書では"パケット"及び"フレーム"という用語が同じ意味で用いられ、これら用語は、少なくとも１つのヘッダ及びペイロードを伴ってネットワークに送られるプロトコルデータユニットへの言及を意図する。"レイヤ２"という用語は、ネットワーク通信プロトコルスタックのメディアアクセスコントロール（MAC）層への言及を意図する。本書に記述される主題での使用に適したレイヤ２実行例は、イーサネット（登録商標）層である。"レイヤ３"という用語は、ネットワーク通信プロトコルスタックのネットワーク層への言及を意図する。本書に記述される主題での使用に適したレイヤ３実行例は、インターネットプロトコル層である。
【００１１】
レイヤ２ソースアドレスに基づいて選択的レイヤ２ポートブロッキングを実行する本書に記述された主題は、コンピュータ読取可能な媒体で表現され、コンピュータで実行可能な命令を含むコンピュータプログラム製品を用いて実行されることができる。本書に記述された主題を実行するのに適した代表的なコンピュータ読取可能な媒体は、ディスクメモリデバイス、チップメモリデバイス、プログラム可能論理回路、特定用途向け集積回路及びダウンロード可能な電気信号を含む。さらに、本書で記載された主題を実行するコンピュータプログラム製品は、単一の装置若しくは計算プラットフォームに存在することができ、又は、複数の装置若しくは計算プラットフォームに分散されることができる。
【発明を実施するための最良の形態】
【００１２】
本書に記述された主題の好適な実施形態は、添付の図面を参照してここで説明される。
レイヤ２ソースアドレスを用いた選択的レイヤ２ポートブロッキングを実行するための本書に記述される主題は、レイヤ２スイッチング機能を含むあらゆる適切なプロセッシングプラットフォームで実行されることができる。そのようなプラットフォームの例は、イーサネット（登録商標）スイッチ、及びイーサネット（登録商標）スイッチング機能を有するIPルータを含む。図１は、本書に記述される主題が実行される、そのようなプラットフォームの一例を示すブロック図である。図１において、レイヤ２スイッチ/レイヤ３ルータ１００は、レイヤ２スイッチング及びレイヤ３ルーティングを実行する。図示の例では、スイッチ/ルータ１００は、複数の入出力(I/O)モジュール１０２と、スイッチング構造１０４と、スイッチ管理モジュール１０６とを含む。ネットワークまでパケットを送信し、かつ前記ネットワークからパケットを受信するため、I/0モジュール１０２はそれぞれ前記外部ネットワークに各I/Oモジュール１０２を接続するための、１又はそれ以上のI/Oポート１０８Ａ-１１４Ｂを含む。
レイヤ２及びレイヤ３パケットフォワーディングを実行するため、各I/Oモジュール１０２は、ルックアップエンジン１１６と、レイヤ２フォワーディングデータベース１１８と、レイヤ３フォワーディングデータベース１２０とを含んでいる。ルックアップエンジン(lookup engine)１１６は、レイヤ２及びレイヤ３宛先アドレスに基づいてデータベース１１８及び１２０内でルックアップを実行し、各受信したパケットをどこに転送するかを決定する。レイヤ２フォワーディングデータベース１１８は、レイヤ２アドレス及び対応するフォワーディング情報のテーブルを含む。レイヤ３フォワーディングデータベース１２０は、レイヤ３アドレス及び対応するフォワーディング情報のテーブルを含む。以下に詳細に述べられるように、幾つかのエントリに対し、レイヤ２フォワーディングデータベース１１８がI/Oポートブロックリストを含んでもよい。
【００１３】
図１において、単一ルックアップエンジン１１６は、レイヤ２及びレイヤ３フォワーディング段階ルックアップの両方を実行するが、本書に記述される主題はそのような実行に限られるものではない。代わりの実行では、前記レイヤ２及びレイヤ３ルックアップエンジンが別個のハードウェア、ソフトウェア又はファームウェア要素を用いて実行されてもよい。
【００１４】
さらに、図１では、別々のレイヤ２及びレイヤ３フォワーディングデータベースが示されるが、本書に記述される主題はそのような実施形態に限られるものではない。前記レイヤ２及びレイヤ３フォワーディングデータベースは、本書に記述される主題の範囲から逸脱しない範囲で、同一のデータベースの一部である別々のテーブルとして実行されてもよい。
【００１５】
スイッチング構造１０４は、I/Oモジュール１０２とスイッチ管理モジュール１０６との間でパケットを交換する。スイッチ管理モジュール１０６は、マスタレイヤ３フォワーディングデータベース１２２と、ソフトウェアルックアップエンジン１２４と、レイヤ３ルーティングプロトコルソフトウェア１２６とを含む。マスタレイヤ３フォワーディングデータベース１２２は、前記I/Oモジュールによって保持（maintain）されるレイヤ３フォワーディングデータベース１２０内のあらゆるエントリのコピーに加え、ソフトウェア１２６によって実行されるレイヤ３ルーティングプロトコルを用いて学習されるあらゆる付加的なエントリのコピーを含む。ソフトウェアルックアップエンジン１２４は、各I/Oモジュールによって局所的に保持された前記レイヤ３フォワーディングデータを用いて転送されることができず、I/Oモジュール１０２によって受信されたパケットに対し、マスタレイヤ３フォワーディングデータベース１２２内でルックアップを実行する。
【００１６】
図１に示す装置(device)では、選択的レイヤ２ポートブロッキングを実行することが望ましい。例えば、レイヤ２ソースアドレス毎に、図１に示すＩ/Ｏポートのグループ間で転送されるパケットを選択的にブロックすることが望ましいことがある。一実施において、Ｉ/Ｏポート１０８Ａ、１０８Ｂ、１１２Ａ、１１２Ｂ、１１４Ａ及び１１４Ｂは、同一のVLANのメンバーであってもよい。しかしながら、ポート１０８Ａ及び１０８Ｂに到着する幾つかのパケットがＩ/Ｏポート１１４Ａ及び１１４Ｂに転送されることをブロックし、かつ、残りがポート１１２Ａ及び１１２Ｂに転送されることをブロックすることが望ましい。そのような要求を実行するために、レイヤ２ブロッキングテーブルがソースアドレス毎に構成されてもよい。以下に示された表１は、本書に記述される主題の実施形態に従い、選択的レイヤ２ポートブロッキングを実行するための典型的なレイヤ２フォワーディングテーブルを示す。
【００１７】
【表１】
2009527190.tif 000003
【００１８】
表１のエントリは、ポート１０８Ａ及び１０８Ｂに到着するパケットがポート１１２Ａ、１１２Ｂ、１１４Ａ又は１１４Ｂに転送されるのをレイヤ２ソースアドレス毎に選択的にブロックするため、上述のブロッキング例を実行するように構成される。表１において、第１列はMACアドレスを含む。この列のエントリは、MACアドレスが学習されたものとして投入されてもよい。前記エントリの幾つかは、スイッチオペレータによって静的に構成されてもよい。第２列は前記VLAN識別子を含み、第３列は各エントリに対するフォワーディング情報を含み、かつ、第４列はＩ/Ｏポートブロックリストを含む。
【００１９】
表１のようなフォワーディングテーブルは、学習段階ルックアップに用いられるのに加え、フォワーディング段階ルックアップに用いられてもよい。例えば、２つのパケットが表１内のデータを有するポートで受信された場合、以下のステップが発生する。図２を参照すると、ステップ２００では、レイヤ２フレームが受信される。この例のため、第１のレイヤ２フレームがMACソースアドレス(SA)=MAC1、MAC宛先アドレス(DA)=MAC2、及びVLANタグ5を有すると仮定する。ステップ２０２では、I/Oポートブロックリストは、前記レイヤ２ソースアドレスに基づいて識別される。一例として表１のデータを用いると、MAC SA=MAC1の場合、抽出された前記Ｉ/Ｏポートブロックリストは、ポート１１４Ａ、１１４Ｂを含む。
【００２０】
ステップ２０４では、前記フレームが転送される１組のポートを識別するために、フォワーディング段階ルックアップが実行される。表１で前記ルックアップを実行するためにMAC DA=MAC2を用いると、前記フレームが転送されるメンバーポートは、１１２Ａ、１１２Ｂ、１１４Ａ及び１１４Ｂとなる。ステップ２０４では、前記フレームは、前記ブロックリスト内に存在する前記１組のポートへの転送をブロックされる。現在の例を用いると、１１４Ａ及び１１４Ｂがブロックリスト内にあるため、前記フレームはポート１１２Ａ及び１１２Ｂにのみ転送される。
【００２１】
ポートブロッキングの選択性は、MAC SA=MAC3、MAC DA=MAC2及びVLAN=5を有するフレームが受信される他の例によって図示されることもできる。そのようなフレームが受信される場合、ポート１１２Ａ及び１１２Ｂを含むポートブロックリストが抽出される。宛先アドレスは、前例にあるのと同一のポートを位置付けるために用いられる。しかしながら、ポート１１２Ａ及び１１２ＢがMAC SA=MAC3に対する前記Ｉ/Ｏポートブロックリスト内にあるため、ポート１１２Ａ及び１１２Ｂにフレームを転送するよりもむしろ、前記フレームはポート１１４Ａ及び１１４Ｂに転送される。従って、ポートブロックリストを選択するための識別子としてMACソースアドレスを用い、かつフレームが転送されるポートを決定するためにそのリストを用いることによって、きめ細かいポートブロッキングが達成される。さらに、前記Ｉ/Ｏポートブロックリストは学習段階ルックアップ内に位置付けられることができるので、セキュリティ機能を実行するため学習及びフォワーディング段階ルックアップの他にルックアップが必要な、レイヤ２セキュリティアプリケーションにわたってルックアップ数が削減される。
【００２２】
図２に関して記述された例は、レイヤ２情報にのみ基づいて転送されるパケットの、レイヤ２フォワーディングドメインの限定に基づいているが、本書に記述される主題はそのような例に限られない。ポートブロッキングリストを用いた選択的レイヤ２ポートブロッキングは、レイヤ３プロトコルを含むあらゆるプロトコルを用いて識別される、１組のレイヤ２ポートに対して実行されることができる。図３は、本書で記述された主題の実施形態に従い、レイヤ２及びレイヤ３フレームに対するレイヤ２ソースアドレスに基づく選択的レイヤ２ポートブロッキングを実行するための典型的なステップを示すフローチャートである。図３を参照すると、ステップ３００において、受信フレームに対する前記Ｉ/Ｏポートブロックリストは、最初にヌルにセットされる。ステップ３０２では、受信されたレイヤ２フレーム内のレイヤ２ソースアドレスに基づいて、学習段階ルックアップが実行される。上記したように、前記レイヤ２ソースアドレスに対応するエントリが存在するか否かを決定するためにフレーム又はパケットが受信されるポートで、前記レイヤ２学習段階ルックアップがレイヤ２フォワーディングテーブル内のルックアップを含んでもよい。ステップ３０４では、前記レイヤ２ソースアドレスに対応するエントリが前記フォワーディングテーブルに存在する場合、学習は不要となり、コントロール(control)は、前記パケットソースアドレスに対応する前記Ｉ/Ｏポートブロックリストが抽出されると共に、PBLと称される変数に格納されるステップ３０６に進む。
【００２３】
ステップ３０８では、前記パケットがレイヤ３マルチキャストパケットであるか否かが決定される。レイヤ３マルチキャストパケットは、0x01005Eのレイヤ２宛先アドレスによって識別される。このアドレスが存在する場合、前記フレームはレイヤ３マルチキャストフレームであり、コントロールは、前記フレームが転送される出口(egress)ポートリスト(EPL)を識別するためにレイヤ３ルックアップが実行されるステップ３１０に進む。ステップ３０８において、前記フレームがレイヤ３マルチキャストフレームでないと決定される場合、コントロールは、前記レイヤ２パケット宛先アドレスが前記フォワーディングテーブルに存在するか否かを決定するステップ３１２に進む。前記レイヤ２パケット宛先アドレスが前記フォワーディングデータベースに存在しない場合、コントロールは、前記受信したパケットに関連するVLANのメンバーに出口ポートリストがセットされるステップ３１４に進む。
【００２４】
ステップ３１２で、前記レイヤ２パケット宛先アドレスが前記フォワーディングデータベース内に存在する場合、コントロールは、前記パケットが受信ルータのMACアドレスにアドレス指定されるか否かを決定するステップ３１５に進む。前記パケットが前記ルータのMACアドレスにアドレス指定される場合、コントロールは、前記パケットがレイヤ３ユニキャストパケットであるか否かを決定するステップ３１６に進む。前記パケットがレイヤ３ユニキャストパケットである場合、コントロールは、前記フレームが転送される出口ポートリストを識別するために前記レイヤ３宛先アドレスに基づいてレイヤ３ルックアップが実行されるステップ３１８に進む。ステップ３１５において、前記パケットが前記ルータのMACアドレスにアドレス指定されていない場合、又は、ステップ３１６において、前記パケットがレイヤ３ユニキャストパケットでないと決定される場合、コントロールは、前記パケット内の前記レイヤ２宛先アドレスに一致する前記レイヤ２フォワーディングデータベースエントリ内のエントリから、出口ポートリストが抽出されるステップ３２０に進む。
【００２５】
一旦、前記出口ポートリストがステップ３１０、３１４、３１８又は３２０で識別されると、コントロールは、Ｉ/Ｏポートブロックリストが前記出口ポートリストからのエントリを隠すために用いられるステップ３２２に進む。このステップは、前記出口ポートリスト及びＩ/Ｏポートブロックリストに対応するビットマップを用いて実行されてもよい。出口ポートリストビットマップは、前記パケットが転送される各ポートに対応する１と、残ったポートに対する０とを含んでもよい。同様に、Ｉ/Ｏポートブロックリストビットマップは、ブロックされた各ポートに対する１と、残ったポートに対する０とを含んでもよい。従って、前記フレームが転送されるべき各ポートに対する複数の１(１s)を有するビットマップを生成するため、Ｉ/Ｏポートブロックリストビットマップはビット反転され、かつ前記出口ポートリストビットマップと論理積されてもよい。結果としてのビットマップは、前記フレームが転送されるポートに対応するビットを含む。論理積演算のような単純計算を用いると、最終出口ポートリストがハードウェア上で容易に認識される。
【００２６】
ステップ３０４に戻ると、前記レイヤ２ソースアドレスが前記フォワーディングデータベース上に存在しない場合、コントロールは、MACソースアドレスが前記受信ポート上で学習されるステップ３２４に進む。次に、コントロールは、前記出口ポートリストが識別されるステップ３０８及び３１０、３１２及び３１４、又は３１５−３２０に進み、それから前記リストが上述のように隠されるステップ３２２に進む。従って、図３に示すステップを用いるとレイヤ２情報又はレイヤ３情報に基づいて転送されるフレームに対し、選択的レイヤ２ポートブロッキングが実行される。
【００２７】
本発明の範囲を逸脱しない限り、本発明の各種の詳細を変更してよいことは理解されるであろう。さらに、前述の記述は説明を目的としたものに過ぎず、限定を目的としたものではない。
【図面の簡単な説明】
【００２８】
【図１】本書に記述された主題の実施形態に従い、レイヤ２ソースアドレスに基づいて選択的レイヤ２ポートブロッキングを実行するための、レイヤ２/レイヤ３パケットフォワーディングデバイスを示すブロック図である。
【図２】本書に記述された主題の実施形態に従い、レイヤ２ソースアドレスを用いて選択的レイヤ２ポートブロッキングを実行するための典型的なステップを示すフローチャートである。
【図３】本書に記述された主題の実施形態に従い、レイヤ２及びレイヤ３パケットに対して選択的レイヤ２ポートブロッキングを実行するための典型的なステップを示すフローチャートである。
【図１】
2009527190.tif 000004
【図２】
2009527190.tif 000005
【図３】
2009527190.tif 000006
【手続補正書】
【提出日】平成21年1月21日(2009.1.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
レイヤ２ソースアドレスに基づく選択的レイヤ２ポートブロッキングのための方法であっ
て、
(a)レイヤ２フレームを受信する段階と、
(b)前記レイヤ２フレーム内のレイヤ２ソースアドレスに基づいて、入出力(Ｉ/Ｏ)ポー
トブロックリストを識別する段階と、
(c)前記フレームが転送される１組のポートを識別するためにフォワーディング段階ル
ックアップを実行する段階と、
(d)前記Ｉ/Ｏポートブロックリスト内にも存在する前記１組の中のポートへの前記レイ
ヤ２フレームのフォワーディングをブロックする段階と
を備える方法。
【請求項２】
前記レイヤ２ソースアドレスに基づいて、Ｉ/Ｏポートブロックリストを識別する段階は
、レイヤ２フォワーディングテーブル内でレイヤ２学習段階ルックアップを実行する段階
を含む請求項１記載の方法。
【請求項３】
前記フォワーディング段階ルックアップを実行する段階は、
レイヤ２フォワーディングテーブル内のルックアップを実行する段階、及び前記レイヤ
２フレーム内のVLANタグに対応するVLANのメンバーを含む前記１組のポートを識別する段
階と；
レイヤ３マルチキャストパケットとして前記パケットを識別する段階、及び前記フレー
ムが転送される前記１組のレイヤ２ポートを決定するためにレイヤ３フォワーディングテ
ーブル内のルックアップを実行する段階と；
レイヤ３ユニキャストフレームとして前記フレームを識別する段階、及び前記フレーム
が転送される前記１組のポートを識別するためにレイヤ３フォワーディングテーブル内の
ルックアップを実行する段階と：のうち１つを含む請求項１記載の方法。
【請求項４】
前記Ｉ/Ｏポートブロックリストは、前記レイヤ２フレームが転送されないポートを表す
ビットを有するビットマップによって表わされ、前記フォワーディング段階ルックアップ
の間に識別された前記１組のポートは、前記レイヤ２フレームが転送される前記１組のポ
ートを表すビットを有するビットマップによって表わされ、かつ前記リスト内に存在する
前記１組の中のポートへの前記レイヤ２フレームのフォワーディングをブロックする段階
は、前記Ｉ/Ｏポートブロックリストを表す前記ビットマップを用い、前記フレームが転
送される前記ポートを表す前記ビットマップをマスクする段階を含む請求項１記載の方法
。
【請求項５】
前記レイヤ２フレームはイーサネット（登録商標）フレームを備え、さらにレイヤ２フレ
ームを受信する段階は、イーサネット（登録商標）スイッチ及びＩＰルータのうちの１つ
で前記レイヤ２フレームを受信する段階を含む請求項１記載の方法。
【請求項６】
レイヤ２ソースアドレスを用いた選択的レイヤ２ポートブロッキングのためのシステムで
あって、前記システムは、
(a)レイヤ２フォワーディング情報を有するエントリを含み、前記エントリの少なくと
も１つは受信されたレイヤ２フレームが転送されないポートを示す入出力(Ｉ/Ｏ)ポート
ブロックリストを含むフォワーディングデータベースと、
(b)レイヤ２フレームを受信し、前記レイヤ２フレーム内のレイヤ２ソースアドレスに
基づいて前記Ｉ/Ｏポートブロックリストを前記フォワーディングデータベース内に配置
し、フレームが転送される１組のポートを決定し、かつ、前記フレームに対して位置付け
られた前記Ｉ/Ｏポートブロックリスト内に存在する前記１組の中のポートへの前記フレ
ームのフォワーディングをブロックするためのフォワーディングエンジンと、
を備えるシステム。
【請求項７】
前記フォワーディングエンジンは、前記フォワーディングデータベース内のレイヤ２学習
段階ルックアップを実行することにより、前記Ｉ/Ｏポートブロックリストを識別するの
に適する請求項６記載のシステム。
【請求項８】
前記フォワーディングエンジンは、前記レイヤ２フレーム内のレイヤ２宛先アドレスに基
づいて前記フォワーディングデータベース内のルックアップを実行すること；
前記フレームをレイヤ３マルチキャストフレームとして識別し、かつ、前記フォワーデ
ィングデータベース内のレイヤ３フォワーディングテーブルでルックアップを実行するこ
とにより、前記フレームが転送される前記１組のポートを識別すること；
前記フレームをレイヤ３ユニキャストフレームとして識別し、かつ、前記フォワーディ
ングデータベース内のレイヤ３フォワーディングテーブル内でルックアップを実行するこ
とにより、前記フレームが転送される前記１組のポートを識別すること：のうち１つによ
り、前記フレームが転送される前記１組のポートを識別するのに適する請求項６記載のシ
ステム。
【請求項９】
前記Ｉ/Ｏポートブロックリストは、前記フレームが転送されないポートを表すビットを
有するビットマップにより表わされ、前記フレームが転送される前記１組のポートは、前
記フレームが転送されるポートを表すビットを有するビットマップによって表わされ、か
つ前記フォワーディングエンジンは、前記フレームが前記Ｉ/Ｏポートブロックリストビ
ットマップと共に転送される前記１組のポートに対応するビットマップをマスクすること
によって、前記ブロッキングを実行するのに適する請求項６記載のシステム。
【請求項１０】
前記フォワーディングエンジンは、レイヤ２及びレイヤ３フォワーディングエンジンのう
ち少なくとも１つを含み、かつ、前記フォワーディングデータベースは、レイヤ２及びレ
イヤ３フォワーディングデータベースのうち少なくとも１つを含む請求項６記載のシステ
ム。
【請求項１１】
(a)レイヤ２フレームを受信する段階と、
(b)前記レイヤ２フレーム内のレイヤ２ソースアドレスに基づいてレイヤ２ポートブロ
ッキングリストを識別する段階と、
(c)前記フレームが転送される１組のポートを識別するためにフォワーディング段階ル
ックアップを実行する段階と、
(d)前記ポートブロッキングリスト内にも存在する前記１組の中のポートへの前記レイ
ヤ２フレームのフォワーディングをブロッキングする段階と、
を有する段階を実行するためのコンピュータ読取可能な媒体に表現され、コンピュータで
実行可能な命令を含むコンピュータプログラム製品。
【請求項１２】
前記レイヤ２ソースアドレスに基づいてＩ/Ｏポートブロックリストを識別する段階は、
レイヤ２フォワーディングテーブル内でレイヤ２学習段階ルックアップを実行する段階を
含む請求項１１記載のコンピュータプログラム製品。
【請求項１３】
前記フォワーディング段階ルックアップを実行する段階は、レイヤ２フォワーディングテ
ーブル内でルックアップを実行する段階、及び前記レイヤ２フレーム内のVLANタグに対応
するVLANのメンバーを含む前記１組のポートを識別する段階と；
前記パケットをレイヤ３マルチキャストパケットとして識別する段階、及び前記フレー
ムが転送される前記１組のレイヤ２ポートを決定するためにレイヤ３フォワーディングテ
ーブル内でルックアップを実行する段階と；
前記フレームをレイヤ３ユニキャストフレームとして識別する段階と、前記フレームが
転送される前記１組のポートを識別するためにレイヤ３フォワーディングテーブル内でル
ックアップを実行する段階と：のうち１つを含む請求項１１記載のコンピュータプログラ
ム製品。
【請求項１４】
前記Ｉ/Ｏポートブロックリストは、前記レイヤ２フレームが転送されないポートを表す
ビットを有するビットマップによって表わされ、前記フォワーディング段階ルックアップ
の間に識別された前記１組のポートは、前記レイヤ２フレームが転送される前記１組のポ
ートを表すビットを有するビットマップによって表わされ、かつ前記リスト内に存在する
前記１組の中のポートに対する前記レイヤ２フレームのフォワーディングをブロックする
段階は、前記Ｉ/Ｏポートブロックリストを表す前記ビットマップを用い、前記フレーム
が転送される前記ポートを表す前記ビットマップをマスクする段階を含む請求項１１記載
のコンピュータプログラム製品。
【請求項１５】
前記レイヤ２フレームは、イーサネット（登録商標）フレームを含み、かつレイヤ２フレ
ームを受信する段階は、イーサネット（登録商標）スイッチで前記レイヤ２フレームを受
信する段階を含む請求項１１記載のコンピュータプログラム製品。
【国際調査報告】
2009527190.tif 000007