NAT 提供了许多优点和好处。但是,使用 NAT 也有一些缺点,包括不支持某些类型的流量。
使用NAT的利弊
原创
©著作权归作者所有:来自51CTO博客作者bbc12000的原创作品,请联系作者获取转载授权,否则将追究法律责任
使用 NAT 的优点包括:
NAT 允许对内部网实行私有编址,从而维护合法注册的公有编址方案。NAT 通过应用程序端口级别的多路复用节省了地址。利用 NAT 过载,对于所有外部通信,内部主机可以共享一个公有 IP 地址。在这种配置类型中,支持很多内部主机只需极少的外部地址。
NAT 增强了与公有网络连接的灵活性。为了确保可靠的公有网络连接,可以实施多池、备用池和负载均衡池。
NAT 为内部网络编址方案提供了一致性。在没有私有 IP 地址和 NAT 的网络上,更改公有 IP 地址需要给现有网络上的所有主机重新编号。主机重新编号的成本可能非常高。NAT 允许保留现有方案,同时支持新的公有编址方案。这意味着,组织可以更换 ISP 而不需要更改任何内部客户端。
NAT 提供了网络安全性。由于私有网络在实施 NAT 时不会通告其地址或内部拓扑,因此在实现受控外部访问的同时能确保安全。不过,NAT 不能取代防火墙。
但是,NAT 确实有一些缺点。Internet 上的主机看起来是直接与 NAT 设备通信,而不是与私有网络内部的实际主机通信,这一事实会造成几个问题。理论上,全球唯一的一个 IP 地址可以代表许多台私有寻址的主机。从私密性和安全性角度看,这是优点,但实际上,这也会带来一些弊端。
第一个弊端是影响性能。转换数据包报头内的每个 IP 地址需要时间,因此 NAT 会增加交换延迟。第一个数据包采用过程交换,意味着它始终经过较慢的路径。路由器必须查看每个数据包,以决定是否需要转换。路由器需要更改 IP 报头,甚至可能要更改 TCP 或 UDP 报头。如果缓存条目存在,则其余数据包经过快速交换路径,否则也会被延迟。
许多 Internet 协议和应用程序依赖端到端功能,需要将未经修改的数据包从源转发到目的地。NAT 会更改端到端地址,因此会阻止一些使用 IP 寻址的应用程序。例如,一些安全应用程序(例如数字签名)会因为源 IP 地址改变而失败。使用物理地址而非限定域名的应用程序无法到达经过 NAT 路由器转换的目的地。有时,通过实施静态 NAT 映射可避免此问题。
端到端 IP 可追溯性也会丧失。由于经过多个 NAT 地址转换点,数据包地址已改变很多次,因此追溯数据包将更加困难,排除故障也更具挑战性。另一方面,试图确定数据包源的黑客也会发现难以追溯或获得原始源地址或目的地址。
使用 NAT 也会使隧道协议(例如 IPsec)更加复杂,因为 NAT 会修改报头中的值,从而干扰 IPsec 和其它隧道协议执行的完整性检查。
需要外部网络发起 TCP 连接的一些服务,或者无状态协议(诸如使用 UDP 的无状态协议),可能被中断。除非 NAT 路由器做出特别努力来支持此类协议,否则传入的数据包将无法到达目的地。一些协议可以支持参与通信的双方中的一方采用 NAT 机制(例如被动模式 FTP),但是当两个系统均通过 NAT 与 Internet 分隔时,这些协议会失败。
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
使用ansible部署lvs集群的NAT模式
ansible部署lvs集群NAT模式
lvs ansible -
iptables 的NAT使用实验
+----------------------+ +--------------------------+ &nb
nat iptables NAT实验