|
≪ previous |
|
|
C:\>netsh int ipv4 show dynamicport tcp プロトコル tcp の動的ポートの範囲 --------------------------------- | |
開始ポート | : 49152 |
ポート数 | : 16384 |
C:\>netstat -no アクティブな接続 | ||||
プロトコル | ローカル アドレス | 外部アドレス | 状態 | PID |
TCP | 127.0.0.1:5354 | 127.0.0.1:49681 | ESTABLISHED | 3496 |
TCP | 127.0.0.1:49681 | 127.0.0.1:5354 | ESTABLISHED | 908 |
TCP | 104.78.93.174:80 | CLOSE_WAIT | 3304 | |
TCP | 192.168.1.2:50507 | 219.103.130.73:80 | CLOSE_WAIT | 8580 |
NAT管理テーブル | |
内部アドレス | 外部アドレス |
192.168.1.2 | 123.45.67.89 |
192.168.1.3 | 123.45.67.89 |
NAPTの技術はこの外にIPマスカレード、アドバンスドNAT等々様々な名称で呼ばれます。特にIPマスカレードはLinuxに実装されて広まった経緯から広く浸透しています。 家庭用ルーターはNAPTの機能を備えています。NATとNAPTは本来別物ですが、説明書等に書かれているNATの記述は、NAPTを指している場合がほとんどです。 |
(1) |
ユーザーAがwebサーバー(IPアドレス:219.103.130.3)のホームページ閲覧を始めました。OSは空いている動的ポート番号(51111)をブラウザのポートとして選択し、通信文(ホームページの要求)と制御情報(IPアドレス、ポート番号等)をパケットに書き込んで送出します。webページ アクセスなので宛先ポート番号は 80 です。
◎ webサーバーのURLからIPアドレスを検索する方法は「アドレス検索-DNSの話」を参照して下さい。
|
---|---|
(2) | 家庭用ルーターは要求パケットの送信元IPアドレス(192.168.1.2)と送信元ポート番号(51111)をピックアップして、NAPT管理テーブルの内部IPアドレス・内部ポート番号と比較※2します。同じ内容の組み合わせが無ければ新規の通信と判断、外部通信用に動的ポート番号を選択(60001)して割り当て、インターネット側のIPアドレス(123.45.67.89)と共に管理テーブルに記録※3します。 |
(3) |
家庭用ルーターは要求パケットの送信元IPアドレスと送信元ポート番号を外部通信用(123.45.67.89と60001)に書き換えてインターネット側へ送信します。
◎ 前項(2)の検査で同一内容の記録を検出した時は、一致したレコードの外部IPアドレス・ポート番号を
適用して書き換えます。 |
(4) |
ユーザーBはメール受信を始めました。ユーザーBが使うメール サーバーのIPアドレスは 99.100.11.22 です。OSは空きポート番号(52222)をメール アプリケーション用に選択し、通信文(メール受信要求)と制御情報(IPアドレス、ポート等)をパケットに書き込んで送出します。メール受信なので宛先ポート番号は 110 です。
◎ メール サーバーのURLからIPアドレスを検索する方法は「アドレス検索-DNSの話」を参照して
下さい。 |
(5) | 家庭用ルーターは要求パケットの送信元IPアドレス(192.168.1.3)と送信元ポート番号(52222)をピックアップし、NAPT管理テーブルの内部IPアドレス・内部ポート番号と比較します。同じ内容の組み合わせが無ければ新規の通信と判断して外部通信用に動的ポート番号を選択(60002)して割り当て、インターネット側のIPアドレス(123.45.67.89)と共に管理テーブルに記録します。 |
(6) |
家庭用ルーターは要求パケットの送信元IPアドレスと送信元ポート番号を外部通信用(123.45.67.89と60002)に書き換えてインターネット側へ送信します。
◎ 前項(5)の検査で同一内容の記録を検出した時は、一致したレコードの外部IPアドレス・ポート番号を
適用して書き換えます。 |
(7) |
webサーバーは要求されたホームページのデータを応答パケットにして送り返します。この時、応答パケットの宛先IPアドレスと宛先ポート番号には、要求パケットに記述されていた送信元のIPアドレス(123.45.67.89)とポート番号(60001)がそのまま入ります。
◎ webサーバーは応答パケットを家庭用ルーターあてに送ります。
|
---|---|
(8) |
インターネット側からパケットを受信した家庭用ルーターは、受信したパケットの宛先IPアドレス(123.45.67.89)と宛先ポート番号(60001)をピックアップし、NAPT管理テーブルの外部IPアドレス・外部ポート番号と比較※4検出します。同じ内容の組み合わせがあれば正規な応答として処理を続行、検出されなければ不正アクセス※5と判断してそのパケットは破棄します。
|
(9) | 家庭用ルーターは比較・検出したレコードの内部IPアドレス(192.168.1.2)と内部ポート番号(51111)をピックアップし、その値で応答パケットの宛先IPアドレスと宛先ポート番号を書き換えてLAN側へ送信します。 |
(10) | 応答パケットを受信したユーザーAのOSは、宛先ポート番号(51111)参照して要求元のアプリケーションを判別し、パケットの本文(ホームページのデータ)をブラウザに渡します。※6 |
比較検査の対象となる項目はこの2項目以外に、プロトコル種類(TCP or UDP)、宛先のアドレスやポート番号等があってメーカーや製品ごとに異なるようです。 | |
※3 |
NAPT管理テーブルに記録する項目候補は上記説明図の4件の外に、プロトコル種類(TCP or UDP)、宛先IPアドレス、宛先ポート番号等があります。実際に記録する項目はメーカーや製品ごとに異なるようです。 NAPT管理テーブル リストの1行をここではレコードと呼んでいます。 レコードにも有効期限があって有効期限を過ぎたレコードは削除されます。有効期限は数十秒〜数日のようです。 |
※4 | 比較検査の対象となる項目はこの2項目以外に、プロトコル種類(TCP or UDP)、送信元のアドレスやポート番号等があってメーカーや製品ごとに異なるようです。 |
※5 | 外部からのアクセスを許可できる家庭用ルーターもあります。LAN内部に公開用のサーバーを設置した場合などに、条件を決めて内部へのアクセスを許可します。 |
※6 | 同一パソコン内で複数のブラウザやアプリケーションが同時に通信を行っていても、それぞれ割り当てられているポート番号が異なるので受信データの受け渡しは適切に行われます。 |
≪ previous | [[ アドレスとポート ]] |