重叠(Overlapping) NAT

  当内部网络也使用公网注册地址(或者是外网合法地址)时,如果仍使用标准的静态或者动态NAT转换,则可能使得转换的内网地址与外网中合法地址冲突,使数据包又返回到了本地网络,这肯定是不行的。这时我们就要使用重叠网络(Overlapping Network)的NAT转换方案了,把数据包中的目的地址转换成与外网不在同一网段的全局地址。

  使用重叠(Overlapping)NAT可以实现内、外部网络都使用注册IP地址情况下的地址转换。这里的"重叠"其实就是指内、外部网络使用的IP地址段重叠(因为都是公网注册IP地址)。本节也包括两个方面的配置:一是静态方式的重叠NAT配置,二是动态方式的重叠NAT配置。下面先来了解重叠NAT的工作原理。

图5-18显示了如何处理重叠网络间的NAT转换。示例中内部网络和外部网络都使用了1.0.0.0/8这个注册IP地址段。下面是重叠网络NAT地址转换的演示示例。步骤序号是与图中的序号对应的。

重叠(Overlapping) NAT

(1)内部网络中IP地址为1.1.1.1的主机通过计算机名向外部网络中的主机C发起连接。连接请求首先会向DNS服务器发出一个由名称到IP地 址的查询请求,请求包在到达路由器之前的源地址为1.1.1.1主机的内部本地地址1.1.1.1,目的地址为DNS服务器地址。在到达路由器后,请求包 的源地址被替换成1.1.1.1主机的内部全局地址2.2.2.2,目的地址不变。

(2)当DNS服务器发出的查询请求应答包(其中源地址为DNS服务器地址,目的地址为1.1.1.1主机的内部全局地址2.2.2.2,并包括了解析出的C主机的IP地址1.1.1.3)到达NAT路由器后,如果返回地址有重叠(也就是返回的地址在内部网络中已使用),将转换这个返回的地址。转换的方法是创建一个简单的NAT条目,把解析得到的C主机IP地址1.1.1.3映射到一个从独立配置的外部本地地址池中分配到的外部本地地址3.3.3.3,参见图中下面的NAT表项。

DNS服务器会检查每一个DNS应答,确保解析得到的IP地址不是在内部网络中已使用的IP地址,否则路由器将转换这个解析得到的IP地址。

(3)当解析到C主机的IP地址后,内部网络1.1.1.1主机会以映射后的3.3.3.3地址作为目的地址向外部网络C主机发起连接。

(4)路由器利用原来已获得的信息建立一个内部本地址、内部全局地址、外部本地地址和外部全局地址的NAT映射表,参见图中的NAT映射表项。

(5)路由器继续发送连接请求数据包,数据包的源地址用内部全局地址替换,数据包中的目的地址用外部全局地址替换,然后继续发送连接请求数据包。

(6)当外部网络主机C接收到这个数据包时,以一个应答数据包进行响应。应答数据名的源地址为C主机IP地址1.1.1.3,目的地址为内部网络全局地址2.2.2.2。

(7)当路由器接收到这个应答包时,把应答包中的目的地址用内部本地地址1.1.1.1进行替换,而源地址用外部本地地址1.1.1.3进行替换,转发给内部网络1.1.1.1主机

上一篇:C#中只使用Invokerequired来判断是不是UI线程可靠吗?


下一篇:FL studio钢琴卷工具简介