NATの基本と用語整理:Inside / OutsideとLocal / Globalの違いを理解する

NAT(Network Address Translation)は、IP パケットのアドレスを変換する技術です。社内や家庭のネットワークで使うプライベート IP アドレスを、インターネットで使えるグローバル IP アドレスに変換するのが代表的な使い方で、企業や家庭のネットワークで広く使われています。この記事では、Cisco ルータの NAT で使う Inside/Outside、Local/Global の4つの用語と、NAT の種類を整理します。

この記事でわかること
  1. NAT が、行きは送信元、戻りは宛先のアドレスを変換するしくみ
  2. Inside local/Inside global/Outside local/Outside global の意味
  3. スタティック NAT、ダイナミック NAT、PAT(オーバーロード)の違い

NAT(ネットワークアドレス変換)とは

NAT は、ネットワーク上の IP アドレスを変換する技術です。一般的には、企業や家庭の中で使うプライベート IP アドレスを、インターネットで通信できるグローバル IP アドレスに変換します。この変換によって、内部のネットワークの機器がインターネットにアクセスできるようになります。

プライベート IP アドレスは、組織の中で自由に使えるアドレスで、次の範囲が決められています。組織の中ではルーティングできますが、インターネットには流せません。

範囲プレフィックス
10.0.0.0〜10.255.255.25510.0.0.0/8
172.16.0.0〜172.31.255.255172.16.0.0/12
192.168.0.0〜192.168.255.255192.168.0.0/16

NAT を使うと、内部のたくさんの機器が少ないグローバル IP アドレスを使い回せるので、IPv4 アドレスの枯渇への対策として重要な役割を果たしています。また、外部からは内部の機器の本当のアドレスが見えなくなります。

NAT のしくみ

NAT は、インターネットへの接続を提供するルータやファイアウォールで動きます。ルータは、内部から外部へ送るパケットの送信元アドレスを変換し、外部から戻ってきたパケットの宛先アドレスを元に戻します。こうして、内部の機器と外部のサーバの通信が成り立ちます。

Inside(内部) 自分が管理するネットワーク インターネット 内部の端末 NAT ルータ 外部のサーバ Outside(外部) 行き 送信元 192.168.1.10 送信元 198.51.100.1(変換) 戻り 宛先 198.51.100.1 宛先 192.168.1.10(元に戻す)
図1 行きは送信元を変換し、戻りは宛先を元に戻す

この記事の図のアドレス(198.51.100.0/24、203.0.113.0/24)は、説明用に決められた例示用のアドレスです。

NAT の4つの用語

NAT で扱うアドレスは、Inside/Outside と Local/Global の2つの言葉を組み合わせて呼びます。組み合わせによって、どのアドレスを指しているのかがわかります。Cisco ルータの show ip nat translations でも、この4つが列の見出しになっています。

Inside/Outside:機器がどちら側にいるか

用語意味
Inside自分が管理する内部のネットワーク側にいる機器(例:社内や自宅のネットワーク)。Cisco ルータでは ip nat inside を設定したインターフェースの側
Outside自分の管理外の外部のネットワーク側にいる機器(例:インターネットや外部のネットワーク)。ip nat outside を設定したインターフェースの側

Local/Global:どちら側から見たアドレスか

用語意味
Local内部のネットワークから見たアドレス(内部を流れるパケットに入っているアドレス)
Global外部のネットワークから見たアドレス(外部を流れるパケットに入っているアドレス)

4つの用語の組み合わせ

2つの言葉を組み合わせると、NAT で扱うアドレスの種類が決まります。内部の端末からインターネットのサーバへのパケットで見ると、次のようになります。

