ICMPホールパンチング

コンピュータネットワークにおけるNAT技術
ICMPホールパンチングによるアクセスの維持
ICMP ホール パンチングによるアクセスの維持。

ICMP ホール パンチングは、ネットワーク アドレス変換(NAT) アプリケーションで使用される技術で、 NAT を通過するインターネット制御メッセージ プロトコル(ICMP) パケット ストリームを管理します。NATトラバーサル技術は、通常、プライベートネットワークに接続されたホストが関与するインターネット上のクライアント間ネットワーキング アプリケーション、特にピアツーピアおよびVoice over Internet Protocol (VoIP) 展開で必要になります。

ICMPホールパンチングは、ピアツーピアまたはクライアントサーバーモデルにおいて、1つ以上のネットワークアドレス変換器を介して通信する2つのホスト間の接続を確立します。通常、通信ホスト間の直接通信に使用可能なUDPまたはTCPポート状態を確立するために、公衆回線ネットワーク上のサードパーティホストが使用されます。しかし、ICMPホールパンチングは、NATがICMPタイムエクセスパケットを緩く受け入れることを利用することで、1つ以上のNAT間で情報を渡すためにサードパーティの介入を必要としません[1]

ICMP 時間超過パケットが宛先 NAT に到達すると、NAT が予期するパケット内の任意のデータによりパケットが宛先サーバーに到達できるようになり、宛先サーバーはクライアントのパブリック IP アドレスやパケットに格納されているその他のデータをクライアントから取得できるようになります。

概要

現在、ICMPホールパンチング、あるいは第三者の介入なしにホールパンチングを行う唯一の方法(自律NATトラバーサル)は、 2010年1月22日にSamy Kamkar氏によって開発され、オープンソースソフトウェアpwnat [2]としてリリースされました。この方法は後にIEEEで公開されました。論文によると[3]

提案手法では、クライアントが何らかの方法でサーバーの NAT の現在の外部(グローバルにルーティング可能な)IP アドレスを学習していることを前提としています。サーバーがクライアントの IP アドレスを学習できるようにするための重要なアイデアは、サーバーが固定の既知の IP アドレスに定期的にメッセージを送信することです。最も単純なアプローチは、1.2.3.4 などの未割り当て IP アドレスに ICMP ECHO REQUEST メッセージを送信することです。1.2.3.4 は未割り当てであるため、ICMP REQUEST はデフォルト ルートのないルーターによってルーティングされません。つまり、これらのルーターによって作成される ICMP DESTINATION UNREACHABLE メッセージは、サーバーによって無視される可能性があります。1.2.3.4 に送信されたメッセージの結果、NAT はこの要求への応答のルーティングを有効にします。接続クライアントは、このような応答を偽装します。具体的には、クライアントは TTL_EXPIRED を示す ICMP メッセージを送信します。このようなメッセージは、どのインターネットルーターからでも正当に送信可能であり、送信元アドレスがサーバーのターゲットIPと一致するとは考えられません。サーバーは(偽の)ICMP応答をリッスンし、受信するとICMP応答で指定された送信元IPへの接続を開始します。

参照

参考文献

  1. ^ Muller, A.; Evans, N.; Grothoff, C.; Kamkar, S. (2010). 「自律NATトラバーサル」. 2010 IEEE 第10回国際ピアツーピアコンピューティング会議 (P2P) . IEEE. pp.  1– 4. doi :10.1109/P2P.2010.5569996. ISBN 978-1-4244-7140-9
  2. ^ 「pwnat NATトラバーサルソフトウェア」. 2010年1月22日. 2011年5月19日閲覧
  3. ^ 「自律NATトラバーサル 完全論文」(PDF) 2010年8月25日. 2011年5月19日閲覧
「https://en.wikipedia.org/w/index.php?title=ICMP_hole_punching&oldid=1278244610」より取得