NAT提供了很多优点和好处。 但是,使用NAT还存在一些缺点,例如不支持特定类型的通信。
使用NAT的优点如下。
NAT允许内部网使用专用地址,并维护合法注册的公共地址方法。 NAT通过APP应用程序端口级别的复用来节省地址。 NAT重载允许内部主机为所有外部通信共享公共IP地址。 这种配置类型很少需要外部地址来支持许多内部主机。
NAT提高了连接公共网络的灵活性。 为了确保可靠的公共网络连接,可以实现多池、备用池和负载平衡池。
NAT为内部网络寻址方式提供一致性。 在没有专用IP地址和NAT的网络中,要更改公共IP地址,必须将号码更改为现有网络上的所有主机。 重新编号主机可能非常昂贵。 NAT可以在保留现有方案的同时支持新的公共地址方案。 这意味着组织可以在不更改内部客户端的情况下更换ISP。
NAT提供网络安全。 专用网络在实施NAT时不会通知地址和内部拓扑,从而提供受控的外部访问,同时确保安全性。 但是,NAT不能代替防火墙。
但是,NAT确实有一些缺点。 互联网上的主机看起来像是直接与NAT设备进行通信,而不是与专用网络中的实际主机进行通信。 这个事实会引起几个问题。 理论上,世界上唯一的IP地址可以表示多个专用寻址主机。 从隐私和安全性的角度来看,这是一个优点,但实际上会带来一些弊端。
第一个弊端是影响性能。 NAT会增加交换延迟,因为数据包报头中每个IP地址的转换需要时间。 第一个数据包采用进程交换,意味着总是通过较慢的路径。 路由器必须检查每个数据包以决定是否需要转换。 路由器需要更改IP报头,有时还需要更改TCP或UDP报头。 如果缓存条目存在,其馀数据包将通过快速交换路径,如果不存在,也会延迟。
许多互联网协议和APP应用程序都依赖于端到端的功能,需要将未更改的数据包从源传输到目标。 由于NAT会更改端到端地址,因此某些使用IP地址的APP应用程序将被阻止。 例如,某些安全APP应用程序(如数字签名)将因源IP地址更改而失败。 使用物理地址而不是域名的APP应用程序无法到达由NAT路由器转换的目标。 有时可以通过实现静态NAT映射来避免此问题。
端到端的IP可追溯性也会丢失。 由于经过多个NAT地址转换点,数据包地址被多次更改,因此数据包的跟踪变得更困难,故障排除也更困难。 另一方面,尝试确定包源的***可能很难跟踪或获取原始源地址或目标地址。
使用NAT时,IPsec等隧道协议也变得更复杂。 因为NAT会更改标头的值,阻止IPsec和其他隧道协议进行完整性检查。
无状态协议(如外部网络需要启动TCP连接的服务或使用UDP的无状态协议)可能会中断。 除非NAT路由器特别努力支持此类协议,否则传入数据包无法到达目的地。 虽然某些协议可以支持参与通信的双方采用NAT机制(如被动模式FTP ),但是如果两个系统都通过NAT与internet分离,这些协议将失败。