两次NAT即Twice NAT,指源IP和目的IP同时转换,该技术应用于内部网络主机地址与外部网络上主机地址重叠的情况。
如图1所示,两次NAT转换的过程如下:
1. 内网Host A要访问地址重叠的外部网络Host B,Host A向位于外部网络的DNS服务器发送访问外网Host B的DNS请求,DNS服务器应答Host B的IP地址为1.1.1.1,DNS应答报文在经过Router时,进行DNS ALG,Router将DNS应答报文中的重叠地址1.1.1.1转换为唯一的临时地址3.3.3.1,然后再转发给Host A。
2. Host A访问Host B,目的IP为临时地址3.3.3.1,报文在经过Router时,Router检查到目的IP是临时地址,进行目的地址转换,将报文的目的IP转换为Host B的真实地址1.1.1.1,同时进行正常的NAT Outbound转换,将报文的源IP转换为源NAT地址池地址;Router将报文转发到Host B。
3. Host B回应Host A,目的IP为Host A的NAT Outbound地址池地址,源IP为Host B的地址1.1.1.1,报文在经过Router时,Router检查到源IP是重叠地址,进行源地址转换,将报文的源IP转换为对应的临时地址3.3.3.1,同时进行正常的目的地址转换,将报文的目的IP从源NAT地址池地址转换为Host A的内网地址1.1.1.1;Router将报文转发到Host A。
图2 内网多VPN情况下的两次NAT示意图





