前二天做了单路由器多isp出口的实验。今天做一个多路由器多isp出口的实验。直接进入正题。


拓扑描述(博文编辑器我插入不了图片,悲剧,大家可以根据我的描述,自己画一个图,拓扑很简单。)


实验模拟器gns3.


分别有三个路由器R1,R2,R3和交换机,还有一个云(挂在本机的虚拟网卡上连接网络)

  R1模拟公网,上面起了一个loopback接口,地址为1.1.1.1。测试公网使用。

  R2模拟电信出口,f0/0口连接R1的f0/0。f0/1连接内部的交换机,中间起了trunk。

  R3模拟网通出口,f0/0口连接R1的f0/1。f0/1连接内部的交换机。中间起了trunk。

  本机虚拟网卡,挂在交换机上,并且划入了vlan10。ip:10.10.10.3 


R2是vlan10的主路由器。R3是vlan20的主路由器。相互是备份关系。


R2:

interface FastEthernet0/0

 ip address 111.111.111.1 255.255.255.0

 ip nat outside

 shutdown

 duplex auto

 speed auto


interface FastEthernet1/0

 switchport mode trunk

 no ip address


interface Vlan10

 ip address 10.10.10.1 255.255.255.0

 ip nat inside

 ip policy route-map setnext10

 standby ip 10.10.10.254

 standby priority 120

 standby preempt

 standby track FastEthernet0/0 30

(这里强烈建议用sla来调用,standby track 1 decrement 30 这个是调用语句。以下是真实机器上面测试结果,当在vlan20上面调用sla之后。拔掉光端机的光纤后:

Switch#

*4 12:28:43.547: %TRACKING-5-STATE: 1 ip sla 1 reachability Up->Down

Switch#

*4 12:28:45.003: %HSRP-5-STATECHANGE: Vlan20 Grp 0 state Active -> Speak

Switch#

*4 12:28:56.271: %HSRP-5-STATECHANGE: Vlan20 Grp 0 state Speak -> Standby

,vlan20 由原来的active变成了standby)

!

interface Vlan20

 ip address 20.20.20.2 255.255.255.0

 ip nat inside

 ip policy route-map setnext10

 standby ip 20.20.20.254

 standby preempt


ip nat inside source route-map netvlan10 interface FastEthernet0/0 overload

ip nat inside source route-map netvlan20 interface FastEthernet0/0 overload

no ip http server

no ip http secure-server

ip classless

ip route 0.0.0.0 0.0.0.0 FastEthernet0/0

!

!

!

ip access-list extended vlan10

 permit ip 10.10.10.0 0.0.0.255 any

ip access-list extended vlan20

 permit ip 20.20.20.0 0.0.0.255 any

no cdp log mismatch duplex

!

route-map setnext permit 10

 match ip address vlan10

 set ip next-hop verify-availability 111.111.111.2 1 track 1

(这里可以用track 来判断此路是否通,因为hsrp上面已经进行了track了所以这里的配置主要是想调用sla来检测,但是不影响,因为没有定义track 1。但是gns3上面无法模拟sla。web iou模拟器又无法模拟hsrp,网关出不去,只有hsrp的状态,实际没有用,话说只有ping不同虚拟ip的bug,但是没有说无法ping通外网。不知道是我这样还是都这样。大家可以自己试试。)

!

route-map setnext permit 20

 match ip address vlan20

 set ip next-hop 111.111.111.2

!

route-map netvlan20 permit 10

 match ip address vlan20

 match interface FastEthernet0/0

!

route-map netvlan10 permit 10

 match ip address vlan10

 match interface FastEthernet0/0


end


route-map部分就不解释了,上一篇实验已经详细解释过。不清楚的可以去看看。

R3的配置跟R2的差不多,就是hsrp的主次,还有ip地址。其他一样。

直接上测试结果:


主机ping外网:

C:\Users\Administrator.USER-20161031KX>ping 1.1.1.1


正在 Ping 1.1.1.1 具有 32 字节的数据:

请求超时。

来自 1.1.1.1 的回复: 字节=32 时间=27ms TTL=254

来自 1.1.1.1 的回复: 字节=32 时间=110ms TTL=254

来自 1.1.1.1 的回复: 字节=32 时间=27ms TTL=254


查看R2的nat转换:



*Mar  1 02:22:08.323: NAT*: i: icmp (10.10.10.3, 1) -> (1.1.1.1, 1) [9042]

*Mar  1 02:22:08.323: NAT*: s=10.10.10.3->111.111.111.1, d=1.1.1.1 [9042]

*Mar  1 02:22:08.359: NAT*: o: icmp (1.1.1.1, 1) -> (111.111.111.1, 1) [9042]

*Mar  1 02:22:08.359: NAT*: s=1.1.1.1, d=111.111.111.1->10.10.10.3 [9042]


数据包的过程是:pc---->R2----->外网

pc已经在R2上成功转换。


关闭R2的出口端口:

* 4 02:25:35.595: %HSRP-6-STATECHANGE: Vlan10 Grp 0 state Active -> Speak

R2已经成为备份路由器了。

这个时候在用pc ping外网:


查看R3的nat信息(此时路由器不走R2)

* 4 02:28:12.223: NAT*: i: icmp (10.10.10.3, 1) -> (1.1.1.1, 1) [9506]

* 4 02:28:12.223: NAT*: s=10.10.10.3->222.222.222.1, d=1.1.1.1 [9506]

* 4 02:28:12.239: NAT*: o: icmp (1.1.1.1, 1) -> (222.222.222.1, 1) [9506]


数据包的过程是:pc---->R3----->外网

pc已经在R3上成功转换


 实验结束,谢谢!