外部から内部への通信の際、SNATは不要、というのはわかるのですが、TCPの場合はスリーウェイハンドシェイクがありますよね? 確認応答の際にはSNATがないと通信を確立することができないと思うのですが、どうして外部→内部の場合SNATは不要で良いということになるのでしょうか。 説明が下手で申し訳ありませんが、どなたかご存知の方がいらっしゃいましたらわかりやすい説明をお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
TCPのスリーウェイハンドシェイクと言うのは、ご存じのようにクライアント側SYN
→ サーバー側ACK+SYN
→ クライアント側ACK
をやり取りするものですが、これらのフラグ情報はTCPのパケット構造部で扱うものです。NATはルーターによりTCPのパケットを包含する下位の部分、IPパケット部に格納されるIPアドレス自体を書き換えるものなので、OS等のTCPを扱っているプロトコルスタック部分では、スリーウェイハンドシェイクは透過的に処理されています。
外のインターネット側から受信するパケットには、送信元IPアドレスとしてリモートのサーバー、送信先IPアドレスとしてルーターの外向けIPアドレスが格納されていますが、ルーターにとってその送信先IPアドレスは自分であって自明であるので、内部のLAN内に転送できます。そのため、「外部→内部の場合SNATは不要で良い」と言う表現になるのだと考えられます。
投稿2020/02/07 02:24
総合スコア9256
0
どうして外部→内部の場合SNATは不要で良いということになるのでしょうか。
書いてのとおり、送信元は外部のサーバなので、そのままのIPアドレスに対してルーティング可能です。
これに対して、内部が発信元になる場合、そのIPアドレスはプライベートIPアドレスとなり、インターネット上でルーティング不能なので、変換が必要となります。
投稿2020/02/07 02:10
総合スコア146018
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
IP address には global ip と private ip があります.
global ip とは,インターネット上にあり,どこからでも到達できる ip address です.
private ip は家庭内や会社内のような閉じた環境で使える ip address であり,外からは到達できません.
家に3台の pc があれば,それぞれが private ip address を持っています.さらに,家庭用ルータは private ip と global ip 両方を持っています.private ip は 3 台の pc と通信を行う為.global ip はインターネットにある機器と通信をする為です.
通常の家庭での利用では pc からインターネットにアクセスして,その応答としてデータが返ってきます.
pc はインターネットへの出口はルータである (default gateway) という事を知っています.あるウェブサイトにアクセスしたい場合,dns でホスト名解決を行い (例: google.co.jp は ip address x.x.x.x であるという解決)その ip address を destination ip にセットして default gateway に送ります.この時の source ip は pc 自身です.
default gateway は,destination ip (google の) を見て,インターネット宛てだと分かるので,source ip を自身の global ip に付け替えて (SNATして)次のルーターへ転送します.なぜここで SNAT するのかというと,外部からは pc の private address は認識できないからです.ですので,ルーターが持っている global ip を貴方の家の代表窓口のアドレスとして source ip に使い,返信はここに宜しく,と言うわけです.
外部から内部への通信に関して,上記のストーリーを使い,google の立場で見てみましょう.
google は貴方の pc からリクエストを受け取ります.そのリクエストの source ip address は,貴方のルーターの global ip address になっています.global ip address はインターネット上から認識・アクセス可能ですので,そのまま返信をすれば良いのです.
( 実際には google などのサービスは公開されている global ip address = サーバー自体 ではなく,実態はロードバランサーで,そこで NAT して内部のサーバー群に振り分けていたりします )
投稿2020/02/07 15:08
総合スコア40
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
NATはルータで行っているものとして、ルータで下記のようにNATされています。
【行きの通信】インターネット → (1)ルータ(2) → LAN
(1)送信元:グローバルIP/宛先:グローバルIP
(2)送信元:グローバルIP/宛先:プライベートIP ← DestinationNAT
【戻りの通信】インターネット ← (4)ルータ(3) ← LAN
(3)送信元:プライベートIP/宛先:グローバルIP
(4)送信元:グローバルIP /宛先:グローバルIP ← SourceNAT
インターネット → LAN ではSNAT不要ですが、
インターネット ← LAN ではSNATが必要です。
家庭用ルータやインターネット接続Firewall製品は
「デフォルトでインターネット ← LAN 通信時にSNATするように設定がなされています。」ので
(あらかじめ設定済みのため)SNATは不要ということではないでしょうか。
投稿2020/02/07 02:47
総合スコア2751
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。