(57)【要約】【課題】  インナパケットによる始点アドレスの詐称を防止可能な通信ノードを提供する。【解決手段】  セキュリティ処理手段１３はＩＰｓｅｃ形式のＩＰパケットが渡されると、ＩＰｓｅｃ  ＳＡを特定し、インナヘッダアドレスＤＢ１９の提供するデータに基づいてインナパケットの始点アドレスをチェックし、ＳＡのパラメタに基づいてＩＣＶのチェックや復号化、セレクタのチェックを行い、これらを通ったＩＰパケットをＩＰパケット入力処理手段１２に渡す。ＩＰパケット入力処理手段１２はセキュリティ処理手段１３からＩＰパケットが渡されると、ペイロードに別のＩＰパケットを格納するカプセル化パケットであればデカプセル化処理手段１４に渡し、ＩＣＭＰ  ＭＴＵメッセージを格納するパケットであればＩＣＭＰ  ＭＴＵ処理手段１８に渡す。【選択図】      図１                                                  
2005159688.tif 000002
【特許請求の範囲】
【請求項１】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
前記仮想リンクを通るＩＰパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを前記通信ノードに有することを特徴とするネットワーク。
【請求項２】
ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）確認手段を前記通信ノードに含み、
前記ＭＴＵ確認手段は、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定することを特徴とする請求項１記載のネットワーク。
【請求項３】
前記ＭＴＵの暫定値を記憶しかつ指定時間後に前記暫定値を前記ＭＴＵ確認手段に通知するタイマ制御手段を前記通信ノードに含み、
前記ＭＴＵ確認手段は、前記ＭＴＵ確認要求メッセージの送信時に前記タイマ制御手段に前記ＩＣＭＰ  ＭＴＵメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ＩＣＭＰ  ＭＴＵメッセージの正当性を確認することを特徴とする請求項２記載のネットワーク。
【請求項４】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）確認手段を前記通信ノードに有し、
前記ＭＴＵ確認手段は、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定することを特徴とするネットワーク。
【請求項５】
前記ＭＴＵの暫定値を記憶しかつ指定時間後に前記暫定値を前記ＭＴＵ確認手段に通知するタイマ制御手段を前記通信ノードに含み、
前記ＭＴＵ確認手段は、前記ＭＴＵ確認要求メッセージの送信時に前記タイマ制御手段に前記ＩＣＭＰ  ＭＴＵメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ＩＣＭＰ  ＭＴＵメッセージの正当性を確認することを特徴とする請求項４記載のネットワーク。
【請求項６】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
前記仮想リンクを通るＩＰパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを有することを特徴とする通信ノード。
【請求項７】
ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）確認手段を含み、
前記ＭＴＵ確認手段は、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定することを特徴とする請求項６記載の通信ノード。
【請求項８】
前記ＭＴＵの暫定値を記憶しかつ指定時間後に前記暫定値を前記ＭＴＵ確認手段に通知するタイマ制御手段を含み、
前記ＭＴＵ確認手段は、前記ＭＴＵ確認要求メッセージの送信時に前記タイマ制御手段に前記ＩＣＭＰ  ＭＴＵメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ＩＣＭＰ  ＭＴＵメッセージの正当性を確認することを特徴とする請求項７記載の通信ノード。
【請求項９】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）確認手段を有し、
前記ＭＴＵ確認手段は、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定することを特徴とする通信ノード。
【請求項１０】
前記ＭＴＵの暫定値を記憶しかつ指定時間後に前記暫定値を前記ＭＴＵ確認手段に通知するタイマ制御手段を前記通信ノードに含み、
前記ＭＴＵ確認手段は、前記ＭＴＵ確認要求メッセージの送信時に前記タイマ制御手段に前記ＩＣＭＰ  ＭＴＵメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記暫定値として記憶させるとともに、タイマを起動させ、前記タイマ制御手段からのタイムアウト通知の有無に応じて前記ＩＣＭＰ  ＭＴＵメッセージの正当性を確認することを特徴とする請求項９記載の通信ノード。
【請求項１１】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法であって、前記通信ノード側に、データベースから提供される前記仮想リンクを通るＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックするステップを有することを特徴とするセキュリティ方法。
【請求項１２】
前記通信ノード側に、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するステップを含み、
前記正当性を確認するステップは、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定することを特徴とする請求項１１記載のセキュリティ方法。
【請求項１３】
前記正当性を確認するステップは、前記ＭＴＵ確認要求メッセージの送信時に前記タイマ制御手段に前記ＩＣＭＰ  ＭＴＵメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記ＭＴＵの暫定値として記憶させるとともに、予め設定された所定時間の経過を示すタイムアウト通知の有無に応じて前記ＩＣＭＰ  ＭＴＵメッセージの正当性を確認することを特徴とする請求項１２記載のセキュリティ方法。
【請求項１４】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法であって、前記通信ノード側に、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するステップを有し、
前記正当性を確認するステップは、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定することを特徴とするセキュリティ方法。
【請求項１５】
前記正当性を確認するステップは、前記ＭＴＵ確認要求メッセージの送信時に前記タイマ制御手段に前記ＩＣＭＰ  ＭＴＵメッセージが正当であればメッセージが届かないはずのパケット長となる長さを前記ＭＴＵの暫定値として記憶させるとともに、予め設定された所定時間の経過を示すタイムアウト通知の有無に応じて前記ＩＣＭＰ  ＭＴＵメッセージの正当性を確認することを特徴とする請求項１４記載のセキュリティ方法。
【請求項１６】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法のプログラムであって、コンピュータに、データベースから提供される前記仮想リンクを通るＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックする処理を実行させるためのプログラム。
【請求項１７】
認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法のプログラムであって、コンピュータに、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認する処理を実行させ、
前記正当性を確認する処理が、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認する処理が、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認する処理が、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラムに関し、特にに関する。
【背景技術】
【０００２】
従来、この種の通信ノードにおいては、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）トンネリングによって構成した仮想リンクを複数終端し、それらの仮想リンクを通るＩＰパケットを中継する装置であり、公衆ＩＰネットワーク上において仮想ネットワークを構成する等の目的で用いられている。
【０００３】
従来の通信ノードは、図１９に示すように、入力ＩＦ（インタフェース）６１と、ＩＰパケット入力処理手段６２と、セキュリティ処理手段６３と、デカプセル化処理手段６４と、ＩＰパケット出力処理手段６５と、出力ＩＦ６６と、終端する仮想リンク数以上の数の仮想出力ＩＦ６７−１〜６７−ｎと、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）処理手段６８とを備えている。
【０００４】
入力ＩＦ６１はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワークから受信した電気的信号や電磁波的信号を解釈して得られたＩＰパケットをＩＰパケット入力処理手段６２に渡す手段である。
【０００５】
ＩＰパケット入力処理手段６２はセキュリティ処理手段６３以外からＩＰパケットが入力されると、そのパケットの終点アドレスが通信ノード６のＩＰアドレス以外である場合、そのパケットをＩＰパケット出力処理手段６５に渡す。それ以外のパケットについては、フラグメント化されていればリアセンブリ処理を行い、そのＩＰパケットをセキュリティ処理手段６３に渡す。
【０００６】
ＩＰパケット入力処理手段６２はセキュリティ処理手段６３からＩＰパケットが渡されると、それをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、ＩＰパケット入力処理手段６２はペイロードに別のＩＰパケットを格納するカプセル化パケットであればデカプセル化処理手段６４に渡し、後述のＩＣＭＰ  ＭＴＵメッセージを格納するパケットであればＩＣＭＰ  ＭＴＵ処理手段６８に渡す。
【０００７】
セキュリティ処理手段６３はＩＰｓｅｃ（ＩＰ  ｓｅｃｕｒｉｔｙ  ｐｒｏｔｏｃｏｌ）形式のＩＰパケットが渡されると、ＩＰｓｅｃ  ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を特定し、ＳＡのパラメタに基づいてＩＣＶ（Ｉｎｔｅｇｒｉｔｙ  Ｃｈｅｃｋ  Ｖａｌｕｅ）のチェックや復号化、セレクタのチェックを行い、これらを通ったＩＰパケットをＩＰパケット入力処理手段６２に渡す。
【０００８】
デカプセル化処理手段６４はＩＰパケットが渡されると、そのＩＰパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段６４は渡されたＩＰパケットのペイロードからＩＰパケット（インナパケット）を取出し、そのインナパケットをＩＰパケット入力処理手段６２に渡す。
【０００９】
ＩＰパケット出力処理手段６５はＩＰパケットが渡されると、セキュリティポリシに適うＳＡを選択し、そのＳＡの指定するパラメタにしたがってＩＰパケットへのＩＰｓｅｃのヘッダやトレイラ、認証データの付与及びペイロードの暗号化を行い、その結果のＩＰパケットの終点アドレスに基づいてそのＩＰパケットを渡す出力ＩＦを決定し、その出力ＩＦにそのＩＰパケットを渡す。
【００１０】
但し、ＩＰパケット出力処理手段６５はＩＰパケットを出力ＩＦに渡す際に、そのＩＰパケットのパケット長（オクテット数）が、その出力ＩＦのＭＴＵ値及びパケットの終点アドレスに応じて適用すべきＭＴＵ値を知り得た場合、その値のいずれかを超えると、適切にフラグメント処理をした上でその出力ＩＦに渡す。
【００１１】
出力ＩＦ６６はＩＰパケットが渡されると、そのパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。
【００１２】
仮想出力ＩＦ６７−１〜６７−ｎは仮想的な出力ＩＦであり、ＩＰパケット出力処理手段６５から見て出力ＩＦ６６と同等の出力ＩＦとみなされるが、リンクレイヤ以下の処理を行う代わりにカプセル化処理を行う。すなわち、仮想出力ＩＦ６７−１〜６７−ｎはＩＰパケットを渡される毎に新しいＩＰパケット（アウタパケット）を作成し、渡されたＩＰパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをＩＰパケット出力処理手段６５に渡す処理を行う。
【００１３】
仮想出力ＩＦ６７−１〜６７−ｎはアウタパケットを作成する際にその終点アドレスとして仮想出力ＩＦ６７−１〜６７−ｎ毎に予め設定されたアドレスを用いる。
【００１４】
ＩＣＭＰ  ＭＴＵ処理手段６８はＩＣＭＰ  ＭＴＵメッセージを格納するＩＰパケットが渡されると、そのＩＣＭＰ  ＭＴＵメッセージの形式チェックと、当該メッセージの指定するＭＴＵ値が妥当であるかどうかのチェックを行う。
【００１５】
ＩＣＭＰ  ＭＴＵ処理手段６８はそれらチェックに適う場合、そのメッセージの格納するＩＰパケットの終点アドレスと同じアドレスを終点アドレスとするパケットに適用するＭＴＵ値をそのメッセージの指定するＭＴＵ値にするようにＩＰ出力処理手段６５に指示する（例えば、非特許文献１参照）。
【００１６】
上記のセキュリティ処理手段６３は図２０に示すような動作を行う。図２０においては、セキュリティ処理手段６３がＩＰｓｅｃ形式すなわちＡＨ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ）形式またはＥＳＰ（Ｅｎｃａｐｓｕｌａｔｉｎｇ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ）形式のＩＰパケットが渡された時に行う処理を示している。
【００１７】
セキュリティ処理手段６３は、まずパケットの終点アドレス、ＳＰＩ（Ｓｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒ  Ｉｎｄｅｘ）値、パケットのＩＰｓｅｃ形式（ＡＨ形式とＥＳＰ形式とのどちらであるか）の３つの情報から、そのパケットに適用するＳＡを特定する（図２０ステップＳ１０１）。
【００１８】
セキュリティ処理手段６３はＳＡが特定できた場合、ＩＣＶのチェックを行い、パケットが改ざんされたものであるかどうかを判断する（図２０ステップＳ１０３，Ｓ１０４）。セキュリティ処理手段６３は改ざんされていないと判断された場合、パケットの復号化を行う（図２０ステップＳ１０５）。但し、ＡＨ形式で暗号化されていないパケットの場合には復号化を行わない。
【００１９】
次に、セキュリティ処理手段６３はパケットのセレクタのチェック、すなわち、パケットの始点アドレス、終点アドレス、トランスポートレイヤの情報等から特定されるセキュリティポリシを満足する改ざんチェックや暗号化がされていたかを判断し（図２０ステップＳ１０７）、セキュリティポリシを満足する場合、受け入れ可能として、パケットをＩＰパケット入力処理手段６２に渡し（図２０ステップＳ１０８）、そのパケットについての処理を終了する。
【００２０】
一方、セキュリティ処理手段６３はＳＡが特定できなかった場合（図２０ステップＳ１０２）、改ざんされていると判断された場合（図２０ステップＳ１０４）、セキュリティポリシを満足しない場合（図２０ステップＳ１０７）、パケットを破棄し（図２０ステップＳ１０９）、そのパケットについての処理を終了する（例えば、非特許文献２参照）。
【００２１】
次に、上記のＩＣＭＰ  ＭＴＵ処理手段６８の動作について図２１を参照して説明する。ここで、ＩＣＭＰ  ＭＴＵ処理手段６８で処理されるＩＣＭＰ  ＭＴＵメッセージとは、Ｄｅｓｔｉｎａｔｉｏｎ  Ｕｎｒｅａｃｈａｂｌｅメッセージ（例えば、非特許文献３参照）及びＰａｃｋｅｔ  Ｔｏｏ  Ｂｉｇメッセージ（例えば、非特許文献４参照）を総称したものである。また、図２１はＩＣＭＰ  ＭＴＵ処理手段６８がＩＣＭＰ  ＭＴＵメッセージを受けた時に行う処理を示している。
【００２２】
ＩＣＭＰ  ＭＴＵ処理手段６８は、まずＩＣＭＰ  ＭＴＵメッセージが形式を満たしているかどうかをチェックし（図２１ステップＳ１１１）、メッセージのチェックサムが整合した場合や、メッセージが格納するＩＰパケットに異常がない等、形式を満たしている時（図２１ステップＳ１１２）、メッセージが格納するＩＰパケットの終点アドレスを変数Ｘに代入し、メッセージが指定するＭＴＵ値を変数Ｍに代入する（図２１ステップＳ１１３）。
【００２３】
ＩＣＭＰ  ＭＴＵ処理手段６８は、変数Ｍの値がＭＴＵ値として小さすぎず、かつ変数Ｍの値が終点アドレスＸのＩＰパケットに対して現在適用されているＭＴＵ値以上でない場合、妥当な値であると見なし（図２１ステップＳ１１４）、ＩＰ出力処理手段に対して変数Ｘを終点アドレスとするパケットに適用するＭＴＵ値を変数Ｍに設定し（図２１ステップＳ１１５）、そのＩＣＭＰ  ＭＴＵメッセージの処理を終了する。
【００２４】
また、ＩＣＭＰ  ＭＴＵ処理手段６８は、メッセージのチェックサムが整合しなかった場合や、メッセージが格納するＩＰパケットに異常がある等の形式を満たしていない時（図２１ステップＳ１１２）、変数Ｍの値がＭＴＵ値として小さすぎる場合や、変数Ｍの値が終点アドレスＸのＩＰパケットに対して現在適用されているＭＴＵ値以上である場合に妥当な値ではないと見なした時（図２１ステップＳ１１４）、メッセージについてそれ以上の処理をすることなく（図２１ステップＳ１１６）、そのＩＣＭＰ  ＭＴＵメッセージの処理を終了する。
【００２５】
【非特許文献１】小早川知昭著、「ＩＰｓｅｃ徹底入門」、翔泳社、２００２年８月６日、ｐｐ．２６８−２７４
【非特許文献２】小早川知昭著、「ＩＰｓｅｃ徹底入門」、翔泳社、２００２年８月６日、ｐｐ．６１−６３
【非特許文献３】Ｊ・モーガル（Ｊ．Ｍｏｇｕｌ）他著、「Ｐａｔｈ  ＭＴＵ  Ｄｉｓｃｏｖｅｒｙ」、Ｉｎｔｅｒｎｅｔ  ＲＦＣ  １１９１、米国、Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）、１９９０年１１月、ｐｐ．６−７
【非特許文献４】Ａ・コンタ（Ｊ．Ｃｏｎｔａ）他著、「Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ（ＩＣＭＰｖ６）  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）  Ｓｐｅｃｉｆｉｃａｔｉｏｎ」、Ｉｎｔｅｒｎｅｔ  ＲＦＣ  ２４６３、米国、Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）、１９９８年１２月、ｐ．８
【発明の開示】
【発明が解決しようとする課題】
【００２６】
上述した従来の通信ノードでは、セキュリティ処理手段にて仮想リンクを構成するアウタパケットの始点アドレスをチェックしているが、アウタパケットがペイロードとして格納されかつ仮想リンクを通るＩＰパケット（インナパケット）の始点アドレスがチェックされないため、インナパケットが始点アドレスの詐称を行うことが可能となっている。
【００２７】
仮想リンクを構成する手段としてトンネルモードのＩＰｓｅｃを用いた場合には、セキュリティ処理手段がインナパケットの始点アドレスをもチェックするが、そのチェックがＳＡのネゴシエーション時に定めたパラメタに基づいてのものであり、すなわちＳＡネゴシエーション時以降にインナパケットの始点アドレスの範囲が変化する場合には正しくチェックを行うことができない。
【００２８】
例えば、エンドホストが動的アドレスを用いている場合には、インナパケットの始点アドレスが変化するため、適切なチェックを行うことができない。また、通信ノードにおいて、ＩＰｓｅｃのトンネルモードを用いずにトランスポートモードを用いる場合には、セキュリティ処理手段がインナパケットの始点アドレスを全くチェックしない。
【００２９】
また、従来の通信ノードでは、ＩＣＭＰ  ＭＴＵメッセージが正当なものかを確認する手段を持たず、正当でないＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用したり、逆に正当であるＩＣＭＰ  ＭＴＵメッセージを無視したりすることで、本来適用すべきＭＴＵ値と異なる値を適用してしまうため、ＩＰパケットのパケット長が適切に制御されず、通信効率が悪くなる。
【００３０】
この背景としては、現実のＩＰネットワーク上においてＩＣＭＰ  ＭＴＵメッセージの多くがＩＰｓｅｃ非対応のルータが発することも多いことが挙げられる。そのため、ＩＣＭＰ  ＭＴＵメッセージは現実的にその正当性を直接確認出来ない。図２２に示す例では、通信ノード７１，７２がＩＰトンネリングによってネットワーク１３１上で仮想リンク１１１を設けており、この仮想リンク１１１の経路の途中に介在するルータ７３がＩＣＭＰ  ＭＴＵメッセージ１２２を通信ノード７１に送っている例を示している。
【００３１】
しかしながら、ここに悪意を持つ者が攻撃端末７４からＩＣＭＰ  ＭＴＵメッセージ１２３をルータ７３のＩＰアドレスを始点アドレスとして詐称したＩＰパケットに載せて通信ノード７１に送った場合には、ルータ７３がＩＣＭＰ  ＭＴＵメッセージ１２２をＩＰｓｅｃパケットに載せて送らない限りにおいて、通信ノード７１にとってＩＣＭＰ  ＭＴＵメッセージ１２２とＩＣＭＰ  ＭＴＵメッセージ１２３とのどちらが正当なものであるのか、すなわち通信ノード７１から通信ノード７２への経路上に実在するルータから送られたものであるのかどうかの判断ができない。よって、通信ノード７１ができることは、ＩＣＭＰ  ＭＴＵメッセージを全て受け入れるか、全て拒絶するかのいずれかである。
【００３２】
通信ノード７１がＩＣＭＰ  ＭＴＵメッセージを全て受け入れた場合には、攻撃端末７４からのＩＣＭＰ  ＭＴＵメッセージ１２３を受け入れることになり、必要以上に小さいＭＴＵ値が設定されてしまうことで仮想リンク１１１を構成するアウタパケットに対して不必要なフラグメント化処理が行われてしまい、通信ノード７１から通信ノード７２への通信の効率が悪くなる。
【００３３】
一方、通信ノード７１がＩＣＭＰ  ＭＴＵメッセージを全て拒絶する場合には、ルータ７３からのＩＣＭＰ  ＭＴＵメッセージ１２２をも拒絶することになり、通信ノード７２に宛てたパケットには適切なＭＴＵより大きな値が適用されるため、ルータ７３等の経路上のルータにおいてアウタパケットが破棄されたり、アウタパケットがフラグメント化される処理にオーバヘッドが加わったりすることで、やはり通信ノード７１から通信ノード７２への通信の効率が悪くなる。
【００３４】
そこで、本発明の目的は上記の問題点を解消し、インナパケットによる始点アドレスの詐称を防止することができるネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラムを提供することにある。
【００３５】
また、本発明の他の目的は、通信ノードが送信するＩＰパケットについて不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性を小さくすることができ、通信効率を向上させることができるネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【００３６】
本発明によるネットワークは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
前記仮想リンクを通るＩＰパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを前記通信ノードに備えている。
【００３７】
本発明による他のネットワークは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークであって、
ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）確認手段を前記通信ノードに備え、
前記ＭＴＵ確認手段は、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定している。
【００３８】
本発明による通信ノードは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
前記仮想リンクを通るＩＰパケットの始点アドレスをチェックするセキュリティ処理手段と、前記始点アドレスチェックのために必要な情報を前記セキュリティ処理手段に提供するデータベースとを備えている。
【００３９】
本発明による他の通信ノードは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードであって、
ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）確認手段を備え、
前記ＭＴＵ確認手段は、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記ＭＴＵ確認手段は、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定している。
【００４０】
本発明によるセキュリティ方法は、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法であって、前記通信ノード側に、データベースから提供される前記仮想リンクを通るＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックするステップを備えている。
【００４１】
本発明による他のセキュリティ方法は、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法であって、前記通信ノード側に、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するステップを備え、
前記正当性を確認するステップは、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認するステップは、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定している。
【００４２】
本発明によるセキュリティ方法のプログラムは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法のプログラムであって、コンピュータに、データベースから提供される前記仮想リンクを通るＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの始点アドレスをチェックするために必要な情報を基に前記始点アドレスをチェックする処理を実行させている。
【００４３】
本発明による他のセキュリティ方法のプログラムは、認証情報の付与を行ったパケットを用いて構成した仮想リンクを複数終端し、前記パケットを前記仮想リンク間で中継する通信ノードを含むネットワークのセキュリティ方法のプログラムであって、コンピュータに、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認する処理を実行させ、
前記正当性を確認する処理が、他の通信ノード宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受け取った時に当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを前記他の通信ノードに送信し、
前記正当性を確認する処理が、前記他の通信ノードから前記ＭＴＵ確認要求メッセージを受信した時に当該ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを示す情報を含むＭＴＵ確認応答メッセージを前記他の通信ノードに送信し、
前記正当性を確認する処理が、前記他の通信ノードから前記ＭＴＵ確認応答メッセージを受信した時に当該ＭＴＵ確認応答メッセージに基づいて前記ＩＣＭＰ  ＭＴＵメッセージ通りに前記ＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを判定させている。
【００４４】
すなわち、本発明の第１の通信ノードは、仮想リンクを通るＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケット（インナパケット）の始点アドレスをチェックする機能を有するセキュリティ処理手段と、その始点アドレスチェックのために必要な情報をセキュリティ処理手段に提供するインナヘッダアドレスＤＢ（データベース）とを備えており、セキュリティ処理手段がインナパケットの始点アドレスをチェックすることによって、インナパケットによる始点アドレスの詐称を防止することが可能となる。
【００４５】
本発明の第２の通信ノードは、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）メッセージの正当性を確認するＭＴＵ確認手段を備えている。
【００４６】
本発明の第２の通信ノードでは、通信ノードＸが通信ノードＹ宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受取った際に、通信ノードＸのＭＴＵ確認手段が当該ＩＣＭＰ  ＭＴＵメッセージが正当であればフラグメント化されるはずのパケット長となる長さのＭＴＵ確認要求メッセージを通信ノードＹに送信する。
【００４７】
当該要求メッセージを受信した通信ノードＹのＭＴＵ確認手段は、当該要求メッセージのＩＰパケットがフラグメント化されていたかどうかをＭＴＵ確認応答メッセージで通信ノードＸに送信する。当該応答メッセージを受信した通信ノードＸのＭＴＵ確認手段は、当該応答メッセージに基づいて上記のＩＣＭＰ  ＭＴＵメッセージ通りに自らが発したＭＴＵ確認要求メッセージのＩＰパケットがフラグメント化されていたかどうかを知ることで、当該ＩＣＭＰ  ＭＴＵメッセージが正当なものであるかどうかを確認することが可能となり、ＩＰパケットのパケット長を適切に制御し、通信効率を向上させることが可能となる。
【００４８】
本発明の第３の通信ノードでは、ＩＣＭＰ  ＭＴＵメッセージの正当性を確認するＭＴＵ確認手段と、暫定的ＭＴＵ値を記憶しかつそれを指定時間後にＭＴＵ確認手段に通知するタイマ制御手段とを備えている。
【００４９】
通信ノードＸが通信ノードＹ宛てのパケットに適用すべきＭＴＵを指示するＩＣＭＰ  ＭＴＵメッセージを受取った際、通信ノードＸのＭＴＵ確認手段は当該ＩＣＭＰ  ＭＴＵメッセージが正当であれば、メッセージが届かないはずのパケット長となる長さのＭＴＵ確認要求メッセージを通信ノードＹに送信し、同時に当該ＭＴＵ確認手段はタイマ制御手段に当該ＩＣＭＰ  ＭＴＵメッセージの指示する暫定的ＭＴＵ値を記憶させ、タイマを起動する。
【００５０】
上記の要求メッセージを受信した通信ノードＹのＭＴＵ確認手段は、ＭＴＵ確認応答メッセージを通信ノードＸに送信する。当該応答メッセージを受信した通信ノードＸのＭＴＵ確認手段は当該応答メッセージを受けたことで、上記のＩＣＭＰ  ＭＴＵメッセージが正当ではないことを確認することが可能となる。
【００５１】
また、上記のＩＣＭＰ  ＭＴＵメッセージが正当であった場合には、ＭＴＵ確認応答メッセージを受信することなく、タイマ制御手段からＭＴＵ確認手段にタイムアウト通知があるので、そのことをもって通信ノードＸは当該ＩＣＭＰ  ＭＴＵメッセージが正当なものであるかどうかを確認することが可能となるため、ＩＰパケットのパケット長を適切に制御し、通信効率を向上させることが可能となる。
【００５２】
これによって、本発明の通信ノードでは、セキュリティ処理手段がインナヘッダアドレスデータベースの提供する情報を基に、インナパケットの始点アドレスをチェックすることによって、インナパケットの始点アドレスが詐称されることを防止することが可能となる。
【００５３】
また、本発明の通信ノードでは、インナパケットの始点アドレスのチェックをＳＡネゴシエーション時に決まるパラメタに基づいて行うのではなく、ＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）ネゴシエーション時以降にも更新可能であるインナヘッダアドレスデータベースの記憶する情報に基づいてチェックを行うため、ＳＡネゴシエーション時以降にインナパケットの始点アドレスの有効な範囲が変化する場合であってもインナパケットの始点アドレスのチェックが可能となる。
【００５４】
さらに、本発明の通信ノードでは、インナパケットの始点アドレスのチェックを処理負荷が比較的大きい処理であるＩＰｓｅｃ  ＩＣＶ（Ｉｎｔｅｇｒｉｔｙ  Ｃｈｅｃｋ  Ｖｅｃｔｏｒ）のチェック及び復号化に先んじて、もしくは同時並行的に行うことによって、これら処理負荷の比較的大きい処理を全て行わずとも攻撃パケットを処理することが可能となるため、始点アドレスを詐称したインナパケットを格納するパケットが通信ノードに大量に送信される攻撃が発生した場合でも、通信ノードが小さい処理負荷でこれらのパケットを処理することが可能となる。
【００５５】
さらにまた、本発明の通信ノードでは、ＭＴＵ確認手段がＭＴＵ確認要求メッセージ及びＭＴＵ確認応答メッセージを送受することで、ＩＣＭＰ  ＭＴＵメッセージの正当性を確認し、正当性が確認された場合のみＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用するため、正当でないＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用したり、逆に正当であるＩＣＭＰ  ＭＴＵメッセージを無視したりすることがないため、通信ノードが送信しようとするＩＰパケットに対して本来適用すべき値と異なるＭＴＵ値を適用してフラグメント化処理を行ってしまう可能性が小さくなるため、通信ノードが送信するＩＰパケットについて不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性を小さくすることが可能となり、通信効率を向上させることが可能となる。
【発明の効果】
【００５６】
本発明は、以下に述べるような構成及び動作とすることで、インナパケットによる始点アドレスの詐称を防止することができるという効果が得られる。
【００５７】
また、本発明は、以下に述べるような構成及び動作とすることで、通信ノードが送信するＩＰパケットについて不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性を小さくすることができ、通信効率を向上させることができるという効果が得られる。
【発明を実施するための最良の形態】
【００５８】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の第１の実施例による通信ノードの構成を示すブロック図である。図１において、通信ノード１は入力ＩＦ（インタフェース）１１と、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケット入力処理手段１２と、セキュリティ処理手段１３と、デカプセル化処理手段１４と、ＩＰパケット出力処理手段１５と、出力ＩＦ１６と、終端する仮想リンク数以上の数の仮想出力ＩＦ１７−１〜１７−ｎと、ＩＣＭＰ  ＭＴＵ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）処理手段１８と、インナヘッダアドレスＤＢ（データベース）１９と、各部の処理を実現するためのプログラムを格納する記録媒体２０とから構成されている。
【００５９】
入力ＩＦ１１はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワーク（図示せず）から受信した電気的信号や電磁波的信号を解釈して得られたＩＰパケットをＩＰパケット入力処理手段１２に渡す手段である。
【００６０】
ＩＰパケット入力処理手段１２はセキュリティ処理手段１３以外からＩＰパケットが入力されると、そのパケットの終点アドレスが通信ノード１のＩＰアドレス以外である場合にそのパケットをＩＰパケット出力処理手段１５に渡し、それ以外のパケットについてフラグメント化されている場合にリアセンブリ処理を行い、そのＩＰパケットをセキュリティ処理手段１３に渡す。
【００６１】
ＩＰパケット入力処理手段１２はセキュリティ処理手段１３からＩＰパケットが渡されると、そのパケットをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、ＩＰパケット入力処理手段１２はペイロードに別のＩＰパケットを格納するカプセル化パケットであればデカプセル化処理手段１４に渡し、ＩＣＭＰ  ＭＴＵメッセージを格納するパケットであればＩＣＭＰ  ＭＴＵ処理手段１８に渡す。
【００６２】
デカプセル化処理手段１４はＩＰパケットが渡されると、そのＩＰパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段１４は渡されたＩＰパケットのペイロードからＩＰパケット（インナパケット）を取出し、そのインナパケットをＩＰパケット入力処理手段１２に渡す。
【００６３】
ＩＰパケット出力処理手段１５はＩＰパケットが渡されると、セキュリティポリシに適うＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を選択し、そのＳＡの指定するパラメタでＩＰパケットへのＩＣＶ（Ｉｎｔｅｇｒｉｔｙ  Ｃｈｅｃｋ  Ｖａｌｕｅ）の付与及びペイロードの暗号化を行い、その結果のＩＰパケットの終点アドレスに基づいてそのＩＰパケットを渡す出力ＩＦを決定し、その出力ＩＦにそのＩＰパケットを渡す。
【００６４】
但し、ＩＰパケットを出力ＩＦに渡す際に、そのＩＰパケットのパケット長（オクテット数）が、その出力ＩＦのＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）値及びパケットの終点アドレスに応じて適用すべきＭＴＵ値を知り得た場合には、その値のいずれかを超える時にＩＰパケット出力処理手段１５が適切にフラグメント処理をした上でその出力ＩＦに渡す。
【００６５】
出力ＩＦ１６はＩＰパケットが渡されると、そのパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。仮想出力ＩＦ１７−１〜１７−ｎは仮想的な出力ＩＦであり、ＩＰパケット出力処理手段１５から見て出力ＩＦ１６と同等の出力ＩＦとみなされるが、出力ＩＦ１６のようにリンクレイヤ以下の処理を行う代わりに、カプセル化処理を行う。
【００６６】
すなわち、仮想出力ＩＦＩＦ１７−１〜１７−ｎはＩＰパケットを渡される毎に新しいＩＰパケット（アウタパケット）を作成し、渡されたＩＰパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをＩＰパケット出力処理手段１５に渡す処理を行う。仮想出力ＩＦ１７−１〜１７−ｎはアウターパケットを作成する際にその終点アドレスとして仮想出力ＩＦ１７−１〜１７−ｎ毎に予め設定されたアドレスを用いる。
【００６７】
ＩＣＭＰ  ＭＴＵ処理手段１８はＩＣＭＰ  ＭＴＵメッセージを格納するＩＰパケットが渡されると、そのＩＣＭＰ  ＭＴＵメッセージの形式チェックと、当該メッセージの指定するＭＴＵ値が妥当であるかどうかのチェックを行い、それらに適う場合にそのメッセージの格納するＩＰパケットの終点アドレスと同じアドレスを終点アドレスとするパケットに適用するＭＴＵ値をそのメッセージの指定するＭＴＵ値にするようにＩＰ出力処理手段１５に指示する。
【００６８】
セキュリティ処理手段１３はＩＰｓｅｃ（ＩＰ  ｓｅｃｕｒｉｔｙ  ｐｒｏｔｏｃｏｌ）形式のＩＰパケットが渡されると、ＩＰｓｅｃ  ＳＡを特定し、インナヘッダアドレスＤＢ１９の提供するデータに基づいてインナパケットの始点アドレスをチェックし、ＳＡのパラメタに基づいてＩＣＶのチェックや復号化、セレクタのチェックを行い、これらを通ったＩＰパケットをＩＰパケット入力処理手段１２に渡す。
【００６９】
インナヘッダアドレスＤＢ１９はセキュリティ処理手段１３に対して、図２に示す例のような表形式のデータを提供する。すなわち、図２において、インナヘッダアドレスＤＢ１９は各行毎にアウタパケットの始点アドレス範囲（「１０．０．０．８〜１０．０．０．９」，「１０．０．１．３」，「２００１：０ＤＢ８：１：：８／１２７」，・・・）を第１列として記述し、アウタパケットの始点アドレスが第１列の範囲の時にインナパケットの始点アドレスとして有効であるアドレス範囲（「１９２．１６８．０．０〜１９２．１６８．０．１２７，１９２．１６８．１．０〜１９２．１６８．１．３１」，「１９２．１６８．１．１２８／２６」，「２００１：０ＤＢ８：：３８：０：０／９６」，・・・）を第２列として記述した表形式のデータを提供する。
【００７０】
図３は図１のセキュリティ処理手段１３がＩＰｓｅｃ形式［ＡＨ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ）またはＥＳＰ（Ｅｎｃａｐｓｕｌａｔｉｎｇ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ）形式］のパケットを渡された時に行う処理を示すフローチャートである。尚、図１に示す入力ＩＦ１１、ＩＰパケット入力処理手段１２、デカプセル化処理手段１４、ＩＰパケット出力処理手段１５、出力ＩＦ１６、仮想出力ＩＦ１７−１〜１７−ｎ、ＩＣＭＰ  ＭＴＵ処理手段１８各々は、上述した従来の技術と同様の動作を行うため、それらの動作についての説明は省略する。尚、図３に示す処理はセキュリティ処理手段１３が記録媒体２０のプログラムを実行することで実現される。
【００７１】
セキュリティ処理手段１３はまずパケットの終点アドレス、ＳＰＩ（Ｓｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒｓ  Ｉｎｄｅｘ）値、パケットのＩＰｓｅｃ形式（ＡＨ形式またはＥＳＰ形式）の３つの情報から、そのパケットに適用するＳＡを特定する（図３ステップＳ１）。
【００７２】
セキュリティ処理手段１３はＳＡが特定できた場合（図３ステップＳ２）、パケットの始点アドレスからインナパケットの始点アドレスとして許されるアドレス範囲をインナヘッダアドレスＤＢ１９の提供する情報から入手し、インナパケットの始点アドレスが有効であるかを確認する（図３ステップＳ３）。
【００７３】
セキュリティ処理手段１３はインナヘッダアドレスＤＢ１９の提供する表形式のデータにおいて、アウタパケットの始点アドレスがマッチする行を第１列で探し、その行の第２列のアドレス範囲にインナパケットの始点アドレスがマッチする場合に有効であると判断する（図３ステップＳ４）。例えば、パケットの始点アドレスが“１０．０．０．９”、パケットがアウタパケットとして格納しているインナパケットの始点アドレスが“１９２．１６８．１．２７”、かつインナヘッダアドレスＤＢ１９の提供する情報が図２に示す内容であったとすると、このインナパケットの始点アドレスは有効である。
【００７４】
セキュリティ処理手段１３はインナパケットの始点アドレスは有効であると判断すると、ＩＣＶのチェックを行い（図３ステップＳ５）、パケットが改ざんされたものであるかどうかを判断する（図３ステップＳ６）。セキュリティ処理手段１３はパケットが改ざんされていないと判断すると、パケットの復号化を行う（図３ステップＳ７）。但し、ＡＨ形式で暗号化されていないパケットの場合には復号化を行わない。
【００７５】
次に、セキュリティ処理手段１３はパケットのセレクタのチェックを行う（図３ステップＳ８）。すなわち、セキュリティ処理手段１３はパケットの始点アドレス、終点アドレス、トランスポートレイヤの情報等から特定されるセキュリティポリシを満足する改ざんチェックや暗号化がされていたかを判断する（図３ステップＳ９）。
【００７６】
セキュリティ処理手段１３はセキュリティポリシを満足する場合に、受け入れ可能として、パケットをＩＰパケット入力処理手段１２に渡し（図３ステップＳ１０）、そのパケットについての処理を終了する。
【００７７】
一方、セキュリティ処理手段１３はＳＡが特定できなかった場合（図３ステップＳ２）、インナパケットの始点アドレスが無効である場合（図３ステップＳ４）、パケットが改ざんされていると判断した場合（図３ステップＳ６）、セキュリティポリシを満足しない場合（図３ステップＳ９）に、それぞれパケットを破棄し（図３ステップＳ１１）、そのパケットについての処理を終了する。
【００７８】
尚、図３においてはステップＳ３，Ｓ４と、ステップＳ５，Ｓ６と、ステップＳ７との３つの処理を逐次的に実行するよう記述しているが、これらの３つの処理、もしくはステップＳ３，Ｓ４及びステップＳ５，Ｓ６の２つの処理を同時並行的に進めることも可能である。この場合、ステップＳ３，Ｓ４の処理が終わり、Ｓ４にて「有効でない」との結果が出た時に、その他の２つの処理のいずれかまたは両方がまだ処理中であれば、それらの処理を中断する処理を行うことによって、余計な処理負荷を削減することができる。
【００７９】
また、セキュリティ処理手段１３では暗号の復号化処理（図３ステップＳ７）が終了する以前にインナパケットの始点アドレスの有効性をチェックしている（図３ステップＳ３）。このため、アウタパケットに適用する暗号は復号化する以前の暗号状態であってもインナパケットの始点アドレスを参照できるような暗号化手法を用いなければならない。このような暗号化手法の例としては、例えばＲ．Ｇｌｅｎｎ他著「Ｔｈｅ  ＮＵＬＬ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ  ａｎｄ  Ｉｔｓ  Ｕｓｅ  Ｗｉｔｈ  ＩＰｓｅｃ」（ＲＦＣ２４１０、ＩＥＴＦ、１９９８年１１月）（文献１）で定義されるＮｕｌｌ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍや、インナパケットの始点アドレスを含む一部を暗号化せずに平文のまま残しておく手法がある。
【００８０】
このように、本実施例では、セキュリティ処理手段１３にてインナヘッダアドレスＤＢ１９の提供する情報を基にインナパケットの始点アドレスをチェックすることによって、インナパケットの始点アドレスが詐称されることを防止することができる。
【００８１】
また、本実施例では、ＳＡネゴシエーション時以降にインナパケットの始点アドレスの有効な範囲が変化する場合であっても、インナヘッダアドレスＤＢ１９の記憶する情報をその変化に併せて更新することによって、インナパケットの始点アドレスのチェックに即座に反映されるため、正しくチェックを行うことができる。
【００８２】
さらに、本実施例では、処理負荷が比較的大きい処理であるＩＣＶのチェック（図３ステップＳ５）及び復号化（図３ステップＳ６）の処理に先んじて、もしくは同時並行的にインナパケットの始点アドレスのチェックを行う。
【００８３】
この場合と、ＩＣＶのチェック（図３ステップＳ５）または復号化（図３ステップＳ６）の後にインナパケットの始点アドレスのチェックを行った場合とを比較すると、始点アドレスを詐称したインナパケットを格納するパケットが通信ノード１に大量に送信された場合において、より小さい処理負荷でこれらのパケットを処理することができる。
【００８４】
ＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃（サービス不能攻撃）の攻撃パケットは始点アドレスの詐称を伴うことが多いが、仮想リンクを通るトラヒックに大量のＤｏＳ攻撃のトラヒックが混入した場合においても、通信ノード１のパケット転送性能の低下を最小限に抑えることができ、かつそのような始点アドレスの詐称が行われたＤｏＳ攻撃トラヒックの遮断を行うことができる。
【００８５】
図４は本発明の第２の実施例による通信ノードの構成を示すブロック図である。図４において、通信ノード２はインナヘッダアドレスＤＢ１９を外し、ＭＴＵ確認手段２１を設けた以外は図１に示す本発明の第１の実施例と同様の構成となっており、同一構成要素には同一符号を付してある。
【００８６】
つまり、通信ノード２は入力ＩＦ１１と、ＩＰパケット入力処理手段１２と、セキュリティ処理手段１３と、デカプセル化処理手段１４と、ＩＰパケット出力処理手段１５と、出力ＩＦ１６と、終端する仮想リンク数以上の数の仮想出力ＩＦ１７−１〜１７−ｎと、ＩＣＭＰ  ＭＴＵ処理手段１８と、ＭＴＵ確認手段２１と、各部の処理を実現するためのプログラムを格納する記録媒体２２とから構成されている。
【００８７】
入力ＩＦ１１はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワーク（図示せず）から受信した電気的信号や電磁波的信号を解釈して得られたＩＰパケットをＩＰパケット入力処理手段１２に渡す手段である。
【００８８】
セキュリティ処理手段１３はＩＰｓｅｃ形式のＩＰパケットが渡されると、ＩＰｓｅｃ  ＳＡを特定し、ＳＡのパラメタに基づいてＩＣＶのチェックや復号化、セレクタのチェックを行い、これらを通ったＩＰパケットをＩＰパケット入力処理手段１２に渡す。
【００８９】
デカプセル化処理手段１４はＩＰパケットが渡されると、そのＩＰパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段１４は渡されたＩＰパケットのペイロードからＩＰパケット（インナパケット）を取出し、そのインナパケットをＩＰパケット入力処理手段１２に渡す。
【００９０】
ＩＰパケット出力処理手段１５はＩＰパケットが渡されると、セキュリティポリシに適うＳＡを選択し、そのＳＡの指定するパラメタにしたがってＩＰパケットへのＩＰｓｅｃのヘッダやトレイラ、認証データの付与及びペイロードの暗号化を行い、その結果のＩＰパケットの終点アドレスに基づいてそのＩＰパケットを渡す出力ＩＦを決定し、その出力ＩＦにＩＰパケットを渡す。
【００９１】
但し、ＩＰパケット出力処理手段１５はＩＰパケットを出力ＩＦに渡す際に、そのＩＰパケットのパケット長（オクテット数）が、その出力ＩＦのＭＴＵ値及びパケットの終点アドレスに応じて適用すべきＭＴＵ値を知り得た場合、その値のいずれかを超える時に、適切にフラグメント処理をした上で、その出力ＩＦにＩＰパケットを渡す。
【００９２】
出力ＩＦ１６はＩＰパケットが渡されると、そのパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。
【００９３】
ＩＰパケット入力処理手段１２はセキュリティ処理手段１３以外からＩＰパケットが入力されると、そのパケットの終点アドレスが通信ノード２のＩＰアドレス以外である場合にそのパケットをＩＰパケット出力処理手段１５に渡し、それ以外のパケットについて、フラグメント化されている場合にリアセンブリ処理を行い、セキュリティ処理手段１３にＩＰパケットを渡す。
【００９４】
ＩＰパケット入力処理手段１２はセキュリティ処理手段１３からＩＰパケットが渡されると、そのＩＰパケットをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、ＩＰパケット入力処理手段１２はペイロードに別のＩＰパケットを格納するカプセル化パケットであればデカプセル化処理手段１４に渡し、ＩＣＭＰ  ＭＴＵメッセージを格納するパケットであればＩＣＭＰ  ＭＴＵ処理手段１８に渡し、後述するＭＴＵ確認要求メッセージを格納するパケットであればＭＴＵ確認手段２１に対し、そのパケットが入力ＩＦ１１またはデカプセル化処理手段１４から渡された際にフラグメント化されていたかどうかの情報を付して渡し、ＭＴＵ確認応答メッセージを格納するパケットであればＭＴＵ確認手段２１に渡す。
【００９５】
仮想出力ＩＦ１７−１〜１７−ｎは仮想的な出力ＩＦであり、ＩＰパケット出力処理手段１５から見て出力ＩＦ１６と同等の出力ＩＦとみなされるが、出力ＩＦ１６のようなリンクレイヤ以下の処理を行う代わりに、カプセル化処理を行う。すなわち、仮想出力ＩＦ１７−１〜１７−ｎはＩＰパケットを渡される毎に新しいＩＰパケット（アウタパケット）を作成し、渡されたＩＰパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをＩＰパケット出力処理手段１５に渡す処理を行う。
【００９６】
仮想出力ＩＦ１７−１〜１７−ｎはアウタパケットを作成する際に、その終点アドレスとして仮想出力ＩＦ１７−１〜１７−ｎ毎に予め設定されたアドレスを用いる。また、仮想出力ＩＦ１７−１〜１７−ｎはＭＴＵ確認手段２１からＭＴＵ値が設定された場合、その値を自らのＭＴＵ値として採用する。
【００９７】
ＩＣＭＰ  ＭＴＵ処理手段１８はＩＣＭＰ  ＭＴＵメッセージの形式チェックを行い、そのメッセージの内容をＭＴＵ確認手段２１に通知する。ＭＴＵ確認手段２１はＩＣＭＰ  ＭＴＵ処理手段１８からの通知を受けると、そのＭＴＵの値の正当性をＭＴＵ確認要求メッセージ及びＭＴＵ確認応答メッセージの送受によって確認し、その結果、ＭＴＵの値の正当性が確認された場合にそのＭＴＵをＩＰパケット出力処理手段１５に設定し、さらに仮想出力ＩＦ１７−１〜１７−ｎのＭＴＵを設定する。
【００９８】
図５は図４のＩＣＭＰ  ＭＴＵ処理手段１８がＩＣＭＰ  ＭＴＵメッセージを受けた時に行う処理を示すフローチャートである。これら図４及び図５を参照して本発明の第２の実施例による通信ノード２の動作について説明する。尚、入力ＩＦ１１、ＩＰパケット入力処理手段１２、セキュリティ処理手段１３、デカプセル化処理手段１４、ＩＰパケット出力処理手段１５、出力ＩＦ１６、仮想出力ＩＦ１７−１〜１７−ｎ各々は従来の技術と同様の動作を行うため、その動作についての説明は省略する。尚、図５に示す処理はＩＣＭＰ  ＭＴＵ処理手段１８が記録媒体２２のプログラムを実行することで実現される。
【００９９】
ＩＣＭＰ  ＭＴＵ処理手段１８は、まずメッセージが形式を満たしているかどうかをチェックする（図５ステップＳ２１）。ＩＣＭＰ  ＭＴＵ処理手段１８は、メッセージのチェックサムが整合していたり、メッセージが格納するＩＰパケットに異常がない等、形式を満たしている場合（図５ステップＳ２２）、メッセージが格納するＩＰパケットの終点アドレスを変数Ｘに代入し、メッセージが指定するＭＴＵ値を変数Ｍに代入する（図５ステップＳ２３）。
【０１００】
ＩＣＭＰ  ＭＴＵ処理手段１８は、変数Ｍの値がＭＴＵ値として小さすぎず、かつ変数Ｍの値が終点アドレスＸのＩＰパケットに対して現在適用されているＭＴＵ値以上でない場合、妥当な値ではあるとみなし（図５ステップＳ２４）、ＭＴＵ確認手段２１に対して変数Ｘ及び変数Ｍを通知し（図５ステップＳ２５）、そのＩＣＭＰ  ＭＴＵメッセージの処理を終了する。
【０１０１】
一方、ＩＣＭＰ  ＭＴＵ処理手段１８は、メッセージのチェックサムが整合しなかったり、メッセージが格納するＩＰパケットに異常がある等、形式を満たしていない場合（図５ステップＳ２２）、変数Ｍの値がＭＴＵ値としては小さすぎる場合や変数Ｍの値が終点アドレスＸのＩＰパケットに対して現在適用されているＭＴＵ値以上である場合に妥当な値ではないとみなし（図５ステップＳ２４）、メッセージについてそれ以上の処理をすることなく（図５ステップＳ２６）、そのＩＣＭＰ  ＭＴＵメッセージの処理を終了する。
【０１０２】
図６〜図８は図４のＭＴＵ確認手段２１の動作を示すフローチャートであり、図９（ａ），（ｂ）は本発明の第２の実施例で用いるメッセージの構造を示す図である。これら図４と図６〜図９とを参照してＭＴＵ確認手段２１の動作について説明する。尚、図６〜図８に示す処理はＭＴＵ確認手段２１が記録媒体２２のプログラムを実行することで実現される。
【０１０３】
図９（ａ）はＭＴＵ確認要求メッセージ（形式１）Ａ１を示しており、ＭＴＵ確認要求メッセージ（形式１）Ａ１はメッセージタイプ識別フィールドとＭフィールドと任意データフィールドとからなる。図９（ｂ）はＭＴＵ確認応答メッセージ（形式１）Ｂ１を示しており、ＭＴＵ確認応答メッセージ（形式１）Ｂ１はメッセージタイプ識別フィールドとＭフィールドとＦフィールドとからなる。
【０１０４】
図６はＭＴＵ確認手段２１がＩＣＭＰ  ＭＴＵ処理手段１８から通知を受ける毎に行う処理を示している。これら図４と図６とを参照してＭＴＵ確認手段２１がＩＣＭＰ  ＭＴＵ処理手段１８から通知を受ける毎に行う処理について説明する。
【０１０５】
ＭＴＵ確認手段２１は通知されたＸの値及びＭの値をそれぞれ変数Ｘと変数Ｍとに代入する（図６ステップＳ３１）。次に、ＭＴＵ確認手段２１はパケット長（オクテット数）が変数Ｍを超えかつ最小であるようにサイズを調整したＭＴＵ確認要求メッセージにＭの値を記載したうえで、ＩＰアドレスＸ宛てに送信する。すなわち、ＭＴＵ確認手段２１はＸを終点アドレスとするＩＰパケットに載せてＩＰパケット出力手段１５に渡し（図６ステップＳ３２）、処理を終了する。
【０１０６】
このステップＳ３２にて送信するＭＴＵ確認要求メッセージは、図９（ａ）に示すフィールドから構成されており、メッセージタイプ識別フィールドとして「メッセージがＭＴＵ確認要求メッセージであることを識別するためのコード」を格納し、Ｍフィールドとして上述したＭの値を格納し、任意データフィールドとして任意のデータを格納する。
【０１０７】
但し、この任意データフィールドのデータ長については、このＭＴＵ確認要求メッセージＡ１を載せるＩＰパケットがＩＰパケット出力処理手段１５によってＩＰｓｅｃヘッダ等を加えられて出力ＩＦ１６に渡される際のパケット長（オクテット数）がＭより大きく、かつ最小となるように決定する。
【０１０８】
目安としてはＭの値からＩＰパケットのヘッダ長（ＩＰｓｅｃヘッダ分を除く）と、ＩＰｓｅｃのオーバヘッド長（ＡＨではヘッダ長、ＥＳＰではヘッダ長＋トレイラ長＋認証データフィールド長）と、ＭＴＵ確認要求メッセージのその他のフィールド長を差し引いたものに１を加えた値である。
【０１０９】
また、ＥＳＰを用いる場合には、そのトレイラ長がパディング長によって変化するため、メッセージ長が１オクテット違うＭＴＵ確認要求メッセージ２つをそれぞれ格納する２つのＩＰパケットのパケット長が同じであったり、数オクテット異なったりする場合がある。
【０１１０】
このため、特にＥＳＰを用いる場合には、任意データフィールドのデータ長をＭからの単純な引き算で求めることはできない。より一般的に求めるには、関数Ｋ（ｓ，ｘ）を任意データフィールド長ｓのＭＴＵ確認要求メッセージが終点アドレスｘのＩＰパケットに格納されてＩＰパケット出力処理手段１５に渡され、ＩＰｓｅｃヘッダ等の付与がされ、仮にフラグメント処理が省略されて出力ＩＦ１６に渡されたとした時の、その出力ＩＦ１６に渡されたパケットのパケット長を出力する関数であるとして、任意データフィールドのデータ長は、
ｎ＝ｍｉｎ｛自然数ｓ｜Ｋ（ｓ，Ｘ）＞Ｍ｝
で求まるｎ、もしくは、
Ｎ∈｛自然数ｓ｜Ｋ（ｓ，Ｘ）＝Ｋ（ｎ，Ｘ）｝
であるようなＮがｎ以外にあればそれを用いることもできる。
【０１１１】
図７はＭＴＵ確認手段２１がＭＴＵ確認要求メッセージを含むＩＰパケットを受ける毎に行う処理を示している。これら図４と図７とを参照してＭＴＵ確認手段２１がＭＴＵ確認要求メッセージを含むＩＰパケットを受ける毎に行う処理について説明する。
【０１１２】
ＭＴＵ確認手段２１はＩＰパケットの始点アドレスを変数Ｙに代入し、ＩＰパケットのＭＴＵ確認要求メッセージのＭフィールドの値を変数Ｍに代入し、ＩＰパケットがＩＰパケット入力処理手段１２から渡された際に付されかつフラグメント化されていたかの情報に基づくブーリアン値（フラグメント化されていた場合は真値、さもなくば偽値）を変数Ｆに代入する（図７ステップＳ４１）。次に、ＭＴＵ確認手段２１は変数Ｍ及び変数Ｆの値をＭＴＵ確認応答メッセージでＩＰアドレスＹ宛てに送信し（図７ステップＳ４２）、処理を終了する。
【０１１３】
上記のステップＳ４２にて送信するＭＴＵ確認応答メッセージは、図９（ｂ）に示すフィールドから構成されており、メッセージタイプ識別フィールドとして「メッセージがＭＴＵ確認応答メッセージであることを識別するためのコード」を格納し、Ｍフィールドとして上記の変数Ｍの値を格納し、Ｆフィールドとして上記の変数Ｆの値をそれぞれ格納する。
【０１１４】
図８はＭＴＵ確認手段２１がＭＴＵ確認応答メッセージを含むＩＰパケットを受ける毎に行う処理を示している。これら図４と図８とを参照してＭＴＵ確認手段２１がＭＴＵ確認応答メッセージを含むＩＰパケットを受ける毎に行う処理について説明する。
【０１１５】
ＭＴＵ確認手段２１はＩＰパケットの始点アドレスを変数Ｘに代入し、ＩＰパケットのＭＴＵ確認応答メッセージのＭフィールドの値を変数Ｍに代入し、ＩＰパケットのＭＴＵ確認応答メッセージのＦフィールドの値を変数Ｆに代入し（図８ステップＳ５１）、変数Ｆが真値であるならば（図８ステップＳ５２）、変数Ｍの値がＭＴＵの値として妥当かどうか、すなわちＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４）においては「６８」、ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６）においては「１２８０」以上、またはそれらのいずれかより大きく設定した値以上であることを確認する（図８ステップＳ５３）。
【０１１６】
ＭＴＵ確認手段２１は変数Ｍの値がＭＴＵの値として妥当である場合、ＩＰ出力処理手段１５に対してＸを終点アドレスとするパケットに適用するＭＴＵ値を変数Ｍに設定し（図８ステップＳ５４）、値Ｍｉをパケット長がＭｉであるインナパケットが仮想出力ＩＦ１７−１〜１７−ｎに渡されて終点アドレスがＸであるアウタパケットに格納される。
【０１１７】
最終的に、ＩＰパケット出力処理手段１５が出力ＩＦ１６に渡す時にパケット長がＭを超えてしまうため、フラグメント化されて渡されることがないような最大の値として求め、仮想出力ＩＦ１７−１〜１７−ｎの中でアウタパケットの終点アドレスをＸとして作成するものがある場合には値Ｍｉをその仮想出力ＩＦ１７−１〜１７−ｎのＭＴＵの値として設定し（図８ステップＳ５５）、処理を終了する。
【０１１８】
ここで、Ｍｉの値はパケット長がＭｉのインナパケットがアウタパケットにカプセル化され、さらにＩＰｓｅｃのヘッダ等が付加されて出力ＩＦ１６に渡されようとする時に、パケットサイズがＭを超えるためにフラグメント化されてしまうことが起こらないような最大値である。
【０１１９】
目安としてはＭの値からアウタパケットのヘッダ長（ＩＰｓｅｃヘッダ分を除く）と、ＩＰｓｅｃのオーバヘッド長（ＡＨではヘッダ長、ＥＳＰではヘッダ長＋トレイラ長＋認証データフィールド長）と、カプセル化にＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）等を用いる際にはそのヘッダ長を差し引いた値となる。
【０１２０】
但し、ＥＳＰを用いる場合には、そのトレイラ長がパディング長によって変化するため、パケット長が１オクテット違うインナパケット２つをそれぞれ格納する２つのアウタパケットのパケット長が同じであったり、数オクテット異なったりする場合がある。このため、特にＥＳＰを用いる場合には、Ｍｉの値をＭからの単純な引き算で求めることはできない。
【０１２１】
より一般的にＭｉの値を求めるには、関数Ｌ（ｓ，ｘ）をパケット長ｓのインナパケットが終点アドレスｘのアウタパケットに格納する仮想出力ＩＦに渡されてカプセル化が行われ、そのアウタパケットがＩＰパケット出力処理手段１５に渡され、ＩＰｓｅｃヘッダ等の付与がされ、仮にフラグメント処理が省略されて出力ＩＦ１６に渡されたとした時の、その出力ＩＦ１６に渡されたパケットのパケット長を出力する関数であるとして、Ｍｉの値は、
Ｍｉ＝ｍａｘ｛自然数ｓ｜Ｌ（ｓ，Ｘ）≦Ｍ｝
として求めることができる。
【０１２２】
一方、ＭＴＵ確認手段２１は変数Ｆが偽値である場合（図８ステップＳ５２）、変数Ｍの値がＭＴＵの値として妥当でない場合（図８ステップＳ５３）、パケットの含むＭＴＵ確認応答メッセージについて何も処理を行うことなく（図８ステップＳ５６）、処理を終了する。
【０１２３】
図１０は本発明の第２の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。この図１０を参照して本発明の第２の実施例における通信ノード間でメッセージがやり取りされる状況例について説明する。
【０１２４】
ルータ３３がＩＣＭＰ  ＭＴＵメッセージを通信ノード３１に送信し（図１０のａ１）、通信ノード３２宛てのパケットに適用すべきＭＴＵ値をある値Ｍａにするように伝えると、通信ノード３１はそのＭＴＵ確認手段の働きによってＭＴＵ確認要求メッセージをパケット長が値Ｍａを超える最小のＩＰパケットに載せて通信ノード３２に送信する（図１０のａ２）。
【０１２５】
通信ノード３２はＭＴＵ確認要求メッセージを受信すると、そのＭＴＵ確認手段の働きによってＭＴＵ確認要求メッセージがフラグメント化されたＩＰパケットによって送られたかどうかの情報をＦフィールドに含むＭＴＵ確認応答メッセージで通信ノード３１に送信する（図１０のａ３）。
【０１２６】
ルータ３３が正常に動作している場合には、ＩＣＭＰ  ＭＴＵメッセージは正当であり、すなわちパケット長が値Ｍａを超える最小のＩＰパケットに載せたＭＴＵ確認要求メッセージは通信ノード３２への到着時にフラグメント化されているはずである。よって、ＭＴＵ確認応答メッセージのＦフィールドの値は真値であり、ＭＴＵ確認応答メッセージを受信した通信ノード３１はそのＭＴＵ確認手段の働きによって通信ノード３２宛てのパケットに適用すべきＭＴＵ値を値Ｍａとする。
【０１２７】
一方、攻撃端末３４がＩＣＭＰ  ＭＴＵメッセージを通信ノード３１に送信し（図１０のａ４）、通信ノード３２宛てのパケットに適用すべきＭＴＵ値を本来あるべき値よりも小さいが、ＭＴＵの値としては妥当な大きさの値Ｍｂにするように伝えると、通信ノード３１はそのＭＴＵ確認手段の働きによってＭＴＵ確認要求メッセージをパケット長が値Ｍｂを超える最小のＩＰパケットに載せて通信ノード３２に送信する（図１０のａ５）。
【０１２８】
通信ノード３２はＭＴＵ確認要求メッセージを受信すると、そのＭＴＵ確認手段の働きによってＭＴＵ確認要求メッセージがフラグメント化されたＩＰパケットによって送られたかどうかの情報をＦフィールドに含むＭＴＵ確認応答メッセージで通信ノード３１に送信する（図１０のａ６）。
【０１２９】
値Ｍｂは本来設定すべきＭＴＵよりも小さいため、パケット長が値Ｍｂを超える最小のＩＰパケットに載せたＭＴＵ確認要求メッセージは通信ノード３２への到着時にフラグメント化されていない。よって、ＭＴＵ確認応答メッセージのＦフィールドの値は偽値であり、ＭＴＵ確認応答メッセージを受信した通信ノード３１はそのＭＴＵ確認手段の働きによってＭＴＵ確認応答メッセージを無視し、通信ノード３２宛てのパケットに適用すべきＭＴＵ値は変更しない。
【０１３０】
本発明の第２の実施例において用いるＭＴＵ確認要求メッセージ及びＭＴＵ確認応答メッセージのＭフィールドの値としてはＭＴＵ値を直接用いているが、ＭＴＵ値をそれらのメッセージで直接交換せずに、ＭＴＵへのポインタをそれらメッセージのＭフィールドに格納する派生形の実施の形態も有効である。
【０１３１】
この場合の動作としては、ＭＴＵ確認手段２１のステップＳ３２にてＭ値をＭＴＵ確認要求メッセージのＭフィールドに格納することに代えて、Ｍ値をメモリ（図示せず）に格納し、そのポインタをＭＴＵ確認要求メッセージのＭフィールドに格納する。
【０１３２】
また、上記の動作ではステップＳ５１にてＭＴＵ確認応答メッセージのＭフィールドの値を変数Ｍに代入することに代えて、Ｍフィールドの値をポインタの値として捉えた時にそれが参照するメモリの格納する値を変数Ｍに代入する。尚、ポインタとしてはメモリのアドレス値、表形式のデータ構造における行や列の位置、連想記憶における連想キーの値等を用いることができる。
【０１３３】
このように、本実施例では、ＭＴＵ確認手段２１がＭＴＵ確認要求メッセージ及びＭＴＵ確認応答メッセージを送受することによってＩＣＭＰ  ＭＴＵメッセージの正当性を確認し、正当性が確認された場合のみＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用するため、正当でないＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用したり、逆に正当であるＩＣＭＰ  ＭＴＵメッセージを無視したりすることがない。
【０１３４】
よって、本実施例では、通信ノードが送信しようとするＩＰパケットに対して本来適用すべき値と異なるＭＴＵ値を適用してフラグメント化処理を行ってしまう可能性が従来に比べて小さい。したがって、本実施例では、不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性も従来に比べて小さいため、従来に比べて通信効率を向上させることができる。
【０１３５】
図１１は本発明の第３の実施例による通信ノードの構成を示すブロック図である。図１１において、通信ノード４はタイマ制御手段４１を加えた以外は図４に示す本発明の第２の実施例と同様の構成となっており、同一構成要素には同一符号を付してある。
【０１３６】
つまり、通信ノード４は入力ＩＦ１１と、ＩＰパケット入力処理手段１２と、セキュリティ処理手段１３と、デカプセル化処理手段１４と、ＩＰパケット出力処理手段１５と、出力ＩＦ１６と、終端する仮想リンク数以上の数の仮想出力ＩＦ１７−１〜１７−ｎと、ＩＣＭＰ  ＭＴＵ処理手段１８と、ＭＴＵ確認手段２１と、タイマ制御手段４１と、各部の処理を実現するためのプログラムを格納する記録媒体４２とから構成されている。
【０１３７】
入力ＩＦ１１はリンクレイヤ以下の処理を担当するデータ入力インタフェースであり、すなわちネットワーク（図示せず）から受信した電気的信号や電磁波的信号を解釈して得られたＩＰパケットをＩＰパケット入力処理手段１２に渡す手段である。
【０１３８】
セキュリティ処理手段１３はＩＰｓｅｃ形式のＩＰパケットが渡されると、ＩＰｓｅｃ  ＳＡを特定し、ＳＡのパラメタに基づいてＩＣＶのチェックや復号化、セレクタのチェックを行い、これらを通ったＩＰパケットをＩＰパケット入力処理手段１２に渡す。
【０１３９】
デカプセル化処理手段１４はＩＰパケットが渡されると、そのＩＰパケットに対してデカプセル化処理を行う。すなわち、デカプセル化処理手段１４は渡されたＩＰパケットのペイロードからＩＰパケット（インナパケット）を取出し、そのインナパケットをＩＰパケット入力処理手段１２に渡す。
【０１４０】
ＩＰパケット出力処理手段１５はＩＰパケットが渡されると、セキュリティポリシに適うＳＡ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｏｃｉａｔｉｏｎ）を選択し、そのＳＡの指定するパラメタにしたがってＩＰパケットへのＩＰｓｅｃのヘッダやトレイラ、認証データの付与及びペイロードの暗号化を行い、その結果のＩＰパケットの終点アドレスに基づいてそのＩＰパケットを渡す出力ＩＦを決定し、その出力ＩＦにそのＩＰパケットを渡す。
【０１４１】
但し、ＩＰパケットを出力ＩＦに渡す際に、そのＩＰパケットのパケット長が、その出力ＩＦのＭＴＵ値及びパケットの終点アドレスに応じて適用すべきＭＴＵ値を知り得た場合、ＩＰパケット出力処理手段１５はその値のいずれかを超える時に、適切にフラグメント処理をした上でその出力ＩＦに渡す。
【０１４２】
出力ＩＦ１６はＩＰパケットが渡されると、そのＩＰパケットに対してリンクレイヤ以下の処理を行い、電気的信号や電磁波的信号としてネットワークに送信する。
【０１４３】
仮想出力ＩＦ１７−１〜１７−ｎは仮想的な出力ＩＦであり、ＩＰパケット出力処理手段１５から見て出力ＩＦ１６と同等の出力ＩＦとみなされるが、上記の出力ＩＦ１６のようなリンクレイヤ以下の処理を行う代わりに、ＩＰパケットに対してカプセル化処理を行う。
【０１４４】
すなわち、仮想出力ＩＦ１７−１〜１７−ｎはＩＰパケットを渡される毎に新しいＩＰパケット（アウタパケット）を作成し、渡されたＩＰパケットをアウタパケットのペイロードとして格納し、そのアウタパケットをＩＰパケット出力処理手段１５に渡す処理を行う。
【０１４５】
仮想出力ＩＦ１７−１〜１７−ｎはアウタパケットを作成する際に、その終点アドレスとして仮想出力ＩＦ１７−１〜１７−ｎ毎に予め設定されたアドレスを用いる。また、仮想出力ＩＦ１７−１〜１７−ｎはＭＴＵ確認手段２１からＭＴＵ値が設定された場合、その値を自らのＭＴＵ値として採用する。
【０１４６】
ＩＣＭＰ  ＭＴＵ処理手段１８はＩＣＭＰ  ＭＴＵメッセージの形式チェックを行い、そのメッセージの内容をＭＴＵ確認手段２１に通知する。
【０１４７】
ＩＰパケット入力処理手段１２はセキュリティ処理手段１３以外からＩＰパケットが入力されると、そのパケットの終点アドレスが通信ノード４のＩＰアドレス以外である場合に、そのパケットをＩＰパケット出力処理手段１５に渡す。それ以外のパケットについては、フラグメント化されている場合にリアセンブリ処理を行い、セキュリティ処理手段１３にＩＰパケットを渡す。
【０１４８】
ＩＰパケット入力処理手段１２はセキュリティ処理手段１３からＩＰパケットが渡されると、そのＩＰパケットをパケットの種類に応じて選択した次の機能ブロックに渡す。すなわち、ＩＰパケット入力処理手段１２はペイロードに別のＩＰパケットを格納するカプセル化パケットであればデカプセル化処理手段１４に渡し、ＩＣＭＰ  ＭＴＵメッセージを格納するパケットであればＩＣＭＰ  ＭＴＵ処理手段１８に渡し、後述するＭＴＵ確認要求メッセージやＭＴＵ確認応答メッセージを格納するパケットであればＭＴＵ確認手段２１に渡に渡す。
【０１４９】
ＭＴＵ確認手段２１はＩＣＭＰ  ＭＴＵ処理手段１８からの通知を受けてそのＭＴＵの値の正当性をＭＴＵ確認要求メッセージ及びＭＴＵ確認応答メッセージの送受と、タイマ制御手段４１からのタイムアウト通知とによって確認し、その結果、ＭＴＵの値の正当性が確認された場合にそのＭＴＵをＩＰパケット出力処理手段１５に設定し、さらに仮想出力ＩＦのＭＴＵを設定する。
【０１５０】
タイマ制御手段４１はＭＴＵ確認手段２１からのｃｒｅａｔｅ手続き依頼と、ｒｅｓｔａｒｔ手続き依頼とに基づいてタイマの作成を行い、タイマがタイムアウトした時にタイムアウト通知をＭＴＵ確認手段２１に通知する。
【０１５１】
図１２〜図１５は図１１のＭＴＵ確認手段２１の動作を示すフローチャートであり、図１６（ａ），（ｂ）は本発明の第３の実施例で用いるメッセージの構造を示す図である。これら図１１〜図１６を参照してＭＴＵ確認手段２１の動作について説明する。尚、入力ＩＦ１１、ＩＰパケット入力処理手段１２、セキュリティ処理手段１３、デカプセル化処理手段１４、ＩＰパケット出力処理手段１５、出力ＩＦ１６、仮想出力ＩＦ１７−１〜１７−ｎ各々は上述した従来技術のそれらと同等の動作を行うため、その動作についての説明は省略する。また、ＭＴＵ確認手段２１は上述した本発明の第２の実施例のそれと同等の動作を行うため、その動作についての説明は省略する。尚、図１２〜図１５に示す処理はＭＴＵ確認手段２１が記録媒体４２のプログラムを実行することで実現される。
【０１５２】
図１６（ａ）はＭＴＵ確認要求メッセージ（形式２）Ａ２を示しており、ＭＴＵ確認要求メッセージ（形式２）Ａ２はメッセージタイプ識別フィールドと任意データフィールドとからなる。図１６（ｂ）はＭＴＵ確認応答メッセージ（形式２）Ｂ２を示しており、ＭＴＵ確認応答メッセージ（形式２）Ｂ２はメッセージタイプ識別フィールドからなる。
【０１５３】
図１２はＭＴＵ確認手段２１がＩＣＭＰ  ＭＴＵ処理手段１８から通知を受ける毎に行う処理を示している。ＭＴＵ確認手段２１は通知のＸ値とＭ値とをそれぞれ変数Ｘと変数Ｍとに代入し（図１２ステップＳ６１）、タイマ制御手段４１に手続きｃｒｅａｔｅをパラメタｘ，ｍ，ｔとしてそれぞれＸ，Ｍ，Ａを指定して依頼する（図１２ステップＳ６２）。ここで、Ａはある時間量であり、その決め方については後述する。
【０１５４】
ＭＴＵ確認手段２１はｃｒｅａｔｅ手続きが失敗すると（図１２ステップＳ６３）、処理を終了する。また、ＭＴＵ確認手段２１はｃｒｅａｔｅ手続きが失敗しなければ（図１２ステップＳ６３）、オクテット数によるパケット長がＭを超えかつ最小であるようにサイズを調整したＭＴＵ確認要求メッセージをＤＦ（Ｄｏｎ´ｔ  Ｆｒａｇｍｅｎｔ）フラグを立てたＩＰｖ４パケットまたはＩＰｖ６パケットでＩＰアドレスＸ宛てに送信、すなわちＸを終点アドレスとするＩＰパケットに載せてＩＰパケット出力手段１５に渡し（図１２ステップＳ６４）、処理を終了する。
【０１５５】
上記のステップＳ６４にて送信するＭＴＵ確認要求メッセージは図１６（ａ）に示すフィールドから構成されており、メッセージタイプ識別フィールドとしてはメッセージがＭＴＵ確認要求メッセージであることを識別するためのコードを格納し、任意データフィールドとしては任意のデータを格納する。この任意のデータフィールドのデータ長の決め方については本発明の第２の実施例のＭＴＵ確認手段２１における任意データフィールドのデータ長の決め方に準ずるため、ここではその説明を省略する。
【０１５６】
図１３はＭＴＵ確認手段２１がＭＴＵ確認要求メッセージを含むＩＰパケットを受ける毎に行う処理を示している。ＭＴＵ確認手段２１はＩＰパケットの始点アドレスを変数Ｙに代入し（図１３ステップＳ７１）、ＭＴＵ確認応答メッセージをＩＰアドレスＹ宛てに送信し（図１３ステップＳ７２）、処理を終了する。
【０１５７】
上記のステップＳ７２にて送信するＭＴＵ確認応答メッセージは図１６（ｂ）に示すフィールドから構成されており、メッセージタイプ識別フィールドとしてはメッセージがＭＴＵ確認応答メッセージであることを識別するためのコードを格納する。
【０１５８】
図１４はＭＴＵ確認手段２１がＭＴＵ確認応答メッセージを含むＩＰパケットを受ける毎に行う処理を示している。ＭＴＵ確認手段２１はＩＰパケットの始点アドレスを変数Ｘに代入し（図１４ステップＳ８１）、ある時間量をＢとしてタイマ制御手段４１に手続きｒｅｓｔａｒｔをパラメタｘ，ｍ，ｔとしてそれぞれＸ，無効値，Ｂを指定して依頼する（図１４ステップＳ８２）。ここで、Ｂはある正数であり、その決め方については後述する。無効値としてはＭＴＵとして妥当でない値、例えば０を指定する。
【０１５９】
図１５はＭＴＵ確認手段２１がタイマ制御手段４１からタイムアウト通知を受ける毎に行う処理を示している。ＭＴＵ確認手段２１は変数Ｘと変数Ｍとにタイムアウト通知のｘ値とｍ値とをそれぞれ代入し（図１５ステップＳ９１）、変数Ｍの値がＭＴＵの値として妥当かどうか、すなわちＩＰｖ４においては６８、ＩＰｖ６においては１２８０以上、またはそれらのいずれかより大きく設定した値以上であることを確認する（図１５ステップＳ９２）。
【０１６０】
ＭＴＵ確認手段２１は変数Ｍの値が妥当でなければ、処理を終了する。また、ＭＴＵ確認手段２１は変数Ｍの値が妥当であれば、ＩＰ出力処理手段１５に対して変数Ｘを終点アドレスとするパケットに適用するＭＴＵ値を変数Ｍに設定する（図１５ステップＳ９３）。
【０１６１】
また、ＭＴＵ確認手段２１はパケット長が値Ｍｉであるインナパケットが仮想出力ＩＦに渡されて終点アドレスが変数Ｘであるアウタパケットに格納され、最終的にＩＰパケット出力処理手段１５が出力ＩＦ１６に渡す時にパケット長がＭを超えてしまうためにフラグメント化されて渡されることがないような最大の値として値Ｍｉを求め、仮想出力ＩＦの中でアウタパケットの終点アドレスを変数Ｘとして作成するものがある場合に値Ｍｉをその仮想出力ＩＦのＭＴＵの値として設定し（図１５ステップＳ９４）、処理を終了する。ここで、値Ｍｉは上述したステップＳ５５における決定方法と同様である。
【０１６２】
図１７は図１１のタイマ制御手段４１の動作を説明するための状態遷移図である。この図１７を参照してタイマ制御手段４１の動作について説明する。タイマ制御手段４１は全てのＩＰアドレスに対して、それと対応するタイマを作成することができる。以下、ＩＰアドレスＸに対応するタイマを作成した時には、そのタイマのことをタイマＸと呼ぶものとする。
【０１６３】
タイマにはそれぞれ状態値として、タイマが不在の状態と、タイマが存在する状態との２つがある。また、タイマはそれぞれ任意のデータを記憶する変数ｍを持つ。タイマが不在の状態からタイマが存在する状態に遷移させる手続きがｃｒｅａｔｅ手続きであり、パラメタとしてｘ，ｍ，ｔの３つを指定する。ｘはＩＰアドレス値であり、どのタイマを作成するのかを指定する。ｍは任意のデータであり、作成されたタイマがそれをタイマ固有の変数ｍに記憶する。ｔは時間であり、作成されたタイマがタイムアウトするまでの時間を指定する。作成しようとするタイマがすでに存在している場合、ｃｒｅａｔｅ手続きは失敗する。
【０１６４】
図１７に示す例では、タイマＸが不在の状態Ｃ１において、ｃｒｅａｔｅ手続きをパラメタｘ，ｍ，ｔとしてそれぞれＸ，Ｍａ，Ｔａを指定して行うことによって［ｃｒｅａｔｅ（ｘ＝Ｘ，ｍ＝Ｍａ，ｔ＝Ｔａ）］、タイマＸが存在する状態Ｃ２に遷移することを示している。
【０１６５】
タイマが存在する状態からタイマが不在の状態への遷移は、そのタイマがタイムアウトした時に自発的に行われる。その際、ｃｒｅａｔｅ手続きのパラメタｘの値と、タイマ固有の変数ｍの値とがタイムアウト通知としてＭＴＵ確認手段２１に通知される。
【０１６６】
タイマがタイムアウトする時刻はｃｒｅａｔｅ手続きによってそのタイマが作成された時刻からｃｒｅａｔｅ手続きのパラメタｔで指定される時間が経過した時刻であるが、タイマ制御手段４１のもう一つの手続きであるｒｅｓｔａｒｔ手続きによって変更し得る。
【０１６７】
ｒｅｓｔａｒｔ手続きはパラメタとしてｘ，ｍ，ｔの３つを指定する。ｘはＩＰアドレス値であり、手続きの対象のタイマを指定する。ｍは任意のデータであり、手続きの対象のタイマがそれをタイマ固有の変数ｍに上書き記憶する。ｔは時間であり、手続きの対象のタイマがタイムアウトするまでの時間を指定する。手続きの対象のタイマが不在の状態の場合、ｒｅｓｔａｒｔ手続きは失敗する。
【０１６８】
図１７に示す例では、タイマＸが存在する状態Ｃ２においてｒｅｓｔａｒｔ手続きをパラメタｘ，ｍ，ｔとしてそれぞれＸ，Ｍｂ，Ｔｂを指定して行っている［ｒｅｓｔａｒｔ（ｘ＝Ｘ，ｍ＝Ｍｂ，ｔ＝Ｔｂ）］。
【０１６９】
ｒｅｓｔａｒｔ手続きが行われると、手続きの対象のタイマＸのタイムアウト時刻はｃｒｅａｔｅ手続きやそれまでのｒｅｓｔａｒｔ手続きと関係なく、最新のｒｅｓｔａｒｔ手続きの時刻から当該ｒｅｓｔａｒｔ手続きのパラメタｔで指定した時間が経過した時刻となる。
【０１７０】
図１７に示す例では、ｒｅｓｔａｒｔ手続きによってタイムアウト時刻がｒｅｓｔａｒｔ手続きから時間Ｔｂが経過した時刻となるように変更される。また、タイマＸ固有の変数ｍの値はｃｒｅａｔｅ手続き直後にＭａだったものが、Ｍｂに変更される。
【０１７１】
図１８は本発明の第３の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。この図１８を参照して本発明の第３の実施例における通信ノード間でメッセージがやり取りされる状況例について説明する。
【０１７２】
ルータ５３がＩＣＭＰ  ＭＴＵメッセージを通信ノード５１に送信し（図１８のｂ１）、通信ノード５４宛てのパケットに適用すべきＭＴＵ値をある値Ｍａにするように伝えると、通信ノード５１はそのＭＴＵ確認手段の働きによってＭＴＵ確認要求メッセージをパケット長がＭａを超える最小値であり、かつＩＰｖ６パケットまたはＤＦフラグを立てたＩＰｖ４パケットであるＩＰパケットに載せて通信ノード５２に送信する（図１８のｂ２）。また、通信ノード５１ではタイマ制御手段によってタイマＸ（Ｘは通信ノード５２のＩＰアドレスとする）がパラメタｔ，ｍの値としてそれぞれＡ，Ｍａで作成される。
【０１７３】
ルータ５３が正常に動作している場合には、ＩＣＭＰ  ＭＴＵメッセージが正当であり、すなわちパケット長がＭａを超える最小値であり、かつＩＰｖ６パケットまたはＤＦフラグを立てたＩＰｖ４パケットであるＩＰパケットに載せたＭＴＵ確認要求メッセージが通信ノード５２に到着せず、ルータ５３もしくはその他のルータにてそれ以上転送できずに破棄される。よって、通信ノード５２はＭＴＵ確認要求メッセージを受信せず、ＭＴＵ確認応答メッセージを送り返すこともない。
【０１７４】
したがって、通信ノード５１は通信ノード５２からＭＴＵ確認応答メッセージを受信することなしに時間が経過し、タイマ制御手段においてタイマがタイムアウトし、タイムアウト通知がＭＴＵ確認手段に通知される（図１８のｂ３，ｂ４）。タイムアウト通知があったことをもって、ＭＴＵ確認要求メッセージは通信ノード５２に届かなかったものとみなせるので、通信ノード５１のＭＴＵ確認手段はＩＣＭＰ  ＭＴＵメッセージが正当であったと判断し、タイムアウト通知で指定されるｘ値、すなわち通信ノード５２のアドレス宛てのパケットに適用すべきＭＴＵ値をタイムアウト通知で指定されるｍ値、すなわちＭａとする。
【０１７５】
一方、攻撃端末５４がＩＣＭＰ  ＭＴＵメッセージを通信ノード５１に送信し、通信ノード５２宛てのパケットに適用すべきＭＴＵ値を本来あるべき値よりも小さいが、ＭＴＵの値としては妥当な大きさの値Ｍｂにするように伝えると（図１８のｂ５）、通信ノード５１はそのＭＴＵ確認手段の働きによってＭＴＵ確認要求メッセージをパケット長がＭｂを超える最小値であり、かつＩＰｖ６パケットまたはＤＦフラグを立てたＩＰｖ４パケットであるＩＰパケットに載せて通信ノード５２に送信する（図１８のｂ６）。
【０１７６】
また、通信ノード５１ではタイマ制御手段によってタイマＸ（Ｘは通信ノード５２のＩＰアドレスとする）がパラメタｔ，ｍの値としてそれぞれＡ，Ｍｂで作成される。
【０１７７】
Ｍｂの値は通信ノード５１から通信ノード５２へ送信するパケットに適用すべきＭＴＵ値より小さいため、ＭＴＵ確認要求メッセージは通信ノード５２に到達する。通信ノード５２はＭＴＵ確認要求メッセージを受信すると、そのＭＴＵ確認手段の働きによってＭＴＵ確認応答メッセージを通信ノード５１に送信する（図１８のｂ７）。
【０１７８】
通信ノード５１はＭＴＵ確認応答メッセージを受信すると、ＭＴＵ確認要求メッセージが通信ノード５２に到達したので、すなわちＩＣＭＰ  ＭＴＵメッセージの指定するＭＴＵ値を不正であると判断し、タイマ制御手段４１に対してｒｅｓｔａｒｔ手続きを、パラメタｘとして通信ノード５２のＩＰアドレスを、パラメタｍとして０またはその他の妥当でないＭＴＵ値を、パラメタｔとしてＢをそれぞれ指定して依頼する。
【０１７９】
このｒｅｓｔａｒｔ手続きによって、タイマＸは時間Ｂが経過するまで引き続き「存在」状態にあるので、その期間はパラメタｘとしてＸを指定するｃｒｅａｔｅ手続きが失敗する。よって、ＭＴＵ確認手段２１のステップＳ６３の処理によってステップＳ６４の処理がスキップされることになる。
【０１８０】
すなわち、通信ノード５１は通信ノード５２宛てのパケットに適用すべきＭＴＵ値を不当に変更しようとするＩＣＭＰ  ＭＴＵメッセージを受信し、それが不当であることを確認した後、時間Ｂが経過するまでは新たなＩＣＭＰ  ＭＴＵメッセージを受信してもＭＴＵ確認要求メッセージを送らない。
【０１８１】
この動作によって、本実施例では、ＩＣＭＰ  ＭＴＵメッセージを通信ノード５１に大量に送付することで、通信ノード５１が通信ノード５２にＭＴＵ確認要求メッセージを大量に送付するように仕向ける攻撃を防止することができる。
【０１８２】
本発明の第３の実施例のＭＴＵ確認手段２１において用いるＡの値及びＢの値の設定について説明する。Ａとしては定数とすることも、変数または関数とすることも可能であり、Ａを定数とする場合にはネットワークにおける最大のラウンドトリップ時間より大きい時間を指定する。また、Ａを変数とする場合にはネットワークの最大のラウンドトリップ時間を推定するなんらかの手法を逐次実行し、その結果の最大ラウンドトリップ時間が得られる毎にそれより大きい時間を変数Ａに代入する。
【０１８３】
Ａを関数とする場合には、パラメタをＩＰアドレスｘとしてｘ宛てのＩＰパケットの最大のラウンドトリップ時間を推定するなんらかの手法によって得られた最大のラウンドトリップ時間より大きな値を出力する関数Ａ（ｘ）を用意し、ＭＴＵ確認手段２１のステップＳ６２において、ｃｒｅａｔｅ手続きのパラメタｔとしてＡ（Ｘ）を指定する。
【０１８４】
Ｂとしては定数とすることも、変数または関数とすることも可能であり、Ｂを定数とする場合には、適当な正数を指定する。但し、過大な値を指定すると、正当なＩＣＭＰ  ＭＴＵメッセージをも無視してしまうことになり、過小な値を指定すると、通信ノードに不正なＩＣＭＰ  ＭＴＵメッセージを大量に送りつけることで、ＭＴＵ確認要求メッセージを大量に送信させる攻撃に対して脆弱となる。これらのことから、定数Ｂの値の範囲としては数秒から数十秒程度とすることが妥当である。
【０１８５】
Ｂを変数とする場合には、変数Ｂの初期値として比較的小さい値を指定しておき、不正なＩＣＭＰ  ＭＴＵメッセージの受信頻度が高ければ大きな値を、低ければ小さい値を逐次代入する。Ｂを関数とする場合には、パラメタをＩＰアドレスｘとして、ｘ宛てのＭＴＵを不正に操作しようとするＩＣＭＰ  ＭＴＵメッセージの受信頻度が高ければ大きな値を、低ければ小さい値を出力する関数Ｂ（ｘ）を用意し、ＭＴＵ確認手段２１のステップＳ８２においてはｒｅｓｔａｒｔ手続きのパラメタｔとしてＢ（Ｘ）を指定する。
【０１８６】
本実施例において用いるｃｒｅａｔｅ手続きのパラメタｍの値としてはＭＴＵ値を直接用いているが、ＭＴＵ値をパラメタとして直接指定せずに、ＭＴＵへのポインタをパラメタｍに指定する派生形の実施の形態も有効である。この場合の動作としては、ＭＴＵ確認手段２１のステップＳ６２にてＭ値をｃｒｅａｔｅ手続きのパラメタに指定することに代えて、Ｍ値をメモリ（図示せず）に格納し、そのポインタをｃｒｅａｔｅ手続きのパラメタに指定する。
【０１８７】
また、この動作ではステップＳ９１にてタイムアウト通知のｍ値を変数Ｍに代入することに代えて、ｍ値をポインタの値として捉えた時にそれが参照するメモリの格納する値を変数Ｍに代入する。尚、ポインタとしてはメモリのアドレス値や、表形式のデータ構造における行や列の位置、連想記憶における連想キーの値等を用いることができる。
【０１８８】
このように、本実施例では、ＭＴＵ確認手段２１がＭＴ確認要求メッセージ及びＭＴＵ確認応答メッセージを送受することでＩＣＭＰ  ＭＴＵメッセージの正当性を確認し、正当性が確認された場合のみＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用するため、正当でないＩＣＭＰ  ＭＴＵメッセージの提示するＭＴＵ値を適用したり、逆に正当であるＩＣＭＰ  ＭＴＵメッセージを無視したりすることがない。
【０１８９】
よって、本実施例では、通信ノードが送信しようとするＩＰパケットに対して本来適用すべき値と異なるＭＴＵ値を適用してフラグメント化処理を行ってしまう可能性が従来に比べて小さくなる。したがって、本実施例では、不必要なフラグメント化処理が行われる可能性やパケットが通信経路途上で破棄される可能性も従来に比べて小さくなるため、従来に比べて通信効率を向上させることができる。
【産業上の利用可能性】
【０１９０】
本発明は、仮想リンクを用いてＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ：仮想閉域網）を構築するＶＰＮ装置といった用途にも適用可能である。また、本発明は、上記の各実施例を組み合わせることも可能である。
【図面の簡単な説明】
【０１９１】
【図１】本発明の第１の実施例による通信ノードの構成を示すブロック図である。
【図２】図１のインナヘッダアドレスＤＢの構成例を示す図である。
【図３】図１のセキュリティ処理手段がＩＰｓｅｃ形式のパケットを渡された時に行う処理を示すフローチャートである。
【図４】本発明の第２の実施例による通信ノードの構成を示すブロック図である。
【図５】図４のＩＣＭＰ  ＭＴＵ処理手段がＩＣＭＰ  ＭＴＵメッセージを受けた時に行う処理を示すフローチャートである。
【図６】図４のＭＴＵ確認手段の動作を示すフローチャートである。
【図７】図４のＭＴＵ確認手段の動作を示すフローチャートである。
【図８】図４のＭＴＵ確認手段の動作を示すフローチャートである。
【図９】（ａ），（ｂ）は本発明の第２の実施例で用いるメッセージの構造を示す図である。
【図１０】本発明の第２の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。
【図１１】本発明の第３の実施例による通信ノードの構成を示すブロック図である。
【図１２】図１１のＭＴＵ確認手段の動作を示すフローチャートである。
【図１３】図１１のＭＴＵ確認手段の動作を示すフローチャートである。
【図１４】図１１のＭＴＵ確認手段の動作を示すフローチャートである。
【図１５】図１１のＭＴＵ確認手段の動作を示すフローチャートである。
【図１６】（ａ），（ｂ）は本発明の第３の実施例で用いるメッセージの構造を示す図である。
【図１７】図１１のタイマ制御手段の動作を説明するための状態遷移図である。
【図１８】本発明の第３の実施例における通信ノード間でメッセージがやり取りされる状況例を説明するためのタイミングチャートである。
【図１９】従来の通信ノードの構成を示すブロック図である。
【図２０】図１９のセキュリティ処理手段がＩＰｓｅｃ形式のＩＰパケットを渡された時に行う処理を示すフローチャートである。
【図２１】図１９のＩＣＭＰ  ＭＴＵ処理手段がＩＣＭＰ  ＭＴＵメッセージを受けた時に行う処理を示すフローチャートである。
【図２２】従来の通信ノード間でメッセージがやり取りされる状況例を説明するための図である。
【符号の説明】
【０１９２】
１，２，４，３１，
３２，５１，５２  通信ノード
１１  入力ＩＦ
１２  ＩＰパケット入力処理手段
１３  セキュリティ処理手段
１４  デカプセル化処理手段
１５  ＩＰパケット出力処理手段
１６  出力ＩＦ
１７−１〜１７−ｎ  仮想出力ＩＦ
１８  ＩＣＭＰ  ＭＴＵ処理手段
１９  インナヘッダアドレスＤＢ
２１  ＭＴＵ確認手段
２０，２２，４２  記録媒体
３３，５３  ルータ
３４，５４  攻撃端末
４１  タイマ制御手段
【図１】
2005159688.tif 000003
【図２】
2005159688.tif 000004
【図３】
2005159688.tif 000005
【図４】
2005159688.tif 000006
【図５】
2005159688.tif 000007
【図６】
2005159688.tif 000008
【図７】
2005159688.tif 000009
【図８】
2005159688.tif 000010
【図９】
2005159688.tif 000011
【図１０】
2005159688.tif 000012
【図１１】
2005159688.tif 000013
【図１２】
2005159688.tif 000014
【図１３】
2005159688.tif 000015
【図１４】
2005159688.tif 000016
【図１５】
2005159688.tif 000017
【図１６】
2005159688.tif 000018
【図１７】
2005159688.tif 000019
【図１８】
2005159688.tif 000020
【図１９】
2005159688.tif 000021
【図２０】
2005159688.tif 000022
【図２１】
2005159688.tif 000023
【図２２】
2005159688.tif 000024