私有地址如下:
10.0.0.0 – 10.255.255.255 (10.0.0.0/8),
172.16.0.0 – 172.31.255.255 (172.16.0.0/12),
192.168.0.0 – 192.168.255.255 (192.168.0.0/16)
NAT对于ICMP协议的影响
对于icmp协议,不仅icmp packet的header的地址需要做nat,它的payload也需要做nat,因为payload中有错误信息相关的IP address。然而,任何的改变都需要重新计算icmp header和IP header的checksum。对于ICMP echo request/reply,里面有个query identifier用来标示一个echo message,而这个query identifier对应于TCP port,所以对于port nat,也需要改变该query identifier,故需要计算icmp header的checksum。
NAT对于FTP协议的影响
问题来自于FTP PORT command 和 PASV response,因为这两个命令包含用ASCII编码的IP/port pairs,所以做nat时,这些ASCII编码的IP/port pairs也需要转换,而转换后的ip/port pairs可能改变了长度,这样会导致整个packet的payload 长度发生变化,这会影响到tcp的序列号,所以nat后,需要改变tcp的序列号和应答号,还有校验和。
(待续)
[此为原创,转载请标明出处,谢谢!]
原文地址:http://blog.csdn.net/wfhh000/article/details/43833811