NAT(Network Address Translation)は、IP パケットのアドレスを変換する技術です。社内や家庭のネットワークで使うプライベート IP アドレスを、インターネットで使えるグローバル IP アドレスに変換するのが代表的な使い方で、企業や家庭のネットワークで広く使われています。この記事では、Cisco ルータの NAT で使う Inside/Outside、Local/Global の4つの用語と、NAT の種類を整理します。
- NAT が、行きは送信元、戻りは宛先のアドレスを変換するしくみ
- Inside local/Inside global/Outside local/Outside global の意味
- スタティック NAT、ダイナミック NAT、PAT(オーバーロード)の違い
NAT(ネットワークアドレス変換)とは
NAT は、ネットワーク上の IP アドレスを変換する技術です。一般的には、企業や家庭の中で使うプライベート IP アドレスを、インターネットで通信できるグローバル IP アドレスに変換します。この変換によって、内部のネットワークの機器がインターネットにアクセスできるようになります。
プライベート IP アドレスは、組織の中で自由に使えるアドレスで、次の範囲が決められています。組織の中ではルーティングできますが、インターネットには流せません。
| 範囲 | プレフィックス |
|---|---|
| 10.0.0.0〜10.255.255.255 | 10.0.0.0/8 |
| 172.16.0.0〜172.31.255.255 | 172.16.0.0/12 |
| 192.168.0.0〜192.168.255.255 | 192.168.0.0/16 |
NAT を使うと、内部のたくさんの機器が少ないグローバル IP アドレスを使い回せるので、IPv4 アドレスの枯渇への対策として重要な役割を果たしています。また、外部からは内部の機器の本当のアドレスが見えなくなります。
NAT のしくみ
NAT は、インターネットへの接続を提供するルータやファイアウォールで動きます。ルータは、内部から外部へ送るパケットの送信元アドレスを変換し、外部から戻ってきたパケットの宛先アドレスを元に戻します。こうして、内部の機器と外部のサーバの通信が成り立ちます。
この記事の図のアドレス(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 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 が違うアドレスになります。
多くの場合、Inside local はプライベートアドレス、Inside global はグローバルアドレスです。ただし、local/global は「どちら側から見たか」を表す言葉で、プライベートかグローバルかを表すものではありません。例えば検証環境では、Inside global にプライベートアドレス(192.168.34.3 など)を使うこともあります。
NAT の種類とユースケース
NAT にはいくつかの種類があり、それぞれ向いている使い方が違います。
| 種類 | 変換 | 変換後のアドレス |
|---|---|---|
| スタティック NAT | 1対1(固定) | 設定で決めたアドレス |
| ダイナミック NAT | 1対1(その都度) | プールの空いているアドレス |
| PAT(オーバーロード) | 多対1 | 1つのアドレスを、ポート番号で区別して共有 |
スタティック 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)
まとめ
| 項目 | 内容 |
|---|---|
| NAT | IP アドレスを変換する技術。行きは送信元、戻りは宛先を変換する |
| 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 の表示が読みやすくなります。
コメント