Technical Works

ASC Technical support site

*

NATとNAPT

      2015/03/31

前回はIPアドレスについてのお話をしました。
その際にIPアドレス枯渇の一時的な延命措置としてNAT、NAPTが使われてきたというお話に触れましたので、今日はNAT、NAPTについて説明していきます。

NAT(Network Address Translation)

IPアドレスを変換する技術で、一般的にはプライベートIPアドレスをグローバルIPアドレスに変換する技術です。
NATでは、IPパケットのヘッダ内にある送信元IPアドレスを変換します。
LAN内では、プライベートIPアドレスが使われます。
LAN外に通信する際には、データがもつヘッダ情報の送信元IPアドレスがプライベートIPアドレスからグローバルIPアドレスに変換されます。

LAN~インターネット通信

上の図のような構成でインターネットに接続しようとするとホストA、B、Cはプライベートネットワーク内のIPアドレスを持っており、このアドレスではインターネットに接続出来ません。(一意のIPアドレスであるグローバルIPアドレスを持っていない為)
そこでルータを介してインターネットに接続する際、パケットを受けたルータがパケットのヘッダ情報を変換します。
下の表はホストAからインターネットに接続する際のヘッダ内のアドレス情報です。

パケットヘッダ内アドレス情報1(NAT)

プライベートネットワーク内にパケットがある時には上の表のアドレス情報をヘッダに持っています。
ルータからインターネットに出ていく際にアドレス変換が行われ、下の表のようにヘッダ情報が変わります。

パケットヘッダ内アドレス情報2(NAT)

その際にルータでNATテーブルに以下の情報が登録されます。

NATテーブル1

NATテーブルに記憶しておく事でリクエストしたホストがどのホストなのかが
わかる為、通信が可能となります。

ただしこの技術には欠点があります。
NATはルータが保持しているグローバルIPアドレスの数しか変換出来ない為、グローバルIPアドレスの数分しか同時に接続が出来ません。

LAN側に接続されている複数のPCを1つのグローバルIPアドレスに変換して、インターネットにパケットを送信した場合、そのパケットの返信はすべてルータのグローバルIPアドレス宛に返ってきます。

NATテーブル2

上の表はNATテーブルの登録情報です。
この状態で通信し、パケットが返ってきてもルータはNATテーブルを見て、どのPCのアドレスに置き換えればよいのかを判断することが出来ません。
ホストと紐づくルータ側の情報が一意でない為です。

この問題を解決するのがNAPTです。

NAPT(Network Address Port Translation)

IPアドレス、ポート番号を変換する技術です。
送信元のポート番号を置き換えることで複数のPCが同時にインターネットへ通信出来るようにしています。
下の表はインターネットに接続する際のヘッダ内のアドレス情報です。

パケットヘッダ内アドレス情報1(NAPT)

このアドレス情報がルータを経由すると以下のようになります。

パケットヘッダ内アドレス情報2(NAPT)

ホストが接続した際のNAPTテーブルの中身を以下に示します。

NAPTテーブル1

複数のホストが接続した際のNAPTテーブルの中身を以下に示します。

NAPTテーブル2

ポート番号を含めた情報を持っておけばインターネット上のサーバにアクセスし、応答が返ってきてもポートも一緒に指定している為、リクエストを投げたホストがどこのホストだったのかを特定する事が出来ます。
このようにしてグローバルIPアドレスが一つでもLAN内のホストがインターネットに接続出来るようになります。
別のLAN間でも同様の仕組みで通信をしています。

The following two tabs change content below.

kadokura

最新記事 by kadokura (全て見る)

 - ネットワーク

Loading Facebook Comments ...

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


画像で表示される認証コードを入力して下さい。

CAPTCHA


  関連記事

グローバルIP範囲
IPアドレスについて

今回はネットワークのお話をしたいと思います。 IPアドレス(v4)とは? IP( …

MAC形式
MACアドレス

今日はMACアドレスのお話をします。 MACアドレス MACアドレスとは、個々の …