$Date: 2023/07/06 20:30:27 $
Twice NATは、 RFC2663で定義されている用語で、 始点アドレスと終点アドレスの両方を書き換える方式を意味します。
この方式を使う典型例は、 下図のように、 プライベートアドレスが衝突しているネットワークを扱うときです。 プライベートアドレスの衝突は、企業の合併によるネットワークの再編で、 しばしば発生しています。 このケースで、Router 1の設定は変更できず、 Router 2の設定だけを変更できるものと想定します。 このとき、Router 2では、N1に対してN2のアドレスを偽り、 N2に対してN1のアドレスを偽る必要があります。
従来のファームウェアで、 この要件を満たそうとするならば、 LAN1とLAN2の両方にNATを設定する必要があります。例えば、 LAN1で終点アドレスを変換し、LAN2で始点アドレスを変換するというように、 段階的に両方のアドレスを変換していきます。
しかしながら、この方法では、変換するタイミングに時間差があるため、 過渡的に始点アドレスと終点アドレスの両方が192.168.0.0/24になってしまいます。 従来のファームウェアでは、 ちょうどルーティングのタイミングでこのような状態になるので、 正しくルーティングができません。
新しいファームウェアでは、始点アドレスを変換するディスクリプターと、 終点アドレスを変換するディスクリプターを定義し、 それらを同じインタフェースに適用することで、この問題を回避します。 具体的には、次のような設定になります。
ip lan2 nat descriptor 1 reverse 2 nat descriptor type 1 nat nat descriptor address outer 1 172.16.2.1-172.16.2.254 nat descriptor static 1 1 172.16.2.1=192.168.0.1 254 nat descriptor type 2 nat nat descriptor address outer 2 172.16.1.1-172.16.1.254 nat descriptor static 2 1 172.16.1.1=192.168.0.1 254
1行目のコマンドの「reverse」は、 NATディスクリプターを逆方向に適用するキーワードです。 従来の実装では、インタフェースの外側がNATの外側に対応していましたが、 このキーワードの後ろに設定したディスクリプターについては、 インタフェースの外側がNATの内側に対応します。 ヤマハルータでは、前者を順方向、 後者を逆方向と呼びます。 なお、「reverse」を使用してNATディスクリプターを双方向で適用させる場合は、 順方向と逆方向の両側のNATディスクリプターのタイプを「nat」にする必要があります。 Twice NATではIPマスカレードを使用することはできません。
上記の設定では、まず順方向で1のディスクリプターを適用し、 その後、逆方向で2のディスクリプターを適用します。 この設定にしたがえば、N1からはN2が172.16.2.0/24に見え、 N2からはN1が172.16.1.0/24に見えるようになります。例えば、N1からN2に対して、 次のようなパケットを送信すると、
始点アドレス: 192.168.0.1 終点アドレス: 172.16.2.1
N2に届くときには、次のように変換されることになります。
始点アドレス: 172.16.1.1 終点アドレス: 192.168.0.1
この機能追加に対応して、 ip INTERFACE nat descriptorコマンドの仕様を次のように変更します。
IPマスカレードタイプのNATディスクリプターでは、Twice NAT機能を使用することはできません。
IPsecトンネル経由の通信では、Twice NAT機能を使用する場合でも、変換後の宛先IPアドレスがルーター自身のIPアドレスと同じパケットは転送されず破棄されます。このような場合は、トンネルの対向側でもTwice NAT機能を使用して異なるIPアドレスに見せかける、などの設定が必要となります。
以下の機種およびファームウェアで、Twice NAT機能が動作します。
機種 | ファームウェア |
---|---|
vRX VMware ESXi版 | すべてのリビジョン |
vRX Amazon EC2版 | |
RTX3510 | |
RTX1300 | |
RTX1220 | |
RTX830 | |
NVR510 | |
NVR700W | |
RTX1210 | |
RTX5000 | |
RTX3500 | |
FWX120 | |
RTX810 | |
NVR500 | |
RTX1200 | |
SRT100 | |
RT58i | |
RTX3000 | |
RT107e | Rev.8.03.42以降 |
RTX1500 | Rev.8.03.37以降 |
RTX1100 |