(57)【特許請求の範囲】
【請求項１】
パケットを中継する中継装置であって、
回線からパケットを受信するパケット受信部と、
宛先情報と出力先情報とを対応づけた経路情報を保持する経路情報保持部と、
前記パケット受信部で受信した第１のパケットに含まれる宛先情報を用いて前記経路情報保持部が保持する前記経路情報を検索し、前記第１のパケットに含まれる宛先情報に対応する出力先情報を決定する宛先判定部と、
前記第１のパケットの情報又は当該パケット受信部の入力情報に基づいてフィルタリングの実行有無を判定する実行有無判定部と、
前記実行有無判定部がフィルタリングの実行有と判定した場合に、前記第１のパケットの転送または廃棄を判定するフィルタリング処理部とを有する。
【請求項２】
請求項１記載の中継装置であって、
前記実行有無判定部は、前記宛先判定部が決定した出力先情報に基づいてフィルタリングの実行有無を判定する。
【請求項３】
請求項１または請求項２記載の中継装置であって、
前記フィルタリング処理部は、前記第１のパケットに含まれる送信元情報を用いて前記経路情報保持部が保持する前記経路情報を検索し、前記検索した結果に基づいて前記第１のパケットの転送または廃棄を判定する。
【請求項４】
請求項１記載の中継装置であって、
前記出力先情報は、前記第１のパケットを出力するネットワークを示すインターフェース番号と前記第１のパケットを出力する回線の番号を示す出力回線番号と前記第１のパケットを送る次の中継装置のアドレスを示す次ホップアドレスの少なくとも一部を含む。
【請求項５】
請求項１記載の中継装置であって、
前記受信部の入力情報は、前記第１のパケットを入力した回線の番号を示す入力回線番号又は前記第１のパケットを入力したインターフェースの番号を示す入力インターフェース番号を含む。
【請求項６】
請求項１記載の中継装置であって、
前記パケット受信部は、前記第１のパケットを受信した回線に対応する入力回線番号を前記第１パケットに付加する内部ヘッダ付加部を有し、
前記実行有無判定部は、前記内部ヘッダ付加部で付加された入力回線番号に基づいて入力したフィルタリングの実行有無を判定する。
【請求項７】
請求項１記載の中継装置であって、
前記パケット受信部は、前記第１のパケットに含まれるヘッダ情報又は入力回線番号に基づいて入力インターフェース番号を判定するインターフェース判定部を有し、
前記実行有無判定部は、前記インターフェース判定部で判定されたインターフェース番号に基づいてフィルタリングの実行有無を判定する。
【請求項８】
請求項１記載の中継装置であって、
前記パケット受信部で受信した第１のパケットの情報又は当該パケット受信部の入力情報は、前記第１のパケットのフローを特定する。
【請求項９】
請求項８記載の中継装置であって、
前記第１のパケットのフローは、前記第１のパケットを入力した回線を示す入力回線番号、出力する回線を示す出力回線番号、前記第１のパケットを入力したインターフェースを示す入力インターフェース番号、出力するインターフェースを示す出力インターフェース番号、及び、前記第１のパケットのヘッダに含まれる送信元アドレスと宛先アドレスのうち少なくとも一つの情報を含む。
【請求項１０】
請求項１記載の中継装置であって、更に、
前記実行有無判定部へ設定入力するフィルタリング実行条件設定入力部とを有する。
【請求項１１】
装置外回線及び装置内回線に接続する複数の回線部を有する中継装置であって、
前記複数の回線部のうち第１の回線部の第１の装置外回線から第１のパケットを受信するパケット受信部と、
前記パケット受信部で受信した第１のパケットに含まれる宛先に対応する出力先情報を決定する入力側宛先判定部と、
前記入力側宛先判定部で決定した出力先情報を基にフィルタリングの実行有無を判定するフィルタリング実行有無判定部と、
前記フィルタリング実行有無判定部によってフィルタリング実行有と判定された場合、前記第１のパケットの転送可否を判定するフィルタリング結果判定部と、
前記フィルタリング実行有無判定部によってフィルタリング実行無と判定された場合、及び、前記フィルタリング結果判定部によって転送可と判定された場合に、前記入力側宛先判定部で決定した出力先情報へ前記装置内回線を介して前記第１のパケットの情報を送信するパケット送信部とを有する。
【請求項１２】
請求項１１記載の中継装置であって、更に、
宛先情報と出力先情報とを対応づけた経路情報を保持する経路情報保持部を有し、
前記入力側宛先判定部は、前記第１のパケットに含まれる宛先を検索キーとして前記経路情報を検索することにより前記出力先情報を決定し、
前記フィルタリング結果判定部は、前記第１のパケットに含まれる送信元を検索キーとして前記経路情報を検索することにより前記第１のパケットの転送可否を判定する。
【請求項１３】
請求項１１記載の中継装置であって、
前記フィルタリング結果判定部は、前記第１のパケットに含まれる送信元アドレスに基づいて転送可否を判定する。
【請求項１４】
請求項１１記載の中継装置であって、更に、
パケットを受信した装置外回線に対応する回線番号又はパケットのヘッダ内の情報によって、入力インターフェース番号を判定するインターフェース番号判定部を有し、
前記前記フィルタリング結果判定部は、前記第１のパケットに含まれる送信元アドレスに加えて、前記インターフェース番号判定部で前記第１の装置外回線に対応して判定した第１のインターフェース番号に基づいて転送可否を判定する。
【請求項１５】
装置外回線及び装置内回線に接続する複数の回線部を有する中継装置であって、
前記複数の回線部のうち第１の回線部の装置外回線から第１のパケットを受信するパケット受信部と、
前記パケット受信部で受信した第１のパケットに含まれる宛先に対応する第２の回線部へ、前記第１の装置外回線に対応する入力元情報を付加した前記第１のパケットの情報を転送する装置内転送部と、
前記第２の回線部で、受信した前記第１のパケットの情報と入力元情報との少なくとも一方に基づいてフィルタリングの実行有無を判定するフィルタリング実行有無判定部と、
前記フィルタリング実行有無判定部によってフィルタリング実行有と判定された場合、前記第１のパケットの転送可否を判定するフィルタリング結果判定部と、
前記フィルタリング実行有無判定部によってフィルタリング実行無と判定された場合、及び、前記フィルタリング結果判定部によって転送可と判定された場合に、前記第の回線部の装置外回線を介して前記第１のパケットを送信するパケット送信部とを有する。
【請求項１６】
請求項１５記載の中継装置であって、更に、
宛先情報と出力先情報とを対応づけた経路情報を保持する経路情報保持部を有し、
前記装置内転送部は、前記第１のパケットに含まれる宛先を検索キーとして前記経路情報を検索することにより前記第１のパケットの出力先を決定し、
前記フィルタリング結果判定部は、前記第１のパケットに含まれる送信元を検索キーとして前記経路情報を検索することにより前記第１のパケットの転送可否を判定する。
【請求項１７】
請求項１５記載の中継装置であって、
前記入力元情報は、入力インターフェース番号又は入力回線番号を含む。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速なフィルタリング手段を備えたパケット転送装置に関する。
【背景技術】
【０００２】
不正パケットを送信し、ネットワークの帯域資源の浪費や、公開サーバの過負荷を引き起こす分散サービス拒否（DDoS: Distributed Denial of Service）攻撃が深刻化している。攻撃者は、送信元の逆探索を防止するために送信元アドレスを偽装したパケットを送信するケースが多いため、パケット転送装置がこの偽装パケットを検出・廃棄することが、分散サービス拒否攻撃の防止には効果的である。
【０００３】
偽装パケットを検出・廃棄する技術として、パケット転送装置におけるフィルタリングがある。フィルタリングに関しては、例えば、非特許文献1記載のルーズモードのフィルタリングが知られている。非特許文献１には、パケット転送装置を通過するパケットを、広告された既知のプリフィックスを備えるパケットに制限すると記載されている。ここで、プリフィックスとは、アドレスの上位ビットであり、ネットワークを表す情報のことである。
【０００４】
フィルタリングの他の例としては、非特許文献2記載のストリクトモードのフィルタリングがある。本文献においては、パケットが入力したパケット転送装置のインターフェース（入力インターフェースと呼ぶ）が、該パケット内の送信元アドレスに到達するために出力すべきインターフェースと異なる場合、該パケットを廃棄しなくてはならないと記載されている。
【０００５】
偽装パケットは、広告されておらず未知なプリフィックスを備えていたり、送信元アドレスに到達するために出力すべきインターフェースと入力インターフェースとが異なっていたりする場合が多いため、パケット中継装置が上述したフィルタリングを実施することにより、偽装パケットを大幅に減少させることができる。
【０００６】
【非特許文献１】IETF RFC2827 “Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing”
【非特許文献２】IETF RFC1812 “Requirements for IP Version 4 Routers”
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ルーズモードのフィルタリングの処理は、パケットを出力するインターフェースを判定する宛先判定手段を拡張することで実現される。宛先判定手段は、広告されたプリフィックスと、該プリフィックスに対応するインターフェースを記憶する。パケットが入力すると、ヘッダ内の宛先IPアドレスと一致するプリフィックスを検索し、一致したプリフィックスに対応するインターフェースを、該パケットを送信すべきインターフェースと判定する。ルーズモードのフィルタリングを実現するためには、宛先アドレスの代わりに送信元アドレスとプリフィックスの一致比較を行い、一致するプリフィックスが存在しない場合に該パケットを廃棄する様に、宛先判定手段を拡張すればよい。
【０００８】
一方、ストリクトモードのフィルタリングも、宛先判定手段を拡張することで実現される。本フィルタリングを実現するためには、送信元アドレスと一致するプリフィックスに対応したインターフェースを判定し、該インターフェースと入力インターフェースが異なる場合に該パケットを廃棄する様に、宛先判定手段を拡張すればよい。
【０００９】
この様に、非特許文献1及び2を適用したフィルタリングを備えるパケット中継装置は、宛先IPアドレスとプリフィックスの一致比較に加えて、フィルタリングを行うための送信元IPアドレスとプリフィックスの一致比較を行う必要がある。プリフィックスとIPアドレスの一致比較を2回行う必要があるため、拡張した宛先判定手段はフィルタリング不実行時の1/2のパケットしか処理することができない。そのため、フィルタリングを実行することで、本手段を備えるルータのパケット転送性能が、不実行時の性能に比べて劣化してしまう問題がある。
【００１０】
そこで、本発明の目的は、パケット転送性能の劣化を最小限に抑え、非特許文献1及び2を適用したルータよりも高速なパケット転送装置を提供することである。
【課題を解決するための手段】
【００１１】
上述の課題を解決する少なくとも一つの手段として、複数の入力回線と複数の出力回線と、ネットワークのアドレスの条件を表すアドレス条件と該アドレス条件に対応するインターフェースを管理し、入力するパケット内の宛先アドレスと一致する第一のアドレス条件に対応するインターフェースを出力インターフェースと判定する宛先判定処理と、該パケットの送信元アドレスと一致する第二のアドレス条件が存在すると該パケットを“転送”と判定するフィルタリング処理とを実行する宛先判定・フィルタリング部を備え、入力する一部のパケットに限定してフィルタリング処理を実行するパケット転送装置を提供する。
【００１２】
上記以外の本願が解決しようとする課題、その解決手段は、本願の「発明を実施するための最良の形態」の欄及び図面で明らかにされる。
【発明の効果】
【００１３】
上記解決手段によれば、入力する一部のパケットに限定してフィルタリングすることにより、フィルタリング実行時の性能劣化を最小限に抑えて性能向上を実現する。そのため、本発明の宛先判定・フィルタリング手段を備えるパケット転送装置は、フィルタリング実施によるパケット転送性能の劣化を最小限に抑え、非特許文献1及び2を適用したルータに対するパケット転送性能向上を実現する。
【発明を実施するための最良の形態】
【００１４】
以下に本発明の実施に好適な実施例を、図6から図16を用いて説明する。ただし、本発明は本実施例に限定されるものではない。
（１）ネットワーク及びルータの概要
まず、本実施例が考慮するネットワークの一例を図1で説明する。図1ではISP-AとISP-BのネットワークとがIXにより接続されている。なおISPとはInternet Service Providerの略である。ISP-Aは4台のルータR0〜R3により、6つのネットワークN1〜N6により分割され、ISP-BはN7を含む複数のネットワークに分割されている。ネットワークN1〜N7のIPアドレスは、それぞれ12.13.0.0/16, 13.14.0.0/16, 14.15.0.0/16, 15.16.17.0/24, 16.17.0.0/16, 18.19.20.0/24, 19.20.0.0/16である。ここで”/”の前の数字がIPアドレスを、後の数字が該IPアドレスのプリフィックスのビット長（プリフィックス長）を表している。例えば、12.13.0.0/16のプリフィックスは12.13となる。なお、ISP-BにはN7以外のネットワークも存在するが、図面が煩雑となるため省略している。
【００１５】
また、R1のN1に至る回線、R2のN2に至る回線、R3のN2に至る回線、R4のIXに至る回線には、IPアドレスとしてそれぞれ、12.13.1.1, 13.14.1.1, 13.14.1.2, 11.12.1.1が割り当てられている。N3〜N7は、それぞれのネットワークに属する端末T1〜T5を収容し、R0は、端末T1〜T4発のISP-B行きのパケットに対し、フィルタリングを実施している。R0は、複数の回線を備え、回線番号が1, 2, 3の回線に直接接続されるネットワーク：N1, N2, IXを、インターフェースの番号（インターフェース番号と呼ぶ）1, 2, 3として管理している。R0は、N1から入力したパケットがN1, N3, N4に属さない送信元IPアドレスを格納している場合に該パケットを廃棄し、また、N2から入力したパケットがN2, N5, N6に属さない送信元IPアドレスを格納している場合に該パケットを廃棄している。
【００１６】
次に、R0として適用されるルータ200の構成及び動作概要を図2、図3、図4、及び図5を用いて説明する。
【００１７】
図2はルータ200のブロック図を示す。ルータ200はNの回線部210-i （i=1-N）と、各回線部210が収容する2Nの入力回線201-ij （i=1-N, j=1 or 2）、回線部210-iを結合する一つのパケット中継処理部250と、一つのプロセッサ280から構成される。回線部210-iはパケットの送受信処理を行うパケット送受信回路230と、本実施例において特徴的な宛先判定・フィルタリング部100と、ARPテーブル検索部220から構成される。以下では、入力回線201と出力回線202を総称して装置外回線と、パケット送受信回路230とパケット中継処理部250とを結ぶ回線を装置内回線と呼んで区別する。また、各「部」とは、プログラムを実行するハードウェア（半導体回路等）を含む。
【００１８】
図3は図2の入力回線201、出力回線202から入出力されるパケットのフォーマットの一例を示す。本フォーマットはヘッダ部310とデータ部320から構成される。データ部320はユーザデータ321より構成され、ヘッダ部310はデータリンク層の送信元アドレスである送信元MACアドレス311（Source MAC Address：以下「SMAC」という。）、宛先アドレスである宛先MACアドレス312（Destination MAC Address：以下「DMAC」という。）と、ネットワーク層の送信元アドレス（送信端末のアドレス）である送信元IPアドレス313（Source IP Address：以下「SIP」という。）と、宛先アドレス（受信端末のアドレス）である宛先IPアドレス314（Destination IP Address：以下「DIP」という。）とから構成される。
【００１９】
図4は図2のルータ200内部のパケットフォーマットの一例を示す。本フォーマットは前述のフォーマットに内部ヘッダ部330が備わる。この内部ヘッダ部330は、パケットが入力した回線の番号である入力回線番号331と、パケットを出力する回線の番号である出力回線番号332と、該パケットを受信する次のルータ又は端末のIPアドレスである次ホップIPアドレス333（Next Hop IP Address：以下「NHIP」という。）と、パケットが入力したインターフェースの番号（入力インターフェース番号と呼ぶ）である入力IF334から構成される。出力回線番号332と、次ホップIPアドレス333と、図示していないがパケットを出力するインターフェースの番号（出力インターフェース番号）等を総称して出力先情報ともいう。
【００２０】
図5は、図2で示したパケット送受信回路230の詳細を示す。なおパケット送信部とパケット受信部ともいう。パケット送受信回路230は、入力回線201より図3のパケットを入力すると、内部ヘッダ付加回路910が図4の内部ヘッダ部330を付加し、該パケットが入力した回線の番号を入力回線番号331に格納し、本パケットをパケットバッファ920に書き込む。更に、インターフェース番号判定部940は、蓄積したパケット内の情報から、該パケットが入力したインターフェースの番号（入力インターフェース番号と呼ぶ）を判定し、本情報を内部ヘッダ部330の入力IF334に書き込む。パケットヘッダ送信部950は、パケットバッファ920内のパケットのヘッダ部310と内部ヘッダ330の情報を、パケットヘッダ情報21として宛先判定・フィルタリング部100に送信する。なお、この際、出力回線番号332とNHIP333の値は意味のない値となっている。なお、入力回線番号331と入力IF334等を総称してパケット受信部の入力情報や入力元情報ともいう。
【００２１】
ここで、インターフェースとは、ルータに直接接続されるネットワークであり、ルータ200では、それぞれのネットワーク固有のインターフェース番号が割り当てられ管理される。本実施例では、R0であるルータ200の各入力回線にネットワークN1, N2, IXが接続され、それぞれのネットワークに'1', '2', '3'のインターフェース番号が割り当てられている。回線番号とインターフェース番号が一対一に対応するため、パケット送受信回路230は入力インターフェース番号を入力回線番号によって判定できる。例えば、R0であるルータ200が、端末T1からのパケットをN1に接続される入力回線から受信した場合、入力回線番号'1'から、入力インターフェース番号を'1'と判定できる。入力回線がATMやイーサネット（登録商標）であって、該入力回線に接続されるネットワークがVPI/VCIやVLAN IDの値により分割される場合、インターフェース番号判定部940は入力回線番号に加えて、ATMヘッダ内のVPI/VCIや、イーサネットヘッダ内のVLAN IDなどの情報を基にインターフェース番号を判定すればよい。
【００２２】
図2の宛先判定・フィルタリング部100は、パケット送受信回路230よりパケットヘッダ情報21を受信した入力側のフィルタリング（入力側フィルタリングと呼ぶ）を実施する。宛先判定・フィルタリング部100は、プリフィックスと該プリフィックスに対応するインターフェースを管理し、宛先判定処理とフィルタリングを実行する。宛先判定処理では、前記パケットヘッダ情報21内のDIP314とプリフィックスを一致比較することで一致するプリフィックスを検索し、入力パケットを出力するインターフェースの番号（出力インターフェース番号と呼ぶ）、次ホップIPアドレス、出力回線番号を判定し、パケット送受信回路230にパケット出力回線情報22として送信する。例えば、端末T1からISP-B行きのパケットを受信すると、出力インターフェース番号、次ホップIPアドレス、出力回線番号は、それぞれ'3', 11.12.1.1, '3'となる。
【００２３】
後でより詳細に説明するが、宛先判定・フィルタリング部100は、特に、出力インターフェース毎のフィルタリングのOn/Offを記憶する実行有無判定部115（図6）を備える。R0の実行有無判定部は、IXへのパケットに対してだけフィルタリングを実行するため、出力インターフェース1, 2, 3に対して、それぞれ、Off, Off, Onを表すOn/Off情報を蓄積し、出力インターフェース3に出力されるパケットに対してのみフィルタリング「実行」と判定する。On又は実行と判定することを「有」、Off又は実行しないと判定することを「無」ともいう。
【００２４】
フィルタリングでは、宛先判定・フィルタリング部100は、まず、SIP313を備えるパケットが入力すべきインターフェースの番号である第二の入力インターフェース番号を判定する。次に、該第二の入力インターフェース番号とパケットヘッダ情報21内の入力インターフェース番号を一致比較し、一致する場合にはパケット送受信回路230内のパケットを「転送」と、不一致の場合には「廃棄」と判定し、「転送」「廃棄」を示すフィルタリング情報23をパケット送受信回路230に送信する。一方、宛先判定・フィルタリング部100は、フィルタリングを実行しない際には、「転送」を示すフィルタリング情報23をパケット送受信回路230に送信することとなる。
【００２５】
例えば、R0が端末T1からISP-B行きのパケットを受信すると、まず、宛先判定・フィルタリング部100は、該パケットの出力インターフェース番号を'3'と判定し、フィルタリング「実行」と判定する。次に、端末T1が送信するパケットの送信元IPアドレスが、N3、N4のネットワークに属する場合には、第二の入力インターフェース番号とインターフェース番号判定部940判定の入力インターフェース番号が共に'1'となるため、「転送」と判定する。一方、端末T1が攻撃者であり、送信するパケットの送信元アドレスがN1, N3, N4以外、例えば、N2のネットワークに属する場合には、第二の入力インターフェース番号は'2'となるため、「廃棄」と判定する。一方、端末T1からR0経由で端末T4に転送されるパケットを受信すると、宛先判定・フィルタリング部100は、該パケットの出力インターフェース番号を'2'と判定し、フィルタリング「不実行」と判定する。
【００２６】
図5のパケット送受信回路230のパケット読み出し回路960とヘッダ書き込み回路970は、宛先判定・フィルタリング部100からフィルタリング情報23を受信する。フィルタリング情報23が「転送」を示している場合、ヘッダ書き込み回路970は、パケット出力回線情報22内の出力回線番号と次ホップIPアドレスをそれぞれ図4の出力回線番号332とNHIP 333の各フィールドに書き込み、パケット読み出し回路960は、パケットバッファ920から蓄積されているパケットを読み出して、パケット中継処理部250へ送信する。一方、フィルタリング情報23が「廃棄」を示している場合、パケット読み出し回路960はパケット中継処理部250へパケットを送信しないため、蓄積されているパケットは次の到着パケットにより上書きされ、最終的に廃棄される。なお、ここで「廃棄」は積極的に廃棄する命令を示すものだけでなく消極的に転送否とするものも含む。
【００２７】
パケット送受信回路230からパケットを受信すると、図2のパケット中継処理部250は、該パケットに含まれる出力回線番号332に対応する回線部210のパケット送受信回路230へ該パケットを送信する。パケット中継処理部250からパケットを受信したパケット送受信回路230は、該パケットを図5のパケットバッファ930に蓄積する。パケットヘッダ送信部950は、パケットバッファ930に蓄積されたパケットの内部ヘッダ部330とヘッダ部310内の情報をパケットヘッダ情報21として宛先判定・フィルタリング部100に送信する。
【００２８】
図2の宛先判定・フィルタリング部100は、パケット送受信回路230からパケットヘッダ情報21を受信すると、出力側のフィルタリング（出力側フィルタリングと呼ぶ）を実施する。宛先判定・フィルタリング部100は、入力側フィルタリングで用いられる出力インターフェース毎のフィルタリングのOn/Off情報に加えて、出力側フィルタリングで用いる入力インターフェース毎のOn/Off情報を備え、該入力インターフェースに対応するOn/Off情報に基づいてフィルタリングを行い、「転送」又は「廃棄」を示すフィルタリング情報23をパケット送受信回路230に送信する。
【００２９】
なお、本実施例のR0の実行有無判定部115（図6）には、入力インターフェース1, 2, 3に対して、全てOffを表すOn/Off情報を蓄積しているため、フィルタリングを実行せず、「転送」を示すフィルタリング情報23をパケット送受信回路230に送信することとなる。このように、入力インターフェース番号に対応するOn/Off情報がOnの場合のみフィルタリングを実行することで、プリフィックスとパケット内の送信元IPアドレスの検索を最小限とし、非特許文献１に対する高速化を実現する。On/Off情報がOnとなるのは特定の入力インターフェースから入力するパケットに限定してフィルタリングする場合であるが、この場合に関しては後述する。なお、フィルタリング情報23が「廃棄」である場合、図5のパケット受信回路230のパケット読み出し回路960は、パケットバッファ930内のパケットを出力回線202に送信しないため、該パケットは次パケットに上書きされて廃棄される。
【００３０】
図5のパケット送受信回路230は、「転送」を示すフィルタリング情報23を宛先判定・フィルタリング部100から受信すると、図4の内部ヘッダ部330のNHIP333を次ホップIPアドレス情報24として図2のARPテーブル検索部220に送信する。ARPテーブル検索部220は次ホップIPアドレス情報24に対応する次ホップのMACアドレスを備え、情報24を受信すると対応するMACアドレスを次ホップMACアドレス情報25としてパケット送受信回路230に送信する。パケット送受信回路230は、図4のヘッダ部310について、次ホップMACアドレス情報25内のMACアドレスをDMAC312へ、内部ヘッダ部330の出力回線番号332に対応する入出力回線に割り当てられたMACアドレスをSMAC311へ書き込み、内部ヘッダ部330を削除し、蓄積したパケットを出力回線番号332に対応する出力回線202に送信する。
【００３１】
（２）ルータの宛先判定・フィルタリング部の詳細
図2で示した宛先判定・フィルタリング部100の入力側フィルタリング時の詳細な実施例を、図6のブロック図及び図7のフローチャートを用いて説明する。
【００３２】
図6に示すように、宛先判定・フィルタリング部100は、宛先判定処理を行う宛先判定処理部120とフィルタリングを行うフィルタリング部110及び、プリフィックスと該プリフィックスに対応したインターフェースを記憶する経路テーブル500を備えて入力したIPアドレスとプリフィックスとの一致比較を行う経路テーブル検索部130より構成される。
【００３３】
宛先判定・フィルタリング部100が、パケットヘッダ情報21を受信すると、SIP313、DIP314、入力インターフェースの情報を、それぞれSIP蓄積部111、DIP蓄積部121、入力インターフェース蓄積部114に、パケットヘッダ情報21内の全ての情報をヘッダ情報蓄積部116に蓄積する（ステップ701）。
【００３４】
次に、経路テーブル検索起動部B122が経路テーブル検索部130に対して、経路テーブルの検索を指示し、DIP蓄積部内のDIP314を検索キーとして送信する（ステップ702）。経路テーブル検索部130の詳細を図8に、経路テーブル検索部130が備える経路テーブル 500の一例を図9に示す。経路テーブル 500は、IPアドレス条件と、該IPアドレス条件に対応するインターフェース番号と次ホップIPアドレスと回線番号を格納するN個の経路エントリ501-i （i = 1〜N）を、IPアドレス条件のプリフィックス長が長い経路エントリから順に格納する。
【００３５】
経路テーブル検索部130の経路テーブル制御部510は、経路テーブル検索起動部B122からの経路テーブルの検索指示とDIP314を受信すると、経路テーブル500より経路エントリ501-iをアドレスが小さい方から順々に読み出す。更に、読み出したIPアドレス条件のプリフィックスと、プリフィックス長分のDIP314を比較し、最初に一致したIPアドレス条件に対応するインターフェース番号と次ホップIPアドレスと回線番号を、宛先判定部123に送信する （ステップ703）。宛先判定部123は受信した本情報を、それぞれパケット送受信回路230内パケットの出力インターフェース番号、次ホップIPアドレス及び出力回線番号と判定し、パケット出力回線情報22としてパケット送受信回路230と経路テーブル検索起動部A112に送信する（ステップ704）。
【００３６】
端末T1〜4からISP-Bに接続される端末T5へのパケットを受信した場合には、該パケットの宛先IPアドレスは経路エントリ501-5のIPアドレス条件とだけ一致するため、宛先判定部123は、'3', '11.12.1.1', 3'を、出力インターフェース番号、次ホップIPアドレス、出力回線番号と判定する。一方、T1, T2行きのパケットを受信した場合には、'1', '12.13.1.1', 1' を、また、T3行きのパケットを受信した場合には、'2', '13.14.1.1', 2' を、T4行きのパケットを受信した場合には、'2', '13.14.1.2', 2' をそれぞれ出力インターフェース番号、次ホップIPアドレス、出力回線番号と判定する。
【００３７】
経路テーブル検索起動部A112は、出力インターフェース番号を宛先判定部123より受信すると、本情報を実行有無判定部115に送信する（ステップ713）。実行有無判定部115は、出力インターフェース毎のOn/Off情報を経路テーブル検索起動部A112に送信する（ステップ714）。
【００３８】
すなわち例えば、R0が端末T5へのパケットを受信した場合には、該パケットの出力インターフェース番号は'3'であり、実行有無判定部115はOnを示すOn/Off情報を経路テーブル検索起動部A112に送信する。一方例えば、端末T1〜4行きのパケットを受信した場合には、該パケットの出力インターフェースは'1'乃至'2であり、Offを示すOn/Off情報を経路テーブル検索起動部A112に送信する。
【００３９】
（２−１）  実行有無判定部115の詳細を図10に示す。実行有無判定部115は、出力インターフェース毎のOn/Off情報を格納する実行有無テーブル1000-Aと入力インターフェース毎のOn/Off情報を格納する実行有無テーブル1000-Bと実行有無テーブル制御部1010から構成される。実行有無テーブル1000-Aと1000-Bのフォーマットは同一であり、入力側フィルタリング時には、実行有無テーブル1000-Aが出力側フィルタリング時には実行有無テーブル1000-Bが用いられる。実行有無テーブル1000-Aの一実現例を図11に示す。各出力インターフェースと同値のアドレスに、対応するOn/Off情報が格納される。図1のR0が備える実行有無テーブル1000-AのOn/Off情報は、インターフェース3のOn/Off情報1001-A3のみOnとなり、それ以外はOffとなる。実行有無テーブル制御部1010は、実行有無テーブル1000-Aから、出力インターフェース番号に対応するOn/Off情報を読み出して、本情報を経路テーブル検索起動部A112に送信する。
【００４０】
以下の処理は、経路テーブル検索起動部A112が受信するOn/Off情報に基づいて、分岐する（ステップ705）。Onの場合には経路テーブル検索起動部A112が、経路テーブル検索部 130に対して、経路テーブル500の検索を指示し、SIP蓄積部内のSIP313を検索キーとして送信する（ステップ706）。本情報を受信した経路テーブル検索部130は、ステップ703の処理と同様に、経路テーブル500からアドレスが小さい順に経路エントリ501-i を読み出す。更に、読み出したIPアドレス条件とSIP314と比較し、一致する最初のIPアドレス条件に対応するインターフェースを、第二の入力インターフェース番号としてフィルタリング結果判定部113に送信する 。一致するIPアドレス条件を格納する経路エントリ501-i が存在しない場合、一致する経路エントリ501-iが無いことをフィルタリング結果判定部113に送信する（ステップ707）。
【００４１】
経路テーブル検索部130は、図1のN3, N4のネットワークに属するIPアドレスを送信元IPアドレスとして格納するパケットが入力した場合、入力インターフェース番号を'1'と、N5, N6のネットワークに属するネットワークのIPアドレスの場合には、入力インターフェース番号を'2'と、N7のネットワークに属するネットワークのIPアドレスの場合には、入力インターフェース番号を'3'と判定し、それ以外のIPアドレスの場合、一致するエントリが無いと判定する。
一致する経路エントリ501-iが存在する場合、入力インターフェース番号と第二の入力インターフェース番号の一致/不一致に応じて処理が分岐する（ステップ708）。フィルタリング結果判定部113は、入力インターフェース番号と第二の入力インターフェース番号が同一であれば、パケット送受信回路230内のパケットは正しい入力インターフェースより入力されているため、「転送」と判定する（ステップ709）。一方、異なる場合には、該パケットは不正な入力インターフェースより入力されているため、「廃棄」と判定する（ステップ710）。一致する経路エントリ501-iが存在しない場合、ステップ708を行わず、無条件に「廃棄」と判定する（ステップ710）。
【００４２】
例えば、端末T1が、N3に属するIPアドレスを送信元IPアドレスとしてパケットを送信する場合、該送信元IPアドレスは経路エントリ501-3のIPアドレス条件と一致するため、宛先判定部123は、該パケットの入力インターフェース番号を'1'と判定する。この値は、第二の入力インターフェース番号と一致するため、フィルタリング結果判定部113は該パケットを「転送」と判定する。一方、端末T1が、N5〜N7に属するIPアドレスを送信元IPアドレスとしてパケットを送信する場合、宛先判定部123は、該パケットの入力インターフェース番号を'2'又は'3'と判定する。この値は、第二のインターフェース番号である'1'と不一致であるため、フィルタリング結果判定部113は該パケットを「廃棄」と判定する。N1〜N7、IX以外のネットワークに属するIPアドレスを送信元IPアドレスとしてパケットを送信する場合、該送信元IPアドレスと一致する経路エントリ501-iが存在しない。このため、フィルタリング結果判定部113は該パケットを「廃棄」と判定する。
【００４３】
一方、ステップ705にて、On/Off情報がOffの場合、フィルタリング結果判定部113はパケット送受信回路230内のパケットを「転送」と判定し（ステップ709）、「転送」を表すフィルタリング情報23をパケット送受信回路230に送信する（ステップ711）。
【００４４】
以上に説明した処理はストリクトモードの処理動作であるが、ルーズモードの場合には、ステップ708の分岐処理が無くなるだけである。ステップ707において、パケットの送信元IPアドレスと一致するIPアドレス条件が経路テーブル500内に存在する場合、フィルタリング結果判定部113が該パケットを「転送」と判定するステップ709を実行すればよい。
【００４５】
以上に述べた様に、本発明の宛先判定・フィルタリング部100は、On/Off情報がOffの場合には、ステップ707における経路テーブル検索を行う必要が無い。そのため、全パケットに対して、フィルタリング用の経路テーブル検索を行う必要がなく、フィルタリングによる性能劣化を最小限に抑え、非特許文献1に対して本検索の性能向上を実現する。
【００４６】
以上の実施例では、入力回線201から受信するパケットに対するフィルタリングである入力側フィルタリングのみを実施し、パケット中継処理部250から受信するパケットに対するフィルタリングである出力側フィルタリングを実行しなかった。これは、入力側フィルタリングを実施する方が、高速化の効果が大きいためである。本発明の効果の例を示すため、N個の回線部210と2N個の入力回線201を備えるルータ200を用いて、一つの出力インターフェース(又は出力回線)へのパケットをフィルタリングする場合を考える。この際、宛先判定・フィルタリング部100が入力側フィルタリングを実施するのであれば、それぞれの回線部210の宛先判定・フィルタリング部100は平均すると1/(2N)のパケットに対してフィルタリングすればよい。そのため、経路テーブル検索部130は、宛先判定処理だけを行う場合の性能に対して、およそ(1+1/(2N))^-1倍の性能となる。例えば、Nが16の場合には、約0.97倍の性能となる。
【００４７】
一方、宛先判定・フィルタリング部100が、出力側フィルタリングを実施するのであれば、本実施例の宛先判定・フィルタリング部100を備える回線部210が2つの出力インターフェースを収容するため、回線部210から出力されるパケットのうち平均1/2のパケットに対してフィルタリングを実施する。このため、経路テーブル検索部130は、宛先判定処理だけを行う場合の性能に対して、およそ0.67倍の性能となる。
【００４８】
この様に、出力インターフェース（又は、出力回線）毎にOn/Off情報を備える際には、宛先判定・フィルタリング部100が分散して入力側フィルタリングを実行する方が、フィルタリングによる性能低下を防止することができる。
【００４９】
なお、実行有無判定部115が、出力インターフェース毎にOn/Off情報を備える場合について説明してきたが、出力回線番号毎にOn/Off情報を備えていてもよい。この際、実行有無テーブル1000-Aは、出力回線番号毎に、On/Off情報を備えることとなる。更に、ステップ713では、経路テーブル検索起動部A112が、出力インターフェースや出力回線番号を宛先判定部123より受信すると、出力回線番号を実行有無判定部115に送信する。ステップ714では、実行有無判定部115は、出力回線番号に対応するOn/Off情報を経路テーブル検索起動部A112に送信すればよい。
【００５０】
（２−２）  以上では、出力インターフェース（又は、出力回線）毎にフィルタリングをOn/Offする場合の入力側フィルタリングを特に図７等で説明した。次に、入力インターフェース（又は、入力回線）毎にフィルタリングをOn/Offする際の出力側フィルタリングについて説明する。ネットワークとして、前述の図1と同様のネットワークを想定し、R0がIXからのパケット、すなわち、インターフェース番号が3のネットワークから入力するパケットのみフィルタリングを実施する場合を考える。この際、実行有無テーブル1000-Aの実行有無情報は全てOffとなっており、入力回線201より入力した全てのパケットは、宛先判定・フィルタリング部100において「転送」と判定され、パケット中継処理部250を経由し、出力側のパケット送受信回路230まで転送される。パケット送受信回路230は、本パケットを蓄積すると同時に、再度、内部ヘッダ部330とヘッダ部310の情報を、宛先判定・フィルタリング部100に送信する。
【００５１】
宛先判定・フィルタリング部100の出力側フィルタリング動作を図12に示すフローチャートを用いて説明する。本フローチャートは、図7記載の入力回線201より入力するパケットに対する宛先判定・フィルタリング部100のフローチャートに対して、宛先判定処理（ステップ702〜704）が無くなり、前述のステップ714において、実行有無判定部115は、実行有無テーブル1000-Aと同一フォーマットの実行有無テーブル1000-Bから、入力インターフェース（又は、入力回線番号）に対応するOn/Off情報を読み出して経路テーブル検索起動部A112に送信する処理フローを表している。それ以外の動作に関しては入力側フィルタリングの動作と同様である。
【００５２】
（２−３）  以上では、実行有無判定部115が、入力インターフェース（入力回線）、出力インターフェース（出力回線）毎にOn/Off情報を切り替える場合について、特に図１１等で説明した。次にフロー毎にOn/Off情報を切り替える例を説明する。ここでフローとは、パケットのヘッダ情報又は入力インターフェース（又は、入力回線）、出力インターフェース（又は、出力回線）のうち少なくとも一つの情報から決まるパケットの一連のフロー（流れ）のことを言う。フローの例としては、入力回線と出力回線との組、入力インターフェースと出力インターフェースとの組、及び、送信元アドレスと宛先アドレスとの組等が考えられるが、これに限られない。フロー毎にOn/Off情報をOn/Offすることで、ISPはユーザに対して、特定フローに対してフィルタリングを行う付加通信サービスを提供できる。例えば、ISP-Aが端末T1（IPアドレスは14.15.1.1）を備えるユーザに対し、T5（IPアドレスは19.20.1.1）から受信するパケットにフィルタリングを実行する付加通信サービスを提供する際には、入力回線番号が3であり、宛先IPアドレスが14.15.1.1、送信元IPアドレスが19.20.1.1であるパケットに対して、R0がフィルタリングを行えばよい。
【００５３】
この際の実行有無判定部の一実現例を図13に示す。図13の実行有無判定部115は、実行有無テーブル制御部1310と図14に示す実行有無テーブル1000-Cより構成される。図14の実行有無テーブル1000-Cは、フィルタリングを実施するパケットを送信元IPアドレス（SIP）と宛先IPアドレス（DIP）と入力回線番号に基づいて判定する際のフォーマットである。実行有無テーブル1000-Cのエントリ1001-Ci （iは1以上の整数） はそれぞれの条件をSIP条件、DIP条件、入力回線番号条件として格納する。
【００５４】
パケット入力時の動作は、前述のステップ714において、以下の処理を実行すればよい。すなわち、ステップ714では、実行有無テーブル制御部1310が、実行有無テーブル1000-Cよりアドレスが小さいエントリ1001-Ciから順に読み出して、SIP条件、DIP条件、入力回線番号条件に対応する各蓄積部111, 114, 115, 116内の情報と一致比較を行う。一致するエントリ1001-Ciが存在する場合にはOn/Off情報をOnとし、存在しない場合にはOffと判定し、本On/Off情報を経路テーブル検索起動部A112に送信する。
【００５５】
ステップ714では、実行有無テーブル制御部1310がエントリ1001-Ciを一つ一つ読み出して送信元アドレスと比較する必要があるため、エントリ1000-Ciが増加すると実行有無判定部115の性能が劣化する問題がある。そのため、入力インターフェース、入力回線、出力インターフェース、出力回線のいずれか一つの条件毎にフィルタリングをOn/Offする場合には、実行有無テーブル1000-A, Bを用いた方がよい。
【００５６】
また、IXとR0間の回線が、リンクアグリゲーション（802.3ad）等の技術を用いて、物理的には複数の回線で実現されている場合を考える。この際、R0が、端末T1からT5へのパケットのフィルタリングを実行する場合には、複数の入力回線から入力するパケットに対してフィルタリングを実施する必要がある。この様な場合に対応するためには、エントリ1001-Ciの入力回線番号条件に、複数の条件を指定できるようにすればよい。
【００５７】
なお、受信したパケット送信元IPアドレス（SIP）と宛先IPアドレス（DIP）と入力回線番号に基づいてフィルタリングのOn/Off情報を判定する際について記載したが、その他の情報、例えば宛先MACアドレスや送信元MACアドレスであっても、本発明の実行有無判定部は同様にOn/Off情報を判定することが可能である。
【００５８】
また、前述した通り、出力インターフェースや出力回線番号がエントリ1001-Ciの条件として格納される場合、入力側フィルタリングする方が、出力側フィルタリングする場合に比べて、フィルタリングによる性能劣化が低減される。一方、入力インターフェース番号や入力回線番号がエントリ1001-Ciの条件として格納される場合、出力側フィルタリングを実行した方がよい。
【００５９】
（３）実行有無判定部の実行有無テーブルの設定
ISP-Aの管理者はルータ200外部の管理端末10から、実行有無テーブル1000の設定を行う。実行有無テーブル1000-A, Bに設定する際に、管理端末10に入力されるコマンドの一例を図15に示す。これらのコマンド：out_interface_filterは、出力インターフェース毎のOn/Off情報をエントリ1001-A1、1001-A2に設定するコマンドである。151は出力インターフェース番号を、152はOn/Off情報を示す。1、2行目は、出力インターフェース1、2のOn/Off情報をOffと、3行目は、出力インターフェース3をOn/Off情報をOnとするコマンドである。また、出力インターフェース毎、入力回線毎、出力回線毎のOn/Off情報を設定する場合にはコマンド：”out_interface_filter”の代わりに、”in_interface_filter”、”in_port_filter”、 ”out_port_filter”を使用する。
【００６０】
図16には、実行有無テーブル1000-Cに設定する際のコマンドの一例”flow_filter”を示す。図16記載のコマンドは、エントリ1001-C1設定のためのコマンドである。161はSIP条件を、162はDIP条件、163は入力回線番号条件を示す。
【００６１】
コマンドを受けたプロセッサ280は、実行有無判定部に受信情報と、本情報の書き込み指示を実行有無テーブル1000に送信し、実行有無判定部内の実行有無テーブル制御部は受信情報を実行有無テーブル1000に書き込む。
【図面の簡単な説明】
【００６２】
【図１】ISP-AとISP-BのネットワークをIXにて接続したネットワークの構成例を示すブロック図。
【図２】ルータ200の構成例を示すブロック図。
【図３】ルータ200が送受信するパケットのフォーマット例を示すブロック図。
【図４】ルータ200内部のパケットのフォーマット例を示すブロック図。
【図５】ルータ200のパケット送受信回路230の構成例を示すブロック図。
【図６】ルータ200の宛先判定・フィルタリング部100の構成例を示すブロック図。
【図７】宛先判定・フィルタリング部100の入力側フィルタリングの処理例を示すフロー図。
【図８】宛先判定・フィルタリング部100の経路テーブル検索部130の構成例を示すブロック図。
【図９】経路テーブル検索部130の経路テーブル500のフォーマットと設定の例を示すテーブル図。
【図１０】宛先判定・フィルタリング部100の実行有無判定部115の構成例を示すブロック図。
【図１１】実行有無判定部の115の実行有無テーブル1000-Aの例を示すテーブル図。
【図１２】宛先判定・フィルタリング部100の出力側フィルタリングの処理例を示すフロー図。
【図１３】宛先判定・フィルタリング部100の実行有無判定部の115の他の構成例を示すブロック図。
【図１４】実行有無判定部の115の実行有無テーブル1000-Cの例を示すテーブル図。
【図１５】実行有無テーブル1000-A, Bを設定するための入力コマンドの例。
【図１６】実行有無テーブル1000-Cを設定するための入力コマンドの例。
【符号の説明】
【００６３】
100…宛先判定・フィルタリング部
115…実行有無判定部
130…経路テーブル検索部
200…ルータ
230…パケット受信回路
500…経路テーブル
1000…実行有無テーブル
21…パケットヘッダ情報
22…パケット出力回線情報
23…フィルタリング情報
24…次ホップIPアドレス情報
25…MACアドレス情報
【図１】
0004457058.tif 000002
【図２】
0004457058.tif 000003
【図３】
0004457058.tif 000004
【図４】
0004457058.tif 000005
【図５】
0004457058.tif 000006
【図６】
0004457058.tif 000007
【図７】
0004457058.tif 000008
【図８】
0004457058.tif 000009
【図９】
0004457058.tif 000010
【図１０】
0004457058.tif 000011
【図１１】
0004457058.tif 000012
【図１２】
0004457058.tif 000013
【図１３】
0004457058.tif 000014
【図１４】
0004457058.tif 000015
【図１５】
0004457058.tif 000016
【図１６】
0004457058.tif 000017