
【図解】NATとは?プライベートIPでインターネットにつながる仕組みから、ヤマハルーターのIPマスカレード・VPNまで徹底解説
自宅や会社のパソコンで、こんなIPアドレスを見たことはないでしょうか?
192.168.100.10
これはプライベートIPアドレスと呼ばれるものです。
ところが、このIPアドレスのパソコンから、Googleを開いたり、YouTubeを見たり、インターネットを普通に利用できます。
ここで、少し不思議に思いませんか?
というのも、プライベートIPアドレスは、インターネット上でそのまま通信するためのアドレスではないはずだからです。

それなのに、なぜインターネットへアクセスできるのでしょうか?
実は、その裏側ではルーターが、ある重要な仕事をしています。
それが、今回のテーマである NAT(ナット) です。
NATは、普段のインターネット接続だけでなく、サーバー公開やVPNの構築にも深く関係しています。
今回はNATの基本からIPマスカレードの仕組み、ヤマハルーターでの設定例、そして「なぜVPNはNAT環境で問題が起きやすいのか?」まで、順番に解説していきます。
1. そもそもプライベートIPアドレスとは?
まずは、NATが必要になる理由から考えてみましょう。
IPアドレスには、大きく分けてグローバルIPアドレスとプライベートIPアドレスがあります。
グローバルIPアドレスは、インターネット上で通信相手を識別するためのアドレスです。
一方、プライベートIPアドレスは、自宅や会社などの内部ネットワークで使用するためのアドレスです。
例えば、次のようなネットワークを考えてみます。

パソコンAとパソコンBは、どちらもプライベートIPアドレスを使っています。
この2台がインターネットへアクセスするとき、ルーターは内部のIPアドレスを、そのままインターネットへ送り出すわけではありません。
ここでNATが登場します。
2. NATとは、IPアドレスを変換する仕組み
NATは、Network Address Translationの略です。
日本語では「ネットワークアドレス変換」と呼ばれます。
名前のとおり、IPアドレスを書き換える技術です。
例えば、次のような通信を考えてみましょう。
パソコン:192.168.100.10
ルーターのグローバルIP:203.0.113.10
アクセス先のWebサーバー:198.51.100.20
※IPアドレスは説明用の例です。
パソコンからWebサーバーへ通信するとき、最初の送信元IPアドレスは 192.168.100.10 です。
ルーターは、その送信元IPアドレスを自身のグローバルIPアドレスである 203.0.113.10 に変換します。

Webサーバーから見ると、通信相手は 203.0.113.10 です。
そのため、返事もこのグローバルIPアドレスに送られます。
ルーターは戻ってきたパケットを受け取ると、今度は宛先を内部のパソコンのIPアドレスに変換して届けます。
これがNATの基本的な働きです。
ただし、ここで一つ疑問が生まれます。
パソコンが1台ではなく、10台、20台あったらどうなるのでしょうか?
3. 1つのグローバルIPアドレスを、複数のパソコンで共有できる理由
自宅や会社では、複数の端末が同時にインターネットを利用します。
ところが、ルーターに割り当てられているグローバルIPv4アドレスは、
1つだけという環境も一般的です。
では、ルーターはどうやって、戻ってきた通信を正しいパソコンに振り分けているのでしょうか。
ここで登場するのが、IPマスカレードです。
IPマスカレードは、IPアドレスだけでなく、TCPやUDPのポート番号も利用して、複数の端末の通信を区別する仕組みです。
一般にはNAPT(Network Address Port Translation)とも呼ばれます。
例えば、パソコンAとパソコンBが、同じWebサーバーへアクセスするとします。

|※ポート番号は仕組みを説明するための例です。実際の割り当ては通信状況などによって変わります。
元の通信では、両方のパソコンが同じ送信元ポート番号を使っていたとしても、ルーターは外側で異なるポート番号を割り当てることで区別できます。
ルーターは、この変換内容を内部の管理情報として記録しています。
これを一般にNATテーブルや変換テーブルと呼びます。
Webサーバーから 203.0.113.10:40001 に返事が来れば、パソコンAへ。
203.0.113.10:40002 に返事が来れば、パソコンBへ。
このように、変換テーブルを参照して、正しい端末へ通信を届けます。
つまり、IPマスカレードは、1つのグローバルIPアドレスを、複数の端末で共有するための仕組みなのです。
4. NATとIPマスカレードは何が違う?
ここまで読むと、「NATとIPマスカレードは同じものでは?」と思うかもしれません。
厳密には、少し違います。
ざっくり整理すると、両者には以下のような違いがあります。
NAT(1対1変換)
IPアドレスだけを変換する仕組み。1つのグローバルIPアドレスに対して、1台の機器しか同時に通信できません。IPマスカレード(1対多変換)
IPアドレスに加えてポート番号も組み合わせて変換する仕組み。
1つのグローバルIPアドレスを、社内や家庭内の複数台の機器で共有して同時にインターネット通信ができます。
※「IPマスカレード」はLinux発祥の通称(機能名)であり、技術規格上の正式名称は NAPT(Network Address Port Translation) や PAT と呼ばれます。

