質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

4回答

2782閲覧

NATとスリーウェイハンドシェイクについて

cha_co

総合スコア8

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

1グッド

0クリップ

投稿2020/02/07 01:48

外部から内部への通信の際、SNATは不要、というのはわかるのですが、TCPの場合はスリーウェイハンドシェイクがありますよね? 確認応答の際にはSNATがないと通信を確立することができないと思うのですが、どうして外部→内部の場合SNATは不要で良いということになるのでしょうか。 説明が下手で申し訳ありませんが、どなたかご存知の方がいらっしゃいましたらわかりやすい説明をお願いいたします。
urbainleverrier👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

dodox86

総合スコア9256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どうして外部→内部の場合SNATは不要で良いということになるのでしょうか。

書いてのとおり、送信元は外部のサーバなので、そのままのIPアドレスに対してルーティング可能です。

これに対して、内部が発信元になる場合、そのIPアドレスはプライベートIPアドレスとなり、インターネット上でルーティング不能なので、変換が必要となります。

投稿2020/02/07 02:10

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/02/07 02:10

どの辺が疑問なのかつかめないので、的外れな回答になっているかもしれません。
guest

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

pied_piper

総合スコア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

yukky1201

総合スコア2751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問