1
计算机网络技术理论与实践
1.7.3.2 6.3.2 NAT在私用网络中的工作示例

6.3.2 NAT在私用网络中的工作示例

当使用家庭局域网络时,通常只分配一个公有IP地址,而其他的都是内部私有IP地址,这时要使配置私有IP地址的设备与Internet网络互通就需要用到NAT技术。下面我们分别介绍从内部私有IP地址主机访问Internet上公有IP地址主机的自动映射过程和从Internet上的公有IP地址主机访问内部私有IP地址主机的静态映射过程。

(1)NAT动态映射

如图6-6所示,当私有网络中某台具有IP地址192.168.1.2的主机上具有端口号200的某个应用进程希望访问Internet上的某个进程时需要执行如下过程。

img171

图6-6 端口自动映射示意图

首先192.168.1.2主机上的这个进程会将数据包发送给自己的网关(路由器),数据包中的源IP地址是192.168.1.2,源端口号是200,路由器与Internet相连的接口具有公有IP地址:123.112.59.236。

在路由器上会自动进行地址映射,将192.168.1.2和端口号200映射到自己公有IP地址的端口100上,即192.168.1.2+200映射到123.112.59.236+100,并把这个映射保存到NAT表中,然后将192.168.1.2的主机发送过来的数据包的源IP地址改为123.112.59.236,源端口号改为100,再将这个数据包发送到Internet上去。这时这个数据包就是具有合法IP地址的数据包了。

Internet上的目的主机返回数据包时,其目的IP地址是123.112.59.236,目的端口号是100,当路由器收到这样的数据包后,会查询自己的NAT映射表,将数据包的目的IP地址改为192.168.1.2,目的端口号改为200,并把它发送给内部主机,这样就完成了内部主机与Internet主机的通信过程。

当内部网络中的某台主机对外提供服务,Internet上的某台主机需要访问这个服务时,就需要进行NAT静态映射。因为内网主机的IP地址不是合法地址,所以对Internet上的主机是不可见的,这就需要事先将内网主机的IP地址和提供服务的端口号静态映射到路由器的公有IP地址的端口号上,然后让Internet上的主机访问这个公有IP地址和相应的端口号。如图6-7所示,当主机192.168.1.2要通过端口80向外提供Web服务时,首先需要将自己的80端口静态映射到路由器的公有IP地址123.112.59.236的80端口上,这样Internet上的主机只要访问123.112.59.236的80端口,路由器就会将数据包中的目的地址和端口号转化为192.168.1.2和80,并发送给主机192.168.1.2,完成了Internet主机访问内网主机的过程。当然如果内网的另一台主机192.168.1.3也想通过80端口提供Web服务,因为123.112.59.236的80端口已经被占用,所以就只能使用123.112.59.236的其他端口如8080,向Internet上的用户提供Web服务。

img172

图6-7 静态映射示意图