解决网络空间不足的难题
2017-11-23
引言:随着计算机网络深入人们生活的各个领域,大型主机、个人计算机、笔记本、PDA、存储设备、路由器、交换机以及各种网络设备都需要连接到Internet上,IPv4的地址空间严重不足。NAT技术是解决IP地址空间不足的暂时解决方案,下面笔者介绍一下NAT技术。
NAT的作用和主要功能
现在IPv4的地址空间严重不足,解决IPv4地址空间不足的方案有多种,IPv6被认为是解决IP地址不足的最终解决方案,NAT技术是解决IP地址空间不足的暂时解决方案。
当内部网络上的一台主机访问互联网上的一台主机时,内部网络主机所发出的数据包额源IP地址是私有地址,这个数据包到达某个路由器后,路由器使用事先设置好的注册公有IP地址替换掉私有地址,这样这个数据包的源IP地址就变成了互联网上唯一的公有IP地址,此数据包将被发送到互联网的目的主机处。互联网上的主机认为是路由器在访问它,因为数据包的源IP地址是路由器地址。NAT技术通过改变数据包中的IP地址,来实现内部网络使用私有地址的主机和互联网上使用公有地址的主机之间进行通信。
NAT技术的四种地址
Inside local address:内部本地地址,是指局域网内部分配给主机的IP地址,这个地址通常是RFC1918规定的私有地址。
Inside global address:内部全局地址,指设置在路由器等互联网接口设备上,用来替代一个或者多个内部私有地址的公有注册IP地址,这个地址必须经过注册,并且在互联网中是唯一的。
Outside local address:外部本地地址,指互联网上另一端网络内部地址,该地址可能是RFC1918私有地址,也可能是注册公有地址。
Outside global address:外部全局地址,指互联网上的一个公有注册地址,在互联网上是唯一的。
一般情况下,Outside local address(外部本地地址)和Outside global address(外部全局地址)是同一个公有地址,它们是内部网络主机所访问的互联网上的主机。
当内部网络有多台主机访问互联网上的多个目的主机时,路由器必须记住内部网络的哪台主机访问互联网的哪台主机,以防止在地址转换时将不同的连接混淆,所以路由器将为NAT的众多连接建立一个表,即NAT表。
NAT在做地址转换时,依靠在NAT表中记录内部私有地址和外部公有地址的映射关系来保存地址转换的依据。在做后续的NAT操作时,只需要查询该NAT表,就可以得知应该如何转换地址,而不会发生数据连接混淆。
NAT的工作过程
如图1所示,内部网络主机A被分配了一个私有IP地址192.168.1.8,内部网络通过一台路由器与互联网相连,地址是210.96.98.1,而我们为路由器单独分配了一个公有注册地址212.10.1.8来负责NAT的转换。实际上,如果我们所拥有的公有注册地址比较紧张,也可以直接使用路由器连接互联网的地址210.96.98.1来作为NAT转换的内部全局地址。
图1 网络拓扑结构
当内部网络主机A访问互联网的服务器B时,它向服务器B发出了源IP地址为 192.168.1.8,目的 IP地址为202.108.22.5的数据包。
当该数据包到达路由器时,路由器吧从主机A发送来的数据包中的源IP地址转换为公有注册地 址 212.10.1.8,数 据 包中的目的地址不变,还是202.108.22.5,然后将该数据包路由到互联网。
同时该路由器向自己的NAT表中添加一个条目,该条目的Inside local address(内 部 本地 地 址)是 192.168.1.8,Inside global address(内部全局地址)是212.10.1.8,Outside local address(外 部本地地址)和Outside global address(外 部 全局地址)都是202.108.22.5.
当服务器B接收到该数据包时,它会认为这个数据包是由互联网地址是212.10.1.8的节点发给它的,而不会认为是由192.168.1.8这台主机发给它的。
于是服务器B将以源IP地址为202.108.22.5,目的IP地址为212.10.1.8向回发送响应的数据包。
当服务器B发送回来的数据包到达路由器时,路由器将查找它的NAT表,从而得知访问公有注册地址202.108.22.5的本地局部主机地址是192.168.1.8,路由器将数据包中的目的IP地址212.10.1.8替换为192.168.1.8,然后把该数据包发送给主机A。
当主机A与服务器B之间的后续数据包再次通过路由器时,NAT的操作将重复进行。