

一、静态NAT技术原理
静态NAT,通常私有IP地址与公共IP地址成一对一的关系。通常应用在企业内部有某台服务器需要提供给Internet的用户访问的情况下,私有IP地址与公共IP地址成一对一的关系。通过使用静态NAT配置内部网络服务器提供对外服务能力。
事实上,在这种环境中并没有达到节约IP地址的目的,只是对外隐藏了真实的私有专用IP地址,满足了Internet用户访问内部服务器的可能,从某种程度上提高了安全性。
如图1所示,企业需要将私有网络中的Web服务器(192.168.2.100)和FTP服务器(192.168.2.200)提供给公共网络部分的202.202.2.100访问,由于两台服务器使用的是私有专用IP地址,它们对于公共网络无效,所以现在需要使用静态NAT将服务器的私有专用IP地址映射成公共IP地址,以方便公共网络上的主机访问。将192.168.2.100与202.202.1.100形成一对一的映射关系;192.168.2.200与202.202.1.200也做相同的映射;公共主机202.202.2.100访问202.202.1.100时,就是在访问192.168.2.100的Web服务器;访问202.202.1.200时,就是在访问192.168.2.200的FTP服务器。在这种情况下每个私有地址对应一个公共IP地址,所以不需要对端口做任可映射,可简化客户端的访问方式;缺点就是没有达到节约IP地址的目的。

二、动态NAT技术原理
动态NAT需要在NAT路由器上定义一个公共网络的地址池,如图2所示,有一个被定义的公共IP地址池分别是202.202.1.100~202.202.1.102;当私有网络上的主机192.168.2.2~192.168.2.4要访问公共网络上的主机202.202.2.100时,NAT会动态地将每个私有网络专用IP地址转换成公共IP地址池中的IP地址,然后去访问公共网络上的主机202.202.2.100。比如:192.168.2.2将被翻译成202.202.1.100;192.168.2.3将被翻译成202.202.1.101;192.168.2.4将被翻译成202.202.1.102;这种动态的NAT翻译,私有IP地址与公共IP地址成一对一的关系,事实上,并没有达到节约IP地址的目的,但是它对于大型网络合并后产生的重叠地址冲突是一种很好的解决方案。注意:动态NAT定义的公共地址池中IP地址的数量,应该和私有网络专用地址的数量相同,如果公共地址池中IP地址的数量少于私有网络专用地址的数量,那么多余的私有网络专用地址将无法访问公共网络,因为公共地址池中的IP地址与私有专用IP地址的数量成一对一关系。

三、PAT技术原理(基于端口的NAT)
PAT(Port Address Translation,端口地址转换)属于NAT的一种,严格地讲,它属于动态NAT的一种类型,它产生的目的是在大量使用私有网络专用地址的企业网络中代理这些主机访问Internet公共网络。
PAT的最大优势就是将企业网络内部使用的全部私有网络专用地址转换成一个公共IP地址,通常是NAT路由器外部接口的IP地址,然后代理它们去访问Internet,这样可以最大限度地节省访问Internet的地址成本,因为在使用PAT时整个企业访问公共网络只需要一个公共IP地址。但是现在最大的问题是:当发生众多私有网络主机同时访问Internet时,NAT路由器如何识别不同的会话?
现在以两台使用私有网络专用IP地址的主机使用PAT访问Internet的情况为例,理解PAT的工作原理,以及如何识别同一时刻众多主机产生的不同会话。如图3所示,当私有网络主机192.168.2.100需要访问202.202.2.100这台公共网络上的主机的Web服务时,首先在192.168.2.100这台主机上会产生一个源IP地址是192.168.2.100、源端口是1051(通常随机生成),目标IP地址是202.202.2.100、目标端口是80的IP报文,当该报文送达NAT路由器后,NAT路由器将把原始报文中的源IP地址转换成自己的NAT外部接口上的IP地址202.202.1.1(当然,也可以自己定义另一个可供使用的公共IP地址),同时将原始报文中的源端口1051转换成另一个源端口1053;并且NAT路由器会记录这样的一个转换过程,方便会话返回时,可以在众多的会话中识别出哪一个具体的会话属于某台具体的私有网络主机。因为在私有网络专用主机192.168.2.100发起对公共网络访问的同时,可能还有其他的私有网络专用主机192.168.2.200同时发起对公共网络的会话,而PAT的翻译过程会将192.168.2.100和192.168.2.200的私有主机IP地址都翻译成202.202.1.1,那么,当会话从公共网络上返回时,NAT路由器怎么知道哪个会话是192.168.2.100的,哪个会话又是192.168.2.200的?当翻译了端口后,就使用了不同的TCP套接字,如图3所示,202.202.1.1+1053就是192.168.2.100的会话,该会话会被返回给私有主机A;202.202.1.1+1054 就是192.168.2.200的会话,该会话会被返回给私有主机B。

