采用网络地址翻译(NAT,etwork Address Translation)可以减少对合法注册地址的需求。简单地说,NAT就是在内部专用网络中使用内部地址(不可路由),而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址替换成全局地址,即可路由的合法注册地址,从而在外部公共网上正常使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换。
在任一时刻,如果内部网络中只有少数节点与外界建立连接,那么就只有少数的内部地址需要被转化成合法地址,从而减少对合法地址的需求。同时还可以使多个内部节点共享一个外部地址,使用端口进行区分(NAPT),这样就能更有效地节约合法地址。
利用双向NAT转换技术,还可隐藏内部真实的网络地址,降低黑客入侵的成功率。在内部网络通过内部网卡访问外部网络时将产生一个映射记录。系统将外出的源地址和源端口映射为一个伪装的地址和端口,让这个伪装的地址和端口通过外部网卡与外部网络连接,这样对外就隐藏了真实的内部网络地址。在外部网络通过外部网卡访问内部网络时,它并不知道内部网络的连接情况,而只是通过一个开放的IP地址和端口来请求访问。
NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。NAT设备维护一个状态表,用来把内部的口地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址发往下一级,这虽然会给处理器带来了一定的负担,但对于一般的网络来说是微不足道的。
需要注意的是,NAT并不是一种有安全保证的方案,它不能提供类似防火墙、包过滤、隧道等技术的安全性,仅仅在包的最外层改变IP地址。
NAT有静态转换NAT(Static NAT)、动态转换(Pooled NAT)和端口地址转换三种类型。
静态转换NAT是最简单的一种转换方式,它在NAT表中为每一个需要转换的内部地址创建了固定的转换条目,映射了惟一的全局地址。内部地址与全局地址一一对应。每当内部节点与外界通信时,内部地址就会转化为对应的全局地址
动态转换(亦称NAT池)增加了网络管理的复杂性,但也提供了很大的灵活性。它将可用的全局地址地址集定义成NAT池(NAT Poo1)。对于要与外界进行通信的内部节点,如果还没有建立转换映射,边缘路由器或者防火墙将会动态地从NAT池中选择全局地址对内部地址进行转化。每个转换条目在连接建立时动态建立,而在连接终止时会被回收。这样,网络的灵活性大大增强了,所需要的全局地址进一步减少。值得注意的是,当NAT池中的全局地址被全部占用以后,以后的地址转换申请会被拒绝。这样会造成网络连通性的问题。为了解决这个问题,许多有NAT功能的路由器有超时配置功能。在配置成开始的指定时间后删除当前的NAT进程,为后续的NAT申请预留出外部IP地址。通过试验表明,一般的外部连接不会很长,所以短的时间阈值也可以接受。当然用户可以自行调节时间阈值,以满足各自的需求。
采用NAT池意味着可以在内部网中定义很多的内部用户,通过动态分配的办法,共享很少的几个外部IP地址。而静态NAT则只能形成一一对应的固定映射方式。NAT池在提供很大灵活性的同时,也影响到网络原有的一些管理功能。例如,SNMP管理站利用IP地址来跟踪设备的运行情况。但使用NAT之后,意味着那些被翻译的地址对应的内部地址是变化的,同一地址今天可能对应一台工作站,明天就可能对应一台服务器,这给SNMP管理带来了麻烦。一个可行的解决方案是把划分给NAT池的那部分地址在SNMP管理平台上标记出来,对于这些不响应管理信号的地址不予报警,如同它们被关掉了一样。
端口地址转换(NAPT,Network Address Port Translation)是动态转换的一种变形。它可以使多个内部节点共享一个全局IP地址,而使用源和目的节点的TCP/UDP的端口号来区分NAT表中的转换条目及内部地址。这样,就更节省了地址空间。假设内部节点10.1.1.3,10.1.1.2都用源端口1723向外发送数据包。NAPT路由器把这两个内部地址都转换成全局地址192.168.2.2,而使用不同的源端口号:1492,1723。当接收方收到的源端口号为1492,则返回的数据包在边缘网关处,目的地址和端口被转换为10.1.1.3:1723;而接收到的源端口号为1723,目的地址被映射到10.1.1.2:1723。在以上的映射转换中,只使用了IP地址的转换条目被称为简单条目,而包含IP地址和TCP/UDP端口号的转换条目被称为扩展条目。
以上所有的地址转换功能,都是由防火墙或者边缘路由器(即连接内部网络和公用网络的路由器)完成的,而对于通信的各节点,无论是内部还是外部的,都是透明的。通常情况下,NAT用于共享一个IP地址发出流向外部网络的数据流,而不接受外部网络向内部网络发出的连接请求的地方,比如多节点用户、远程的工作点、小型商业用户等。具体地说,就是通过ISDN、DSL(Digital Subscriber Line)、cable modem连接的小型局域网。双向的静态NAT/NAPT常被安装在有防火墙的大型企业使用。另外,当ISP的地址发生变化时,如果企业不想改变自己的地址规划,也会用到NAT技术。
NAT技术可以节约地址空间,简化配置,使网络规划更灵活。但是,它对网络应用带来了一定的影响,也给网络管理带来了一定的复杂性。