広告
広告
https://www.7key.jp/nw/tcpip/tcp/nat.html#what
NATはネットワークアドレス変換と訳され、1つのグローバルアドレスを複数のホストで共有する際に用いられる技術です。NATはローカルアドレスとグローバルアドレスを透過的に相互変換することによって実現され、ローカルアドレスしか割り当てられていないホストからでもインターネットに接続されている機器と通信をすることができます。このアドレスの変換処理をNATと呼びます。通常はNAT対応のルータか専用のハードウェア――NAT boxなどと呼ばれます――でアドレスの変換処理は行われます。
ローカルアドレスしか割り振られていないホストがインターネットへアクセスをしようとした場合、ローカルアドレスからグローバルアドレスに向けてパケットが送信されることとなります。この際、NAT対応機器はこのパケットのアドレス変換処理を開始します。具体的には、アドレスプールから他のホストが使用していないグローバルアドレスを取り出し、これを発信もとのローカルアドレスと対応付けします。そして以降はこのローカルアドレスから発信されたパケットの送信元アドレスフィールドを対応付けされているグローバルアドレスに書き換えて、あたかもグローバルアドレスから発信されたパケットのようにみせかけます。また、インターネット側から戻ってきたパケットに対しては、作成済みの対応表を参照して送信元となるグローバルアドレスから送信先となるローカルアドレスを探します。そしてパケットの宛先アドレスフィールドを書き換えてからローカルルーティングを行います。最後にアプリケーションが全てのコネクションをクローズしたことを検出すると、グローバルアドレスとローカルアドレスの対応を解除し、アドレスプールへグローバルアドレスを返却します。
更に、NATではパケットの中身まで検査し、FTPのようにデータ中にIPアドレスが含まれているプロトコルの場合は、その内容も適時修正するものもあります。ただし、そのNAT対応機器にとって未知のプロトコルには対応できない欠点もあります。
以上のように、NATを使えば少ないグローバルアドレスしか保持していなくとも、複数のホストが同時にインターネットへアクセスすることができ、なおかつ各ホストに対してグローバルアドレスを割り振る必要もありません。また、ローカルネットワーク内の各ホストをインターネットから隔離することにもつながりますのでセキュリティ的にも望ましい方法と言えるでしょう。ただし、用意されたIPアドレスの数を超えるホストが同時にインターネットにアクセスすることはできないデメリットもあります。このデメリットを解決するために、TCPやUDPのポート番号も変換して1つのグローバルアドレスで複数のプライベートなホストをカバーするNAPTと呼ばれる技術も開発されています。
https://www.7key.jp/nw/tcpip/tcp/nat.html#care_p
https://www.7key.jp/nw/tcpip/tcp/nat.html#supplement
プライベートネットワーク上のサーバ等をインターネット等のグローバル空間に公開するケースで使われることが多いようです。
広告