NAT
ネットワークの境界などで、IPパケットの送信元IPアドレスや宛先IPアドレスを別の値へ変換する技術である。アドレスだけを変える方式と、ポート番号も併せて変えるNAPTを区別する。
イマシルちゃんの解説
社内で使うIPアドレスを、そのままインターネットでは使えない場合があるよ。
NATは、境界のルータなどが通信中のアドレスを書き換える仕組みなんだ。
外へ出すときは送信元IPアドレスを外部で使える値に変え、返事が戻ると社内の端末へ届けられる形に戻すよ。
逆に、公開用のアドレスへ届いた通信の宛先IPアドレスを、内部サーバのアドレスへ変える使い方もあるんだ。
異なるアドレスの範囲をつなぐのに便利だけれど、どこへ転送するかを決める経路設定や、通信を許可する設定も必要になるよ。
この解説はわかりやすかったですか?
より深い解説
アドレスを変換して往復をつなぐ
NATはNetwork Address Translationの略である。狭い意味のBasic NATは、IPアドレスを別のIPアドレスへ対応付ける。TCPやUDPのポート番号も使って多数の端末に一つの外部アドレスを共有させる方式がNAPTである。製品によっては、両方をまとめてNATと呼ぶ。
IPv4のプライベートIPアドレスは組織内などで使う範囲であり、インターネットへそのまま経路広告されるアドレスではない。外部へ接続する境界で、グローバルIPアドレスへ変換する用途が代表的である。ただし、NATの技術自体がこの組合せだけに限定されるわけではない。
例えば内部端末の10.20.0.10を、説明用の外部アドレス198.51.100.10へ対応付ける。外向きのパケットでは送り手を表す欄を変換し、返ってきたパケットでは届け先を表す欄を元の端末へ戻す。変換前後の対応を使うことで、別のアドレスでやり取りした応答を内部へ届けられる。
送信元を変えるか、宛先を変えるか
| 方式 | 書き換える欄 | 主な用途 |
|---|---|---|
| SNAT(送信元NAT) | 送信元IPアドレス | 内部から外部へ接続するときのアドレス変換 |
| DNAT(宛先NAT) | 宛先IPアドレス | 公開アドレスへの通信を内部サーバへ届ける |
例えば公開アドレス198.51.100.20のTCP 443番へ届いた要求を、内部サーバ10.20.0.20へ届けたい場合、DNATで届け先を変更する。戻りの応答にも逆方向の変換が必要である。特定のポートだけを内部へ対応付ける設定は、ポート転送とも呼ばれる。
宛先を書き換える処理と、書き換え後の宛先へ転送する経路検索は別である。 また、NATの規則を作っても、ファイアウォールがその通信を許可していなければ接続できない。
対応を固定するか、必要なときに割り当てるか
| 対応付け | 内容 |
|---|---|
| スタティックNAT | 内部と外部のアドレスの対応を固定する |
| ダイナミックNAT | 用意した外部アドレスの集合から、必要な対応を割り当てる |
固定か動的かという区分と、送信元か宛先かという区分は観点が異なる。外部から接続を開始する公開サーバでは、利用者が指定できる固定の対応を用意することが多い。
通信の保護との関係
IPv6のグローバルアドレスで端末同士が到達できる構成では、IPv4のアドレス不足を補うためのNAPTを必要としない。しかし、アドレス変換が不要でもファイアウォールによる通信の許可・拒否は必要である。外部から到達可能なアドレスを持つことと、すべての通信を許可することは別である。
NATはパケットの内容を暗号化する機能でもない。さらにFTPやSIPのようにメッセージ内へアドレスを埋め込むプロトコルでは、ヘッダーの変換だけで整合が取れない場合がある。利用する通信方式と変換装置の対応を確認する。