策划营销型网站,html网站的设计,上海有什么公司,thinkphp 门户网站NAT转换方式及原理 在NAT的应用中#xff0c;可以仅需要转换内部地址#xff08;就是“内部本地址”转换成“内部全局地址”#xff09;#xff0c;这是最典型的应用#xff0c;如内部网络用户通过NAT转换共享上网#xff1b;也可以是仅需要转换外部地址#xff08;就是…NAT转换方式及原理 在NAT的应用中可以仅需要转换内部地址就是“内部本地址”转换成“内部全局地址”这是最典型的应用如内部网络用户通过NAT转换共享上网也可以是仅需要转换外部地址就是“外部全局地址”转换“外部本地地址”之间的转换如外部用户要访问位于内部网络中的服务器当然还可以同时转换内部地址和外部地址。 为了方便理解本节后面所介绍的一些配置现简单介绍NAT的基本配置思路 1使用ip nat inside source定义内部本地地址到内部全局地址的映射或者ip nat outside source定义外部全局地址到外部本地地址的映射或者ip nat pool定义一个内部全局地址池或者一个外部本地地址池命令定义一个IP地址映射。具体要使用哪个命令如何配置地址映射要视所就用的NAT类型和地址转换类型而定。可以是静态地址映射也可以是动态地址映射或者端口地址映射PAT可以是内部地址转换也可以是外部地址转换或者内、外部地址同时转换。 本节为了方便介绍仅以静态NAT转换为例进行介绍所以在下面各小节中仅使用了ip nat inside source static或者ip nat outside source static命令。 2使用ip nat inside命令指定内部接口使用ip nat outside命令指定外部网络接口。 6.2.1 NAT基本IP地址转换原理 总体来说NAT进行地址转换的过程就是“本地地址”与“全局地址”之间的转换过程无论数据包是从内部网络发往外部网络还是从外部网络发往内部网络。不同的只是本地地址和全局地址所对应的网络不同以及数据包重新封装的源和目的地址不同。具体如图6-8所示。这个过程是通过NAT中的本地址与全局地址映射条目来实现的所以事先要在NAT路由器上配置这样的映射条目。 图6-8 NAT基本地址转换原理 当内部网络用户访问外部网络时所进行的是“内部本地地址”和“内部全局地址”之间的转换。 在NAT路由器接收到来自内部网络主机发送的数据包时其源IP地址SA为“内部本地地址”目的IP地址DA为“外部本地地址”。当数据包被转发到外部网络时数据包的源IP地址SA就会转变为“内部全局地址”而目的IP地址DA被转变为“外部全局地址”。也就是把数据包的所有源IP地址SA和目的IP地址DA全部由本地地址转换为全局地址。如图6-9上部分数据包IP地址转换示意图。 相反当外部网络用户访问内部网络时所进行的是“外部本地地址”和“外部全局地址”之间的转换。 在NAT路由器接收到来自外部网络主机发送的数据包时其源IP地址SA就是“外部全局地址”目的IP地址DA就是“内部全局地址”。相当于由内部网络向外部网络发送数据包时数据包中的源IP地址SA和目的IP地址DA的互换。而当数据包被路由器转发到本地网络时源IP地址SA被转变为“外部本地地址”目的IP地址DA被转变为“内部本地地址”也相当于由内部网络向外部网络发送数据包时数据包中的源IP地址SA和目的IP地址DA的互换。如图6-9下部分数据包IP地址转换示意图。 图6-9 NAT基本IP地址转换原理 以上是从总体上介绍NAT的IP地址转换原理的实际NAT应用有时并不需要对源IP地址和IP地址进行全面替换仅需要对源IP地址或者仅需要对目的IP地址进行转换即可达到所需的目的。下面予以介绍。 6.2.2 内部地址NAT转换原理 多数情况下使用NAT的目的就是为了使内部网络中的多个用户能使用一个注册IP地址访问外部网络所以仅需要配置内部地址NAT转换。即通过ip nat inside source命令实现“内部本地地址”到“内部全局地址”之间的转换既可以采用静态NAT方式实现也可以采取动态NAT方式实现只需要定义内部本地址与内部本局地址的映射。 图6-10是一个简单的NAT转换示例。要实现以下目的当NAT路由器的内部网络s0接口上接收到一个源地址为内部本地地址10.10.10.1目的IP地址为外部本地地址171.16.68.1的数据包时在转发到s1接口时原来数据包源地址的内部本地地址10.10.10.1被转换成内部全局地址171.16.68.5但目的地址不变然后继续发送。在这个过程中所进行的只是数据包中源IP地址的转换由内部本地地址向内部全局地址转换且只是内部地址之间的转换。 图6-10 简单的NAT转换示例 相反当在NAT路由器的外部网络接口s1上接收源地址为172.16.68.1外部本地地址目的地址为内部全局地址172.16.68.5的外部服务器响应数据包时目的地址将被转换成10.10.10.1这个内部本地地址然后继续发送。在这个过程中所进行的只是数据包中目的IP地址的转换由内部全局地址向内部本地地址转换也只是内部地址之间的转换。 下面仅以静态NAT转换方式为例介绍内部地址转换的配置步骤详细的NAT配置方法将在本章后面具体介绍。 1使用“ip nat inside source static”全局配置命令启用基于内部源IP地址的静态NAT IP地址转换。也就是定义内部本地地址和内部全局地址使它们之间形成一一对应的映射关系。 Router(config)#ip nat inside source static 10.10.10.1 171.16.68.5 !--- 在内部本地地址10.10.10.1与内部全局地址171.16.68.5之间建立静态NAT映射关系使内部网络主机知道要以171.16.68.5这个地址到达外部网络主机 2使用以下两条语句配置路由器的s0为NAT的内部网络接口。 Router(config)#interface s0 !--- 进入s0串口配置模式 Router(config-if)#ip nat inside !--- 把s0串口指定为内部网络接口 3使用以下两条语句配置路由器的s1为NAT的外部网络接口。 Router(config)#interface s1 !--- 进入s1串口配置模式 Router(config-if)#ip nat outside !--- 把s1串口指定为外部网络接口 4使用show ip nat translations特权模式命令验证上述进行的路由器NAT配置。输出信息中显示以上配置的NAT条目配置为内部本地地址为10.10.10.1内部全局地址为171.16.68.5。这与上面的配置是一致的证明配置是成功的。 Router#show ip nat translations !--- 在特权模式下显示当前路由器NAT配置 Pro Inside global Inside local Outside local Outside global --- 171.16.68.5 10.10.10.1 --- --- 此时如果对外部网络目的主机进行ping操作就会有数据包从内部网络转发到外部网络。然后再在路由器特权模式下执行“show ip nat translations”命令显示的NAT信息如下。多了一条icmp协议类型数据包执行ping操作后加的显示但因为此时没有配置外部网络的本地地址和全局地址所以显示的外部本地地址和外部全局地址都是一样的都是ping操作目的主机地址171.16.68.1。 Router#show ip nat translations Pro Inside global Inside local Outside local Outside global icmp 171.16.68.5:15 10.10.10.1:15 171.16.68.1:15 171.16.68.1:15 --- 171.16.68.5 10.10.10.1 --- --- 通过以上配置后从内部网络发往外部网络的数据包只是源地址SA将在经过路由器后进行转换由内部本地地址10.10.10.1转换成内部全局地址171.16.68.5但目标地址DA不变但从外部网络发往内部网络的应答数据包的源地址没有改变只是经过路由器后的数据包目的地址发生了转换由内部全局地址172.16.68.5转换成内部本地地址10.10.10.1但源地址SA不变。因为此时还没有为NAT路由器配置外部网络的本地地址和全局地址转换。 此时数据包在内、外部网络中的源地址、目的地址的转换方式参如图6-11所示。 图6-11内部地址NAT转换示例 【经验之谈】在内部地址的NAT转换中无论数据包来自哪里数据包中地址变化的只是内部地址之间的转换。但要注意地址变化所对应的是源地址还是目的地址是要看数据包是来自内部网络还是来自外部网络如果是来自内部网络转换是源地址如果是来自外部网络转换的是目的地址。 6.2.3 外部地址NAT转换原理 当公司服务器位于内部网络使用内部网络私有IP地址为了方便外部网络用户对内部网络服务器进行访问则需要使用ip nat outside source命令配置“外部全局地址”与“外部本地地址”之间的转换既可以采用静态NAT方式实现也可以采取动态NAT方式实现。外部地址NAT转换与上节介绍的内部地址NAT转换是相反的它仅需要定义外部地址包括外部本地地址和外部全局地址。 下面同样以图6-10所示的示例进行介绍。本示例要实现的目的是当NAT路由器外部网络接口s1接收到来自外部网络用户发送的源IP地址为外部全局地址171.16.68.1目的地址为外部本地地址10.10.10.1的数据包在被路由器转发到s0接口时数据包中的源IP地址转变为外部本地地址10.10.10.5即由外部全局地址转换成外部本地地址目的IP地址不变即也只是源IP地址的转换而由内部网络用户发送的响应数据包中却只是目的IP地址即由外部本地地址转换为外部全局地址的转换源IP地址不变。 下面仅以静态NAT转换方式为例介绍外部地址NAT转换的配置步骤详细的NAT配置方法将在本章后面具体介绍。 1使用ip nat outside source static全局配置命令启用基于外部源IP地址的静态NAT IP地址转换。也就是定义外部全局地址和外部本地地址之间的映射关系。 Router(config)#ip nat outside source static 171.16.68.1 10.10.10.5 !--- 在外部全局地址171.16.68.1与外部本地地址10.10.10.5之间建立静态NAT转换关系使外部网络主机知道要以10.10.10.1这个地址到达内部网络主机 2使用以下两条语句配置路由器的s0作为NAT的内部网络接口。 Router(config)#interface s0 Router(config-if)#ip nat inside 3使用以下两条语句配置路由器的s1作为NAT的外部网络接口。 Router(config)#interface s1 Router(config-if)#ip nat outside 【注意】对于特定的NAT网络来说路由器上的内、外部网络接口是固定的不会随着通信方向的改变而改变。如在上节介绍的内部地址的NAT转换示例中我们同样是把s0接口作为内部网络接口s1接口作为外部网络接口。 4使用show ip nat translations特权模式命令验证上述进行的路由器NAT配置。从中可以看出此时NAT的外部本地地址为10.10.10.5外部全局地址为171.16.68.1。这与上面的配置是一致的证明配置是成功的。 Router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- --- --- 10.10.10.5 171.16.68.1 同样如果此时执行一个从外部网络主机171.16.68.1到内部网络主机10.10.10.1的ping操作然后再在路由器特权模式下执行“show ip nat translations”命令则显示如下结果。因为此时仅配置了外部本地地址和外部全局地址所以结果中显示的内部本地地址和全局地址都是一样的都是ping操作目的主机地址10.10.10.1。 Router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- --- --- 10.10.10.5 171.16.68.1 icmp 10.10.10.1:37 10.10.10.1:37 10.10.10.5:37 171.16.68.1:37 与上节介绍的仅配置内部地址相反此处从外部网络发往内部网络的数据包的源IP地址SA将在经过路由器后进行转换由外部全局地址171.16.68.1转换成外部本地地址10.10.10.5但目标地址DA不变但从内部网络发往外部网络的响应数据包的源IP地址没有改变只是经过路由器后的数据目的IP地址发生了改变由外部本地地址10.10.10.5转换成外部全局地址171.16.68.1。因为此时还没有为NAT路由器配置内部本地地址和内部全局地址转换。此时数据包在内、外部网络中的源IP地址、目的IP地址的转换方式如图6-12所示。 【经验之谈】在仅进行外部地址NAT转换时无论数据包来自哪里数据包中地址变化的只是外部地址之间的转换。同样也需注意地址变化所对应的是源IP地址还是目的IP地址是要看数据包是来自内部网络还是来自外部网络如果来自内部网络转换是目的IP地址如果来自外部网络转换的是源IP地址。这与前面的内部地址NAT转换是对应相反的。 图6-12外部地址NAT转换示例 6.2.4 内/外部地址NAT转换原理 下面介绍同时进行内、外部地址NAT转换原理及基本配置步骤。它需要同时使用ip nat inside source命令定义“内部全局地址”与“内部本地地址”之间的转换及使用ip nat outside source命令定义“外部全局地址”和“外部本地地址”之间的转换既可以采用静态NAT方式实现也可以采取动态NAT方式实现。这样无论数据包是从哪个方向发送的数据包中的源地址和目的地址都将同时发生变化。主要应用于重叠网络Overloading Network中的NAT应用中。具体配置方法将在本章6.6节介绍。 同样以图6-10所示的基本网络结构为例进行介绍。在下面的示例中通过配置可以实现当NAT路由器内部网络接口s0接收到来自内部网络源IP地址为内部本地地址10.10.10.1目的IP地址为外部本地地址10.10.10.5的数据包在转发到s1接口前将这个数据包中的源IP地址将转换成内部全局地址171.16.68.5目的IP地址将被转换成外部全局地址171.16.68.1。 当NAT路由器外部接口s1接收到来自外部网络源IP地址为外部全局地址171.16.68.1目的地址为内部全局地址172.16.68.5的数据包时将源IP地址转换成外部本地地址10.10.10.5将目的IP地址将被转换成内部本地址10.10.10.1。 下面仅以静态NAT转换方式可以采用动态NAT转换方式为例介绍内、外部地址同时转换的配置步骤详细的静态或者动态NAT转换配置方法将在本章后面具体介绍。 Router(config)#ip nat inside source static 10.10.10.1 171.16.68.5 !--- 在内部本地地址10.10.10.1与内部全局地址171.16.68.5之间建立静态NAT映射关系使内部网络主机知道要以171.16.68.5这个地址到达外部网络主机 Router(config)#ip nat outside source static 171.16.68.1 10.10.10.5 !--- 在外部全局地址171.16.68.1与外部本地地址10.10.10.5之间建立静态NAT映射关系使外部网络主机知道要以10.10.10.5这个地址到达内部网络主机 Router(config)#interface s 0 Router(config-if)#ip nat inside Router(config-if)#end Router(config)#interface s 1 Router(config-if)#ip nat outside Router(config-if)#end Router(config)# end Router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- --- --- 10.10.10.5 171.16.68.1 171.16.68.5 10.10.10.1 --- --- 同样如果此时分别执行一个从内部主机到外部主机以及从外部主机到内部主机的ping操作然后再在路由器特权模式下执行“show ip nat translations”命令则显示如下结果。因为此时同时配置了内、外部本地地址和全局地址所以结果中显示了两条NAT配置项分别显示了与外部网络和内部网络中的本地地址和全局地址转换对应的ping操作icmp消息与外部本地地址和全局地址对应的Ping操作ICMP消息中显示内部网络中的本地地址和全局地址是一样的而与内部网络本地地睛和全局地址对应的Ping操作ICMP消息中显示外部网络中的本地地址和全局地址是一样的都是对应的Ping操作目的主机地址。 Router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- --- --- 10.10.10.5 171.16.68.1 icmp 10.10.10.1:4 10.10.10.1:4 10.10.10.5:4 171.16.68.1:4 icmp 171.16.68.5:39 10.10.10.1:39 171.16.68.1:39 171.16.68.1:39 --- 171.16.68.5 10.10.10.1 --- --- 经过以上配置后数据包发送无论是从哪个方面发送的时不仅源IP地址会发生变化目标IP地址也会同时发生变化如图6-13所示。 在由内部网络向外部网络发送的数据包中源IP地址是由内部本地地址10.10.10.1转换成内部全局地址172.16.68.5目的IP地址由外部本地地址10.10.0.5转换成外部全局地址171.16.68.1在由外部网络向内部网络发送的数据包中源IP地址是由外部全局地址171.16.68.1转换成外部本地地址10.10.0.5目的IP地址由内部全局地址172.16.68.5转换成内部本地地址10.10.10.1。两个方向的数据包中的源IP地址和目的IP地址的转换分别如图6-14和图6-15所示。 图6-13 同时配置了内、外部地址转换后的NAT转换示例 图6-14 数据包从内部网络发到外部网络时的地址转换方式 图6-15 数据包从外部网络发到内部网络时的地址转换方式 从图6-14和图6-15可以看出图6-14中的源IP地址转换过程恰好是图6-15中的目的地址转换的反过程。同理图6-14中的目的IP地址转换过程恰好是图6-15中的源IP地址转换的反过程。 另外经过细心分析我们可以发现在由内部网络发往外部网络的数据包中所进行的地址转换都是由本地地址转换为全局地址也就是都是由内部网络一侧的地址向外部网络一侧的地址转换相反在由外部网络发往内部网络的数据包中所进行的地址转换都是由全局地址转换为本地地址也就是都是由外部网络一侧的地址向内部网络一侧的地址转换。转载于:https://www.cnblogs.com/zhangyanhai/p/3364636.html