普段、自宅や会社で「NATを使ってインターネットに接続している」と言う場合、実際にはIPマスカレードを使っていることが多いです。
ヤマハルーターでも、IPマスカレードはNATディスクリプター機能の一つとして扱われています。
5. ヤマハルーターでIPマスカレードを設定する
では、実際にヤマハルーターでは、どのように設定するのでしょうか。
ここではRTX830を例に、LAN側が 192.168.100.0/24 のネットワークで、PPPoE接続を使ってインターネットへアクセスする構成を考えます。
設定の中心になるのが、次のコマンドです。
nat descriptor type 1 masquerade
これは、NATディスクリプター番号1の変換方式として、IPマスカレードを指定する設定です。
そして、PPPoE接続に利用するインターフェースへ、次のように適用します。
pp select 1
ip pp nat descriptor 1
この設定によって、PPインターフェースを通過する通信に、NATディスクリプター番号1が適用されます。
ここでのポイント
nat descriptor type は変換方式の指定、ip pp nat descriptor はその変換設定をPPインターフェースへ適用するための指定です。
なお、これはIPマスカレードに関する主要部分を抜き出した例です。
実際にインターネット接続するには、PPPoEの接続設定、IPアドレス、
デフォルトルート、DNS、必要なフィルターなども別途必要です。
また、IPoE方式のIPv4 over IPv6接続では、利用するサービスや方式に応じて、NATディスクリプターをトンネルインターフェースなどへ適用する場合があります。
「NATの設定を書いたのに、通信に使っているインターフェースへ適用していなかった」というミスには注意が必要です。
6. NATがあれば、外部からの通信も自由に届く?
ここまで、LAN内のパソコンからインターネットへアクセスする場合を見てきました。
では、逆にインターネット側から、LAN内のパソコンへアクセスしたい場合はどうでしょうか。
例えば、社内にあるWebサーバーをインターネットへ公開したいとします。LAN内のサーバーのIPアドレスは 192.168.100.50 です。
外部からルーターのグローバルIPアドレスにアクセスしたとしても、ルーターは、それだけではLAN内のどの端末へ届ければよいのか判断できません。
内部から開始した通信なら、変換テーブルに記録があります。
しかし、外部から新しく始まる通信には、その記録がありません。
そこで利用するのが、静的IPマスカレードです。
例えば、「グローバルIPのTCP 443番宛の通信は、192.168.100.50のTCP 443番へ転送する」という対応付けを、あらかじめ設定しておきます。

インターネットからのアクセスを、203.0.113.10:443 宛とすると、
ヤマハルーターは、宛先IPアドレスとポート番号を変換し、192.168.100.50:443宛てにします。
結果、LAN内のWebサーバー192.168.100.50にアクセスが可能になります。
ヤマハルーターでは、例えば次のように設定します。
nat descriptor masquerade static 1 1 192.168.100.50 tcp 443
これは、NATディスクリプター番号1に対して、TCP 443番の静的IPマスカレード設定を追加する例です。
ただし、実際のサーバー公開には、必要な受信フィルターの許可やサーバー側のセキュリティー対策も欠かせません。
NATの転送設定だけで、すべての通信が許可されるわけではない点に注意してください。
ちなみに、上記の例は、外部からアクセスするポート番号と、内部のポート番号が一緒でしたが、別々にすることができます。
図は、その例です。

この場合は、インターネットからのアクセスを、203.0.113.10:8443 宛とすると、ヤマハルーターは、宛先IPアドレスとポート番号を変換し、192.168.100.50:443宛てにします。
この場合のヤマハルーターの設定例は、
nat descriptor type 1 masquerade
nat descriptor masquerade static 1 1 192.168.100.50 tcp 8443=443
となります。
7. なぜIPsec VPNとNATは相性が悪いのか?
ここからは、少し応用的な話です。
NATの仕組みを理解すると、VPNでよく遭遇する問題の理由も見えてきます。
例えば、ヤマハルーター同士でIPsec VPNを構築するとしましょう。
ルーターが直接インターネットに接続されている場合は問題なくVPNを構築できたのに、片方のルーターを別のルーターの配下へ移動した途端、VPNがつながらなくなる。

このような経験はないでしょうか。
その原因の一つが、IPsecで使われるESPと、NATの仕組みの相性です。
ESPにはTCPやUDPのポート番号がない
一般的なインターネット通信では、TCPやUDPのポート番号を使って通信を区別・多重化します。
しかし、IPsec VPNの暗号化データを運ぶESPはTCPでもUDPでもなく、
IPプロトコル番号50を使用します。
ESPヘッダーにはTCP/UDPのような送信元・宛先ポート番号がありません。通信を識別する「SPI」という値は含まれるものの、これはIPマスカレードが管理に用いるポート番号とは仕様が異なります。
このため、ポート番号の変換と照合を前提とする一般的なIPマスカレードでは、外から戻ってきたESPパケットをどの内部端末へ届ければよいか判断できず、通信を成立させることができません。

