対称NATでネットワークからtcpまたはudpパケットを送信する場合、ポートはコンピューターで選択したポートとは異なると予想されます。しかし、低いttlでudpパケットを送信しても、それでもISPネットワークから抜け出すことができると、最初にペイロードとして送信したudpパケットを含むエラーicmpパケットを受け取りますが、ポートはシステム。
この時点での私の疑問は、NATがICMPパケットのコンテンツも取得しないかどうかです。本当に重要なレイヤーのヘッダーを変更する必要があることを知っていたので、そうではありません。ペイロード。したがって、ICMPパケットの場合、送信元IPアドレスのみであり、私が思うに、エコー「サブパケット」のIPとポートもありません。
対称NATでネットワークからtcpまたはudpパケットを送信する場合、ポートはコンピューターで選択したポートとは異なると予想されます。
つまり、 ネットワークアドレスポート変換(NAPT) バージョンのNATです。基本NATはトランスポートプロトコルでは何もしません。NAPTはトランスポートプロトコルごとに異なるテーブルを持っている必要があります。そのため、a TCPポートはUDPポートではなく、ICMPはポートを使用せず、クエリIDを使用します。
最初にペイロードとして送信したudpパケットを含むが、システムによって生成されたポートを含むエラーicmpパケットを受け取ります。
それは正しいでしょう。
この時点での私の疑問は、NATがICMPパケットの内容も取得しないかどうかです。
送信側アプリケーションに戻る必要があるICMPエラーメッセージの場合、はい、NAPTは、宛先アプリケーションがエラーを取得するようにICMPエラーメッセージの内容を修正する必要があります。 ICMPエラーメッセージには、元のパケットの最初の部分がペイロードとして含まれているため、正しいアプリケーションに返すことができます。 NAPTが発信パケットを変更した場合、返されるICMPエラーメッセージペイロードを、ポート番号を含む元のアドレスに変更する必要があります。
したがって、ICMPパケットの場合、送信元IPアドレスのみであり、私が思うに、エコー「サブパケット」のIPとポートもありません。
この動作は、RFC 2663、IPネットワークアドレス変換(NAT)の用語と考慮事項で説明されています。
. 。 ICMPエラーパケット変換
NATを通過するときは、すべてのICMPエラーメッセージ(リダイレクトメッセージタイプを除く)を変更する必要があります。 NAT変更が必要なICMPエラーメッセージタイプには、Destination- Unreachable、Source-Quench、Time-Exceeded、Parameter-Problemが含まれます。NATは変更を試みないでくださいリダイレクトメッセージタイプ。
ICMPエラーメッセージへの変更には、ICMPエラーメッセージのペイロードに埋め込まれた元のIPパケット(またはその一部)への変更が含まれます。 NATがエンドホストに対して完全に透過的であるためには、ICMPパケットのペイロードに埋め込まれたIPヘッダーのIPアドレスを変更する必要があり、同じIPヘッダーのチェックサムフィールドがそれに応じて変更される必要がありますペイロード内のIPおよびトランスポートヘッダーに加えられた変更を反映するために、ICMPヘッダーチェックサムも変更する必要があります。さらに、通常のIPヘッダーも変更する必要があります。
ご覧のとおり、NAT、特にNAPTは非常にリソースを消費します。そのため、Ciscoなどの一部のベンダーは、NATのハードウェアアシストを備えたデバイスでのみNATを許可しています。
NAT spoof TCP ICMPペイロードのポートですか?
UDPパケットを参照しているので、ICMPメッセージのTCPポートをスプーフィングすることはありません。ただし、ICMPメッセージを書き換えて元のUDPトラフィックを反映する可能性が非常に高くなります。いくつかの理由(ホスト/アプリケーションがそのようなICMPメッセージを受信した後の処理方法と場合によっては応答する方法を知る必要があることを中心に)。
これはNATの実装によって異なる可能性がありますが、例を見てみましょう(質問で述べたすべてが正確であると信じて)。
これについて考えるのをやめてください。 ICMP時間超過メッセージを生成するルーターには、「最初に送信したudpパケット」がありません。これは、NATゲートウェイを通過して変換されたためです。言い換えると、ルーターはどのようにして生成されたICMPメッセージは、元の情報がICMPメッセージにどのように入力されたかを知っていますか?
元のUDPパケットがICMPメッセージのペイロードに含まれる可能性がある唯一の方法は、NATゲートウェイがそれを書き直した場合です。