2013年9月27日星期五

NAT地址转换原理全攻略

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
NAT地址转换原理全攻略  阅读原文»

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命令指定外部网络接口。

总体来说,NAT进行地址转换的过程就是"本地地址"与"全局地址"之间的转换过程,无论数据包是从内部网络发往外部网络,还是从外部网络发往内部网络。不同的只是本地地址和全局地址所对应的网络不同,以及数据包重新封装的源和目的地址不同。具体如图6-8所示。这个过程是通过NAT中的本地址与全局地址映射条目来实现的,所以事先要在NAT路由器上配置这样的映射条目。

10659021_138024209862ET.jpg

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地址转换示意图。

10659021_13802421152t8y.jpg

6-9 NAT基本IP地址转换原理

以上是从总体上介绍NATIP地址转换原理的,实际NAT应用有时并不需要对源IP地址和IP地址进行全面替换,仅需要对源IP地址或者仅需要对目的IP地址进行转换即可达到所需的目的。下面予以介绍。

多数情况下使用NAT的目的就是为了使内部网络中的多个用户能使用一个注册IP地址访问外部网络,所以仅需要配置内部地址NAT转换。即通过ip nat inside source命令实现"内部本地地址"到"内部全局地址"之间的转换(既可以采用静态NAT方式实现,也可以采取动态NAT方式实现),只需要定义内部本地址与内部本局地址的映射。

是一个简单的NAT转换示例。要实现以下目的:当NAT路由器的内部网络s0接口上接收到一个源地址为内部本地地址10.10.10.1,目的IP地址为外部本地地址171.16.68.1的数据包时,在转发到s1接口时,原来数据包源地址的内部本地地址10.10.10.1被转换成内部全局地址171.16.68.5,但目的地址不变,然后继续发送。在这个过程中,所进行的只是数据包中源IP地址的转换,由内部本地地址向内部全局地址转换,且只是内部地址之间的转换。

10659021_1380242137YU4k.jpg

简单的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)使用以下两条语句配置路由器的s0NAT的内部网络接口。

Router(config)#interface

演示:EIGRP非等价负载均衡(故障分析与解决篇)  阅读原文»

演示:EIGRP非等价负载均衡(故障分析与解决篇)

演示:EIGRP非等价负载均衡的故障分析与排除

故障背景:在如下所示的网络环境,工程师完成了环境中所有路由器的接口地址配置有EIGRP动态路由协议的启动,目前每台EIGRP路由器邻居关系正常,路由学习正常,现在工程师想充分使用EIGRP的非等价负载均衡的特性,需要在路由器R1的路由表中产生两条非等价开销的到目标子网172.17.1.0/24的路由,当工程师准备在路由器R1上调整variance时,发现在路由器表中只有一条通过下一跳R2192.168.1.2)到目标172.17.1.0/24的最佳路由如下图14.21所示,然后通过在路由器R1上执行Show ip eigrp 2013 topology查看EIGRP拓扑表中的备用路径开销时如下所示,发现备用路径并没有被放入到EIGRP的拓扑表中,根据EIGRP的原则:在这种情况下你将无法按照正常的步骤完成variance值的计算,原因很简单,在R1的路由表中没有这条备用路径是正常的,它需要计算并配置variance值后才会出现在路由表中,但这个过程的前提是:如果这条备用路径没有被放入到EIGRP拓扑表中,那么工程师计算variance值的机会都没有。现在需要解决这个故障,首先分析为什么路由器R1通过R3最后经过R2到达172.16.1.0/24这个备用路径没有被放入到路由器R1EIGRP拓扑中,然后解决这个问题,最终实现EIGRP的非等价负载均衡。

025956571.png

030037754.png

产生故障的原始配置:产生故障的原始配置如下所示,这方便读者在重构故障时看到当时的故障情境,方便更科学的分析故障。

路由器R1的原始配置:

interfaceEthernet1/0

ip address 192.168.1.1 255.255.255.0

duplex half

!

interfaceEthernet1/1

ip address 192.168.2.1 255.255.255.0

duplex half

!

router eigrp 2013

network 192.168.1.0

network 192.168.2.0

路由器R2的原始配置:

interfaceEthernet1/0

ip address 192.168.1.2 255.255.255.0

duplex half

!

interfaceEthernet1/1

ip address 192.168.3.1 255.255.255.0

duplex half

!

router eigrp 2013

network 172.16.0.0

network 192.168.1.0

network 192.168.3.0

路由器R3的原始配置:

interfaceEthernet1/0

ip address 192.168.3.2 255.255.255.0

duplex half

!

interfaceEthernet1/1

ip address 192.168.2.2 255.255.255.0

duplex half

!

router eigrp 2013

network 192.168.2.0

network 192.168.3.0

故障分析:根据EIGRP在拓扑表中存放备用路径的原则:邻居路由器的通告距离AD必须要小于自己的可行距离FD,否则有可能存在路由环路。在如图14.20所示的故障环境中,路由器R1通过路由器R2到172.16.1.0/24的开销就是路由器R1的FD;路由器R1的邻居R3到172.16.1.0/24的开销就是路由器R1的AD(邻居通告距离);可以分别在路由器R1和R3上通过指令show ipeigrp 2013 topology查看FD和AD如下图14.23所示。可看出,此时的AD等于FD,所以备用路径不会被放入路由器R1的EIGRP拓扑表。

030327359.png

解决方案:上面分析了故障的原因,现在需要来解决这个故障,要让路由器R3为路由器R1到172.16.1.0/24的备用路径,就必须破除当前这个环境中AD等于FD这个现像,必须让AD小于FD。要达到这个目的,可以调整路由器R3的E1/0接口的延时,当然EIGRP路由度量值计算使用多种复合参数(带宽、延迟、负载、可靠度、MTU),但是建议调整延迟,将其调整得比预计的备用路径的AD更小的延迟,这样就让FD小于了AD,备用路径R3就会被放入到路由器R1的拓扑表中,调整路由器R3延迟的配置如下所示,默认10MB以太网接口的延时是1000微秒,现在通过指令delay 50将其改为500微秒,因为是10微秒为一个单位,所以这里配置50即可。延迟调整前后的变化如下图14.24所示。完成上述改变delay的配置后,再次在路由器R1上查看FD,到路由器R3上查看AD,如下图14.25所示,此时AD小于了FD,并且在路由器R1的拓扑表中出现了两条到目标子网172.16.1.0/24的路由。

改变EIGRP的延迟的配置:

R3(config)#interface e1/0

R3(config-if)#delay 50

030511512.png

030511775.png

现在已经具备非等价负载均衡的条件了,使用AD409600除以FD396800取整再加1得到2,然后实现如下配置,当完成配置后,可以在路由器R1上查看路由表如下所示,已经出现了两条非等价的路由。

配置variance值实现非等价负载均衡:

R1(config)#router eigrp 2013

R1(config-router)#variance 2

R1(config-router)#exit

030613878.png

阅读更多内容

没有评论:

发表评论