ただし、ESPがNATを絶対に通過できないという意味ではありません。
NAT装置の実装や静的な対応付けなどによって扱える場合もあります。
問題は、一般的なTCP・UDPのIPマスカレードと同じ方法では処理できないことです。
8. 解決策は、ESPをUDPで包む「NATトラバーサル」
そこで登場するのが、NATトラバーサルです。
NATトラバーサルは、NAT環境を越えてIPsec VPNを利用するための技術です。
その代表的な仕組みが、ESPをUDPでカプセル化することです。
ポート番号を持たないESPを、外側からUDPのヘッダーで包みます。
すると、途中のNAT装置はUDPのポート番号を利用して変換テーブルを管理できるようになります。

一般的なIPsecのNATトラバーサルでは、IKEの通信をUDP 500番で開始し、経路上にNATがあることを検出すると、UDP 4500番を利用します。
ESPもUDPでカプセル化して送受信することで、NAT装置を通過しやすくなります。
ヤマハルーターでNATトラバーサルを有効にする設定例は、次のとおりです。
ipsec ike nat-traversal 1 on
この例の 1 は、セキュリティーゲートウェイの識別子です。
VPN設定で使用している識別子に合わせて指定します。
具体的には、
ipsec sa policy 101 1 esp aes-cbc sha-hmac
上記の設定行例での2つ目の数字 1 がセキュリティーゲートウェイ識別子です。これと、ipsec ike nat-traversal 1 on の 1 が対応します。
なお、実際にNATトラバーサルが利用されるかどうかは、対向機器の対応状況や通信経路上のNATの有無などによります。
また、NATトラバーサルを有効にしただけで、あらゆるNAT環境のVPNが必ずつながるわけではありません。
上位ルーターのフィルター、UDP 4500番の通過、VPNの開始方向、対向側の設定なども確認する必要があります。
9. NATの設定は正しいのに通信できない? 処理順序にも注意
NATに関連するトラブルで、もう一つ覚えておきたいのが、ルーター内部の処理順序です。
ヤマハルーターでは、NATディスクリプターとIPフィルターの処理順序が、パケットの受信方向と送信方向で異なります。
インターフェースで受信したパケットは、NATディスクリプターの処理を受けてから、通常のIPフィルターの処理を受けます。
反対に、インターフェースから送信するパケットは、通常のIPフィルターの処理を受けてから、NATディスクリプターの処理を受けます。

ここで、先ほどのWebサーバー公開を思い出してください。
インターネットから 203.0.113.10:443 宛に届いたパケットは、
静的IPマスカレードによって 192.168.100.50:443 宛へ変換されます。
その後に受信フィルターで判定されるため、フィルターを設定するときには、NAT変換後の宛先IPアドレスを意識する必要があります。

外部からWebサーバーへ届く通信
受信
203.0.113.10:443 宛のパケットを受信NAT変換
宛先を192.168.100.50:443へ変換受信フィルター
変換後の宛先アドレスを使って通過・遮断を判定LAN内のWebサーバーへ転送
192.168.100.50へ届ける
NATの設定だけを見ていると、「転送先は正しいのに、なぜ通信できないのだろう?」と悩んでしまうケースもあるかもしれません。
しかし、NATとフィルターの処理順序を理解していれば、確認すべきポイントが見えてきます。
10. まとめ:NATは、インターネット接続を支える重要な仕組み
今回は、NATの基本からIPマスカレード、ヤマハルーターでの設定例、
そしてIPsec VPNとの関係まで解説しました。
ポイントを振り返ってみましょう。
NATは、IPアドレスを変換する仕組み。
IPマスカレードは、IPアドレスとポート番号を使って、複数の端末でグローバルIPアドレスを共有する仕組み。
NATの変換テーブルによって、戻ってきた通信を正しい端末へ届けられる。
外部からLAN内のサーバーへ通信を転送する場合は、静的IPマスカレードなどを利用する。
ESPにはTCP・UDPのポート番号がないため、一般的なIPマスカレードとの間で問題が起きることがある。
NATトラバーサルでは、ESPをUDPで包むことで、NAT環境でのIPsec通信を可能にする。
普段は意識することの少ないNATですが、インターネット接続からサーバー公開、VPNまで、さまざまな場面で活躍しています。
そして、NATの仕組みを理解しておくと、単に設定コマンドを覚えるだけでは分からなかったトラブルの原因も、論理的に考えられるようになります。
例えば、VPNがつながらないとき。
「UDP 4500番は通過できているか?」
「上位ルーターでNATが行われていないか?」
「NATの変換後のIPアドレスに対して、フィルターが適切に設定されているか?」
このように、パケットがルーターの中でどのように処理されているのかを
想像できれば、トラブルシューティングの大きな助けになります。
NATは、IPアドレスを書き換えるだけの技術ではありません。プライベートネットワークとインターネットをつなぐ、重要な橋渡し役なのです。