(57)【要約】【課題】  ポート閉塞を行わずにＭＡＣフラッディング攻撃を防御するパケット転送装置及びパケット転送方法を提供する。【解決手段】  パケット転送装置は、端末からパケットを受信して転送し、パケットの送信元の論理アドレスに対応する物理アドレスを端末に要求する要求部と、端末の応答が示す物理アドレスと、パケットの送信元の物理アドレスとを比較し、比較結果に応じてパケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定する判定部と、判定結果に応じ、パケットの送信元の物理アドレス及び送信元の論理アドレスを記憶部に記憶させるパケット処理部とを有し、パケット処理部は、新たに受信されたパケットの送信元の物理アドレス及び送信元の論理アドレスの組を、記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、比較結果に応じ、パケットを廃棄または転送する。【選択図】図５
2017143497.tif 000002
【特許請求の範囲】
【請求項１】
端末からパケットを受信して転送するパケット転送装置において、
物理アドレスと論理アドレスを対応付けて記憶する第１記憶部と、
前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求する要求部と、
前記要求部の要求に対する前記端末の応答が示す物理アドレスと、前記パケットの送信元の物理アドレスとを比較し、該比較結果に応じて前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定する判定部と、
前記判定部の判定結果に応じ、前記パケットの送信元の物理アドレス及び送信元の論理アドレスを前記第１記憶部に記憶させるパケット処理部とを有し、
前記パケット処理部は、前記パケットが新たに受信された場合、該新たに受信された前記パケットの送信元の物理アドレス及び送信元の論理アドレスの組を、前記第１記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、該比較結果に応じ、前記パケットを廃棄または転送することを特徴とするパケット転送装置。
【請求項２】
前記判定部は、前記要求部の要求に対する前記端末の応答が示す物理アドレスが、前記パケットの送信元の物理アドレスに一致しない場合、前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係が不当であると判定することを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記判定部は、前記要求部の要求に対する前記端末の応答がない場合、前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係が不当であると判定することを特徴とする請求項１または２に記載のパケット転送装置。
【請求項４】
前記パケットを受信する複数のポートと、
アドレステーブルを記憶する第２記憶部と、
前記複数のポートのうち、前記パケットを受信したポートの識別子と前記パケットの送信元の物理アドレスを対応付けて前記アドレステーブルに登録する登録部と、
前記アドレステーブルに登録された前記パケットの送信元の物理アドレスに対応する前記ポートの識別子の変更の頻度を監視する監視部とを有し、
前記要求部は、前記頻度が所定の閾値を超えた場合、前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求することを特徴とする請求項１乃至３の何れかに記載のパケット転送装置。
【請求項５】
端末からパケットを受信して転送するパケット転送方法において、
前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求し、
該要求に対する前記端末の応答が示す物理アドレスと、前記パケットの送信元の物理アドレスとを比較し、
該比較結果に応じて前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定し、
該判定結果に応じ、前記パケットの送信元の物理アドレス及び送信元の論理アドレスを記憶部に対応付けて記憶し、
前記パケットが新たに受信された場合、該新たに受信された前記パケットの送信元の物理アドレス及び送信元の論理アドレスの組を、前記記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、
該比較結果に応じ、前記パケットを廃棄または転送することを特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、パケット転送装置及びパケット転送方法に関する。
【背景技術】
【０００２】
レイヤ２スイッチは、端末などとパケットを送受信する複数のポートを有し、各ポート間でパケットを転送する。レイヤ２スイッチは、ＭＡＣ（Media Access Control）アドレス学習を行うことにより、パケットが受信されたポートの番号とパケットの送信元ＭＡＣアドレスを対応付けてＭＡＣアドレステーブルに登録する。レイヤ２スイッチは、ＭＡＣアドレステーブルに基づきパケットの転送先のポートを決定する。この動作は「フィルタリング」と呼ばれる。
【０００３】
レイヤ２スイッチは、ＭＡＣアドレステーブルに新規のＭＡＣアドレスを登録した場合、または登録内容を変更した場合、該当するパケットをその受信元のポートを除く各ポートから送信する。この動作は「フラッディング」と呼ばれる。
【０００４】
ＭＡＣアドレス学習を利用したＤｏＳ（Denial of Service）攻撃として、ＭＡＣフラッディング攻撃がある。ＭＡＣフラッディング攻撃では、悪意のユーザが、自分の端末のＭＡＣアドレスを詐称し、虚偽のＭＡＣアドレスを送信元とする大量のパケット（以下、「不正パケット」と表記）をレイヤ２スイッチに送信する。
【０００５】
レイヤ２スイッチは、不正パケットのＭＡＣアドレスをＭＡＣアドレステーブルに登録するたびにフラッディングを行うため、その処理の負荷が増加し、パケットの転送速度が低下する。また、ＭＡＣアドレステーブルの容量は限られているため、ＭＡＣアドレスの登録数がその上限に達した場合、ＭＡＣアドレステーブルに登録済みのＭＡＣアドレスは不正パケットのＭＡＣアドレスで上書きされる。このため、他のユーザのパケットが、元々ＭＡＣアドレステーブルに登録されていた正しいポートに転送されなくなる。
【０００６】
さらに、レイヤ２スイッチは、他のユーザのパケットを受信したとき、そのＭＡＣアドレスをＭＡＣアドレステーブルに再登録する。このとき、他のユーザのパケットは、フラッディングされるため、悪意のユーザの端末にも送信される。したがって、悪意のユーザは、他人宛てのパケットを不正に取得することができる。
【０００７】
なお、特許文献１には、ネットワークに不正にアクセスしているクライアント端末に対して、ＩＰ（Internet Protocol）アドレスによるフィルタリングによって通信を遮断する点が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−３６３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＭＡＣフラッディング攻撃に対し、レイヤ２スイッチは、例えば、ＭＡＣアドレステーブルに登録されたＭＡＣアドレスに対応するポート番号の変更の頻度をポートごとに監視し、その頻度が所定の閾値を超えたポートを閉塞する。これにより、レイヤ２スイッチは、不正パケットの受信を防ぐことができる。
【００１０】
しかし、ポートを閉塞した場合、悪意のユーザだけでなく、そのポートに接続された他のユーザの通信も不可能となるため、ネットワークへの影響が大きい。
【００１１】
そこで本件は上記の課題に鑑みてなされたものであり、ポート閉塞を行わずにＭＡＣフラッディング攻撃を防御するパケット転送装置及びパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本明細書に記載のパケット転送装置は、端末からパケットを受信して転送するパケット転送装置において、物理アドレスと論理アドレスを対応付けて記憶する第１記憶部と、前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求する要求部と、前記要求部の要求に対する前記端末の応答が示す物理アドレスと、前記パケットの送信元の物理アドレスとを比較し、該比較結果に応じて前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定する判定部と、前記判定部の判定結果に応じ、前記パケットの送信元の物理アドレス及び送信元の論理アドレスを前記第１記憶部に記憶させるパケット処理部とを有し、前記パケット処理部は、前記パケットが新たに受信された場合、該新たに受信された前記パケットの送信元の物理アドレス及び送信元の論理アドレスの組を、前記第１記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、該比較結果に応じ、前記パケットを廃棄または転送する。
【００１３】
本明細書に記載のパケット転送方法は、端末からパケットを受信して転送するパケット転送方法において、前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求し、該要求に対する前記端末の応答が示す物理アドレスと、前記パケットの送信元の物理アドレスとを比較し、該比較結果に応じて前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定し、該判定結果に応じ、前記パケットの送信元の物理アドレス及び送信元の論理アドレスを記憶部に対応付けて記憶し、前記パケットが新たに受信された場合、該新たに受信された前記パケットの送信元の物理アドレス及び送信元の論理アドレスの組を、前記記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、該比較結果に応じ、前記パケットを廃棄または転送する方法である。
【発明の効果】
【００１４】
ポート閉塞を行わずにＭＡＣフラッディング攻撃を防御できる。
【図面の簡単な説明】
【００１５】
【図１】ＭＡＣアドレス学習の一例を示す図である。
【図２】フィルタリングの一例を示す図である。
【図３】ＭＡＣフラッディング攻撃の一例を示す図である。
【図４】ＭＡＣアドレスの再登録の一例を示す図である。
【図５】不正パケットの判定方法の一例を示す図である。
【図６】レイヤ２スイッチの一例を示す構成図である。
【図７】ＭＡＣアドレステーブル、監視テーブル、及びフィルタテーブルの一例を示す図である。
【図８】モード制御部の処理の一例を示すフローチャートである。
【図９】レイヤ２スイッチチップの処理の一例を示すフローチャートである。
【図１０】制限モードの動作の一例を示すフローチャートである。
【図１１】正常なユーザからのパケットの処理の一例を示すシーケンス図である。
【図１２】正常なユーザからのパケットの処理の他例を示すシーケンス図である。
【図１３】悪意のユーザからのパケットの処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
図１にはＭＡＣアドレス学習の一例が示されている。レイヤ２スイッチ１ａは、パケット転送装置の一例であり、パケットを受信して転送する。レイヤ２スイッチ１ａには、一例として、パケットＰＫＴを送受信するポート＃１〜＃４が設けられている。ポート＃１〜＃４は、例えばＰＨＹ（Physical Layer）／ＭＡＣチップなどから構成されている。なお、パケットとしては、イーサネット（登録商標）フレームが挙げられるが、これに限定されない。
【００１７】
ポート＃１は、ＬＡＮ（Local Area Network）ケーブルなどを介し端末Ｔａに接続され、ポート＃２は、ＬＡＮケーブルなどを介し端末Ｔｂ，Ｔｘｘに接続されている。また、ポート＃３は、ＬＡＮケーブルなどを介し端末Ｔｃに接続され、ポート＃４は、ＬＡＮケーブルなどを介し端末Ｔｄに接続されている。なお、端末Ｔｂ，Ｔｘｘは、例えばハブ（ＨＵＢ）９を介し共通のポート＃２と接続されている。また、端末Ｔａ〜Ｔｄ，Ｔｘｘは、Ｗｉ―Ｆｉ（登録商標）などの無線ＬＡＮを介してレイヤ２スイッチ１ａに接続されてもよい。
【００１８】
端末Ｔａ〜Ｔｄ，Ｔｘｘは、例えばコンピュータであり、レイヤ２スイッチ１ａを介して通信する。端末Ｔａ〜Ｔｄ，Ｔｘｘは、個別のＭＡＣアドレス「ＭＡＣａ」〜「ＭＡＣｄ」，「ＭＡＣｘ」と個別のＩＰアドレス「ＩＰａ」〜「ＩＰｄ」，「ＩＰｘ」を有する。ＭＡＣアドレス「ＭＡＣａ」〜「ＭＡＣｄ」，「ＭＡＣｘ」は、端末Ｔａ〜Ｔｄ，Ｔｘｘの製造時に付与される６バイトの物理アドレスである。なお、本例では、便宜上、端末Ｔａ〜Ｔｄ，ＴｘｘのＭＡＣアドレスを「ＭＡＣａ」〜「ＭＡＣｄ」，「ＭＡＣｘ」の記号で示す。
【００１９】
また、ＩＰアドレス「ＩＰａ」〜「ＩＰｄ」，「ＩＰｘ」は、例えばＤＨＣＰ（Dynamic Host Configuration Protocol）サーバ（不図示）などから与えられたネットワーク内の論理アドレスである。ＩＰアドレス「ＩＰａ」〜「ＩＰｄ」，「ＩＰｘ」は、ＩＰｖ４（Internet Protocol version 4）の場合、３２ビットのデータであり、ＩＰｖ６（Internet Protocol version 6）の場合、１２８ビットのデータである。なお、本例では、便宜上、端末Ｔａ〜Ｔｄ，ＴｘｘのＩＰアドレスを「ＩＰａ」〜「ＩＰｄ」，「ＩＰｘ」で示す。
【００２０】
レイヤ２スイッチ１ａは、ＭＡＣアドレスとポート番号（＃１〜＃４）が対応付けられて登録されたＭＡＣアドレステーブルＴＬを有する。ここで、ポート番号は、ポートの識別子の一例である。レイヤ２スイッチ１ａは、端末Ｔａ〜Ｔｄからポート＃１〜＃４を介してそれぞれ受信したパケットＰＫＴからＭＡＣアドレス学習を行う。
【００２１】
レイヤ２スイッチ１ａは、例えば、端末Ｔａからポート＃１を介して受信したパケットＰＫＴの送信元ＭＡＣアドレス（SA: Source Address）「ＭＡＣａ」を、ポート番号＃１と対応付けてＭＡＣアドレステーブルＴＬに登録する。また、他の端末Ｔｂ〜Ｔｄから受信したパケットＰＫＴについても同様にＭＡＣアドレス学習が行われる。なお、端末Ｔｘｘは、ＭＡＣフラッディング攻撃を行う悪意のユーザの操作するものであり、ＭＡＣフラッディング攻撃を行うまで、端末ＴｘｘのＭＡＣアドレス学習は行われないと仮定する。
【００２２】
図２にはフィルタリングの一例が示されている。レイヤ２スイッチ１ａは、ＭＡＣアドレステーブルＴＬに基づき各ポート＃１〜＃４間でパケットＰＫＴを転送する。すなわち、レイヤ２スイッチ１ａは、ＭＡＣアドレステーブルに基づきパケットの転送先のポートを決定する。
【００２３】
レイヤ２スイッチ１ａは、例えば端末Ｔａから、宛先ＭＡＣアドレス（DA: Destination Address）が端末ＴｄのＭＡＣアドレス「ＭＡＣｄ」であるパケットＰＫＴを受信したと仮定する。レイヤ２スイッチ１ａは、ＭＡＣアドレステーブルＴＬを参照することにより、ＭＡＣアドレス「ＭＡＣｄ」に対応するポート番号＃４を検索する（符号Ｐａ参照）。このため、レイヤ２スイッチ１ａは、端末Ｔａから受信したパケットＰＫＴを、ポート＃４を介し端末Ｔｄに転送する（点線の矢印参照）。このようにして、レイヤ２スイッチ１ａはフィルタリングを行う。
【００２４】
図３にはＭＡＣフラッディング攻撃の一例が示されている。悪意のユーザは、自分の端末ＴｘｘのＭＡＣアドレス「ＭＡＣｘ」を詐称し、虚偽のＭＡＣアドレス「ＭＡＣｘａ」〜「ＭＡＣｘｄ」，「ＭＡＣａ」をＳＡとする大量の不正パケットをレイヤ２スイッチ１ａに送信する。
【００２５】
レイヤ２スイッチ１ａは、不正パケットのＭＡＣアドレス「ＭＡＣｘａ」〜「ＭＡＣｘｄ」，「ＭＡＣａ」をＭＡＣアドレステーブルＴＬに登録するたびにフラッディングを行うため、その処理の負荷が増加し、パケットの転送速度が低下する。
【００２６】
また、ＭＡＣアドレステーブルＴＬの容量は限られているため、ＭＡＣアドレスの登録数がその上限に達した場合、ＭＡＣアドレステーブルＴＬに登録済みのＭＡＣアドレス「ＭＡＣａ」〜「ＭＡＣｄ」は不正パケットのＭＡＣアドレス「ＭＡＣｘａ」〜「ＭＡＣｘｄ」，「ＭＡＣａ」で上書きされる。このため、他のユーザのパケットが、元々ＭＡＣアドレステーブルに登録されていた正しいポートに転送されなくなる。
【００２７】
例えば、端末Ｔｘｘは、端末Ｔａと同一のＭＡＣアドレス「ＭＡＣａ」をＳＡとする不正パケットを送信したため、ＭＡＣアドレステーブルＴＬに登録済みのＭＡＣアドレス「ＭＡＣａ」に対応するポート番号が＃１から＃２に書き換えられる（符号Ｐｂ参照）。つまり、ＭＡＣアドレステーブルＴＬ内でＭＡＣアドレス「ＭＡＣａ」に対応するポート番号が変更される。このため、端末ＴａのＭＡＣアドレス「ＭＡＣａ」をＤＡとするパケットは、端末Ｔａではなく、端末Ｔｘｘに転送される。
【００２８】
さらに、レイヤ２スイッチ１ａは、その端末Ｔａのパケットを受信したとき、そのＭＡＣアドレス「ＭＡＣａ」をＭＡＣアドレステーブルＴＬに再登録する。
【００２９】
図４にはＭＡＣアドレスの再登録の一例が示されている。レイヤ２スイッチ１ａは、端末Ｔａから、虚偽ではない正当なＭＡＣアドレス「ＭＡＣａ」をＳＡとするパケットＰＫＴを受信すると、ＭＡＣアドレステーブルＴＬに登録済みのＭＡＣアドレス「ＭＡＣａ」に対応するポート番号を＃２から＃１に書き換える（符号Ｐｃ参照）。
【００３０】
このとき、端末ＴａのパケットＰＫＴは、ポート＃２〜＃４にフラッディングされため、悪意のユーザの端末Ｔｘｘにも送信される。したがって、悪意のユーザは、他人宛てのパケットを不正に取得することができる。
【００３１】
ＭＡＣフラッディング攻撃に対し、レイヤ２スイッチ１ａは、例えば、ＭＡＣアドレステーブルＴＬに登録されたＭＡＣアドレスに対応するポート番号の変更の頻度をポート＃１〜＃４ごとに監視し、その頻度が所定の閾値を超えたポートを閉塞する。これにより、レイヤ２スイッチは、不正パケットの受信を防ぐことができる。
【００３２】
本例のＭＡＣアドレステーブルＴＬでは、上述したように、ＭＡＣアドレス「ＭＡＣａ」に対応するポート番号が＃１及び＃２の間で変更される。このため、レイヤ２スイッチ１ａは、その変更回数が所定の閾値を超えた場合、該当するポート＃２を閉塞する。これにより、ポート＃２によるパケットの送受信は不可能となる。
【００３３】
しかし、ポート＃２を閉塞した場合、悪意のユーザの端末Ｔｘｘだけでなく、そのポート＃２に接続された他のユーザの端末Ｔｂの通信も不可能となるため、ネットワークへの影響が大きい。
【００３４】
そこで、実施例のレイヤ２スイッチは、端末Ｔａ〜Ｔｄ，Ｔｘｘから受信したパケットの送信元ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求し、その応答に基づきパケットの送信元ＭＡＣアドレスの正否を判定する。そして、レイヤ２スイッチ１ａは、その判定結果に応じ、後述するフィルタリングテーブルに送信元ＭＡＣアドレスと送信元ＩＰアドレスの組を登録しておき、フィルタリングテーブルに基づいてパケットを廃棄または転送することで、ポート閉塞せずにＭＡＣフラッディング攻撃を防御する。
【００３５】
図５には不正パケットの判定方法の一例が示されている。図５において、図１〜図４と共通する構成や情報については、同一の符号及び記号を付し、その説明を省略する。なお、本例において、レイヤ２スイッチ１のＭＡＣアドレスは「ＭＡＣｓ」であり、レイヤ２スイッチ１のＩＰアドレスは「ＩＰｓ」であると仮定する。
【００３６】
実施例のレイヤ２スイッチ１は、パケット転送装置の一例であり、上記のレイヤ２スイッチ１ａと同様に端末Ｔａ〜Ｔｄ，Ｔｘｘからパケットを受信して転送する。レイヤ２スイッチ１は、ＭＡＣアドレステーブルＴＬ内のＭＡＣアドレスに対応するポート番号の変更回数を、ポート＃１〜＃４ごとに監視する。レイヤ２スイッチ１ａは、ポート番号の変更回数が所定の閾値以下である場合、「通常モード」で動作し、ポート番号の変更回数が所定の閾値を超えた場合、「制限モード」で動作する。通常モードにおいて、レイヤ２スイッチ１は、図１〜図４を参照して述べた動作を行う。一方、制限モードにおいて、レイヤ２スイッチ１は、以下に述べるように、不正パケットを判定し、不正パケットによるＭＡＣアドレス学習及び不正パケットの転送を制限する。
【００３７】
レイヤ２スイッチ１は、端末Ｔａ〜Ｔｄ，Ｔｘｘから受信するパケットのうち、不正パケットではない正常なパケットの送信元ＭＡＣアドレス（ＳＡ）及び送信元ＩＰアドレスを、後述するフィルタリングテーブルに登録する。レイヤ２スイッチ１は、フィルタテーブルに、該当するエントリがないパケットについて、不正パケットか否かを判定する。以下の例では、悪意のユーザの端末Ｔｘｘからレイヤ２スイッチ１に不正パケットが送信された場合を挙げる。
【００３８】
レイヤ２スイッチ１は、符号８０で示されるパケット（（１）参照）を受信すると、パケットバッファに格納する。このパケットは、虚偽のＭＡＣアドレス「ＭＡＣｘａ」をＳＡとし、真のＩＰアドレス「ＩＰｘ」を送信元ＩＰアドレスとする不正パケット（不正ＰＫＴ）である。なお、この段階では、レイヤ２スイッチ１は、受信したパケットが不正パケットであるか否かを判定することはできない。
【００３９】
次に、レイヤ２スイッチ１は、不正パケットの送信元ＩＰアドレスを探索ＩＰアドレスとするＡＲＰ（Address Resolution protocol）要求パケット（つまりＡＲＰリクエスト）を生成する（（２）参照）。ＡＲＰ要求パケットは、あるＩＰアドレスに対応するＭＡＣアドレスを要求するパケットである。本例では、このＩＰアドレス及びＭＡＣアドレスを探索ＩＰアドレス及び探索ＭＡＣアドレスとそれぞれ表記する。
【００４０】
ＡＲＰ要求パケットは、符号８１で示されるように、ブロードキャストアドレス「０ｘＦＦ・・・ＦＦ」（０ｘは１６進数表記）をＤＡとし、レイヤ２スイッチ１のＭＡＣアドレス「ＭＡＣｓ」をＳＡとする。また、ＡＲＰ要求パケットの送信元ＭＡＣアドレスの領域及び送信元ＩＰアドレスの領域には、レイヤ２スイッチ１のＭＡＣアドレス「ＭＡＣｓ」及びＩＰアドレス「ＩＰｓ」がそれぞれ格納される。また、探索ＩＰアドレスの直前の領域には、探索ＭＡＣアドレスに代えて、固定値「０ｘ００・・・００」が格納される。
【００４１】
なお、ＡＲＰ要求パケットは、ブロードキャストのＤＡを有するため、全ポート＃１〜＃４から送信されるが、図５では、端末Ｔｘｘに送信されるＡＲＰ要求パケットのみが示されている。
【００４２】
端末Ｔｘｘは、ＡＲＰ要求パケットを受信すると、そのＡＲＰ要求パケットに対するＡＲＰ応答パケット（つまりＡＲＰリプライ）を返信する（（３）参照）。このとき、端末Ｔｘｘは、虚偽のＭＡＣアドレスを通知するＡＲＰ応答パケットを生成できないため、ＡＲＰ応答パケットには、符号８２で示されるように、探索ＭＡＣアドレスの領域に、端末Ｔｘｘの真のＭＡＣアドレス「ＭＡＣｘ」が挿入される。
【００４３】
つまり、端末Ｔｘｘは、ＡＲＰ要求パケットに対してはＭＡＣアドレスを詐称できないため、正当なＭＡＣアドレス（つまり真のＭＡＣアドレス）「ＭＡＣｘ」をレイヤ２スイッチ１に通知する。なお、ＡＲＰ応答パケットには、ＤＡとしてレイヤ２スイッチ１のＭＡＣアドレス「ＭＡＣｓ」が含まれ、探索ＩＰアドレスの領域には、ＡＲＰ要求パケットの探索ＩＰアドレスと同じＩＰアドレス「ＩＰｘ」が挿入されている。
【００４４】
レイヤ２スイッチ１は、ＡＲＰ応答パケットを受信すると、ＡＲＰ応答パケットの探索ＭＡＣアドレス「ＭＡＣｘ」及び探索ＩＰアドレス「ＩＰｘ」を、端末Ｔｘｘから受信した不正パケットの送信元ＭＡＣアドレス（ＳＡ）「ＭＡＣｘａ」及び送信元ＩＰアドレス「ＩＰｘ」と比較する。レイヤ２スイッチ１は、比較の結果、ＩＰアドレスは一致するが、探索ＭＡＣアドレス「ＭＡＣｘ」及び送信元ＭＡＣアドレス「ＭＡＣｘａ」が不一致であるため、受信したパケットのＳＡが虚偽のＭＡＣアドレスであるとみなし、そのパケットを不正パケットと判定して廃棄する。
【００４５】
このため、レイヤ２スイッチ１は、ポート＃２を閉塞することなく、不正パケットによるＭＡＣアドレス学習及び不正パケットの転送を回避することができる。以下にレイヤ２スイッチ１の構成を述べる。
【００４６】
図６は、レイヤ２スイッチ１の一例を示す構成図である。レイヤ２スイッチ１は、ＣＰＵ（Central Processing Unit）１０、レイヤ２スイッチ（Ｌ２ＳＷ）チップ１６、ＲＯＭ（Read Only Memory）１１、及びＲＡＭ（Random Access Memory）１２を有する。レイヤ２スイッチ１は、さらに、ＣＡＭ（Content Addressable Memory）１３、不揮発性メモリ１４、パケット（ＰＫＴ）バッファ１５、及びポート＃１〜＃４を有する。
【００４７】
ＣＰＵ１０及びＬ２ＳＷチップ１６は、互いに信号の入出力ができるように、ＲＯＭ１１、ＲＡＭ１２、ＣＡＭ１３、不揮発性メモリ１４、及びパケットバッファ１５と、バス１９を介して接続されている。なお、ＣＰＵ１０及びＬ２ＳＷチップ１６は、共通のバス１９に接続されているが、これに限定されず、個別のバスに接続されてもよい。この場合、ＣＰＵ１０及びＬ２ＳＷチップ１６は、それぞれのバスに接続された共通のメモリを介して通信することができる。
【００４８】
ＲＯＭ１１は、ＣＰＵ１０を駆動するプログラムが格納されている。ＲＡＭ１２は、ＣＰＵ１０のワーキングメモリとして機能する。ポート＃１〜＃４は、Ｌ２ＳＷチップ１６に接続され、各端末Ｔａ〜Ｔｄ，Ｔｘｘとの間でそれぞれパケットを送受信する。
【００４９】
Ｌ２ＳＷチップ１６は、例えば集積回路などのハードウェアにより構成され、ポート＃１〜＃４と接続されている。Ｌ２ＳＷチップ１６は、パケット処理部の一例であり、ポート＃１〜＃４間のパケットの転送処理などを行う。Ｌ２ＳＷチップ１６は、一例として、カットスルー方式によりパケット転送を行うが、これに限定されない。
【００５０】
また、Ｌ２ＳＷチップ１６は、ＣＰＵ１０と連携することにより、図５を参照して述べた処理を行う。なお、Ｌ２ＳＷチップ１６の機能は、ハードウェアに限定されず、ＣＰＵ１０によりソフトウェアとして形成されてもよい。
【００５１】
ＣＰＵ１０は、ＲＯＭ１１からプログラムを読み込むと、機能として、ハードウェアインターフェース（ＨＷ−ＩＮＦ）部１００、モード制御部１０１、監視部１０２、アドレス登録部１０３、アドレス要求部１０４、及びパケット（ＰＫＴ）判定部１０５が形成される。また、ＣＡＭ１３は、第２記憶部の一例であり、ＭＡＣアドレステーブル１３０を記憶する。なお、ＭＡＣアドレステーブル１３０は、アドレステーブルの一例であり、図１〜図４に示されたＭＡＣアドレステーブルＴＬに該当する。
【００５２】
不揮発性メモリ１４は、第１記憶部（記憶部）の一例であり、フィルタテーブル１４０及び監視テーブル１４１を記憶する。不揮発性メモリ１４としては、例えばＥＰＲＯＭ（Erasable Programmable ROM）が挙げられる。パケットバッファ１５は、例えばメモリにより構成され、パケットを格納する。Ｌ２ＳＷチップ１６は、制限モードにおいて、フィルタテーブル１４０にエントリがないパケットをパケットバッファ１５に格納する。
【００５３】
ＨＷ−ＩＮＦ部１００は、他の各部１０１〜１０５とＬ２ＳＷチップ１６の間の通信を仲介する。ＨＷ−ＩＮＦ部１００は、例えば、他の各部１０１〜１０５とＬ２ＳＷチップ１６の間において、各種の命令、通知、応答などのメッセージの形式を変換する。
【００５４】
アドレス登録部１０３は、登録部の一例であり、図１を参照して述べたように、パケットを受信したポート＃１〜＃４のポート番号とそのパケットのＳＡを対応付けてＭＡＣアドレステーブル１３０に登録する。図７にはＭＡＣアドレステーブル１３０の一例が示されている。ＭＡＣアドレステーブル１３０の構成は、上述した通りである。アドレス登録部１０３は、Ｌ２ＳＷチップ１６に指示に従い、ＭＡＣアドレステーブル１３０の登録処理を行う。
【００５５】
通常モードにおいて、Ｌ２ＳＷチップ１６は、パケットを受信したとき、そのパケットのＳＡをＭＡＣアドレステーブル１３０から検索する。Ｌ２ＳＷチップ１６は、検索の結果、該当するＭＡＣアドレスが未登録である場合、そのパケットのＳＡの登録をアドレス登録部１０３に指示する。また、Ｌ２ＳＷチップ１６は、該当するＭＡＣアドレスが登録済みである場合でも、ＭＡＣアドレステーブル１３０内のＳＡに対応するポート番号が、パケットを受信したポート＃１〜＃４のポート番号と異なる場合、ＭＡＣアドレステーブル１３０に登録されたポート番号を該当ポート番号変更するように、アドレス登録部１０３に指示する。
【００５６】
また、通常モードにおいて、Ｌ２ＳＷチップ１６は、そのパケットのＤＡをＭＡＣアドレステーブル１３０から検索する。Ｌ２ＳＷチップ１６は、検索の結果、該当するＤＡが登録済みである場合、ＤＡに対応するポート番号のポート＃１〜＃４からパケットを転送し、該当するＤＡが未登録である場合、パケットをフラッディングする。
【００５７】
一方、制限モードにおいて、Ｌ２ＳＷチップ１６は、パケットを受信したとき、そのパケットが不正パケットであると判定された場合、上記のようなＭＡＣアドレス学習の指示及びパケットの転送処理を行わない。また、Ｌ２ＳＷチップ１６は、そのパケットが正常なパケットであると判定された場合、またはそのパケットのエントリがフィルタテーブル１４０に存在する場合、ＭＡＣアドレス学習の指示及びパケットの転送処理を行う。なお、受信したパケットの正否は、ＡＲＰ応答パケットに基づいてパケット判定部１０５により行われる。
【００５８】
監視部１０２は、ＭＡＣアドレステーブル１３０に登録されたパケットのＭＡＣアドレスに対応するポート番号の変更の頻度を監視する。より具体的には、監視部１０２は、図１〜図４に例示されたＭＡＣアドレステーブルＴＬのように、ＭＡＣアドレス「ＭＡＣａ」に対応するポート番号が＃１から＃２、さらに＃２から＃１に変更された場合、ポート番号の変更回数として２回をカウントする。なお、カウントした変更回数は、モード制御部１０１により周期的に読み出された後に０にリセットされるため、変更の頻度として扱われる。
【００５９】
監視部１０２は、周期的にＭＡＣアドレステーブル１３０にアクセスすることにより、ポート番号の変更を検出し、監視テーブル１４１に記録された変更の頻度をカウントアップする。
【００６０】
図７には、監視テーブル１４１の一例が示されている。監視テーブル１４１には、ポート番号ごとに、変更頻度（回／ｓｅｃ）、その閾値、及びレイヤ２スイッチ１の動作モードが記録されている。本例において、監視部１０２は、ポート＃１〜＃４ごとにポート番号の変更回数をカウントするが、これに限定されず、全ポート＃１〜＃４についてのポート番号の変更回数をカウントしてもよい。
【００６１】
変更回数は、変更頻度として登録されるが、上述したように、モード制御部１０１により周期的（本例では１秒ごと）にリセットされる。また、変更頻度の閾値は、固定値であってもよいし、外部からの設定値であってもよい。
【００６２】
モード制御部１０１は、周期的に変更頻度を読み出し、その閾値と比較する。モード制御部１０１は、その比較の結果に従い、ポート＃１〜＃４ごとにレイヤ２スイッチ１の動作モードを切り替える。モード制御部１０１は、変更頻度が閾値を超えた場合、動作モードを制限モードに切り替える。このとき、モード制御部１０１は、監視テーブル１４１の該当ポート＃１〜＃４の動作モードを「制限」に設定する。
【００６３】
また、モード制御部１０１は、変更頻度が閾値以下となった場合、外部からの指示に応じて動作モードを通常モードに切り替える。このとき、モード制御部１０１は、監視テーブル１４１の該当ポート＃１〜＃４の動作モードを「通常」に設定する。モード制御部１０１は、動作モードを切り替えた場合、その旨をＬ２ＳＷチップ１６、アドレス要求部１０４、及びパケット判定部１０５に通知する。
【００６４】
アドレス要求部１０４は、要求部の一例であり、パケットの宛先ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求する。より具体的には、アドレス要求部１０４は、図５を参照して述べたＡＲＰ要求パケットを生成し送信する。なお、ＡＲＰ要求パケットは、Ｌ２ＳＷチップ１６を介して全ポート＃１〜＃４から送信される。
【００６５】
制限モードにおいて、Ｌ２ＳＷチップ１６は、フィルタテーブル１４０にエントリのないパケットを受信した場合、そのパケットをパケットバッファ１５に格納する。アドレス要求部１０４は、パケットバッファ１５に格納されたパケットについてＡＲＰ要求パケットを生成する。より具体的には、アドレス要求部１０４は、パケットバッファ１５内のパケットの宛先ＩＰアドレスを探索ＩＰアドレスとするＡＲＰ要求パケットを生成する。
【００６６】
アドレス要求部１０４は、ＡＲＰ要求パケットに対する応答であるＡＲＰ応答パケットの受信を監視する。アドレス要求部１０４は、Ｌ２ＳＷチップ１６からＡＲＰ応答パケットを受信し、パケット判定部１０５に出力する。上述したとおり、端末Ｔａ〜Ｔｄ，Ｔｘｘは、ＡＲＰ要求パケットに対して、虚偽のＭＡＣアドレスではなく、真のＭＡＣアドレスをＡＲＰ応答パケットに含めて送信する。
【００６７】
このため、レイヤ２スイッチは、端末Ｔａ〜Ｔｄ，Ｔｘｘから真のＭＡＣアドレスを取得することができる。また、アドレス要求部１０４は、ＡＲＰ要求パケットの送信後、タイマなどを用いてＡＲＰ応答パケットの受信を監視し、所定時間が経過してもＡＲＰ応答パケットを受信できない場合、その旨をパケット判定部１０５に通知する。
【００６８】
また、アドレス要求部１０４は、制限モードではＡＲＰ要求パケットを生成し送信するが、通常モードではＡＲＰ要求パケットの生成及び送信を行わない。すなわち、アドレス要求部１０４は、監視部１０２が監視する変更頻度が閾値を超えた場合、ＡＲＰ要求パケットを送信することにより、端末Ｔａ〜Ｔｄ，Ｔｘｘに対してパケットの送信元ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求する。このため、レイヤ２スイッチ１は、悪意のユーザの端末Ｔｘｘと接続されていない場合、ＡＲＰ要求パケットの生成及び送信の処理を行う必要がなく、負荷が低減される。
【００６９】
パケット判定部１０５は、判定部の一例であり、アドレス要求部１０４の要求に対する端末Ｔａ〜Ｔｄ，Ｔｘｘの応答に基づきパケットの送信元ＭＡＣアドレス、つまりＳＡの正否を判定する。より具体的には、パケット判定部１０５は、ＡＲＰ要求パケットに対して端末Ｔａ〜Ｔｄ，Ｔｘｘから送信されたＡＲＰ応答パケットを受信し、ＡＲＰ応答パケット内の探索ＭＡＣアドレス及び探索ＩＰアドレスを、パケットバッファ１５に格納済みのパケットのＳＡ及び送信元ＩＰアドレスと比較する。すなわち、パケット判定部１０５は、ＡＲＰ応答パケットが示す探索ＭＡＣアドレスと、パケットのＳＡとを比較する。
【００７０】
パケット判定部１０５は、比較の結果、ＡＲＰ応答パケットの探索ＭＡＣアドレス及び探索ＩＰアドレスがパケットのＳＡ及び送信元ＩＰアドレスにそれぞれ一致した場合、端末Ｔａ〜Ｔｄ，Ｔｘｘから受信したパケットのＳＡを真のＭＡＣアドレスであると判定する。一方、パケット判定部１０５は、ＡＲＰ応答パケットの探索ＭＡＣアドレス及び探索ＩＰアドレスがパケットのＳＡ及び送信元ＩＰアドレスに不一致であった場合、そのＳＡを虚偽のＭＡＣアドレスであると判定する。このように、パケット判定部１０５は、上記の比較結果に応じてパケットのＳＡ及び送信元ＩＰアドレスの対応関係の正当性を判定する。
【００７１】
つまり、パケット判定部１０５は、ＡＲＰ応答パケットが示すＭＡＣアドレスが、受信したパケットのＳＡに一致した場合、そのＳＡ及び送信元ＩＰアドレスの対応関係を正当であると判定し、不一致である場合、そのＳＡ及び送信元ＩＰアドレスの対応関係を不当であると判定する。このため、レイヤ２スイッチ１は、ＡＲＰ応答パケットが示すＭＡＣアドレスから、虚偽のＳＡのパケットを送信した悪意のユーザの端末Ｔｘｘを検出できる。
【００７２】
また、パケット判定部１０５は、アドレス要求部１０４から、ＡＲＰ応答パケットの未受信の通知を受けた場合、受信したパケットを不正パケットであると判定する。つまり、パケット判定部１０５は、端末ＴｘｘからのＡＲＰ応答パケットがない場合、パケットのＳＡ及び送信元ＩＰアドレスの対応関係が不当であると判定する。
【００７３】
これは、悪意のユーザが、虚偽のＳＡのパケットを送信したことを隠すために、その端末ＴｘｘからＡＲＰ応答パケットが送信されないような手段を講ずる可能性があるためである。このような場合でも、パケット判定部１０５は、ＡＲＰ応答パケットの未受信により、虚偽のＳＡのパケットを送信した悪意のユーザの端末Ｔｘｘを検出できる。パケット判定部１０５は、パケットの判定結果をＬ２ＳＷチップ１６に通知する。
【００７４】
Ｌ２ＳＷチップ１６は、パケット判定部１０５の判定結果に応じてパケットを廃棄または転送する。より具体的には、Ｌ２ＳＷチップ１６は、判定の結果、パケットが不正であった場合、そのパケットを廃棄し、パケットが正当であった場合、そのパケットを転送する。さらに、Ｌ２ＳＷチップ１６は、パケットが正当である場合、そのパケットによるＭＡＣアドレス学習をアドレス登録部１０３に指示する。なお、以降の説明において、不正パケットではないパケットを「正当なパケット」と表記する。
【００７５】
このため、レイヤ２スイッチ１は、不正パケットによりＭＡＣアドレス学習及び不正パケットの転送を防止することができる。したがって、レイヤ２スイッチ１は、ポート閉塞を行うことなく、ＭＡＣフラッディング攻撃を防御できる。
【００７６】
また、Ｌ２ＳＷチップ１６は、正当なパケットのＳＡ及び送信元ＩＰアドレスを対応付け、該当するポート番号ごとにフィルタテーブル１４０に登録する。つまり、Ｌ２ＳＷチップ１６は、パケット判定部１０５の判定結果に応じ、パケットのＳＡ及び送信元ＩＰアドレスをフィルタテーブル１４０に登録する。
【００７７】
図７には、フィルタテーブル１４０の一例が示されている。フィルタテーブル１４０には、ポート番号ごとに、正当なパケットのＳＡ及び送信元ＩＰアドレスがＭＡＣアドレスおよびＩＰアドレスの組として登録されている。つまり、不揮発性メモリ１４には、ＭＡＣアドレスと論理アドレスが対応付けて登録されたフィルタテーブル１４０が記憶されている。
【００７８】
Ｌ２ＳＷチップ１６は、制限モードにおいて、パケットが新たに受信された場合、そのパケットのＳＡ及び送信元ＩＰアドレスの組を、フィルタテーブル１４０に登録されたＭＡＣアドレス及びＩＰアドレスの組と比較し、その比較結果に応じ、パケットを廃棄または転送する。このため、レイヤ２スイッチ１は、フィルタテーブル１４０を用いて、ＭＡＣフラッディング攻撃を防御できる。
【００７９】
より具体的には、Ｌ２ＳＷチップ１６は、新たなパケットが受信された場合、そのパケットのＳＡ及び送信元ＩＰアドレスの組が、フィルタテーブル１４０に登録されたＭＡＣアドレス及びＩＰアドレスの組に一致するとき、つまり、パケットのエントリがあるとき、パケットを転送する。また、Ｌ２ＳＷチップ１６は、上記の組が不一致である場合、そのパケットは未判定のものであるため、アドレス要求部１０４にＡＲＰ要求パケットの生成及び送信を指示する。
【００８０】
このため、レイヤ２スイッチ１は、パケット判定部１０５により一度でも正当なパケットと判定されたパケットについてＡＲＰ要求パケットを生成及び送信する処理の手間を省くことができる。もっとも、レイヤ２スイッチ１は、これに限定されず、受信した全てのパケットについてＡＲＰ要求パケットを生成及び送信してもよい。なお、フィルタテーブル１４０のエントリは、例えばレイヤ２スイッチ１の動作モードが制限モードから通常モードに戻った場合に消去される。次に、レイヤ２スイッチ１の処理について述べる。
【００８１】
図８は、モード制御部１０１の処理の一例を示すフローチャートである。モード制御部１０１は、例えば１秒周期で起動されて以下の処理を実行する。
【００８２】
モード制御部１０１は、ポート＃１〜＃４を選択する（ステップＳｔ１）。次に、モード制御部１０１は、監視テーブル１４１を参照し、選択したポート＃１〜＃４の変更頻度とその閾値を比較する（ステップＳｔ２）。このように、モード制御部１０１は、１秒周期で監視テーブル１４１の変更頻度を読み出すため、変更頻度のカウンタ値は１秒単位の変更頻度として用いられる。なお、監視テーブル１４１の変更頻度のカウンタ値の読み出し周期に限定はない。
【００８３】
モード制御部１０１は、変更頻度が閾値を超えた場合（ステップＳｔ２のＹｅｓ）、レイヤ２スイッチ１の動作モードを制限モードに切り替える（ステップＳｔ３）。アドレス要求部１０４は、制限モードにおいて、受信したパケットのＳＡに対応する送信元ＩＰアドレスを、ＡＲＰ要求パケットの送信により端末Ｔａ〜Ｔｄ，Ｔｘｘに要求するが、通常モードにおいて、その要求は行わない。
【００８４】
このため、変更頻度が高い場合、つまり悪意のユーザによるＭＡＣフラッディング攻撃が疑われる場合だけ、選択ポート＃１〜＃４からＡＲＰ要求パケットが送信され、変更頻度が低い通常モードでは、ＡＲＰ要求パケットの送信処理の負荷が省かれる。
【００８５】
次に、モード制御部１０１は、監視テーブル１４１の変更頻度のカウンタを０にクリアする（ステップＳｔ４）。次に、モード制御部１０１は、未選択ポート＃１〜＃４の有無を判定する（ステップＳｔ５）。モード制御部１０１は、未選択ポート＃１〜＃４がない場合（ステップＳｔ５のＮｏ）、処理を終了し、未選択ポート＃１〜＃４がある場合（ステップＳｔ５のＹｅｓ）、他のポート＃１〜＃４を選択し（ステップＳｔ９）、ステップＳｔ２の判定処理を再び実行する。
【００８６】
また、モード制御部１０１は、変更頻度が閾値以下である場合（ステップＳｔ２のＮｏ）、その旨をレイヤ２スイッチ１の管理装置に通知する（ステップＳｔ６）。管理装置は、例えば端末Ｔａ〜Ｔｄの何れかであってもよいし、他の装置であってもよい。
【００８７】
モード制御部１０１は、管理装置から通常モードへの切り替え指示がない場合（ステップＳｔ７のＮｏ）、上記のステップＳｔ４の処理を実行する。また、モード制御部１０１は、管理装置から通常モードへの切り替え指示を受けた場合（ステップＳｔ７のＹｅｓ）、レイヤ２スイッチ１の動作モードを通常モードへ切り替えて（ステップＳｔ８）、上記のステップＳｔ４の処理を実行する。このようにして、モード制御部１０１の処理は実行される。
【００８８】
図９は、Ｌ２ＳＷチップ１６の処理の一例を示すフローチャートである。本処理は、例えば周期的に実行される。
【００８９】
Ｌ２ＳＷチップ１６はパケットの受信の有無を判定する（ステップＳｔ１１）。Ｌ２ＳＷチップ１６は、例えば各ポート＃１〜＃４にからのパケットの受信通知に基づき、パケットの受信の有無を判定することができる。Ｌ２ＳＷチップ１６は、パケットの受信がない場合（ステップＳｔ１１のＮｏ）、処理を終了する。
【００９０】
また、Ｌ２ＳＷチップ１６は、パケットが受信された場合（ステップＳｔ１１のＹｅｓ）、動作モードが通常モード及び制限モードの何れであるかを判定する（ステップＳｔ１２）。Ｌ２ＳＷチップ１６は、動作モードが制限モードである場合（ステップＳｔ１２のＮｏ）、後述する制限モードの動作を行い（ステップＳｔ１５）、処理を終了する。
【００９１】
また、Ｌ２ＳＷチップ１６は、動作モードが通常モードである場合（ステップＳｔ１２のＹｅｓ）、図１に示されるＭＡＣアドレス学習の処理を行う（ステップＳｔ１３）。なお、受信したパケットのＳＡがＭＡＣアドレステーブル１３０に登録済みである場合、ＭＡＣアドレス学習は行われない。
【００９２】
次に、Ｌ２ＳＷチップ１６は、図２に示されるパケットの転送処理を行う（ステップＳｔ１４）。Ｌ２ＳＷチップ１６は、例えばカットスルー方式に従いパケットを転送するため、通常モードではパケットをパケットバッファ１５に格納することなく、高速で転送することができる。なお、レイヤ２スイッチ１は、これに限定されず、ストアアンドフォワード方式に従い、動作モードによらずにパケットをパケットバッファ１５に格納してもよい。このようにして、Ｌ２ＳＷチップ１６の処理は実行される。
【００９３】
図１０は、制限モードの動作の一例を示すフローチャートである。本処理は、図９に示されたステップＳｔ１５において実行される。
【００９４】
まず、Ｌ２ＳＷチップ１６は、パケットを受信したポート＃１〜＃４のポート番号、そのパケットのＳＡ及び送信元ＩＰアドレスに基づき、フィルタテーブル１４０を検索する（ステップＳｔ２１）。次に、Ｌ２ＳＷチップ１６は、フィルタテーブル１４０における、受信したパケットに該当するエントリの有無を判定する（ステップＳｔ２２）。
【００９５】
Ｌ２ＳＷチップ１６は、受信パケットに該当するエントリが有る場合（ステップＳｔ２２のＹｅｓ）、図１に示されるＭＡＣアドレス学習の処理を行う（ステップＳｔ２９）。次に、Ｌ２ＳＷチップ１６は、図２に示されるパケットの転送処理を行い（ステップＳｔ３０）、処理を終了する。
【００９６】
Ｌ２ＳＷチップ１６は、上述したように、パケット判定部１０５により正当なパケットと判定されたパケットのＳＡ及び送信元ＩＰアドレスを、フィルタテーブル１４０に登録する。このため、Ｌ２ＳＷチップ１６は、フィルタテーブル１４０に登録済みのパケットを受信した場合、以下のステップＳｔ２３以降の処理を省くことができる。
【００９７】
Ｌ２ＳＷチップ１６は、受信パケットに該当するエントリがない場合（ステップＳｔ２２のＮｏ）、そのパケットをパケットバッファ１５に格納する（ステップＳｔ２３）。このため、Ｌ２ＳＷチップ１６は、パケット判定部１０５によりパケットの正否が判定されるまで、パケットを保持することができる。
【００９８】
次に、アドレス要求部１０４は、そのパケットの送信元ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求するため、ＡＲＰ要求パケットを生成し、該当ポート＃１〜＃４から送信する（ステップＳｔ２４）。次に、パケット判定部１０５は、ＡＲＰ要求パケットに対するＡＲＰ応答パケットの受信の有無を判定する（ステップＳｔ２５）。このとき、パケット判定部１０５は、例えばタイマによりタイマの満了時間内のＡＲＰ応答パケットの受信を検出する。
【００９９】
パケット判定部１０５は、ＡＲＰ応答パケットが受信されない場合（ステップＳｔ２５のＮｏ）、受信したパケットが不正パケットであると判定する（ステップＳｔ３１）。次に、Ｌ２ＳＷチップ１６は不正パケットを廃棄する（ステップＳｔ３２）。このとき、Ｌ２ＳＷチップ１６は、パケットバッファ１５に格納された不正パケットをクリアし、不正パケットによるＭＡＣアドレス学習及び不正パケットの転送処理を行わない。
【０１００】
また、パケット判定部１０５は、ＡＲＰ応答パケットが受信された場合（ステップＳｔ２５のＹｅｓ）、ＡＲＰ応答パケット内の探索ＭＡＣアドレス及び探索ＩＰアドレスを、パケットバッファ１５に格納済みのパケットのＳＡ及び送信元ＩＰアドレスと比較する（ステップＳｔ２６）。パケット判定部１０５は、比較の結果、ＡＲＰ応答パケットの探索ＭＡＣアドレス及び探索ＩＰアドレスがパケットのＳＡ及び送信元ＩＰアドレスに不一致であった場合（ステップＳｔ２６のＮｏ）、受信パケットが不正パケットであると判定する（ステップＳｔ３１）。次に、Ｌ２ＳＷチップ１６は受信パケットを廃棄する（ステップＳｔ３２）。
【０１０１】
また、パケット判定部１０５は、比較の結果、ＡＲＰ応答パケットの探索ＭＡＣアドレス及び探索ＩＰアドレスがパケットのＳＡ及び送信元ＩＰアドレスにそれぞれ一致した場合（ステップＳｔ２６のＹｅｓ）、受信パケットが正当なパケットであると判定する（ステップＳｔ２７）。次に、Ｌ２ＳＷチップ１６は、受信パケットのＳＡ及び送信元ＩＰアドレスをフィルタテーブル１４０に登録する（ステップＳｔ２８）。
【０１０２】
次に、Ｌ２ＳＷチップ１６は、受信パケットによりＭＡＣアドレス学習を行い（ステップＳｔ２９）、受信パケットを転送する（ステップＳｔ３０）。このようにして、制限モードの動作は行われる。
【０１０３】
このように、パケット判定部１０５は、アドレス要求部１０４の要求に対する端末Ｔａ〜Ｔｄ，ＴｘｘのＡＲＰ応答パケットに基づきパケットの送信元のＭＡＣアドレスであるＳＡの正否を判定する。また、Ｌ２ＳＷチップ１６は、パケット判定部１０５の判定結果に応じてパケットを廃棄または転送する。
【０１０４】
このため、レイヤ２スイッチ１は、悪意のユーザの端末Ｔｘｘから受信した不正パケットを検出して廃棄することができる。したがって、レイヤ２スイッチ１は、ポート閉塞を行わずにＭＡＣフラッディング攻撃を防御することができる。以下にパケットの処理の例を挙げて説明する。
【０１０５】
図１１は、正常なユーザからのパケットの処理の一例を示すシーケンス図である。本例では、レイヤ２スイッチ１は、端末Ｔａから正当なＳＡ「ＭＡＣａ」及び送信元ＩＰアドレス「ＩＰａ」のパケットを受信した場合を挙げる。
【０１０６】
レイヤ２スイッチ１は、端末Ｔａからポート＃１を介しパケットＰＫＴを受信すると、フィルタテーブル１４０を検索する（符号ＳＱ１参照）。このとき、フィルタテーブル１４０には、受信パケットＰＫＴに該当するエントリはないと仮定する。
【０１０７】
レイヤ２スイッチ１は、該当エントリがないため、受信パケットＰＫＴをパケットバッファ１５に格納する（符号ＳＱ２参照）。なお、レイヤ２スイッチ１は、パケット判定部１０５により判定結果が得られるまで、ＳＡ及び送信元ＩＰアドレスが同じ他の受信パケットをパケットバッファ１５に格納してもよい。
【０１０８】
次に、レイヤ２スイッチ１は、探索ＩＰアドレスを受信パケットの送信元ＩＰアドレス「ＩＰａ」とするＡＲＰ要求パケットを端末Ｔａに送信する。すなわち、レイヤ２スイッチ１は、受信パケットの送信元ＩＰアドレス「ＩＰａ」に対応するＭＡＣアドレスを端末Ｔａに要求する。次に、レイヤ２スイッチ１は、ＡＲＰ要求パケットに対する端末ＴａのＡＲＰ応答パケットを受信する。ＡＲＰ応答パケットには、探索ＭＡＣアドレスとして、端末Ｔａの正当なＭＡＣアドレス「ＭＡＣａ」が含まれていると仮定する。
【０１０９】
次に、レイヤ２スイッチ１は、ＡＲＰ応答パケットの探索ＭＡＣアドレス及び探索ＩＰアドレス及びパケットバッファ１５に格納された受信パケットのＳＡ及び送信元ＩＰアドレスを比較する（符号ＳＱ３参照）。レイヤ２スイッチ１は、各々のＭＡＣアドレス及びＩＰアドレスの組が一致するため、受信パケットをフィルタテーブル１４０に登録する（符号ＳＱ４）。これにより、フィルタテーブル１４０には、ポート番号「＃１」、ＭＡＣアドレス「ＭＡＣａ」、及びＩＰアドレス「ＩＰａ」のエントリが追加される。
【０１１０】
次に、レイヤ２スイッチ１は、受信パケットによるＭＡＣアドレス学習（符号ＳＱ５参照）及び受信パケットの転送（符号ＳＱ６参照）を行う。次に、レイヤ２スイッチ１は、パケットバッファ１５に格納した受信パケットをクリアする（符号ＳＱ７参照）。このようにして、正常なユーザからのパケットの処理は実行される。
【０１１１】
図１２は、正常なユーザからのパケットの処理の他例を示すシーケンス図である。本例は、図１１に示されたパケット処理が行われた後、図１１の例と同一の端末Ｔａから同一のパケットを受信した場合を挙げる。
【０１１２】
レイヤ２スイッチ１は、端末Ｔａからパケットを受信すると、フィルタテーブル１４０を検索する（符号ＳＱ１１参照）。このとき、フィルタテーブル１４０には、上記の登録処理ＳＱ４により、ポート番号「＃１」、ＭＡＣアドレス「ＭＡＣａ」、及びＩＰアドレス「ＩＰａ」のエントリが登録済みである。
【０１１３】
レイヤ２スイッチ１は、受信パケットに該当するエントリがフィルタテーブル１４０に存在するため、パケットの正否を判定することなく、受信パケットを正当なパケットとみなして転送する（符号ＳＱ１２）。なお、受信パケットは、上記のＭＡＣアドレス学習ＳＱ５によりＭＡＣアドレスが学習済みであるため、受信パケットによるＭＡＣアドレス学習は行われない。このようにして、正常なユーザからのパケットの処理は実行される。
【０１１４】
図１３は、悪意のユーザからのパケットの処理の一例を示すシーケンス図である。本例は、図１２に示されたパケット処理が行われた後、悪意のユーザの端末Ｔｘｘから、虚偽のＭＡＣアドレス「ＭＡＣｘａ」をＳＡとし、宛先ＩＰアドレスを「ＩＰｘ」とする不正パケットを受信した場合を挙げる。
【０１１５】
レイヤ２スイッチ１は、端末ＴｘｘからパケットＰＫＴを受信すると、フィルタテーブル１４０を検索する（符号ＳＱ２１参照）。このとき、フィルタテーブル１４０には、受信パケットＰＫＴに該当するエントリは存在しない。このため、レイヤ２スイッチ１は、受信パケットＰＫＴをパケットバッファ１５に格納する（符号ＳＱ２２参照）。
【０１１６】
次に、レイヤ２スイッチ１は、探索ＩＰアドレスを受信パケットの送信元ＩＰアドレス「ＩＰｘ」とするＡＲＰ要求パケットを端末Ｔｘｘに送信する。すなわち、レイヤ２スイッチ１は、受信パケットの送信元ＩＰアドレス「ＩＰｘ」に対応するＭＡＣアドレスを端末Ｔｘｘに要求する。次に、レイヤ２スイッチ１は、ＡＲＰ要求パケットに対する端末ＴｘｘのＡＲＰ応答パケットを受信する。ＡＲＰ応答パケットには、探索ＭＡＣアドレスとして、端末Ｔｘｘの正当なＭＡＣアドレス「ＭＡＣｘ」が含まれていると仮定する。
【０１１７】
次に、レイヤ２スイッチ１は、ＡＲＰ応答パケットの探索ＭＡＣアドレス及び探索ＩＰアドレス及びパケットバッファ１５に格納された受信パケットのＳＡ及び送信元ＩＰアドレスを比較する（符号ＳＱ２３参照）。このとき、受信パケットのＳＡは、虚偽のＭＡＣアドレスであるため、各々のＭＡＣアドレス及びＩＰアドレスの組は一致しない。
【０１１８】
このため、レイヤ２スイッチ１は、受信パケットをフィルタテーブル１４０に登録せずに廃棄する（符号ＳＱ２４）。このとき、レイヤ２スイッチ１は、パケットバッファ１５に格納された受信パケットＰＫＴをクリアする。
【０１１９】
このように、レイヤ２スイッチ１は、悪意のユーザの端末Ｔｘｘから不正パケットを受信した場合、不正パケットによるＭＡＣアドレス学習及び不正パケットの転送を行わない。したがって、レイヤ２スイッチ１は、悪意のユーザのＭＡＣフラッディング攻撃を防御することができる。このとき、レイヤ２スイッチ１はポート閉塞を行わないため、端末Ｔｘｘと同一のポート＃２に接続された他の端末Ｔｂの通信が遮断されることはない。
【０１２０】
これまで述べたように、実施例のレイヤ２スイッチ１は、端末Ｔａ〜Ｔｄ，Ｔｘｘからパケットを受信して転送する。レイヤ２スイッチ１は、不揮発性メモリ１４と、アドレス要求部１０４と、パケット判定部１０５と、Ｌ２ＳＷチップ１６とを有する。
【０１２１】
不揮発性メモリ１４は、ＭＡＣアドレスとＩＰアドレスを対応付けて記憶する。アドレス要求部１０４は、パケットの送信元ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求する。パケット判定部１０５は、アドレス要求部１０４の要求に対する端末Ｔａ〜Ｔｄ，ＴｘｘのＡＲＰ応答パケットが示すＭＡＣアドレスと、パケットのＳＡとを比較する。パケット判定部１０５は、その比較結果に応じてパケットのＳＡ及び送信元ＩＰアドレスの対応関係の正当性を判定する。
【０１２２】
Ｌ２ＳＷチップ１６は、パケット判定部１０５の判定結果に応じ、パケットのＳＡ及び送信元ＩＰアドレスを不揮発性メモリ１４に記憶させる。Ｌ２ＳＷチップ１６は、パケットが新たに受信された場合、そのパケットのＳＡ及び送信元ＩＰアドレスの組を、不揮発性メモリ１４に記憶されたＭＡＣアドレス及びＩＰアドレスの組と比較し、その比較結果に応じ、パケットを廃棄または転送する。
【０１２３】
上記の構成によると、アドレス要求部１０４は、パケットの送信元ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求するため、端末Ｔａ〜Ｔｄ，Ｔｘｘは、虚偽のＭＡＣアドレスではなく、真のＭＡＣアドレスを含むＡＲＰ応答パケットを返信する。パケット判定部１０５は、ＡＲＰ応答パケットに基づきパケットのＳＡ及び送信元ＩＰアドレスの対応関係の正当性を判定するため、端末Ｔａ〜Ｔｄ，Ｔｘｘの真のＭＡＣアドレスに基づき不正パケットを検出できる。
【０１２４】
Ｌ２ＳＷチップ１６は、パケット判定部１０５の判定結果に応じ、パケットのＳＡ及び送信元ＩＰアドレスを不揮発性メモリ１４に記憶させる。Ｌ２ＳＷチップ１６は、パケットが新たに受信された場合、そのパケットのＳＡ及び送信元ＩＰアドレスの組を、不揮発性メモリ１４に記憶されたＭＡＣアドレス及びＩＰアドレスの組と比較し、その比較結果に応じ、パケットを廃棄または転送する。このため、レイヤ２スイッチ１は、悪意のユーザの端末Ｔｘｘから受信した不正パケットを検出して廃棄することができる。
【０１２５】
したがって、レイヤ２スイッチ１は、ポート閉塞を行わずにＭＡＣフラッディング攻撃を防御することができる。
【０１２６】
また、実施例のパケット転送方法は、端末Ｔａ〜Ｔｄ，Ｔｘｘからパケットを受信して転送する方法において、以下のステップを含む。
ステップ（１）：パケットの送信元ＩＰアドレスに対応するＭＡＣアドレスを端末Ｔａ〜Ｔｄ，Ｔｘｘに要求する。
ステップ（２）：その要求に対する端末Ｔａ〜Ｔｄ，Ｔｘｘの応答が示す物理アドレスと、パケットのＳＡとを比較する。
ステップ（３）：その比較結果に応じてパケットのＳＡ及び送信元ＩＰアドレスの対応関係の正当性を判定する。
ステップ（４）：その判定結果に応じ、パケットのＳＡ及び送信元ＩＰアドレスを不揮発性メモリ１４に対応付けて記憶する。
ステップ（５）：パケットが新たに受信された場合、そのパケットのＳＡ及び送信元ＩＰアドレスの組を、不揮発性メモリ１４に記憶されたＭＡＣアドレス及びＩＰアドレスの組と比較する。
ステップ（６）：その比較結果に応じてパケットを廃棄または転送する。
【０１２７】
実施例のパケット転送方法は、上記のレイヤ２スイッチ１と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
【０１２８】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１２９】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  端末からパケットを受信して転送するパケット転送装置において、
物理アドレスと論理アドレスを対応付けて記憶する第１記憶部と、
前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求する要求部と、
前記要求部の要求に対する前記端末の応答が示す物理アドレスと、前記パケットの送信元の物理アドレスとを比較し、該比較結果に応じて前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定する判定部と、
前記判定部の判定結果に応じ、前記パケットの送信元の物理アドレス及び送信元の論理アドレスを前記第１記憶部に記憶させるパケット処理部とを有し、
前記パケット処理部は、前記パケットが新たに受信された場合、該新たに受信された前記パケットの送信元の物理アドレス及び送信元の論理アドレスの組を、前記第１記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、該比較結果に応じ、前記パケットを廃棄または転送することを特徴とするパケット転送装置。
（付記２）  前記判定部は、前記要求部の要求に対する前記端末の応答が示す物理アドレスが、前記パケットの送信元の物理アドレスに一致しない場合、前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係が不当であると判定することを特徴とする付記１に記載のパケット転送装置。
（付記３）  前記判定部は、前記要求部の要求に対する前記端末の応答がない場合、前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係が不当であると判定することを特徴とする付記１または２に記載のパケット転送装置。
（付記４）  前記パケットを受信する複数のポートと、
アドレステーブルを記憶する第２記憶部と、
前記複数のポートのうち、前記パケットを受信したポートの識別子と前記パケットの送信元の物理アドレスを対応付けて前記アドレステーブルに登録する登録部と、
前記アドレステーブルに登録された前記パケットの送信元の物理アドレスに対応する前記ポートの識別子の変更の頻度を監視する監視部とを有し、
前記要求部は、前記頻度が所定の閾値を超えた場合、前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求することを特徴とする付記１乃至３の何れかに記載のパケット転送装置。
（付記５）  端末からパケットを受信して転送するパケット転送方法において、
前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求し、
該要求に対する前記端末の応答が示す物理アドレスと、前記パケットの送信元の物理アドレスとを比較し、
該比較結果に応じて前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係の正当性を判定し、
該判定結果に応じ、前記パケットの送信元の物理アドレス及び送信元の論理アドレスを記憶部に対応付けて記憶し、
前記パケットが新たに受信された場合、該新たに受信された前記パケットの送信元の物理アドレス及び送信元の論理アドレスの組を、前記記憶部に記憶された物理アドレス及び論理アドレスの組と比較し、
該比較結果に応じ、前記パケットを廃棄または転送することを特徴とするパケット転送方法。
（付記６）  前記要求部の要求に対する前記端末の応答が示す物理アドレスが、前記パケットの送信元の物理アドレスに一致しない場合、前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係が不当であると判定することを特徴とする付記５に記載のパケット転送方法。
（付記７）  前記要求部の要求に対する前記端末の応答がない場合、前記パケットの送信元の物理アドレス及び送信元の論理アドレスの対応関係が不当であると判定することを特徴とする付記５または６に記載のパケット転送方法。
（付記８）  前記パケットを受信する複数のポートのうち、前記パケットを受信したポートの識別子と前記パケットの送信元の物理アドレスを対応付けてアドレステーブルに登録し、
前記アドレステーブルに登録された前記パケットの送信元の物理アドレスに対応する前記ポートの識別子の変更の頻度を監視し、
前記頻度が所定の閾値を超えた場合、前記パケットの送信元の論理アドレスに対応する物理アドレスを前記端末に要求することを特徴とする付記５乃至７の何れかに記載のパケット転送方法。
【符号の説明】
【０１３０】
１，１ａ      レイヤ２スイッチ
１０       ＣＰＵ
１３       ＣＡＭ
１４       不揮発性メモリ
１６       Ｌ２ＳＷチップ
１０１      モード制御部
１０２      監視部
１０３      アドレス登録部
１０４      アドレス要求部
１０５      パケット判定部
１３０      ＭＡＣアドレステーブル
１４０      フィルタテーブル
Ｔａ〜Ｔｄ，Ｔｘｘ     端末
【図１】
2017143497.tif 000003
【図２】
2017143497.tif 000004
【図３】
2017143497.tif 000005
【図４】
2017143497.tif 000006
【図５】
2017143497.tif 000007
【図６】
2017143497.tif 000008
【図７】
2017143497.tif 000009
【図８】
2017143497.tif 000010
【図９】
2017143497.tif 000011
【図１０】
2017143497.tif 000012
【図１１】
2017143497.tif 000013
【図１２】
2017143497.tif 000014
【図１３】
2017143497.tif 000015