Broadband Watch logo

無線LANルータ編
第18回:NATとNAPT


 ルータを利用することで、1本のインターネット回線を複数台のクライアントが利用できます。その際に重要になるのが「NAT」と「NAPT」です。厳密に言えば、2つの意味合いは異なりますが、現在では同じ意味で使用されています。


1回線で複数クライアントのインターネット利用を可能にするNATとNAPT

 前回取り上げたポートフォワーディングは指定ポートにパケットを転送する仕組みでしたが、今回取り上げるNATとNAPTはその逆を行なうものになります。NATは「Network Address Translation」、NAPTは「Network Address Port Translation」の略称で、今回はこれらについて順に説明していきたいと思います。

 例えばインターネットを介して、図1のようにサーバーと1台のクライアントが直接接続されているケースを考えます。ここでクライアントがサーバーにリクエストのパケットを出す場合、そのパケットの中には「発信元(from)」と「自分のIPアドレス(aaa.bbb.ccc.ddd)」の情報が含まれています。パケットを受け取ったサーバーは、どこからのリクエストかを判断し、返答する場合にはそれを「宛先(to)」にして送り出します。


図1:サーバーとクライアントが直結している場合

 次に、複数台のクライアントがルータを介する場合を図2に示しました。この場合、各クライアントにはプライベートIPアドレスが割り当てられることになります。従って、クライアントがリクエストを出す場合には、自分のプライベートIPアドレスをパケットの中に入れて送信することになります。

 ところが、こうした発信元情報が送られても、サーバー側は困ってしまいます。第6回でも説明しましたが、プライベートIPアドレスはインターネットの接続では使用されない前提があるからで、この状態ではサーバーは結果を送り返す先が見つからないからです。従って、プライベートIPアドレスではパケットを送り出せても、サーバーからの返事を受け取ることはできません。

 これを避けるため、ルータは送り出すときにパケット内部の「発信元」を、自分のWAN側で使用しているグローバルIPアドレスに書き換えます。一方、サーバーから受け取ったパケットについては、その宛先がルータのグローバルIPアドレスになっているので、これもクライアントごとのプライベートIPアドレスに書き換えてから、LAN側に送り出します。これによって、複数のクライアントが1本のインターネット回線を同時に使用しても正しく通信できるわけです。こうした仕組みをNATと言います。これは「Network Address Translation」の略称で、その名の通りネットワークアドレスを変換する仕組みというわけです。


図2:ルータが介在する場合(NAT)

 さて、これで上手くいけば問題はないのですが、実は少しだけ落とし穴があります。図2で、送り出すパケット(1~3)は、送り出す先が1カ所なので良いのですが、受け取ったパケット(4~6)を正しくクライアントに送り出すにはどうしたら良いでしょう。

 実はこれに関しては、IPアドレスだけでは判断できません。これを解決するために、ポート番号もまた、変換の対象にする必要があるからです。図1と図2では省略していますが、図3で示したようにパケットの中にはポート番号も含まれています。NATの場合、原則としてポート番号は書き換えないので、1のパケットがポート1000番から来たら、アドレスは書き換えてもポートは1000番のままです。従って、2台以上が1000番のポートを使った場合は区別できません。

 NAPTではこれに対し、LAN上のクライアントPCからきたパケットのポート番号とは無関係に、新規に発信元ポートを作成し、それぞれ異なったポートからサーバーにリクエストを送ります。そして、サーバーから来たレスポンスの中にあるポート番号から、LAN側の各クライアントに正しくパケットを送り返すという作業を行ないます。単にネットワークアドレスだけでなくポート番号まで変換することで、複数のクライアントのリクエストを正しく処理できるというわけです。


図3:ルータが介在する場合(NAPT)

 このようにNATとNAPTでは機能的な違いがありますが、実際にNAPTに対応した製品を見てもNATだけが表記がされていて、NAPTという表記がないケースが非常に多いのが現実です。これは「NATだけで用が足りるケースはなく、現実問題としてNAPTの機能が必須なので誤解しようがない」「NAPTも広義にはNATの一種と考えられる」などの事情が関係しているのではないかと想像されます。


関連情報

URL
  無線LANルータ編 索引ページ
  http://bb.watch.impress.co.jp/cda/koko_osa/17754.html

2007/09/03 10:59

槻ノ木 隆
 国内某メーカーのネットワーク関係「エンジニア」から「元エンジニア」に限りなく近いところに流れてきてしまった。ここ2年ほどは、企画とか教育、営業に近いことばかりやっており、まもなく肩書きは「退役エンジニア」になると思われる。
Broadband Watch ホームページ
Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.