NAPTとは
NAPTはIPマスカレードともいいます。ネットワーク機器の各メーカーによって呼び方は微妙に変わってきます。NAPTは複数のIPアドレスを1つのIPアドレスに変換する仕組みのことです。LAN内に複数の端末があって、すべての端末からインターネットに接続する場合、複数のプライベートIPを1つのグローバルIPに変換する仕組みがNAPTです。
NAPTでIPが変換された後、パケットの接続元情報は、プライベートIPではなくグローバルIPになってインターネットに出て行きます。
NAPTの変換は動的に行ってくれます。LAN内に新しい端末が追加になったからといって、NAPTテーブルに新しい端末用のIPを手動で追加しないといけないといったことはありません。そんな冗長なことをするわけがないので、基本的に初期導入時に一度設定すればそれだけです。
NATとは
NAPTのIP変換が、1対多で行われるのに対し、NATは1対1で行われます。NAT変換はWAN側からLAN側に接続するときに利用されます。例えば、セキュリティのために、任意のポート番号で外部から内部に接続したいような場合にNATが利用されます。
WAN側からルータにログインしたい場合、ポート番号80で接続するとセキュリティ的にあまりよろしくないと思った場合は、NATで任意のポート番号で接続することができます。
ポート80番を隠して、例えば1000番などの任意のポート番号で接続したい場合、NATで1000番から80番に変換してやると、ポート番号1000番を指定して、ポート番号80番のルータに接続することができるます。
ルータのWebサーバーのポート番号を1000番に変更したわけではありません。ルータのWebサーバーのポート番号はあくまでも元の80番のままです。NATを利用することで、1000番で接続できるようになるということです。ポート番号1000番は内輪で決めた秘密の番号です。この番号で接続することで、セキュリティを高めることができます。
昔の話でもしようか・・・
その昔、IPsecを使ったインターネットVPNの設定を行った経験があります。その時、双方のルータでNAT変換の仕様が異なることが原因で、VPN通信がうまく行えないトラブルに遭遇したことがあります。
そのときは、センター側はJuniper Networks製のルータを導入し、拠点側には富士通製のSi-Rシリーズのルータを導入していました。(今思ってもこの組み合わせはありえない!(笑))
センター側と拠点側とでNAT変換の仕様が異なっていたため、VPNのセッションがうまく張れないといったトラブルに見舞われました。
NATの仕様はハードに組み込まれているため、コンフィグの設定を変えてどうこうできるといった問題ではありません。結局、拠点側のルータを別のメーカーに変更することで事を終えました。(古川電工製の今はなきMUCHOというメキシカン風のルータだったような・・・)
そもそも、TCP/IPの仕様はIETFという団体によって標準化されています。しかし、その時は知らなかったのだが、NATの仕様はTCP/IPの仕様には含まれていないのです。NATの仕様は各社メーカーによって、割とまちまちだったりするようです。
異なるメーカーのルータどうしでVPNを構築する場合、各社のNATの仕様の相性の違いで、通信が行えないといったことがまれに発生します。解決させるすべはありません。
教訓としてはセンター側と拠点側とでは、同じメーカーのルータを使いましょうということになります。NAT変換の仕様には相性というものが存在します。
メーカー各社はどこのメーカーのルータとは動作保証してしますといった情報は一切流していません。そもそも、他社のルータとNAT変換させるなんてことはまったく想定していないもようです。
クラウドがどんどんと浸透してきて、オンプレ環境を構築する機会がどんどんと減ってきている昨今です。このような経験をされる方は、もはや絶滅危惧種に指定されているかも分かりませんが、まあ、参考にしてください。