Inside(内部) 自分が管理するネットワーク インターネット 内部の端末 NAT ルータ 外部のサーバ Outside(外部) 内部を流れるパケット(local) 送信元192.168.1.10宛先203.0.113.10Inside localOutside local 外部を流れるパケット(global) 送信元198.51.100.1宛先203.0.113.10Inside globalOutside global NAT ルータで変換 Inside / Outside:その機器がどちら側にいるか local / global:内部と外部のどちら側から見たアドレスか
図2 内部と外部を流れるパケットと、4つの用語
用語意味図の例
Inside local内部の機器に割り当てたアドレス。内部から見た、内部の機器のアドレス192.168.1.10
Inside global外部から見た、内部の機器のアドレス。NAT で変換したあとのアドレス198.51.100.1
Outside local内部から見た、外部の機器のアドレス203.0.113.10
Outside global外部の機器に、その持ち主が割り当てたアドレス。外部から見た、外部の機器のアドレス203.0.113.10

ふつうの NAT は内部の機器のアドレスだけを変換するので、Inside local と Inside global は違うアドレスになり、Outside local と Outside global は同じアドレスになります。外部の機器のアドレスも変換する設定(ip nat outside source)をしたときだけ、Outside local と Outside global が違うアドレスになります。

local はプライベート、global はグローバル、とは限らない

多くの場合、Inside local はプライベートアドレス、Inside global はグローバルアドレスです。ただし、local/global は「どちら側から見たか」を表す言葉で、プライベートかグローバルかを表すものではありません。例えば検証環境では、Inside global にプライベートアドレス(192.168.34.3 など)を使うこともあります。

NAT の種類とユースケース

NAT にはいくつかの種類があり、それぞれ向いている使い方が違います。

種類変換変換後のアドレス
スタティック NAT1対1(固定)設定で決めたアドレス
ダイナミック NAT1対1(その都度)プールの空いているアドレス
PAT(オーバーロード)多対11つのアドレスを、ポート番号で区別して共有

スタティック NAT(Static NAT)

スタティック NAT は、IP アドレスを1対1で変換します。特定のプライベート IP アドレスを、固定のグローバル IP アドレスに対応させるので、外部から内部の特定の機器へのアクセスを許可する場合に向いています。

ユースケースの例:企業内の Web サーバをインターネットに公開するときに、スタティック NAT で内部のサーバのアドレスを固定のグローバル IP アドレスに変換し、外部からアクセスできるようにします。

>> 参考:CiscoルータでのスタティックNAT設定と検証方法

ダイナミック NAT(Dynamic NAT)

ダイナミック NAT は、内部のプライベート IP アドレスを、プールの中の空いているグローバル IP アドレスに、その都度対応させます。アドレスのプールが必要で、同時に外部と通信する内部の機器の数が、プールのアドレスの数を超えない場合に使えます。

ユースケースの例:複数のグローバル IP アドレスを持っていて、内部の機器ごとに別のグローバル IP アドレスで通信させたい場合に使います。

>> 参考:【NAT】ダイナミックNAT

オーバーロード NAT(PAT/NAPT)

オーバーロード NAT(PAT:Port Address Translation、NAPT とも呼びます)は、複数の内部の機器が同じグローバル IP アドレスを共有し、ポート番号で通信を区別します。1つのグローバル IP アドレスで、たくさんの内部の機器が同時にインターネットに接続できます。

ユースケースの例:一般的な家庭用ルータや企業のゲートウェイでは、インターネットへの接続のほとんどにこの方式が使われています。

>> 参考:【NAT】ポートアドレス変換(PAT)

まとめ

項目内容
NATIP アドレスを変換する技術。行きは送信元、戻りは宛先を変換する
Inside/Outsideその機器が、内部と外部のどちら側にいるか
Local/Globalそのアドレスが、内部と外部のどちら側から見たものか
よく変わるものInside local → Inside global。Outside local と Outside global はふつう同じ
種類スタティック(1対1固定)、ダイナミック(1対1プール)、PAT(多対1)

Inside/Outside と Local/Global の4つの用語を正しく理解しておくと、NAT の設定や show ip nat translations の表示が読みやすくなります。

コメント