6.3.5 NAT与应用交互

NAT对应用协议同样有一些影响。总体上讲,在应用协议中,如果发送的数据中包含有IP地址或协议端口号,那么,NAT就不能直接向内部主机转发数据报。

例如文件传输协议FTP使用TCP连接,并在文件传输过程中以ASCII码发送协议端口号。这样,如果文件传输的连接需要经过NAPT从一个内部主机到达Internet上的主机,那么,数据流中的端口号必须改为和NAPT选择的端口号一致,而不是内部主机的端口。

总之,NAT影响了ICMP和更高层的协议。除了类似FTP的少数几个标准应用,把IP地址或协议端口号作为数据传送的应用协议将无法利用NAT正常操作。