注意:在使用PAT的过程中,目标IP地址和目标端口号在通信的过程中将一直保持不变,永远不被翻译,PAT翻译的始终是源IP地址和源端口号。
NAT技术学习文档(谌玺).doc(下载附件 2.29 MB)
演示:外部全局地址与外部局部地址的使用案例(谌玺).doc(下载附件 344 KB)
内部源地址NAT

当内部网络一台主机访问外部网络资源时,详细过程描述如下:
内部主机192.168.1.2发起一个到外部主机200.1.1.100的连接。
当路由器接收到以192.168.1.2为源地址的第一个数据包时,引起路由器检查NAT映
射表:该地址有配置静态映射,就执行第三步;
如果没有静态映射,就进行动态映射,路由器就从内部全局地址池中随机选择一个
有效的地址,并在NAT映射表种创建NAT转换记录。这种记录叫基本记录。
路由器用192.168.1.2对应的NAT转换记录中全局地址,替换数据包源地址,经过转
换后,数据包的源地址变为100.1.1.10,然后转发该数据包。200.1.1.100主机接
收到数据包后,将向100.1.1.10发送响应包。当路由器接收到内部全局地址的数据
包时,将以内部全局地址100.1.1.10为关键字查找NAT记录表,将数据包的目的地
址转换成内部本地地址192.168.1.2并转发给主机192.168.1.2。 192.168.1.2接收
到应答包,并继续保持会话。第一步到第五步将一直重复,直到会话结束。
内部源地址PAT

主机200.1.1.100以为是在跟同一台设备通信,实际上是分别与内部网络两台地址
不同的主机通信。以下详细描述了内部网络NAPT的整个过程:
内部主机192.168.1.2发起一个到外部主机200.1.1.100的连接。
当路由器接收到以192.168.1.2为源地址的第一个数据包时,引起路由器检查NAT映
射表:如果NAT没有转换记录,路由器就为192.168.1.2作地址转换,并创建一条转
换记录。如果启用了NAPT,就进行另外一次转换,路由器将用不同端口号复用全局
地址并保存足够的信息以便能够将全局地址转换回本地地址。NAPT的地址转换记录
称为扩展记录。路由器用192.168.1.2对应的NAT转换记录中全局地址,替换数据包
源地址,经过转换后,数据包的源地址变为100.1.1.2,然后转发该数据包。
200.1.1.100主机接收到数据包后,将向100.1.1.2发送响应包。
当路由器接收到内部全局地址的数据包时,将以内部全局地址100.1.1.2及其端口
号、外部全局地址及其端口号为关键字查找NAT记录表,将数据包的目的地址转换
成192.168.1.2并转发给主机192.168.1.2。192.168.1.2接收到应答包,并继续保
持会话。第一步到第五步将一直重复,直到会话结束。
6.思科路由器交换机配置软件PacketTracer5使用(NAT配置).exe(下载附件 41.1 MB)
实验七 基于Cisco路由器的NAT配置New.doc(下载附件 446.5 KB)
注:路由器选择Router-PT类型,然后在关机状态下拨出原先两个串口模块再添加快速以太网接口
模块(第三个1CFE类型)

