(57)【特許請求の範囲】
【請求項１】
ネットワークで転送されるパケットを受信し、前記パケットを当該パケットの宛先に基づいて送信する通信装置であって、
前記通信装置は、
前記パケットを前記ネットワークへ入出力する複数の回線に接続され、
一つ又は複数の回線へのパケットの入出力を制御する複数のネットワークインターフェースと、
前記パケットを前記ネットワークインターフェースにスイッチングするスイッチ部と、
前記宛先の情報を格納するルーティングテーブルを格納する記憶部と、を備え、
前記ルーティングテーブルは、ＴＣＰプロトコル用の第１のルーティングテーブルと、
前記ＴＣＰプロトコル以外の第２のルーティングテーブルと、を含み、
前記記憶部は、前記パケットを送信するときに、前記第１及び第２のルーティングテーブルのいずれを用いるかを決定するための情報を格納するルーティング種別登録情報を格納し、
前記ネットワークインターフェースは、
パケットを送信する回線番号を決定するルーティング部と、
前記スイッチ部を経由したパケットがＴＣＰプロトコルを用いたＳＹＮパケットであるかを判定するＴＣＰ−ＳＹＮ判定部と、を備え、
前記回線から入力されたパケットを、前記ルーティング部を経由させ前記スイッチ部へ入力し、
前記スイッチ部から入力されたパケットを前記ＴＣＰ−ＳＹＮ判定部がＴＣＰプロトコルを用いたＳＹＮパケットであると判定した場合、当該パケットを前記ルーティング部を経由させて、前記ネットワークへ出力し、
前記スイッチ部から入力されたパケットを前記ＴＣＰ−ＳＹＮ判定部がＴＣＰプロトコルを用いたＳＹＮパケットでないと判定した場合、当該パケットを前記ルーティング部を経由させずに、前記ネットワークへ出力し、
前記ルーティング部は、
前記パケットのプロトコルの種別を判定する種別判定部と、
前記パケットに付加されているフラグの種別を判定する付加情報判定部と、
前記ルーティング種別登録情報を参照して、前記受信したパケットの転送に用いるルーティングテーブルを判定するルーティング判定部と、を備え、
前記ルーティング判定部が、前記受信したパケットの転送に用いるルーティングテーブルが第１のルーティングテーブルであると判定し、かつ、前記付加情報判定部が、当該パケットに付加されているフラグがＳＹＮであると判定した場合は、当該パケットの送信元アドレスと当該パケットを受信した回線番号とを関連付けて前記第１のルーティングテーブルに格納し、
前記ルーティング判定部が、前記受信したパケットの転送に用いるルーティングテーブルが第１のルーティングテーブルであると判定し、かつ、前記付加情報判定部が、当該パケットに付加されているフラグがＳＹＮでないと判定した場合は、当該パケットの宛先アドレスと一致する宛先アドレスに関連付けられた回線番号を前記第１のルーティングテーブルから取得し、前記取得された回線番号を経由して当該パケットを送信し、
前記ルーティング判定部が、前記受信したパケットに用いるルーティングテーブルが第２のルーティングテーブルであると判定した場合、又は、前記種別判定部が、前記受信したパケットのプロトコルがＴＣＰプロトコルでないと判定した場合、当該パケットの宛先アドレスと一致する宛先アドレスに関連付けられた回線番号を前記第２のルーティングテーブルから取得し、前記取得された回線番号を経由して当該パケットを送信することを特徴とする通信装置。
【請求項２】
ネットワークに接続され、前記ネットワークで送受信されるパケットを受信し、前記パケットを当該パケットの宛先に基づいて送信する対異常通信防御装置であって、
前記対異常通信防御装置は、制御部を備え、
前記制御部は、前記パケットが異常である場合は当該パケットの送信を制限する対異常通信防御部を備え、
前記対通信異常防御部は、
接続要求元ＩＰアドレスから接続要求先ＩＰアドレスに送信され、プロトコルがＴＣＰプロトコルであり、かつ、付加されているフラグがＳＹＮである第１のパケットを受信した場合は、前記第１のパケットの接続要求元ＩＰアドレスを接続要求先ＩＰアドレスに、前記第１のパケットの接続要求先ＩＰアドレスを接続要求元ＩＰアドレスに、それぞれ変更し、フラグをＳＹＮ−ＡＣＫに変更し、ランダムな値である送信シーケンス番号を付加した第２のパケットを生成し、当該第２のパケットを前記接続要求元ＩＰアドレスに送信し、
その後、接続要求元ＩＰアドレスから接続要求先ＩＰアドレスに送信され、プロトコルがＴＣＰプロトコルであり、かつ、付加されているフラグがＡＣＫであり、かつ、付加されている受信シーケンス番号が、前記送信シーケンス番号に１を加算した値である第３のパケットを受信した場合は、前記接続要求先ＩＰアドレスと前記接続要求元ＩＰアドレスとの通信を正規のものと判定し、前記第３のパケットのフラグをＳＹＮに変更し、送信シーケンス番号から１を減算し、受信シーケンス番号を０に設定した第４のパケットを生成し、当該第４のパケットを前記接続要求先ＩＰアドレスに送信し、
その後、接続要求先ＩＰアドレスから接続要求元ＩＰアドレスに送信され、プロトコルがＴＣＰプロトコルであり、かつ、付加されているフラグがＳＹＮ−ＡＣＫである第５のパケットを受信した場合は、前記第５のパケットの接続要求元ＩＰアドレスを接続要求先ＩＰアドレスに、前記第５のパケットの接続要求先ＩＰアドレスを接続要求元ＩＰアドレスに、それぞれ変更し、フラグをＡＣＫに変更し、前記第５のパケットの送信シーケンス番号を受信シーケンス番号に、前記第５のパケットの受信シーケンス番号を送信シーケンス番号に、それぞれ変更し、さらに、前記受信シーケンス番号に１を加算した第６のパケットを生成し、当該第６のパケットを前記接続要求先ＩＰアドレスに送信することによって、前記接続要求先ＩＰアドレスと前記接続要求元ＩＰアドレスとの通信の通過を許可し、
前記通過を判定した後、前記接続要求元ＩＰアドレスと前記接続要求先ＩＰアドレスとの間のパケットの送受信を許可し、
その後、前記接続要求元ＩＰアドレスから前記接続要求先ＩＰアドレスに送信される第７のパケットを受信したときは、前記第７のパケットの付加された受信シーケンス番号から、前記第２のパケットに付加された送信シーケンス番号と前記第５のパケットに付加された送信シーケンス番号との差分値を減算した上で、ＴＣＰチェックサムの値を再計算し、
前記接続要求先ＩＰアドレスから前記接続要求元ＩＰアドレスに送信される第８のパケットを受信したときは、前記第８のパケットの送信シーケンス番号に、前記第２のパケットの送信シーケンス番号と前記第５のパケットの送信シーケンス番号の差分値を加算した上で、ＴＣＰチェックサムの値を再計算し、
前記通過判定前において、前記接続要求元ＩＰアドレスと前記接続要求先ＩＰアドレス間で送受信されるパケットを廃棄することを特徴とする対異常通信防御装置。
【請求項３】
対異常通信防御装置は、記憶部を備え、
前記記憶部は、前記パケットの接続要求元ＩＰアドレス、前記パケットの接続要求先ＩＰアドレス、前記パケットが到着した到着時間と、前記パケットに関する情報の更新を制限する期間を示す制限時間と、を関連付けて記録するセッション情報を格納し、
前記制御部は、現在時刻と前記セッション情報に記録された到着時間との差分値が、前記セッションテーブルに記録された制限時間を超過した場合に、当該パケットに関する情報の更新を許可することを特徴とする請求項２に記載の対異常通信防御装置。
【請求項４】
前記制御部は、前記パケットの接続要求元ＩＰアドレス、前記パケットの接続要求先ＩＰアドレス、及び、現在時刻と前記セッション情報に記録された到着時間との差分値、の少なくとも一つに基づいて、前記制限時間を変更することを特徴とする請求項３に記載の対異常通信防御装置。
【請求項５】
前記制御部は、前記第１、第３又は第５のパケットを受信した場合は、前記セッションテーブルに記録された制限時間を変更することを特徴とする請求項３に記載の対異常通信防御装置。
【請求項６】
前記対異常通信防御装置は、
前記パケットを前記ネットワークへ入出力する複数の回線に接続され、
一つ又は複数の回線へのパケットの入出力を制御する複数のネットワークインターフェースと、
前記パケットを前記ネットワークインターフェースにスイッチングするスイッチ部と、を備え、
前記ネットワークインターフェースは、前記対異常通信防御部を備え、
前記ネットワークインターフェースは、
前記回線から入力されたパケットを、前記対異常通信防御部を経由させ前記スイッチ部へ入力し、
前記スイッチ部から入力されたパケットを、前記対異常通信防御部を経由させ前記回線へ入力することを特徴とする請求項２に記載の対異常通信防御装置。
【請求項７】
ネットワークで転送されるパケットを受信し、前記パケットを当該パケットの宛先に基づいて送信する一又は複数の通信装置と、
前記ネットワークに接続され、前記ネットワークで送受信されるパケットを受信し、前記パケットを当該パケットの宛先に基づいて送信し、前記パケットが異常である場合は当該パケットの送信を制限する対異常通信防御部を備える対異常通信防御装置とがネットワークに接続されたネットワークシステムにおいて、
前記通信装置は、
前記パケットを前記ネットワークへ入出力する複数の回線に接続され、
一つ又は複数の回線へのパケットの入出力を制御する複数のネットワークインターフェースと、
前記パケットを前記ネットワークインターフェースにスイッチングするスイッチ部と、
前記宛先の情報を格納するルーティングテーブルを格納する記憶部と、を備え、
前記ルーティングテーブルは、ＴＣＰプロトコル用の第１のルーティングテーブルと、
前記ＴＣＰプロトコル以外の第２のルーティングテーブルと、を含み、
前記記憶部は、前記パケットを送信するときに、前記第１及び第２のルーティングテーブルのいずれを用いるかを決定するための情報を格納するルーティング種別登録情報を格納し、
前記ネットワークインターフェースは、
パケットを送信する回線番号を決定するルーティング部と、
前記スイッチ部を経由したパケットがＴＣＰプロトコルを用いたＳＹＮパケットであるかを判定するＴＣＰ−ＳＹＮ判定部と、を備え、
前記回線から入力されたパケットを、前記ルーティング部を経由させ前記スイッチ部へ入力し、
前記スイッチ部から入力されたパケットを前記ＴＣＰ−ＳＹＮ判定部がＴＣＰプロトコルを用いたＳＹＮパケットであると判定した場合、当該パケットを前記ルーティング部を経由させて、前記ネットワークへ出力し、
前記スイッチ部から入力されたパケットを前記ＴＣＰ−ＳＹＮ判定部がＴＣＰプロトコルを用いたＳＹＮパケットでないと判定した場合、当該パケットを前記ルーティング部を経由させずに、前記ネットワークへ出力し、
前記ルーティング部は、
前記パケットのプロトコルの種別を判定する種別判定部と、
前記パケットに付加されているフラグの種別を判定する付加情報判定部と、
前記ルーティング種別登録情報を参照して、前記受信したパケットの転送に用いるルーティングテーブルを判定するルーティング判定部と、を備え、
前記ルーティング判定部が、前記受信したパケットの転送に用いるルーティングテーブルが第１のルーティングテーブルであると判定し、かつ、前記付加情報判定部が、当該パケットに付加されているフラグがＳＹＮであると判定した場合は、当該パケットの送信元アドレスと当該パケットを受信した回線番号とを関連付けて前記第１のルーティングテーブルに格納し、
前記ルーティング判定部が、前記受信したパケットの転送に用いるルーティングテーブルが第１のルーティングテーブルであると判定し、かつ、前記付加情報判定部が、当該パケットに付加されているフラグがＳＹＮでないと判定した場合は、当該パケットの宛先アドレスと一致する宛先アドレスに関連付けられた回線番号を前記第１のルーティングテーブルから取得し、前記取得された回線番号を経由して当該パケットを送信し、
前記ルーティング判定部が、前記受信したパケットに用いるルーティングテーブルが第２のルーティングテーブルであると判定した場合、又は、前記種別判定部が、前記受信したパケットのプロトコルがＴＣＰプロトコルでないと判定した場合、当該パケットの宛先アドレスと一致する宛先アドレスに関連付けられた回線番号を前記第２のルーティングテーブルから取得し、前記取得された回線番号を経由して当該パケットを送信し、
前記対異常通信防御装置は、
前記パケットを前記ネットワークへ入出力する複数の回線に接続され、
一つ又は複数の回線へのパケットの入出力を制御する複数のネットワークインターフェースと、
前記パケットを前記ネットワークインターフェースにスイッチングするスイッチ部と、を備え、
前記ネットワークインターフェースは、前記対異常通信防御部を備え、
前記ネットワークインターフェースは、
前記回線から入力されたパケットを、前記対異常通信防御部を経由させ前記スイッチ部へ入力し、
前記スイッチ部から入力されたパケットを、前記対異常通信防御部を経由させ前記回線へ入力し、
前記対通信異常防御部は、
接続要求元ＩＰアドレスから接続要求先ＩＰアドレスに送信され、プロトコルがＴＣＰプロトコルであり、かつ、付加されているフラグがＳＹＮである第１のパケットを受信した場合は、前記第１のパケットの接続要求元ＩＰアドレスを接続要求先ＩＰアドレスに、前記第１のパケットの接続要求先ＩＰアドレスを接続要求元ＩＰアドレスに、それぞれ変更し、フラグをＳＹＮ−ＡＣＫに変更し、ランダムな値である送信シーケンス番号を付加した第２のパケットを生成し、当該第２のパケットを前記接続要求元ＩＰアドレスに送信し、
その後、接続要求元ＩＰアドレスから接続要求先ＩＰアドレスに送信され、プロトコルがＴＣＰプロトコルであり、かつ、付加されているフラグがＡＣＫであり、かつ、付加されている受信シーケンス番号が、前記送信シーケンス番号に１を加算した値である第３のパケットを受信した場合は、前記接続要求先ＩＰアドレスと前記接続要求元ＩＰアドレスとの通信を正規のものと判定し、前記第３のパケットのフラグをＳＹＮに変更し、送信シーケンス番号から１を減算し、受信シーケンス番号を０に設定した第４のパケットを生成し、当該第４のパケットを前記接続要求先ＩＰアドレスに送信し、
その後、接続要求先ＩＰアドレスから接続要求元ＩＰアドレスに送信され、プロトコルがＴＣＰプロトコルであり、かつ、付加されているフラグがＳＹＮ−ＡＣＫである第５のパケットを受信した場合は、前記第５のパケットの接続要求元ＩＰアドレスを接続要求先ＩＰアドレスに、前記第５のパケットの接続要求先ＩＰアドレスを接続要求元ＩＰアドレスに、それぞれ変更し、フラグをＡＣＫに変更し、前記第５のパケットの送信シーケンス番号を受信シーケンス番号に、前記第５のパケットの受信シーケンス番号を送信シーケンス番号に、それぞれ変更し、さらに、前記受信シーケンス番号に１を加算した第６のパケットを生成し、当該第６のパケットを前記接続要求先ＩＰアドレスに送信することによって、前記接続要求先ＩＰアドレスと前記接続要求元ＩＰアドレスとの通信の通過を許可し、
前記通過を判定した後、前記接続要求元ＩＰアドレスと前記接続要求先ＩＰアドレスとの間のパケットの送受信を許可し、
その後、前記接続要求元ＩＰアドレスから前記接続要求先ＩＰアドレスに送信される第７のパケットを受信したときは、前記第７のパケットの付加された受信シーケンス番号から、前記第２のパケットに付加された送信シーケンス番号と前記第５のパケットに付加された送信シーケンス番号との差分値を減算した上で、ＴＣＰチェックサムの値を再計算し、
前記接続要求先ＩＰアドレスから前記接続要求元ＩＰアドレスに送信される第８のパケットを受信したときは、前記第８のパケットの送信シーケンス番号に、前記第２のパケットの送信シーケンス番号と前記第５のパケットの送信シーケンス番号の差分値を加算した上で、ＴＣＰチェックサムの値を再計算し、
前記通過判定前において、前記接続要求元ＩＰアドレスと前記接続要求先ＩＰアドレス間で送受信されるパケットを廃棄することを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対異常通信防御を行うための通信装置と対異常通信防御装置とネットワークシステムに関する。
【背景技術】
【０００２】
近年、インターネットに代表されるＩＰ（Internet Protocol）ネットワークのライフライン化や個人情報保護法制定などの動きに伴って、ネットワークセキュリティの重要度が高まってきている。
【０００３】
多くの企業や個人は、自身のネットワーク内に設置されたＰＣからの情報の漏洩や、自身のネットワーク内に設置されたサーバに対する攻撃を防止するために、通信事業者のネットワークとのアクセス点に、ＦＷ（Firewall）、ＩＤＳ（Intrusion Detection System）、ＩＰＳ（Intrusion Prevention System）などの対異常通信防御装置を設置して、情報資源を防御することが一般的になっている。
【０００４】
このような対異常通信防御装置は、異常通信を行うホストを探知したり、探知したホストからの異常通信の排除又は異常通信の帯域制御を実施すると共に、正規通信を保護する。
【０００５】
ＴＣＰプロトコルを用いた異常通信の排除と、ＴＣＰプロトコルを用いた正規通信の保護については、セッションテーブルに通信の状態を記録しておき、ＳＹＮ−ＡＣＫパケットを代理応答することで正規通信か否かを判定する方式などが使用されている（非特許文献１参照）。
【０００６】
しかし、アクセス点に設置した対異常通信防御装置では防御できない攻撃も存在する。例えば、クライアントＰＣとＷｅｂサーバが通信しているときに、攻撃者の操る乗っ取りサーバと複数のゾンビサーバによって、通信経路上のルータに向けて大量のパケットを送信してルータのパケット転送機能を低下させる攻撃が行われたとする。この場合、ＰＣとサーバの間で流れているパケットが、攻撃を受けたルータで廃棄され、正常な通信が行われなくなる。
【０００７】
そのため、通信事業者は、ネットワークの上流側の他のネットワークとの接続点に設置するエッジルータに、対異常通信防御機能を追加して、ネットワークで行われる全ての通信を解析し、通信障害の原因となるＰ２Ｐ（Peer to Peer）などの過大通信や、ＤＤｏＳ（Distributed Denial of Service）などのルータやサーバの攻撃を目的とした不正通信など各種の異常通信を確実に探知、排除する必要が出てきた。
【０００８】
なお、企業や個人のネットワークは一箇所で通信事業者のネットワークと接続していることが一般的であるのに対して、通信事業者のネットワークは複数箇所で他の通信事業者のネットワークと接続している。
【０００９】
また、通信事業者のネットワークは、ネットワーク内のルーティングプロトコルとして、最短経路探索アルゴリズムを用いたＲＩＰ（非特許文献２参照）やＯＳＰＦ（非特許文献３参照）などを用いている。そのため、あるホスト間の通信において、往路と復路が異なる場合が存在する。
【００１０】
また、対異常通信防御には、接続要求元アドレスと、接続要求先アドレスと、通信が行われた最新の時刻を表す記録時間とから構成される通信データを記録するセッションテーブルを必要とする。セッションテーブル記載の通信データを更新する際には、テーブル検索にハッシュを用い、一致する通信データがないときに、複数の通信データから最も古い記録時間を持つ通信データを上書きする方式（非特許文献４参照）などが用いられている。
【非特許文献１】Christoph L. Schuba、Ivan V. Krsul、Markus G. Kuhn、Eugene H. Spafford、Aurobindo Sundaram、Diego Zamboni、「Analysis of a Denial of Service Attack on TCP」、IEEE Symposium、１９９７年５月、ｐ．２０８−２２３
【非特許文献２】C. Hedrick、「Routing Information Protocol」、RFC1058、１９９８年６月
【非特許文献３】J. Moy、「OSPF Version 2」、RFC1583１９９４年３月
【非特許文献４】J. Lemon、「Resisting SYN flooding DoS attacks with a SYN cache」、Proceedings of USENIX BSDCon'2002、２００２年２月、ｐ．８９−９８
【発明の開示】
【発明が解決しようとする課題】
【００１１】
対異常通信防御装置を、個人や企業のネットワークと通信事業者のネットワークとの接続点に設置しただけでは防御できない攻撃が存在する。そのため、通信事業者のネットワークの上流側接続点に設置するエッジルータに、対異常通信防御機能を追加して、異常通信を行うホストを探知し、探知したホストからの異常通信の排除又は異常通信の帯域制御を実施すると共に、正規通信を保護する必要がある。
【００１２】
このような、対異常通信防御装置を用いた異常通信の排除を、図２２を参照して説明する。
【００１３】
ある攻撃ユーザのホスト１７０１から別のホスト１７０２に向けて、送信シーケンス番号（ＳＥＱ番号）をＡとして、送信元ＩＰアドレスを偽装して送信されたＳＹＮパケット１７０３が対異常通信防御装置１７００に到着すると、ランダムな値ＢをＳＥＱ番号に付与した（処理１７０８）ＳＹＮ−ＡＣＫパケット１７０４が、偽装した送信元ＩＰアドレス宛に返信される。攻撃ユーザのホスト１７０１は、送信元ＩＰアドレスを偽装したため、ＳＹＮ−ＡＣＫパケット１７０４を受信することができず（処理１７０６）、対異常通信防御装置１７００がＳＹＮ−ＡＣＫパケット１７０４に付与したＳＥＱ番号の値Ｂを知ることができない。仮に、攻撃ユーザのホスト１７０１が、値ＢをＥと予測して、ＡＣＫ番号をＥ＋１に設定したＡＣＫパケット１７０５を接続要求先ホスト１７０２に向けて送信しても（処理１７０７）、ＡＣＫ番号が予測値のＢ＋１と一致しないため、前記送信元ＩＰアドレスと接続要求先ホスト１７０２との間の通信は異常と判定され、ＡＣＫパケット１７０５は廃棄される（処理１７０９）。
【００１４】
このように、異常通信が送信元やＳＥＱ番号、ＡＣＫ番号を偽っているために、対異常通信防御装置１７００によって、その通信が遮断される。
【００１５】
一方、このような対異常通信防御は、正規通信と判定されたパケットについて、図２に示すように、接続要求先ホスト１６０２から送られてくるＳＹＮ−ＡＣＫパケット１６１０に記載されたＳＥＱ番号Ｃを用いて、接続要求先ホスト１６０２からのデータパケット１６１３のＳＥＱ番号を変換する処理１６１９を行うため、通信の往路と復路が同一である必要がある。一方、非特許文献２，３によるルーティングを用いた通信事業者のネットワークでは、通信の往路と復路が異なる場合があるため、前述の対異常通信防御を用いると、正常に通信が行えないという問題があった。
【００１６】
この、通信の往路と復路が異なるときに、前述の対異常通信防御を用いると、正常に通信が行えない問題について、図２３と図２４を用いて詳細に説明する。
【００１７】
図２３は、ある正規ユーザのホスト１８１１が、あるホスト１８１２に向けて通信を行う場合を示す。正規ユーザのホスト１８１１とホスト１８１２との間には、４つのネットワーク１８０１〜１８０４が存在し、往路はネットワーク１８０１と対異常通信防御装置１８２０を経由する経路１８４０に設定され、復路は、通信装置１８２２によって、ネットワーク１８０３を経由する経路１８５０に設定される。このとき、正規ユーザのホスト１８１１が、ホスト１８１２に向けて送信シーケンス番号（ＳＥＱ番号）をＡとしてＳＹＮパケット１９０３を送信すると、対異常通信防御装置１８２０によって、ランダムな値ＢをＳＥＱ番号に付与した（処理１９１０）ＳＹＮ−ＡＣＫパケット１９０４がホスト１８１１に返信される。さらに、その後、ホスト１８１１が、接続要求先ホスト１８１２に向けてＡＣＫパケット１９０５を送信すると、対異常通信防御装置１８２０が、ＡＣＫパケット１９０５の受信シーケンス番号（ＡＣＫ番号）が処理１９１０で付与したＳＥＱ番号＋１と一致するか否かを判定し、一致する場合のみ正規通信と判定して（処理１９１１）、ＳＥＱ番号をＡ、ＡＣＫ番号を０としたＳＹＮパケット１９０８を接続要求先ホスト１８１２に向けて送信する。ＳＹＮパケット１９０８を受け取った接続要求先ホスト１８１２は、ランダムな値ＣをＳＥＱ番号に付与した（処理１９１３）ＳＹＮ−ＡＣＫパケット１９０６を接続要求元ホスト１８１１に向けて返信する。このＳＹＮ−ＡＣＫパケット１９０６は、経路１８５０を通って正規ユーザのホスト１８１１に到達するため、対異常通信防御装置１８２０において、ＳＥＱ番号の変換処理が行われない。そのため、ＳＹＮ−ＡＣＫパケット１９０６のＳＥＱ番号は、正規ユーザのホスト１８１１が期待する値Ｂと異なることとなり、廃棄される（処理１８３０及び１９１２）。また、対異常通信防御装置１８２０は、ＳＹＮ−ＡＣＫパケット１９０６を受信できないため、正規ユーザのホスト１８１１が送信したデータパケット１９０７を通過させることができない（処理１９１４）。なお、攻撃ユーザ１８１０からの異常通信１８６０は、対異常通信防御装置１８２０によって排除することができる。
【００１８】
前述の対異常通信防御は、ランダムに生成した送信元偽装アドレスから大量の接続要求を特定のホストに送りつけるような攻撃が大規模に行われると、セッションテーブルに記録される通信データの量が増大する。そのため、接続要求元ホストと接続要求先ホストとの間のＲＴＴ（Round Trip Time）が大きく状態遷移が遅い正規通信に関する通信データが、更新頻度が低くなることで上書きされやすくなり、正規通信の保護に失敗する確率が高まるという問題があった。
【００１９】
本発明は、このような問題点を解決するために、対異常通信防御を複数の接続点を持つ通信事業者のネットワークにおいて使用可能とするルーティング方式を備えた通信装置と、大規模な異常通信が行われてもＲＴＴが大きい正規通信の保護に失敗する確率を最小化する対異常通信防御方式を備えた対異常通信防御装置と、これらの装置を備えたネットワークシステムと、を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明による一実施形態によると、ネットワークで転送されるパケットを受信し、前記パケットを当該パケットの宛先に基づいて送信する通信装置であって、前記通信装置は、前記パケットを前記ネットワークへ入出力する複数の回線に接続され、一つ又は複数の回線へのパケットの入出力を制御する複数のネットワークインターフェースと、前記パケットを前記ネットワークインターフェースにスイッチングするスイッチ部と、前記宛先の情報を格納するルーティングテーブルを格納する記憶部と、を備え、前記ルーティングテーブルは、ＴＣＰプロトコル用の第１のルーティングテーブルと、前記ＴＣＰプロトコル以外の第２のルーティングテーブルと、を含み、前記記憶部は、前記パケットを送信するときに、前記第１及び第２のルーティングテーブルのいずれを用いるかを決定するための情報を格納するルーティング種別登録情報を格納し、前記ネットワークインターフェースは、パケットを送信する回線番号を決定するルーティング部と、前記スイッチ部を経由したパケットがＴＣＰプロトコルを用いたＳＹＮパケットであるかを判定するＴＣＰ−ＳＹＮ判定部と、を備え、前記回線から入力されたパケットを、前記ルーティング部を経由させ前記スイッチ部へ入力し、前記スイッチ部から入力されたパケットを前記ＴＣＰ−ＳＹＮ判定部がＴＣＰプロトコルを用いたＳＹＮパケットであると判定した場合、当該パケットを前記ルーティング部を経由させて、前記ネットワークへ出力し、前記スイッチ部から入力されたパケットを前記ＴＣＰ−ＳＹＮ判定部がＴＣＰプロトコルを用いたＳＹＮパケットでないと判定した場合、当該パケットを前記ルーティング部を経由させずに、前記ネットワークへ出力し、前記ルーティング部は、前記パケットのプロトコルの種別を判定する種別判定部と、前記パケットに付加されているフラグの種別を判定する付加情報判定部と、前記ルーティング種別登録情報を参照して、前記受信したパケットの転送に用いるルーティングテーブルを判定するルーティング判定部と、を備え、前記ルーティング判定部が、前記受信したパケットの転送に用いるルーティングテーブルが第１のルーティングテーブルであると判定し、かつ、前記付加情報判定部が、当該パケットに付加されているフラグがＳＹＮであると判定した場合は、当該パケットの送信元アドレスと当該パケットを受信した回線番号とを関連付けて前記第１のルーティングテーブルに格納し、前記ルーティング判定部が、前記受信したパケットの転送に用いるルーティングテーブルが第１のルーティングテーブルであると判定し、かつ、前記付加情報判定部が、当該パケットに付加されているフラグがＳＹＮでないと判定した場合は、当該パケットの宛先アドレスと一致する宛先アドレスに関連付けられた回線番号を前記第１のルーティングテーブルから取得し、前記取得された回線番号を経由して当該パケットを送信し、前記ルーティング判定部が、前記受信したパケットに用いるルーティングテーブルが第２のルーティングテーブルであると判定した場合、又は、前記種別判定部が、前記受信したパケットのプロトコルがＴＣＰプロトコルでないと判定した場合、当該パケットの宛先アドレスと一致する宛先アドレスに関連付けられた回線番号を前記第２のルーティングテーブルから取得し、前記取得された回線番号を経由して当該パケットを送信することを特徴とする。
【発明の効果】
【００２１】
本発明によると、複数の接続点を持つ通信事業者のネットワークにおいて、対異常通信防御を可能とするルーティング方式を実現でき、さらに、大規模な異常通信が行われてもＲＴＴが大きい正規通信の保護に失敗する確率を最小化する対異常通信防御方式を備えた装置及びネットワークシステムを実現できる。
【発明を実施するための最良の形態】
【００２２】
まず、本発明の実施の形態のネットワークシステムについて説明する。
【００２３】
図１は、本発明の実施の形態のネットワークシステムの説明図である。この図は、ネットワーク１５０４において、上流側ネットワークに複数の接続点で対異常通信装置１６００を設置し、異常通信の防御を実行する処理を示す。
【００２４】
図１に示すネットワークシステムは、通信装置１５２２と、対異常通信防御装置１６００及び１５２１を備えるネットワーク１５０４と、上流側のネットワーク１５０１、１５０２及び１５０３とを含んで構成される。
【００２５】
また、ネットワーク１５０２にはホスト１６０１が接続され、ネットワーク１５０４にはホスト１６０２が接続されている。ホスト１６０１は、ホスト１６０２への正規の接続要求を送信する正規ユーザのホストとして登録されている。
【００２６】
ホスト１６０１は、ネットワーク１５０２、１５０１及び１５０４を経由して、ホスト１６０２に接続要求を送信する。この接続要求は、ネットワーク１５０１を経由し、対異常通信防御装置１６００を介して、ネットワーク１５０４を経由する経路１５４０によってホスト１６０２に送信される。
【００２７】
対異常通信防御装置１６００は、ネットワーク１５０４に送信される通信データの内容から、異常通信であるか否かを判定し、異常通信であると判定した場合は、当該通信を遮断する。
【００２８】
通信装置１５２２は、ルーティング部を備え、受信したパケットを適切な宛先に送信する。
【００２９】
次に、以上のように構成されたネットワークシステムの動作を説明する。
【００３０】
図２は、本発明の実施の形態のネットワークシステムの動作を示すシーケンス図である。
【００３１】
この図２のシーケンス図は、正規ユーザのホストであるホスト１６０１から送信された接続要求が、ネットワーク１５０４の対異常通信防御装置１６００を介して、ホスト１６０２に送信されるときの処理を示す。
【００３２】
正規ユーザのホスト１６０１は、ホスト１６０２を宛先として、送信シーケンス番号（以下、「ＳＥＱ番号」と称呼する）を「Ａ」に、受信シーケンス番号（以下、「ＡＣＫ番号」と称呼する）を「０」に、それぞれ設定したＳＹＮパケット１６０３を送信する。このＳＹＮパケット１６０３は、ネットワーク１５０２及び１５０１を経由して、ネットワーク１５０４の対異常通信防御装置１６００が受信する。
【００３３】
対異常通信防御装置１６００は、ＳＹＮパケット１６０３を受信すると、ランダムな値「Ｂ」をＳＥＱ番号に付与し、ＡＣＫ番号に「Ａ＋１」を付与したＳＹＮ−ＡＣＫパケット１６０４を生成する（処理１６１４）。そして、このＳＹＮ−ＡＣＫパケット１６０４を、接続要求元のホスト１６０１に返信する。
【００３４】
ホスト１６０１は、ＳＹＮ−ＡＣＫパケット１６０４を受信すると、接続要求先ホスト１６０２を宛先として、ＳＥＱ番号を「Ａ＋１」に、ＡＣＫ番号を「Ｂ＋１」に、それぞれ設定したＡＣＫパケット１６０５を送信する。
【００３５】
対異常通信防御装置１６００は、ＡＣＫパケット１６０５を受信すると、このＡＣＫパケット１６０５のＡＣＫ番号を参照して、このＡＣＫ番号が、処理１６１４で付与したＳＥＱ番号に１を加算した値と一致するか否かを判定する。ＡＣＫ番号が一致した場合は、対異常通信防御装置１６００は、正規の通信と判定する（処理１６１５）。そして、ＳＥＱ番号を「Ａ」に、ＡＣＫ番号を「０」にそれぞれ設定したＳＹＮパケット１６０９を生成する。このＳＹＮパケット１６０９を、ホスト１６０１からの接続要求の宛先であるホスト１６０２を宛先として送信する。このＳＹＮパケット１６０９は、ネットワーク１５０４において、通信装置１５２２を介してホスト１６０２に送信される。
【００３６】
接続要求先のホスト１６０２は、ＳＹＮパケット１６０９を受信すると、ランダムな値「Ｃ」をＳＥＱ番号に付与し、ＡＣＫ番号に「Ａ＋１」を付与したＳＹＮ−ＡＣＫパケット１６１０を生成する（処理１６１７）。そして、このＳＹＮ−ＡＣＫパケット１６１０を、接続要求元のホスト１６０１に返信する。
【００３７】
対異常通信防御装置１６００は、ＳＹＮ−ＡＣＫパケット１６１０を受信すると、前述のように、ＳＥＱ番号を「Ａ＋１」に、ＡＣＫ番号を「Ｃ＋１」に、それぞれ設定したＡＣＫパケット１６１１を、接続要求先ホスト１６０２を宛先として送信する。
【００３８】
ここで、接続要求元のホスト１６０１は、ＡＣＫパケット１６０５を送信した後、通常のデータパケット１６０６を、ホスト１６０２を宛先として送信する。
【００３９】
対異常通信防御装置１６００は、ＡＣＫパケット１６１１を接続要求先のホスト１６０２に送信する処理が完了するまでは、受信したデータパケット１６０６をバッファに蓄積する（処理１６１６）。そして、ＡＣＫパケット１６１１を接続要求先のホスト１６０２に送信する処理が完了したときは、対異常通信防御装置１６００は、ＳＹＮ−ＡＣＫパケット１６０４のＳＥＱ番号「Ｂ」とＳＹＮ−ＡＣＫパケット１６１０のＳＥＱ番号「Ｃ」との差分値をＡＣＫ番号から減算して、ＴＣＰチェックサムを再計算する（処理１６１８）そして、このＴＣＰチェックサムを付与したデータパケット１６１２を、接続要求先のホスト１６０２を宛先として送信する。
【００４０】
一方、接続要求先のホスト１６０２から送信されたデータパケット１６１３は、対異常通信防御装置１６００が受信する。対異常通信防御装置１６００は、ＳＹＮ−ＡＣＫパケット１６０４のＳＥＱ番号「Ｂ」とＳＹＮ−ＡＣＫパケット１６１０のＳＥＱ番号「Ｃ」との差分値をＳＥＱ番号に加算して、ＴＣＰチェックサムを再計算する（処理１６１９）。そして、このＴＣＰチェックサムを付与したデータパケット１６０８を、接続要求元のホスト１６０１を宛先として送信する。
【００４１】
図３は、ネットワーク１５０４における、対異常通信防御装置１６００、通信装置１５２２及びホスト１６０２の通信のシーケンス図である。
【００４２】
対異常通信防御装置から、接続要求先のホスト１６０２を宛先として送信されたＳＹＮパケット１６０９は、ネットワーク１５０４の通信装置１５２２が受信する。
【００４３】
通信装置１５２２は、受信したＳＹＮパケットから、送信元ＩＰアドレス及び入力回線番号を取得して、これらを、それぞれ宛先ＩＰアドレス及び出力回線番号としてＴＣＰ向けルーティングテーブルに登録する（処理３０１）。そして、通信装置１５２２は、ＳＹＮパケット１６０９を通常のルーティングテーブルに従って転送する（処理３０２）。
【００４４】
接続要求先のホスト１６０２は、ＳＹＮパケット１６０９を受信すると、ランダムな値「Ｃ」をＳＥＱ番号に付与したＳＹＮ−ＡＣＫパケット１６１０を生成する（処理１６１７）そして、このＳＹＮ−ＡＣＫパケット１６１０を、接続要求元のホスト１６０１を宛先として返信する。
【００４５】
通信装置１５２２は、このＳＹＮ−ＡＣＫパケット１６１０を受信すると、宛先ＩＰアドレスを取得して、ＴＣＰ向けルーティングテーブルを参照する。そして、処理３０１で登録されたＳＹＮパケット１６０９の入力回線に、このＳＹＮ−ＡＣＫパケット１６１０を転送する（処理３０３）。
【００４６】
この通信装置１５２２の処理によって、ＳＹＮ−ＡＣＫパケット１６１０は、ネットワーク１５０４において、経路１５５０を通るようになり、他の対異常通信防御装置１５２１ではなく、ＳＹＮパケット１６０９を受信した対異常通信防御装置１６００に必ず到着する。このようにすることによって、ＡＣＫパケット１６１１を接続要求先ホスト１６０２に向けて送信する処理や、ＳＹＮ−ＡＣＫパケット１６０４のＳＥＱ番号ＢとＳＹＮ−ＡＣＫパケット１６１０のＳＥＱ番号Ｃの差分を、データパケット１６０６のＡＣＫ番号から減算して、ＴＣＰチェックサムを再計算する処理１６１８などが正常に行えるようになる。
【００４７】
また、接続要求先のホスト１６０２から送信されたデータパケット１６１３は、同様に、処理３０１でＴＣＰ向けルーティングテーブルに登録されたＳＹＮパケット１６０９の入力回線に転送される。この結果、データパケット１６１１は、対異常通信防御装置１６００に必ず到着する。そのため、ＳＹＮ−ＡＣＫパケット１６０４のＳＥＱ番号ＢとＳＹＮ−ＡＣＫパケット１６１０のＳＥＱ番号Ｃの差分を、データパケット１６１３のＳＥＱ番号に加算して、ＴＣＰチェックサムを再計算する処理１６１９が正常に行えるようになる。なお、攻撃ユーザ１５１０の異常通信は、対異常通信防御装置１６００で排除される。
【００４８】
図４は、本発明の実施の形態のネットワークシステムの動作を示すシーケンス図であり、対異常通信防御装置１６００が、バッファ蓄積処理１６１６を行わない場合の処理を示す。
【００４９】
前述のように、接続要求元のホスト１６０１が接続要求先ホスト１６０２を宛先として送信したＳＹＮパケット１６０３は、対異常通信防御装置１６００を介して、ＳＹＮパケット１６０９として送信される。接続要求先ホスト１６０２は、接続要求元のホスト１６０１を宛先としたＳＹＮ−ＡＣＫパケット１６１０を送信する。対異常通信防御装置１６００は、このＳＹＮ−ＡＣＫパケット１６１０を受信すると、ＡＣＫパケット１６１１を送信する。
【００５０】
ここで、接続要求元のホスト１６０１は、ＡＣＫパケット１６０５を送信した後、通常のデータパケット１６０６を、ホスト１６０２を宛先として送信する。
【００５１】
対異常通信防御装置１６００は、ＡＣＫパケット１６１１を接続要求先のホスト１６０２に送信する処理が完了するまでは、受信したデータパケット１６０６を破棄する（処理２３１６）。
【００５２】
接続要求元のホスト１６０１は、データパケット１６０６が破棄されたことを知ると、そのデータパケット２３０６を再送する（処理２３１７）。
【００５３】
そして、ＡＣＫパケット１６１１を接続要求先のホスト１６０２に送信する処理が完了した後に、対異常通信防御装置１６００がデータパケット２３０６を受信すると、対異常通信防御装置１６００は、前述のように、ＳＹＮ−ＡＣＫパケット１６０４のＳＥＱ番号「Ｂ」とＳＹＮ−ＡＣＫパケット１６１０のＳＥＱ番号「Ｃ」との差分値をＡＣＫ番号から減算して、ＴＣＰチェックサムを再計算する（処理２３１８）そして、このＴＣＰチェックサムを付与したデータパケット２３１２を、接続要求先のホスト１６０２を宛先として送信する。以降の処理は、前述の図２と同一である。
【００５４】
このように、ネットワーク１５０４において、対異常通信防御装置１６００及び通信装置１５２２の処理によって、送受信されるパケットは、必ず、そのパケットの送信元のパケットを受け取った対異常通信防御装置１６００を経由して送信される。
【００５５】
次に、本発明の通信装置について説明する。
【００５６】
図５は、本発明の実施の形態の通信装置の構成ブロック図である。
【００５７】
通信装置２０００は、パケットを受け取ると、そのパケットのヘッダ情報から宛先ＩＰアドレスやＳＹＮ番号、ＡＣＫ番号等を抽出して、これらに基づいたルーティングをして、適切な宛先に送信する。
【００５８】
通信装置２０００は、Ｎ個のネットワークインターフェース２００１−ｎ（ｎ＝１〜Ｎ）と、スイッチ部２００２とから構成される。
【００５９】
スイッチ部２００２は、パケットを適切なネットワークインターフェース２００１にスイッチングする。
【００６０】
ネットワークインターフェース２００１−ｎは、Ｋ個の回線２００３−ｎ−ｋ（ｋ＝１〜Ｋ）と、各回線２００３−ｎ−ｋに対応した回線番号付与部２００４−ｎ−ｋ（ｋ＝１〜Ｋ）及び回線番号削除部２００５−ｎ−ｋ（ｋ＝１〜Ｋ）と、入力パケット集約部２００６−ｎと、ルーティング部１００−ｎと、フロー制御部２００７−ｎと、内部スイッチング部２００９−ｎと、ＴＣＰ−ＳＹＮ判定部２０１１−ｎと、出力パケット集約部２０１２−ｎと、出力パケット配線部２０１０−ｎとを含む。以下、ｎ＝１の場合について述べる。
【００６１】
回線番号付与部２００４−１−ｋ（ｋ＝１〜Ｋ）は、回線２００３−１−ｋから入力されたパケットに回線番号を付与して装置内部用フォーマットに変換する。入力パケット集約部２００６−１は、回線番号付与部２００４−１からのパケットデータとＴＣＰ−ＳＹＮ判定部２０１１−１からのパケットデータとを集約する。ルーティング部１００−１は、集約されたパケットデータの出力回線番号を決定する。フロー制御部２００７−１は、ＱｏＳ（Quality of Service）制御等のパケットのフローを制御する。内部スイッチング部２００９−１は、出力回線番号が回線２００３−１−ｋ宛でないパケットデータ２０２０−１をスイッチング部２００２に出力する。また、出力回線番号が回線２００３−１−ｋ宛であるパケットデータを後述の出力パケット集約部２０１２−１に出力する。ＴＣＰ−ＳＹＮ判定部２０１１−１は、スイッチング部２００２から受け取ったスイッチング済みのパケットデータ２０２１−１がＴＣＰプロトコルを用いたＳＹＮパケットである場合に入力パケット集約部２００６−１に出力する。また、ＴＣＰプロトコルを用いたＳＹＮパケットでない場合に後述の出力パケット集約部２０１２−１に出力する。出力パケット集約部２０１２−１は、内部スイッチング部２００９−１とＴＣＰ−ＳＹＮ判定部２０１１−１からのパケットデータを集約する。出力パケット配線部２０１０−１は、パケットデータの出力回線番号に応じて回線番号削除部２００５−１−ｋ（ｋ＝１〜Ｋ）のいずれかにパケットデータを出力する。回線番号削除部２００５−１−ｋは、装置内部用フォーマットのパケットデータから回線番号を削除して元のフォーマットに戻して、回線２００３−１−ｋにパケットを送る。
【００６２】
次に、通信装置２０００のルーティング部１００について説明する。
【００６３】
図６は、通信装置２０００が備えるルーティング部１００の構成ブロック図である。
【００６４】
ルーティング部１００は、ＩＰヘッダ抽出部１０１と、ＴＣＰヘッダ抽出部１０２と、入力回線番号抽出部１０３と、ＴＣＰ判定部１０５と、ＳＹＮ判定部１０６と、ルーティング種別登録テーブル１１３と、ルーティング判定部１０８と、通常のルーティングテーブル１１５と、ＴＣＰ向けルーティングテーブル１１６と、出力回線番号検索部１（１１０）と、出力回線番号検索部２（１１１）と、テーブル書き込み部１１２と、出力回線番号選択部１０７と、出力回線番号付与部１０４とを含む。
【００６５】
ＩＰヘッダ抽出部１０１は、入力パケットデータ１２０からＩＰヘッダを抽出する。ＴＣＰヘッダ抽出部１０２は、入力パケットデータ１２０からＴＣＰヘッダを抽出する。入力回線番号抽出部１０３は、入力パケットデータ１２０から入力回線番号を抽出する。ＴＣＰ判定部１０５は、入力パケットデータ１２０のプロトコルがＴＣＰか否かを判定する。ＳＹＮ判定部１０６は、入力パケットデータ１２０のＴＣＰフラグがＳＹＮか否かを判定する。ルーティング種別登録テーブル１１３は、パケットの種類毎に、通常のルーティングをするか、ＴＣＰ向けルーティングをするかを決定するルーティング種別を登録する。ルーティング判定部１０８は、ルーティング種別登録テーブル１１３を用いて入力パケットデータ１２０のルーティング種別を判定する。通常のルーティングテーブル１１５は、ルーティングプロトコルを用いて宛先ＩＰアドレス毎に出力回線番号を記録する。ＴＣＰ向けルーティングテーブル１１６は、ＴＣＰフラグがＳＹＮであるパケットの送信元ＩＰアドレスと入力回線番号を用いて、宛先ＩＰアドレス毎に出力回線番号を記録する。出力回線番号検索部１（１１０）は、通常のルーティングテーブル１１５から入力パケットデータ１２０の宛先ＩＰアドレスに対応した出力回線番号を検索する。出力回線番号検索部２（１１１）は、ＴＣＰ向けルーティングテーブル１１６から入力パケットデータ１２０の宛先ＩＰアドレスに対応した出力回線番号を検索する。テーブル書き込み部１１２は、入力パケットデータ１２０を用いて宛先ＩＰアドレス毎に出力回線番号を記録する。出力回線番号選択部１０７は、ルーティング種別とパケットの種類に応じて出力回線番号検索部１（１１０）の検索結果と出力回線番号検索部２（１１１）の検索結果とのいずれかを選択する。出力回線番号付与部１０４は、出力回線番号選択部１０７が選択した出力回線番号１２８を入力パケットデータ１２０に付与する。
【００６６】
図７は、ルーティング部１００に入力されるパケットデータ１２０の説明図である。
【００６７】
通信装置２０００において、回線番号付与部２００４−１−ｋは、受信したパケットに自身の回線番号を付与して内部用のパケットデータ１２０を作成する。この内部用のパケットデータ１２０は、入力パケット集約部２００６を介してルーティング部１００に入力される。
【００６８】
パケットデータ１２０は、ＩｎＬｉｎｅ２２０１と、ＯｕｔＬｉｎｅ２２０２と、ＳＭＡＣ２２０３と、ＤＭＡＣ２２０４と、Ｐｒｏｔｏ２２０５と、ＳＩＰ２２０６と、ＤＩＰ２２０７と、Ｓｐｏｒｔ２２０８と、Ｄｐｏｒｔ２２０９と、Ｆｌａｇ２２１０と、ＣｈｋＳｕｍ２２１１と、ＳＥＱ２２１２と、ＡＣＫ２２１３と、ＯｔｈｅｒＨｅａｄｅｒ２２１４と、Ｐａｙｌｏａｄ２２１５と、を含む。
【００６９】
ＩｎＬｉｎｅ２２０１は、パケットが入力した回線の識別番号である入力回線番号を格納する。ＯｕｔＬｉｎｅ２２０２は、パケットを出力する回線の識別番号である出力回線番号を格納する。ＳＭＡＣ２２０３は、データリンク層の送信元アドレスである送信元ＭＡＣアドレスを格納する。ＤＭＡＣ２２０４は、宛先アドレスである宛先ＭＡＣアドレスを格納する。Ｐｒｏｔｏ２２０５は、ネットワーク層のプロトコルを格納する。ＳＩＰ２２０６は、送信元アドレス、すなわち、送信側のホストのアドレスである送信元ＩＰアドレスを格納する。ＤＩＰ２２０７は、宛先アドレス、すなわち、受信側のホストのアドレスである宛先ＩＰアドレスを格納する。Ｓｐｏｒｔ２２０８は、ＴＣＰの送信元ポートを格納する。Ｄｐｏｒｔ２２０９は、ＴＣＰの宛先ポートを格納する。Ｆｌａｇ２２１０はＴＣＰフラグを格納する。ＣｈｋＳｕｍ２２１１は、ＴＣＰチェックサムを格納する。ＳＥＱ２２１２は、送信シーケンス番号（ＳＥＱ番号）を格納する。ＡＣＫ２２１３は、受信シーケンス番号（ＡＣＫ番号）を格納する。ＯｔｈｅｒＨｅａｄｅｒ２２１４は、その他のＩＰ／ＴＣＰヘッダデータを格納する。Ｐａｙｌｏａｄ２２１５は、パケットヘッダ以外のデータを格納する。
【００７０】
次に、ルーティング部１００の動作を説明する。
【００７１】
ルーティング部１００は、パケットデータ１２０が入力され、このパケットデータ１２０をルーティングしたパケットデータ１２４を出力する。
【００７２】
ルーティング部１００に入力された入力パケットデータ１２０は、ＩＰヘッダ抽出部１０１と、ＴＣＰヘッダ抽出部１０２と、入力回線番号抽出部１０３と、ルーティング判定部１０８とに入力される。
【００７３】
ＩＰヘッダ抽出部１０１は、入力パケットデータ１２０から、Ｐｒｏｔｏ２２０５と、ＳＩＰ２２０６と、ＤＩＰ２２０７とを含むＩＰヘッダデータ１２５を抽出する。そして、抽出されたＩＰヘッダデータ１２５を、ＴＣＰ判定部１０５、出力回線番号検索部１（１１０）、出力回線検索部２（１１１）及びテーブル書き込み部１１２に出力する。
【００７４】
ＴＣＰヘッダ抽出部１０２は、入力パケットデータ１２０から、Ｆｌａｇ２２１０を含むＴＣＰヘッダデータ１２６を抽出する。そして、抽出されたＴＣＰヘッダデータを、ＳＹＮ判定部１０６に出力する。
【００７５】
入力回線番号抽出部１０３は、入力パケットデータ１２０から、ＩｎＬｉｎｅ２２０１を含む入力回線番号データ１２７を抽出する。そして、抽出された入力回線番号データ１２７を、テーブル書き込み部１１２に出力する。
【００７６】
ルーティング判定部１０８は、ルーティング種別登録テーブル１１３を検索する。
【００７７】
図８Ａは、ルーティング種別登録テーブル１１３の一例の説明図である。
【００７８】
ルーティング種別登録テーブル１１３は、Ｍ個のエントリ１１３（１１３−１〜１１３−Ｍ）を含む。
【００７９】
エントリ１１３−ｍ（ｍ＝１〜Ｍ）は、ＩｎＬｉｎｅ１１３−ｍ−１（ｍ＝１〜Ｍ）と、ＯｕｔＬｉｎｅ１１３−ｍ−２（ｍ＝１〜Ｍ）と、ＳＭＡＣ１１３−ｍ−３（ｍ＝１〜Ｍ）と、ＤＭＡＣ１１３−ｍ−４（ｍ＝１〜Ｍ）と、Ｐｒｏｔｏ１１３−ｍ−５（ｍ＝１〜Ｍ）と、ＳＩＰ１１３−ｍ−６（ｍ＝１〜Ｍ）と、ＤＩＰ１１３−ｍ−７（ｍ＝１〜Ｍ）と、Ｓｐｏｒｔ１１３−ｍ−８（ｍ＝１〜Ｍ）と、Ｄｐｏｒｔ１１３−ｍ−９（ｍ＝１〜Ｍ）と、ＲｏｕｔｉｎｇＴｙｐｅ１１３−ｍ−１０（ｍ＝１〜Ｍ）と、を含む。
【００８０】
ＩｎＬｉｎｅ１１３−ｍ−１は、入力回線番号の条件を格納する。ＯｕｔＬｉｎｅ１１３−ｍ−２は、出力回線番号の条件を格納する。ＳＭＡＣ１１３−ｍ−３は、送信元ＭＡＣアドレスの条件を格納する。ＤＭＡＣ１１３−ｍ−４は、宛先ＭＡＣアドレスの条件を格納する。Ｐｒｏｔｏ１１３−ｍ−５は、ネットワーク層のプロトコルの条件を格納する。ＳＩＰ１１３−ｍ−６は、送信元ＩＰアドレスの条件を格納する。ＤＩＰ１１３−ｍ−７は、宛先ＩＰアドレスの条件を格納する。Ｓｐｏｒｔ１１３−ｍ−８は、ＴＣＰの送信元ポートを格納する。Ｄｐｏｒｔ１１３−ｍ−９は、ＴＣＰの宛先ポートを格納する。ＲｏｕｔｉｎｇＴｙｐｅ１１３−ｍ−１０は、通常のルーティング又はＴＣＰ向けルーティングを示す情報を格納する。
【００８１】
より具体的には、ルーティング判定部１０８は、ルーティング種別登録テーブル１１３から、入力パケットデータ１２０と条件が一致するエントリ１１３−ｍを検索する（処理１３２）。そして、検索されたエントリ１１３−ｍに含まれるＲｏｕｔｉｎｇＴｙｐｅ１１３−ｍ−１０をルーティング種別判定結果１２９として、テーブル書き込み部１１２及び出力回線選択部１０７に出力する。
【００８２】
ＩＰヘッダ抽出部１０１が出力したＩＰヘッダデータ１２５は、ＴＣＰ判定部１０５に入力される。
【００８３】
ＴＣＰ判定部１０５は、ＩＰヘッダデータ１２５に含まれるＰｒｏｔｏ２２０５を参照して、プロトコルがＴＣＰであるか否かを判定する。プロトコルがＴＣＰであると判定した場合は「一致」を示すＴＣＰ判定結果１３０を、プロトコルがＴＣＰ以外であると判定した場合は「不一致」を示すＴＣＰ判定結果１３０を、テーブル書き込み部１１２及び出力回線選択部１０７に出力する。
【００８４】
ＴＣＰヘッダ抽出部１０２が出力したＴＣＰヘッダデータ１２６は、ＳＹＮ判定部１０６に入力される。
【００８５】
ＳＹＮ判定部１０６は、ＴＣＰヘッダデータ１２６に含まれるＦｌａｇ２２１０を参照して、ＴＣＰフラグがＳＹＮか否かを判定する。ＴＣＰフラグがＳＹＮの場合は「一致」を示すＳＹＮ判定結果１３１を、ＴＣＰフラグがＳＹＮ以外の場合は「不一致」を示すＳＹＮ判定結果１３１を、テーブル書き込み部１１２及び出力回線選択部１０７に出力する。
【００８６】
ＩＰヘッダ抽出部１０１が出力したＩＰヘッダデータ１２５は、出力回線番号検索部１１０と出力回線番号検索部１１１とに入力される。
【００８７】
出力回線番号検索部１（１１０）は、通常のルーティングテーブル１１５を参照して、ＩＰヘッダデータ１２５に含まれるＤＩＰ２２０７に対応する出力回線番号を検索する。
【００８８】
図８Ｂは、通常のルーティングテーブル１１５の一例の説明図である。
【００８９】
通常のルーティングテーブル１１５は、Ｍ個のエントリ１１５−ｍ（ｍ＝１〜Ｍ）を含む。
【００９０】
エントリ１１５−ｍは、ＤＩＰ１１５−ｍ−１（ｍ＝１〜Ｍ）と、ＯｕｔＬｉｎｅ１１５−ｍ−２（ｍ＝１〜Ｍ）とを含む。ＤＩＰ１１５−ｍ−１は、宛先ＩＰアドレスの条件を格納する。ＯｕｔＬｉｎｅ１１５−ｍ−２は、出力回線番号を格納する。
【００９１】
より具体的には、出力回線番号検索部１（１１０）は、通常のルーティングテーブル１１５を参照して、ＩＰヘッダデータ１２５に含まれるＤＩＰ２２０７の宛先ＩＰアドレスが一致するエントリ１１５−ｍを検索する（処理１３４）。そして、検索されたエントリ１１５−ｍに含まれるＯｕｔＬｉｎｅ１１５−ｍ−２を、通常のルーティングテーブル検索結果１４０として、出力回線番号選択部１０７に出力する。
【００９２】
出力回線番号検索部２（１１１）は、ＴＣＰ向けルーティングテーブル１１６を参照して、ＩＰヘッダデータ１２５に含まれるＤＩＰ２２０７に対応する出力回線番号を検索する。
【００９３】
図８Ｃは、ＴＣＰ向けルーティングテーブル１１６の一例の説明図である。
【００９４】
ＴＣＰ向けルーティングテーブル１１６は、Ｍ個のエントリ１１６−ｍ（ｍ＝１〜Ｍ）を含む。
【００９５】
エントリ１１６−ｍは、ＤＩＰ１１６−ｍ−１（ｍ＝１〜Ｍ）と、ＯｕｔＬｉｎｅ１１６−ｍ−２（ｍ＝１〜Ｍ）とを含む。ＤＩＰ１１６−ｍ−１は、宛先ＩＰアドレスの条件を格納する。ＯｕｔＬｉｎｅ１１６−ｍ−２は、出力回線番号を格納する。
【００９６】
より具体的には、出力回線番号検索部２（１１１）は、ＴＣＰ向けルーティングテーブル１１６を参照して、ＩＰヘッダデータ１２５に含まれるＤＩＰ２２０７の宛先ＩＰアドレスが一致するエントリ１１６−ｍを検索する（処理１３５）。そして、検索されたエントリ１１６−ｍに含まれるＯｕｔＬｉｎｅ１１６−ｍ−２を、ＴＣＰ向けルーティングテーブル検索結果１４１として、出力回線番号選択部１０７に出力する。
【００９７】
ＩＰヘッダ抽出部１０１が出力したＩＰヘッダデータ１２５と、ルーティング判定部１０８が出力したルーティング種別判定結果１２９と、ＴＣＰ判定部１０５が出力したＴＣＰ判定結果１３０と、ＳＹＮ判定部１０６が出力したＳＹＮ判定結果１３１と、入力回線番号抽出部１０３が出力した入力回線番号データ１２７とは、テーブル書き込み部１１２に入力される。
【００９８】
テーブル書き込み部１１２は、ルーティング種別判定結果１２９がＴＣＰ向けルーティングであり、ＴＣＰ判定結果１３０が「一致」であり、かつ、ＳＹＮ判定結果１３１が「一致」である場合は、ＩＰヘッダデータ１２５に含まれるＳＩＰ２２０６と入力回線番号データ１２７に含まれるＩｎＬｉｎｅ２２０１とを取得する。そして、取得したＳＩＰ２２０６をＤＩＰ１１６−ｍ−１に設定し、取得したＩｎＬｉｎｅ２２０１をＯｕｔＬｉｎｅ１１６−ｍ−２に設定したエントリ１１６−ｍを、ＴＣＰ向けルーティングテーブル１１６に登録する（処理１３６）。
【００９９】
また、ルーティング判定部１０８が出力したルーティング種別判定結果１２９と、ＴＣＰ判定部１０５が出力したＴＣＰ判定結果１３０と、ＳＹＮ判定部１０６が出力したＳＹＮ判定結果１３１と、出力回線番号検索部１１０が出力した通常のルーティングテーブル検索結果１４０と、出力回線番号検索部１１１が出力したＴＣＰ向けルーティングテーブル検索結果１４１とは、出力回線番号選択部１０７に入力される。
【０１００】
出力回線番号選択部１０７は、ルーティング種別判定結果１２９がＴＣＰ向けルーティングでない場合、ルーティング種別判定結果１２９がＴＣＰ向けルーティングであり、かつ、ＴＣＰ判定結果１３０が「不一致」である場合、又は、ルーティング種別判定結果１２９がＴＣＰ向けルーティングであり、かつ、ＴＣＰ判定結果１３０が「一致」であり、かつ、ＳＹＮ判定結果１３０が「一致」である場合、は、通常のルーティングテーブル検索結果１４０に含まれるＯｕｔＬｉｎｅ１１５−ｍ−２を、最終的なルーティング検索結果である出力回線番号１２８として、出力回線番号付与部１０４に出力する。一方、ルーティング種別判定結果１２９がＴＣＰ向けルーティングであり、かつ、ＴＣＰ判定結果１３０が「一致」であり、かつ、ＳＹＮ判定部１０６が「不一致」である場合は、ＴＣＰ向けルーティングテーブル検索結果１４１に含まれるＯｕｔＬｉｎｅ１１６−ｍ−２を、最終的なルーティング検索結果である出力回線番号１２８として、出力回線番号付与部１０４に出力する。
【０１０１】
また、ルーティング部１００に入力された入力パケットデータ１２０と、出力回線番号選択部１０７が出力した出力回線番号１２８と、は、出力回線番号付与部１０４に入力される。
【０１０２】
出力回線番号付与部１０４は、受信した入力パケットデータ１２０に、出力回線番号１２８をＯｕｔＬｉｎｅ２２０２として付加して、新たなパケットデータ１２４を生成する。そして、このパケットデータ１２４を、フロー制御部２００７に出力する。
【０１０３】
図９は、ルーティング部１００の処理のフローチャートである。
【０１０４】
初めに、ルーティング種別判定部１０８が、ルーティング種別がＴＣＰ向けルーティングであるか否かを判定する（ステップ２０１）。ＴＣＰ向けルーティングと判定した場合は、次に、ＴＣＰ判定部１０５が、入力パケットデータ１２０がＴＣＰパケットであるか否かを判定する（ステップ２０２）。ＴＣＰパケットと判定した場合は、次に、ＳＹＮ判定部１０６が、入力パケットデータ１２０がＳＹＮパケットであるか否かを判定する（ステップ２０３）。ＳＹＮパケットと判定した場合は、次に、テーブル書き込み部１１２が、ＩＰヘッダデータ１２５に含まれる送信元ＩＰであるＳＩＰ２２０６と、入力回線番号データ１２７に含まれるＩｎＬｉｎｅ２２０１と、を、それぞれ、ＤＩＰ１１６−ｍ−１と出力回線番号ＯｕｔＬｉｎｅ１１６−ｍ−２とに設定したエントリ１１６−ｍを、ＴＣＰ向けルーティングテーブル１１６に登録する（ステップ２０４）。
【０１０５】
一方、ステップ２０１において、判定結果がＴＣＰ向けルーティングではない場合、ステップ２０２において、判定結果がＴＣＰパケットではない場合、又は、ステップ２０３において、判定結果がＳＹＮパケットである場合は、通常のルーティングテーブル検索結果１４０に含まれるＯｕｔＬｉｎｅ１１５−ｍ−２が最終的なルーティング検索結果１２８となる。すなわち、通常のルーティングテーブル検索結果１４０に従って、パケットデータ１２０をルーティングする（ステップ２０５）。
【０１０６】
また、ステップ２０３において、判定結果がＳＹＮパケットでないと判定した場合は、ＴＣＰ向けルーティングテーブル検索結果１４１に含まれるＯｕｔＬｉｎｅ１１６−ｍ−２を最終的なルーティング検索結果１２８と判断する。すなわち、ＴＣＰ向けルーティングテーブル検索結果１４１に従って、パケットデータ１２０をルーティングする（ステップ２０６）。
【０１０７】
次に、本発明の対異常通信防御装置について説明する。
【０１０８】
図１０は、本発明の実施の形態の対異常通信防御装置の構成ブロック図である。
【０１０９】
対異常通信防御装置２１００は、Ｎ個のネットワークインターフェース２１０１−ｎ（ｎ＝１〜Ｎ）と、パケットを適切なネットワークインターフェース２１０１−ｎにスイッチングするスイッチ部２１０２と、から構成される。
【０１１０】
ネットワークインターフェース２１０１−ｎは、Ｋ個の回線２１０３−ｎ−ｋ（ｋ＝１〜Ｋ）と、各回線２１０３−ｎ−ｋに対応した回線番号付与部２１０４−ｎ−ｋ（ｋ＝１〜Ｋ）及び回線番号削除部２１０５−ｎ−ｋ（ｋ＝１〜Ｋ）と、入力パケット集約部２１０６−ｎと、ルーティング部２１０８−ｎと、パケット集約部２１１２−ｎと、対異常通信防御部４００−ｎと、フロー制御部２１０７−ｎと、内部スイッチング部２１０９−ｎと、出力パケット配線部２１１０−ｎとを含む。以下、ｎ＝１の場合について述べる。
【０１１１】
対異常通信防御部４００−１は、異常通信を送信するホストを探知したり、探知したホストからの異常通信の排除又は帯域制御を実行すると同時に、正規通信を保護する。
【０１１２】
また、ルーティング部２１０８−１は、前述したルーティング部１００とは異なり、従来の一般的なルーティングのみを実行する。すなわち、受信したパケットを通常のルーティングテーブルによってルーティングして、その結果を出力する。
【０１１３】
また、その他の構成は前述した通信装置２０００の構成とほぼ同様である。すなわち、Ｋ個の回線２１０３−ｎ−ｋ（ｋ＝１〜Ｋ）と、回線２１０３−ｎ−ｋから入力されたパケットに回線番号を付与して装置内部用フォーマットに変換する回線番号付与部２１０４−ｎ−１〜Ｋと、回線番号付与部２１０４−ｎ−ｋからのパケットデータを集約する入力パケット集約部２１０６−ｎと、スイッチング部２１０２から受け取ったスイッチング済みパケットデータ２１２１−ｎとルーティング部２１０８−ｎから受け取ったパケットデータとを集約するパケット集約部２１１２−ｎと、ＱｏＳ（Quality of Service）制御等のパケットのフローを制御するフロー制御部２１０７−ｎと、出力回線番号が回線２１０３−ｎ−ｋ（ｋ＝１〜Ｋ）宛でないパケットデータ２１２０−ｎをスイッチング部２１０２へ出力し、また、出力回線番号が回線２１０３−ｎ−ｋ（ｋ＝１〜Ｋ）宛であるパケットデータを出力パケット配線部２１１０−ｎに出力する内部スイッチング部２１０９−ｎと、パケットデータの出力回線番号に応じて回線番号削除部２１０５−ｎ−ｋ（ｋ＝１〜Ｋ）のいずれかにパケットデータを出力する出力パケット配線部２１１０−ｎと、装置内部用フォーマットのパケットデータから回線番号を削除して元のフォーマットに戻す回線番号削除部２１０５−ｎ−ｋと、を含む。
【０１１４】
対異常通信防御部４００に入力されるパケットデータ４７０は、前述の図７と同様である。
【０１１５】
すなわち、パケットが入力した回線の識別番号である入力回線番号を格納するＩｎＬｉｎｅ２２０１と、パケットを出力する回線の識別番号である出力回線番号を格納するＯｕｔＬｉｎｅ２２０２と、データリンク層の送信元アドレスである送信元ＭＡＣアドレスを格納するＳＭＡＣ２２０３と、宛先アドレスである宛先ＭＡＣアドレスを格納するＤＭＡＣ２２０４と、ネットワーク層のプロトコルを格納するＰｒｏｔｏ２２０５と、送信元アドレス（送信側ホストのＩＰアドレス）である送信元ＩＰアドレスを格納するＳＩＰ２２０６と、宛先アドレス（受信側ホストのＩＰアドレス）である宛先ＩＰアドレスを格納するＤＩＰ２２０７と、ＴＣＰの送信元ポートを格納するＳｐｏｒｔ２２０８と、ＴＣＰの宛先ポートを格納するＤｐｏｒｔ２２０９と、ＴＣＰフラグを格納するＦｌａｇ２２１０と、ＴＣＰチェックサムを格納するＣｈｋＳｕｍ２２１１と、送信シーケンス番号（ＳＥＱ番号）を格納するＳＥＱ２２１２と、受信シーケンス番号（ＡＣＫ番号）を格納するＡＣＫ２２１３と、その他のＩＰ／ＴＣＰヘッダデータを格納するＯｔｈｅｒＨｅａｄｅｒ２２１４と、パケットヘッダ以外のデータを格納するＰａｙｌｏａｄ２２１５と、を含む。
【０１１６】
図１１は、本発明実施の形態の対異常通信防御装置２１００の対異常通信防御部４００の構成ブロック図である。
【０１１７】
対異常通信防御部４００は、異常通信探知部４７１と、フィルタリング部４７９と、帯域制御部４８０と、ＩＰヘッダ抽出部４０１と、ＴＣＰヘッダ抽出部４０２と、アドレス生成部４０７と、ＴＣＰ判定部４０８と、ＳＹＮ判定部４０９と、ＳＹＮ−ＡＣＫ判定部４１０と、ＡＣＫ判定部４１１と、タイマー４２９と、ＳＩＰ−ＤＩＰテーブル４２２と、ＳＩＰ−ＤＩＰ更新部４１２と、ＳＩＰ−ＤＩＰ一致判定部４１３と、ＤＩＰ−ＳＩＰ一致判定部４１４と、時間更新部４１５と、制限時間テーブル４２４と、制限時間超過判定部４１６と、制限時間更新部４１７と、制限時間保持部４２８と、ＳＥＱ番号テーブル４２５と、ＳＥＱ番号更新部４１８と、ＡＣＫ一致判定部４１９と、状態テーブル４２６と、状態更新部４２０と、差分ＳＥＱテーブル４２７と、差分ＳＥＱ更新部４２１と、バッファ蓄積部４３２と、ＳＥＱ番号変換部４０３と、ＡＣＫ番号変換部４０４と、パケット更新部４０５と、チェックサム更新部４０６と、パケット集約部４７５とを含む。
【０１１８】
異常通信探知部４７１は、入力パケットデータ４７０を基に異常通信を探知し、探知結果に応じて入力パケットデータ４３０，４７２，４７３，４７４のいずれかを出力する。フィルタリング部４７９は、パケットデータをフィルタリングし、その結果、廃棄されなかったパケットデータ４７７を出力する。帯域制御部４８０は、パケットデータを帯域制御し、その結果、廃棄されなかったパケットデータ４７８を出力する。ＩＰヘッダ抽出部４０１は、入力パケットデータ４３０からＩＰヘッダデータ４３７を抽出する。ＴＣＰヘッダ抽出部４０２は、入力パケットデータ４３０からＴＣＰヘッダデータ４３８を抽出する。アドレス生成部４０７は、ＩＰヘッダ抽出部４０１が抽出したＩＰヘッダデータ４３７からテーブルアドレス４３９を生成する。ＴＣＰ判定部４０８は、ＩＰヘッダデータ４３７を参照して、そのプロトコルがＴＣＰであるか否かを判定する。ＳＹＮ判定部４０９は、ＴＣＰヘッダデータ４３８を参照して、そのＴＣＰフラグがＳＹＮであるか否かを判定する。ＳＹＮ−ＡＣＫ判定部４１０は、ＴＣＰヘッダデータ４３８を参照して、そのＴＣＰフラグがＳＹＮ−ＡＣＫであるか否かを判定する。ＡＣＫ判定部４１１は、ＴＣＰヘッダデータ４３８を参照して、そのＴＣＰフラグがＡＣＫか否かを判定する。タイマー４２９は、現在時刻４４１を生成する。ＳＩＰ−ＤＩＰ更新部４１２は、ＳＩＰ−ＤＩＰテーブル４２２のテーブルアドレス４３９によって指定された領域に記録された送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）と、の内容を更新する。ＳＩＰ−ＤＩＰ一致判定部４１３は、ＳＩＰ−ＤＩＰテーブル４２２のテーブルアドレス４３９によって指定された領域に記録された送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）とが、ＩＰヘッダデータ４３７に含まれるＳＩＰ及びＤＩＰと一致するか否かを判定する。ＤＩＰ−ＳＩＰ一致判定部４１４は、ＳＩＰ−ＤＩＰテーブル４２２のテーブルアドレス４３９によって指定された領域に記録された送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）とが、ＩＰヘッダデータ４３７に含まれるＤＩＰ及びＳＩＰと一致するか否かを判定する。時間更新部４１５は、時間テーブル４２３のテーブルアドレス４３９によって指定された領域に記録された最新の通信時刻を更新する。制限時間超過判定部４１６は、時間テーブル４２３のテーブルアドレス４３９が指定する領域に記録された通信時刻と現在時刻４４１との差分が、制限時間テーブル４２４のテーブルアドレス４３９によって指定された領域に記録された制限時間を超過したか否かを判定する。制限時間更新部４１７は、制限時間テーブル４２４のテーブルアドレス４３９によって指定された領域に記録された制限時間を更新する。制限時間保持部４２８は、制限時間更新部４１７が使用する制限時間を予め記録する。ＳＥＱ番号更新部４１８は、ＳＥＱ番号テーブル４２５のテーブルアドレス４３９によって指定された領域に記録されたＳＥＱ番号を更新する。ＡＣＫ一致判定部４１９は、ＳＥＱ番号テーブル４２５のテーブルアドレス４３９によって指定された領域に記録されたＳＥＱ番号と、ＴＣＰヘッダデータ４３８に含まれるＡＣＫ番号に１を加算した値とが一致するか否かを判定する。状態更新部４２０は、状態テーブル４２６のテーブルアドレス４３９によって指定された領域に記録された判定結果を更新する。差分ＳＥＱ更新部４２１は、差分ＳＥＱテーブル４２７のテーブルアドレス４３９によって指定された領域に記録されたシーケンス番号の変換に使用するための値を変更する。バッファ蓄積部４３２は、パケットの通過又は廃棄が判定されるまで、入力パケットデータ４３０を一時的に蓄積する。ＳＥＱ番号変換部４０３は、通過と判定されたパケットのＳＥＱ番号を変換する。ＡＣＫ番号変換部４０４は、通過と判定されたパケットのＡＣＫ番号を変換する。パケット更新部４０５は、制限時間更新部４１７が制限時間テーブル４２４に記録された制限時間を更新したとき、又は、状態更新部４２０が状態テーブル４２６に記録された判定結果を更新したときに、パケットデータ４３４を変換してパケットデータ４３５を生成して、このパケットデータ４３５をチェックサム更新部４０６に出力する。チェックサム更新部４０６は、パケットデータ４３５のＴＣＰチェックサムを再計算してパケットデータ４３６を生成して、このパケットデータ４３６をパケット集約部４７５に出力する。パケット集約部４７５は、受信したパケットデータ４７２、４３６、４７７、４７８からパケットデータ４７６を生成して、生成されたパケットデータ４７６をフロー制御部２１０７に出力する。
【０１１９】
ＳＩＰ−ＤＩＰテーブル４２２は、テーブルアドレス４３９によって指定された領域に、送信元ＩＰアドレス（ＳＩＰ）と宛先ＩＰアドレス（ＤＩＰ）を記録する。時間テーブル４２３は、通信が実行されたときに、テーブルアドレス４３９によって指定された領域に、最新の通信時刻を記録する。制限時間テーブル４２４は、テーブルアドレス４３９によって指定された領域に、データの上書きを制限する時間を指定するための制限時間を記録する。ＳＥＱ番号テーブル４２５は、ＳＹＮ−ＡＣＫパケットに付与するための送信シーケンス番号（ＳＥＱ番号）を記録する。状態テーブル４２６は、パケットを通過するか廃棄するか、の判定結果である通過／廃棄判定結果を記録する。差分ＳＥＱテーブル４２７は、通過すると判定されたパケットのシーケンス番号の変換に使用するための値を記録する。
【０１２０】
次に、対異常通信防御装置２１００の動作を説明する。
【０１２１】
対異常通信防御部４００には、パケットデータ４７０が入力され、このパケットデータ４７０を処理したパケットデータ４７６が出力される。
【０１２２】
対異常通信防御部４００に入力されたパケットデータ４７０は、異常通信探知部４７１に入力される。
【０１２３】
異常通信探知部４７１は、パケットデータ４７０が異常か正常かを判定する。異常と判定されたパケットデータ４７０は、異常通信の種類（ＤＤｏＳ攻撃、ＤｏＳ攻撃、ワーム攻撃、Ｐ２Ｐトラヒック等）を判定する。正常と判定されたパケットデータ４７０は、パケットデータ４７４として、パケット集約部４７６に出力する。また、異常通信であり、かつ、ＤＤｏＳ攻撃又はＤｏＳ攻撃と判定されたパケットデータ４７０は、パケットデータ４３０としてＩＰヘッダ抽出部４０１及びＴＣＰヘッダ抽出部４０２に出力する。また、異常通信であり、かつ、ワーム攻撃と判定されたパケットデータ４７０は、パケットデータ４７３としてフィルタリング部４７９に出力する。また、異常通信であり、かつ、Ｐ２Ｐトラヒックと判定されたパケットデータ４７０は、パケットデータ４７２として帯域制御部４８０に出力する。
【０１２４】
異常通信探知部４７１が出力したパケットデータ４３０は、ＩＰヘッダ抽出部４０１及びＴＣＰヘッダ抽出部４０２に入力される。
【０１２５】
ＩＰヘッダ抽出部４０１は、パケットデータ４３０から、Ｐｒｏｔｏ２２０５とＳＩＰ２２０６とＤＩＰ２２０７とを含むＩＰヘッダデータ４３７を抽出する。また、ＴＣＰヘッダ抽出部４０２は、パケットデータ４３０から、Ｆｌａｇ２２１０とＳＥＱ２２１２とＡＣＫ２２１３とを含むＴＣＰヘッダデータ４３８を抽出する。
【０１２６】
ＩＰヘッダ抽出部４０１が抽出したＩＰヘッダデータ４３７は、アドレス生成部４０７とＴＣＰ判定部４０８とに入力される。
【０１２７】
アドレス生成部４０７は、ＩＰヘッダデータ４３７に含まれるＳＩＰ２２０６とＤＩＰ２２０７を基に、ハッシュ値を生成する。そしてこのハッシュ値を、テーブルアドレス４３９として出力する。
【０１２８】
ＴＣＰ判定部４０８は、ＩＰヘッダデータ４３７に含まれるＰｒｏｔｏ２２０５を用いて、プロトコルがＴＣＰであるか否を判定する。そして、プロトコルがＴＣＰである場合は「一致」、プロトコルがＴＣＰ以外である場合は「不一致」を示すＴＣＰ判定結果４４０を出力する。
【０１２９】
ＴＣＰヘッダ抽出部４０２が出力したＴＣＰヘッダデータ４３８は、ＳＹＮ判定部４０９とＳＹＮ−ＡＣＫ判定部４１０とＡＣＫ判定部４１１とに入力される。
【０１３０】
ＳＹＮ判定部４０９は、ＴＣＰヘッダデータ４３８に含まれるＦｌａｇ２２１０を用いて、ＴＣＰフラグがＳＹＮであるか否かを判定する。ＴＣＰフラグがＳＹＮである場合は「一致」、ＴＣＰフラグがＳＹＮ以外である場合は「不一致」を示すＳＹＮ判定結果４４６を出力する。ＳＹＮ−ＡＣＫ判定部４１０は、ＴＣＰヘッダデータ４３８に含まれるＦｌａｇ２２１０を用いて、ＴＣＰフラグがＳＹＮ−ＡＣＫである否かを判定する。ＴＣＰフラグがＳＹＮ−ＡＣＫである場合は「一致」、ＴＣＰフラグがＳＹＮ−ＡＣＫ以外である場合は、「不一致」を示すＳＹＮ−ＡＣＫ判定結果４４５を出力する。ＡＣＫ判定部４１１は、ＴＣＰヘッダデータ４３８に含まれるＦｌａｇ２２１０を用いて、ＴＣＰフラグがＡＣＫであるか否かを判定する。ＴＣＰフラグがＡＣＫである場合は「一致」、ＴＣＰフラグがＡＣＫ以外である場合は「不一致」を示すＡＣＫ判定結果４４４を出力する。
【０１３１】
また、ＩＰヘッダ抽出部４０１が出力したＩＰヘッダデータ４３７は、ＳＩＰ−ＤＩＰ一致判定部４１３に入力される。
【０１３２】
ＳＩＰ−ＤＩＰ一致判定部４１３は、ＩＰヘッダデータ４３７に含まれるＳＩＰ２２０６とＤＩＰ２２０７とが、ＳＩＰ−ＤＩＰテーブル４２２に記載されている送信元ＩＰアドレスと宛先ＩＰアドレスとに一致するか否かを判定する。
【０１３３】
図１２Ａは、ＳＩＰ−ＤＩＰテーブル４２２の一例の説明図である。
【０１３４】
ＳＩＰ−ＤＩＰテーブル４２２は、Ｍ個のエントリ４２２−ｍ（ｍ＝１〜Ｍ）を含む。
各エントリ４２２−ｍは、ＳＩＰ４２２−ｍ−１（ｍ＝１〜Ｍ）とＤＩＰ４２２−ｍ−２（ｍ＝１〜Ｍ）とを含む。ＳＩＰ４２２−ｍ−１は、送信元ＩＰアドレスを格納する。ＤＩＰ４２２−ｍ−２は、宛先ＩＰアドレスを格納する。
【０１３５】
より具体的には、ＳＩＰ−ＤＩＰ一致判定部４１３は、テーブルアドレス４３９を用いて、このアドレスを指定してＳＩＰ−ＤＩＰテーブル４２２内のエントリ４２２−ｍを取得する（処理４５６）。さらに、ＩＰヘッダデータ４３７に含まれるＳＩＰ２２０６とＤＩＰ２２０７とが、エントリ４２２−ｍに含まれるＳＩＰ４２２−ｍ−１とＤＩＰ４２２−ｍ−２とに一致するか否かを判定し、判定結果をＳＩＰ−ＤＩＰ一致判定結果４４３として出力する。
【０１３６】
ＩＰヘッダ抽出部４０１が出力したＩＰヘッダデータ４３７は、ＤＩＰ−ＳＩＰ一致判定部４１４に入力される。
【０１３７】
ＤＩＰ−ＳＩＰ一致判定部４１４は、テーブルアドレス４３９を用いて、ＳＩＰ−ＤＩＰテーブル４２２内のエントリ４２２−ｍを取得する（処理４５６）。さらに、ＩＰヘッダデータ４３７に含まれるＤＩＰ２２０７とＳＩＰ２２０６とが、エントリ４２２−ｍに含まれるＳＩＰ４２２−ｍ−１とＤＩＰ４２２−ｍ−２とに一致するか否かを判定し、判定結果をＤＩＰ−ＳＩＰ一致判定結果４４７として出力する。
【０１３８】
タイマー４２９は現在時刻４４１を生成する。この現在時刻４４１は、制限時間超過判定部４１６に入力される。
【０１３９】
制限時間超過判定部４１６は、タイマー４２９が生成した現在時刻４４１と、時間テーブル４２３に記載されている通信時刻との差分が、制限時間テーブル４２４に記載されている制限時間を超過したか否かを判定する。
【０１４０】
図１２Ｂは、時間テーブル４２３の一例の説明図である。
【０１４１】
時間テーブル４２３は、通信が実行された最新の時刻を示すＭ個の通信時刻ＴＩＭＥ４２３−ｍ（ｍ＝１〜Ｍ）を含む。
【０１４２】
図１２Ｃは、制限時間テーブル４２４の一例の説明図である。
【０１４３】
制限時間テーブル４２４は、データの上書きを制限する時間を指定するためのＭ個の制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍ（ｍ＝１〜Ｍ）を含む。
【０１４４】
より具体的には、制限時間超過判定部４１６は、テーブルアドレス４３９を用いて、時間テーブル４２３の通信時刻ＴＩＭＥ４２３−ｍと（処理４５８）、制限時間テーブル４２４の制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍとを取得する（処理４５２）。そして、タイマー４２９が生成した現在時刻４４１と、通信時刻ＴＩＭＥ４２３−ｍとの差分が、制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍを超過しているか否かを判定する。そして、この判定結果を制限時間超過判定結果４４２として出力する。
【０１４５】
ＴＣＰヘッダ抽出部４０２が出力したＴＣＰヘッダデータ４３８は、ＡＣＫ一致判定部４１９に入力される。
【０１４６】
ＡＣＫ一致判定部４１９は、ＴＣＰヘッダデータ４３８に含まれるＡＣＫ２２１３が、ＳＥＱ番号テーブル４２５に記載されたＳＥＱ番号に１を加算した値と一致するか否かを判定する。
【０１４７】
図１２Ｄは、ＳＥＱ番号テーブル４２５の一例の説明図である。
【０１４８】
ＳＥＱ番号テーブル４２５は、ＳＹＮ−ＡＣＫパケットに付与する送信シーケンス番号（ＳＥＱ番号）を示すＭ個のＳＥＱ４２５−ｍ（ｍ＝１〜Ｍ）を含む。
【０１４９】
より具体的には、ＡＣＫ一致判定部４１９は、テーブルアドレス４３９のアドレスを用いて、ＳＥＱ番号テーブル４２５のＳＥＱ４２５−ｍ（ｍ＝１〜Ｍ）を取得する（処理４６１）。そして、ＴＣＰヘッダデータ４３８に含まれるＡＣＫ２２１３が、ＳＥＱ４２５−ｍに１を加算した値と一致するか否かを判定する。そして。この判定結果をＡＣＫ一致判定結果４４８として出力する。
【０１５０】
ＩＰヘッダ抽出部４０１が出力したＩＰヘッダデータ４３７と、ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、制限時間超過判定部４１６が出力した制限時間超過判定結果４４２とは、ＳＩＰ−ＤＩＰ更新部４１２に入力される。
【０１５１】
図１３は、ＳＩＰ−ＤＩＰ更新部４１２の動作のフローチャートである。
【０１５２】
ＳＩＰ−ＤＩＰ更新部４１２は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過しているか否かを判定する（ステップ６０１）。受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過していると判定した場合は、ＳＩＰ−ＤＩＰテーブル４２２の、テーブルアドレス４３９が指定するエントリ４２２−ｍに含まれるＳＩＰ４２２−ｍ−１とＤＩＰ４２２−ｍ−２とを、それぞれ、ＩＰヘッダデータ４３７に含まれるＳＩＰ２２０６とＤＩＰ２２０７とに変更して、エントリを更新する（ステップ６０２）（処理４５５）。
【０１５３】
この処理によって、ＳＩＰ−ＤＩＰテーブル４２２のエントリが更新される。
【０１５４】
タイマー４２９が生成した現在時刻４４１と、ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、制限時間超過判定部４１６が出力した制限時間超過判定結果４４２は、時間更新部４１５に入力される。
【０１５５】
図１４は、時間更新部４１５の動作のフローチャートである。
【０１５６】
時間更新部４１５は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「一致」、又は、受け取った制限時間超過判定結果４４２が超過しているか否かを判定する（ステップ７０１）。受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「一致」、又は、受け取った制限時間超過判定結果４４２が超過していると判定した場合は、時間テーブル４２３の、テーブルアドレス４３９によって指定された通信時刻ＴＩＭＥ４２３−ｍを、現在時刻４４１に変更して、通信時刻ＴＩＭＥ４２３−ｍを更新する（ステップ７０２）（処理４５７）。
【０１５７】
この処理によって、時間テーブル４２３のエントリが更新される。
【０１５８】
ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、ＤＩＰ−ＳＩＰ一致判定部４１４が出力したＤＩＰ−ＳＩＰ一致判定結果４４７と、制限時間超過判定部４１６が出力した制限時間超過判定結果４４２と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、ＳＹＮ判定部４０９が出力したＳＹＮ判定結果４４６と、ＳＹＮ−ＡＣＫ判定部４１０が出力したＳＹＮ−ＡＣＫ判定結果４４５と、ＡＣＫ判定部４１１が出力したＡＣＫ判定結果４４４と、ＡＣＫ一致判定部４１９が出力したＡＣＫ一致判定結果４４８とは、制限時間更新部４１７に入力される。
【０１５９】
図１５は、制限時間更新部４１７の動作のフローチャートである。
【０１６０】
制限時間更新部４１７は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過しているか否かを判定する（ステップ５０１）。受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過していると判定した場合は、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍを、制限時間保持部４２８から取得した制限時間Ｔ１  ４６５に変更して、制限時間Ｔ１を更新する（ステップ５０２）（処理４５９）。
【０１６１】
次に、制限時間更新部４１７は、受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、受け取ったＳＹＮ判定結果４４６が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ１であるか否かを判定する（ステップ５０３）。受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、受け取ったＳＹＮ判定結果４４６が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ１であると判定した場合は、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍを、制限時間保持部４２８から取得した制限時間Ｔ２  ４６５に変更して、制限時間Ｔ２を変更する（ステップ５０４）（処理４５９）。
【０１６２】
次に、制限時間更新部４１７は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「一致」であり、かつ、受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、受け取ったＡＣＫ判定結果４４４が「一致」であり、かつ、受け取ったＡＣＫ一致判定結果４４８が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ２であるか否かを判定する（ステップ５０５）。この条件を満たす場合は、制限時間更新部４１７は、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍを、制限時間保持部４２８から取得した制限時間Ｔ３  ４６５に変更して、制限時間Ｔ３を更新する（ステップ５０６）（処理４５９）。
【０１６３】
次に、制限時間更新部４１７は、受け取ったＤＩＰ−ＳＩＰ一致判定結果４４７が「一致」であり、かつ、ＴＣＰ判定結果４４０が「一致」であり、かつ、ＳＹＮ−ＡＣＫ判定結果４４５が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ３であるか否かを判定する（ステップ５０７）。この条件を満たす場合は、制限時間更新部４１７は、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍを、制限時間保持部４２８から取得した制限時間Ｔ４  ４６５に変更して、制限時間Ｔ４を更新する（ステップ５０８）（処理４５９）。そして、更新前と更新後の制限時間（Ｔ１、Ｔ２、Ｔ３、Ｔ４）を、制限時間４４９として出力する。
【０１６４】
なお、制限時間保持部４２８が保持している制限時間（Ｔ１、Ｔ２、Ｔ３、Ｔ４）の値は、外部の端末４６４からコマンド４６６を用いて変更することができる。なお、Ｔ１にはできる限り小さな値を、Ｔ２には接続要求元ホストと対異常通信防御装置との間のＲＴＴの最大値よりも大きな値を、Ｔ３には接続要求先ホストと対異常通信防御装置との間のＲＴＴよりも大きな値を、Ｔ４には数分程度の値を設定することが推奨される。
【０１６５】
ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、制限時間超過判定部４１６が出力した制限時間超過判定結果４４２と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、ＳＹＮ判定部４０９が出力したＳＹＮ判定結果４４６は、ＳＥＱ番号更新部４１８に入力される。
【０１６６】
図１６は、ＳＥＱ番号更新部４１８の動作のフローチャートである。
【０１６７】
ＳＥＱ番号更新部４１８は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過し、かつ、受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、受け取ったＳＹＮ判定結果４４６が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ１であるか否かを判定する（ステップ８０１）。この条件を満たす場合は、ＳＥＱ番号テーブル４２５の、テーブルアドレス４３９によって指定されたＳＥＱ４２５−ｍ（ｍ＝１〜Ｍ）を、ランダムに生成した値に変更４６０する（ステップ８０２）。そして、生成した値をランダム生成値４５０として出力する。
【０１６８】
ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、ＤＩＰ−ＳＩＰ一致判定部４１４が出力したＤＩＰ−ＳＩＰ一致判定結果４４７と、制限時間超過判定部４１６が出力した制限時間超過判定結果４４２と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、ＳＹＮ−ＡＣＫ判定部４１０が出力したＳＹＮ−ＡＣＫ判定結果４４５は、状態更新部４２０に入力される。
【０１６９】
状態更新部４２０は、パケットを通過させるか廃棄するかを指定する状態テーブル４２６記載の判定結果を更新する。
【０１７０】
図１２Ｅは、状態テーブル４２６の一例の説明図である。状態テーブル４２６は、パケットを通過させるか廃棄するかの判定結果を格納するＭ個の通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍ（ｍ＝１〜Ｍ）を含む。
【０１７１】
図１７は、状態更新部４２０の動作のフローチャートである。
【０１７２】
状態更新部４２０は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過となっているか否かを判定する（ステップ９０１）。受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過となっていると判定した場合は、状態テーブル４２６の、テーブルアドレス４３９によって指定された通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍを、「廃棄」に変更する（ステップ９０２）（処理４６２）。
【０１７３】
次に、状態更新部４２０は、受け取ったＤＩＰ−ＳＩＰ一致判定結果４４７が「一致」であり、かつ、ＴＣＰ判定結果４４０が「一致」であり、かつ、ＳＹＮ−ＡＣＫ判定結果４４５が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ３であるか否かを判定する（ステップ９０３）。この条件を満たす場合は、状態テーブル４２６の、テーブルアドレス４３９によって指定された通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍを、「通過」に変更する（ステップ９０４）。そして、変更前と変更後の通過／廃棄判定結果を通過／廃棄判定結果４５１として出力する。
【０１７４】
ＴＣＰヘッダ抽出部４０２が出力したＴＣＰヘッダデータ４３８と、ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、ＤＩＰ−ＳＩＰ一致判定部４１４が出力したＤＩＰ−ＳＩＰ一致判定結果４４７と、制限時間超過判定部４１６が出力した制限時間超過判定結果４４２と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、ＳＹＮ−ＡＣＫ判定部４１０が出力したＳＹＮ−ＡＣＫ判定結果４４５は、差分ＳＥＱ更新部４２１に入力される。
【０１７５】
差分ＳＥＱ更新部４２１は、通過と判定したパケットのシーケンス番号の変換に使用するための値を指定する差分ＳＥＱテーブル４２７記載の値を更新する。
【０１７６】
図１２Ｆは、差分ＳＥＱテーブル４２７の一例の説明図である。
【０１７７】
差分ＳＥＱテーブル４２７は、通過と判定したパケットのシーケンス番号の変換に使用するための値を記録するＭ個の差分値ΔＳＥＱ４２７−ｍ（ｍ＝１〜Ｍ）を含む。
【０１７８】
図１８は、差分ＳＥＱ更新部４２１の動作のフローチャートである。
【０１７９】
差分ＳＥＱ更新部４２１は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過となっているか否かを判定する（ステップ１００１）。受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「不一致」であり、かつ、受け取った制限時間超過判定結果４４２が超過となっていると判定した場合は、差分ＳＥＱテーブル４２７の、テーブルアドレス４３９によって指定された差分ＳＥＱ  ΔＳＥＱ４２７−ｍを、０に変更する（ステップ１００２）（処理４６３）。
【０１８０】
次に、差分ＳＥＱ更新部４２１は、受け取ったＤＩＰ−ＳＩＰ一致判定結果４４７が「一致」であり、かつ、ＴＣＰ判定結果４４０が「一致」であり、かつ、ＳＹＮ−ＡＣＫ判定結果４４５が「一致」であり、かつ、制限時間テーブル４２４の、テーブルアドレス４３９によって指定された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ３であり、かつ、状態テーブル４２６の、テーブルアドレス４３９によって指定された通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍが「廃棄」であるか否かを判定する（ステップ１００３）。この条件を満たす場合は、差分ＳＥＱテーブル４２７の、テーブルアドレス４３９によって指定された差分ＳＥＱ  ΔＳＥＱ４２７−ｍを、ＳＥＱ番号テーブル４２５の、テーブルアドレス４３９によって指定されたＳＥＱ４２５−ｍと、ＴＣＰヘッダデータ４３８に含まれるＳＥＱ２２１２と、の差分の値に変更する（ステップ１００４）（処理４６３）。
【０１８１】
異常通信探知部４７０が出力した入力パケットデータ４３０と、制限時間更新部４１５が出力した制限時間４４９と、状態更新部４２０が出力した通過／廃棄判定結果４５１と、アドレス生成部４０７が出力したテーブルアドレス４３９は、バッファ蓄積部４３２に入力される。
【０１８２】
バッファ蓄積部４３２は、メモリ等から構成されるバッファを備えている。バッファ蓄積部４３２は、変更前の制限時間４４９と変更後の制限時間４４９とが共にＴ３である場合に、入力パケットデータ４３０を、バッファ内のテーブルアドレス４３９によって指定された領域に蓄積する。また、それ以外の場合は、入力パケットデータ４３０を、パケットデータ４３１として出力する。また、蓄積した入力パケットデータ４３０は、変更後の通過／廃棄判定結果４５１が通過に変更された後に読み出されて、パケットデータ４３１として出力される。なお、このパケットデータ４３１のフォーマットは、入力パケットデータ４３０と同一である。
【０１８３】
バッファ蓄積部４３２が出力したパケットデータ４３１と、ＤＩＰ−ＳＩＰ一致判定部４１４が出力したＤＩＰ−ＳＩＰ一致判定結果４４７と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、制限時間テーブル４２４からテーブルアドレス４３９によって指定されて取得された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍと、状態テーブル４２６からテーブルアドレス４３９によって指定されて取得された通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍと、差分ＳＥＱテーブル４２７からテーブルアドレス４３９によって指定されて取得された差分ＳＥＱ  ΔＳＥＱ４２７−ｍとは、ＳＥＱ番号変換部４０３に入力される。
【０１８４】
図１９は、ＳＥＱ番号変換部４０３の動作のフローチャートである。
【０１８５】
ＳＥＱ番号変換部４０３は、受け取ったＤＩＰ−ＳＩＰ一致判定結果４４７が「一致」であり、かつ、受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ３であり、かつ、通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍが「通過」であるか否かを判定する（ステップ１１０１）。この条件を満たす場合に、ＳＥＱ番号変換部４０３は、パケットデータ４３１が含むＳＥＱ２２１２に、差分ＳＥＱ  ΔＳＥＱ４２７−ｍを加算する（ステップ１１０２）。この結果処理されたパケットデータは、パケットデータ４３３として出力される。なお、このパケットデータ４３３のフォーマットは、入力パケットデータ４３０と同一である。
【０１８６】
ＳＥＱ番号変換部４０３が出力したパケットデータ４３３と、ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、制限時間テーブル４２４からテーブルアドレス４３９によって指定されて取得された制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍと、状態テーブル４２６からテーブルアドレス４３９によって指定されて取得された通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍと、差分ＳＥＱテーブル４２７からテーブルアドレス４３９によって指定されて取得された差分ＳＥＱ  ΔＳＥＱ４２７−ｍは、ＡＣＫ番号変換部４０４に入力される。
【０１８７】
図２０は、ＡＣＫ番号変換部４０４の動作のフローチャートである。
【０１８８】
ＡＣＫ番号変換部４０４は、受け取ったＳＩＰ−ＤＩＰ一致判定結果４４３が「一致」であり、かつ、受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、受け取った制限時間ＴＩＭＥ＿ＬＩＭＩＴ４２４−ｍがＴ３であり、かつ、受け取った通過／廃棄判定結果ＳＴＡＴＥ４２６−ｍが「通過」であるか否かを判定する（ステップ１２０１）。この条件を満たす場合に、ＡＣＫ番号変換部４０４は、パケットデータ４３３が含むＡＣＫ２２１３から、差分ＳＥＱ  ΔＳＥＱ４２７−ｍを減算する（ステップ１２０２）。この結果処理されたパケットデータは、パケットデータ４３４として出力される。なお、このパケットデータ４３４のフォーマットは、入力パケットデータ４３０と同一である。
【０１８９】
ＡＣＫ番号変換部４０４が出力したパケットデータ４３４と、制限時間更新部４１５が出力した制限時間４４９と、状態更新部４２０が出力した通過／廃棄判定結果４５１と、ＳＥＱ番号更新部４１８が出力したランダム生成値４５０は、パケット変更部４０５に入力される。
【０１９０】
図２１は、パケット変更部４０５の動作のフローチャートである。
【０１９１】
パケット変更部４０５は、受け取った制限時間４４９に含まれる更新前の制限時間がＴ１であり、更新後の制限時間がＴ２であるか否かを判定する（ステップ１３０１）。受け取った制限時間４４９に含まれる更新前の制限時間がＴ１であり、更新後の制限時間がＴ２である場合は、パケットデータ４３４のＩｎＬｉｎｅ２２０１の値とＯｕｔＬｉｎｅ２２０２の値とを交換する。また、パケットデータ４３４のＳＭＡＣ２２０３の値とＤＭＡＣ２２０４の値とを交換する。また、パケットデータ４３４のＳＩＰ２２０６の値とＤＩＰ２２０７の値とを交換する。また、パケットデータ４３４のＳｐｏｒｔ２２０８の値とＤｐｏｒｔ２２０９の値とを交換する。また、パケットデータ４３４のＦｌａｇ２２１０の値を、２から１８に変更する。すわなち、ＳＹＮを示す値である２から、ＳＹＮ−ＡＣＫを示す値である１８に変更する。また、パケットデータ４３４のＳＥＱ２２１２の値をランダム生成値４５０に設定する。また、ＡＣＫ２２１３の値をＳＥＱ２２１２の値に１を加算した値に変更する（ステップ１３０２）。
【０１９２】
次に、パケット変更部４０５は、受け取った制限時間４４９に含まれる更新前の制限時間がＴ２であり、更新後の制限時間がＴ３であるか否かを判定する（ステップ１３０３）。受け取った制限時間４４９に含まれる更新前の制限時間がＴ２であり、更新後の制限時間がＴ３である場合は、パケットデータ４３４のＦｌａｇ２２１０の値を、１６から２に変更する。すなわち、ＡＣＫを示す１６からＳＹＮを示す２に変更する。また、ＳＥＱ２２１２の値から１を減算する。また、ＡＣＫ２２１３の値を０に変更する（ステップ１３０４）。
【０１９３】
次に、パケット変更部４０５は、受け取った通過／廃棄判定結果４５１に含まれる更新前の通過／廃棄判定結果が「廃棄」であり、更新後の通過／廃棄判定結果が「通過」であるか否かを判定する（ステップ１３０５）。受け取った通過／廃棄判定結果４５１に含まれる更新前の通過／廃棄判定結果が「廃棄」であり、更新後の通過／廃棄判定結果が「通過」である場合は、パケットデータ４３４のＩｎＬｉｎｅ２２０１の値とＯｕｔＬｉｎｅ２２０２の値とを交換する。また、パケットデータ４３４のＳＭＡＣ２２０３の値とＤＭＡＣ２２０４の値とを交換する。また、パケットデータ４３４のＳＩＰ２２０６の値とＤＩＰ２２０７の値とを交換する。また、パケットデータ４３４のＳｐｏｒｔ２２０８の値とＤｐｏｒｔ２２０９の値とを交換する。また、パケットデータ４３４のＦｌａｇ２２１０の値を、１８から１６に変更する。すなわち、ＳＹＮ−ＡＣＫを示す１８から、ＡＣＫを表す１６に変更する。また、ＳＥＱ２２１２の値をＡＣＫ２２１３に変更する。また、ＡＣＫ２２１３の値をＳＥＱ２２１２に１を加算した値に変更する（ステップ１３０６）。
【０１９４】
次に、パケット変更部４０５は、受け取った制限時間４４９に含まれる更新前の制限時間がＴ１であり、更新後の制限時間がＴ２であるか否か、又は、受け取った制限時間４４９に含まれる更新前の制限時間がＴ２であり、更新後の制限時間がＴ３であるか否か、又は、受け取った通過／廃棄判定結果４５１に含まれる更新後の通過／廃棄判定結果が「通過」であるか否かを判定する（ステップ１３０７）。これら条件を１つでも満たす場合は、パケット変更部４０５は、パケットデータ４３４をパケットデータ４３５として出力する（ステップ１３０８）。一方、これら条件を満たさない場合は、パケットデータ４３４を廃棄する（ステップ１３０９）。なお、このパケットデータ４３５のフォーマットは、入力パケットデータ４３０と同一である。
【０１９５】
パケット変更部４０５が出力したパケットデータ４３５と、ＴＣＰ判定部４０８が出力したＴＣＰ判定結果４４０と、制限時間更新部４１５が出力した制限時間４４９と、状態更新部４２０が出力した通過／廃棄判定結果４５１と、ＳＩＰ−ＤＩＰ一致判定部４１３が出力したＳＩＰ−ＤＩＰ一致判定結果４４３と、ＤＩＰ−ＳＩＰ一致判定部４１４が出力したＤＩＰ−ＳＩＰ一致判定結果４４７は、チェックサム更新部４０６に入力される。
【０１９６】
チェックサム更新部４０６は、受け取った制限時間４４９に含まれる更新前の制限時間がＴ１であり、更新後の制限時間がＴ２であるか否か、又は、受け取った制限時間４４９に含まれる更新前の制限時間がＴ２であり、更新後の制限時間がＴ３であるか否か、又は、受け取った通過／廃棄判定結果４５１に含まれる更新後の通過／廃棄判定結果が「通過」であり、かつ、受け取ったＴＣＰ判定結果４４０が「一致」であり、かつ、ＳＩＰ−ＤＩＰ一致判定結果４４３とＤＩＰ−ＳＩＰ一致判定結果４４７とのうちいずれかが「一致」であるか否かを判定する。この条件を満たす場合に、チェックサム更新部４０６は、パケットデータ４３５のＴＣＰチェックサムＣｈｋＳｕｍ２２１１を再計算する。このチェックサムを新たに格納した処理済みのパケットデータは、パケットデータ４３６として出力する。
【０１９７】
以上のように処理を行うことで、本発明の実施の形態の対異常通信防御部４００は、大規模な異常通信が発生した場合にも、ＲＴＴが大きい正規通信の保護に失敗する確率を最小化することができる。
【図面の簡単な説明】
【０１９８】
【図１】本発明の実施の形態のネットワークシステムの説明図である。
【図２】本発明の実施の形態のネットワークシステムの動作を示すシーケンス図である。
【図３】本発明の実施の形態の対異常通信防御装置、通信装置及びホストの通信のシーケンス図である。
【図４】本発明の実施の形態のネットワークシステムの動作を示すシーケンス図であり
【図５】本発明の実施の形態の通信装置の構成ブロック図である。
【図６】本発明の実施の形態のルーティング部の構成ブロック図である。
【図７】本発明の実施の形態のパケットデータの説明図である。
【図８Ａ】本発明の実施の形態のルーティング種別登録テーブルの一例の説明図である。
【図８Ｂ】本発明の実施の形態の通常のルーティングテーブルの一例の説明図である。
【図８Ｃ】本発明の実施の形態のＴＣＰ向けルーティングテーブルの一例の説明図である。
【図９】本発明の実施の形態のルーティング部の処理のフローチャートである。
【図１０】本発明の実施の形態の本発明の実施の形態の対異常通信防御装置の構成ブロック図である。
【図１１】本発明の実施の形態の本発明の実施の形態の対異常通信防御部の構成ブロック図である。
【図１２Ａ】本発明の実施の形態のＳＩＰ−ＤＩＰテーブルの一例の説明図である。
【図１２Ｂ】本発明の実施の形態の時間テーブルの一例の説明図である。
【図１２Ｃ】本発明の実施の形態の制限時間テーブルの一例の説明図である。
【図１２Ｄ】本発明の実施の形態のＳＥＱ番号テーブルの一例の説明図である。
【図１２Ｅ】本発明の実施の形態の状態テーブルの一例の説明図である。
【図１２Ｆ】本発明の実施の形態の差分ＳＥＱテーブルの一例の説明図である。
【図１３】本発明の実施の形態のＳＩＰ−ＤＩＰ更新部の動作のフローチャートである。
【図１４】本発明の実施の形態の時間更新部の動作のフローチャートである。
【図１５】本発明の実施の形態の制限時間更新部の動作のフローチャートである。
【図１６】本発明の実施の形態のＳＥＱ番号更新部の動作のフローチャートである。
【図１７】本発明の実施の形態の状態更新部の動作のフローチャートである。
【図１８】本発明の実施の形態の差分ＳＥＱ更新部の動作のフローチャートである。
【図１９】本発明の実施の形態のＳＥＱ番号変換部の動作のフローチャートである。
【図２０】本発明の実施の形態のＡＣＫ番号変換部の動作のフローチャートである。
【図２１】本発明の実施の形態のパケット変更部の動作のフローチャートである。
【図２２】従来の、対異常通信防御装置が異常通信の排除のシーケンス図である。
【図２３】従来の、正規通信の保護に失敗する場合を示す説明図である。
【図２４】従来の、正規通信の保護に失敗する場合を示すシーケンス図である。
【符号の説明】
【０１９９】
１００  ルーティング部
４００  対異常通信防御部
１５０１〜１５０４  ネットワーク
１５２２  通信装置
１８０１〜１８０４  ネットワーク
１８２２  通信装置
【図１】
0004634320.tif 000002
【図２】
0004634320.tif 000003
【図３】
0004634320.tif 000004
【図４】
0004634320.tif 000005
【図５】
0004634320.tif 000006
【図６】
0004634320.tif 000007
【図７】
0004634320.tif 000008
【図８Ａ】
0004634320.tif 000009
【図８Ｂ】
0004634320.tif 000010
【図８Ｃ】
0004634320.tif 000011
【図９】
0004634320.tif 000012
【図１０】
0004634320.tif 000013
【図１１】
0004634320.tif 000014
【図１２Ａ】
0004634320.tif 000015
【図１２Ｂ】
0004634320.tif 000016
【図１２Ｃ】
0004634320.tif 000017
【図１２Ｄ】
0004634320.tif 000018
【図１２Ｅ】
0004634320.tif 000019
【図１２Ｆ】
0004634320.tif 000020
【図１３】
0004634320.tif 000021
【図１４】
0004634320.tif 000022
【図１５】
0004634320.tif 000023
【図１６】
0004634320.tif 000024
【図１７】
0004634320.tif 000025
【図１８】
0004634320.tif 000026
【図１９】
0004634320.tif 000027
【図２０】
0004634320.tif 000028
【図２１】
0004634320.tif 000029
【図２２】
0004634320.tif 000030
【図２３】
0004634320.tif 000031
【図２４】
0004634320.tif 000032