拓扑如下所示:
备注:R3和R4模拟不同出口的ISP运营商路由器。
具体配置(各接口IP的配置略,R5上有指向R2的默认路由)
R3、R4运行OSPF: router ospf 1 network 0.0.0.0 255.255.255.255 area 0 \\直接将所有网段通告了 R2: interface Ethernet0/0 ip address 1.1.1.2 255.255.255.0 ip nat outside interface Ethernet0/1 ip address 10.45.1.1 255.255.255.0 ip nat outside interface Ethernet0/3 ip address 192.168.1.1 255.255.255.0 ip nat inside ip route 0.0.0.0 0.0.0.0 10.45.1.3 ip route 0.0.0.0 0.0.0.0 1.1.1.1 ip nat inside source route-map isp_a interface Ethernet0/0 overload \\分组被nat时要通过整个nat列表顺序(sh run时)过滤的,第一条匹配不再执行第二条 ip nat inside source route-map isp_b interface Ethernet0/1 overload access-list 100 permit ip any any route-map out_a permit 10 match ip address 100 match interface Ethernet0/0 \\匹配接口,强制nat的出口,从而指定nat列表中的条目。所以这条命令在多出口nat时很重要 route-map out_b permit 10 match ip address 100 match interface Ethernet0/1
验证:
R2(config)#do ping 2.2.2.2 sou 192.168.1.1 R2(config)#do ping 10.45.2.1 sou 192.168.1.1 看到ping两个出口isp都显示不可达。 为解决这种问题,将两条默认路由的管理距离修改一下。在这里将ip route 0.0.0.0 0.0.0.0 1.1.1.1 管理距离修改为5 R2(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1 5
继续验证:
R2(config)#do ping 2.2.2.2 sou 192.168.1.1 \\只能走out_b但是不可达 R2(config)#do ping 10.45.2.1 sou 192.168.1.1 \\可达
到此解决了双出口路由冲突的问题。主备链路也形成,当R2出口到达ISPB之间出故障时,指向out_b的默认路由将消失并被指向out_a的默认路由取代,从而所有数据往out_a走。这种主备配置方法与接下来的介绍的另一种配置方法效果一样,但另一种的扩展性很好,可以对更远的ISP目标进行监测,如DNS等,从而将监测的结果决定默认路由在路由表中的存在与消失。
在双出口拓扑中,一般使用的技术有如下三种:
A、负载均衡法,即将内网分成两部分,一部分走out_a,另一部分走out_b。配置要点如下, access-list 100 permit ip 192.168.1.0 0.0.0.127 any access-list 110 permit ip 192.168.1.128 0.0.0.127 any route-map nat1_iapa permit 10 \\在用路由映射表做nat match ip address 100 match interface Ethernet0/0 route-map nat2_ispb permit 10 \\在用路由映射表做nat match ip address 110 match interface Ethernet0/1 route-map route1 permit 10 \\在192.168.1.1接口上使用route1的策略路由 match ip address 100 set ip next-hop 1.1.1.1 route-map route1 permit 20 match ip address 110 set ip next-hop 10.45.1.3
注意这里没有配置默认路由。
由于这种没有备用链路的负载均衡配置法,当其一ISP出现故障就会使部分用户瘫痪,所以很少有人使用这种配置。
B、主备链路法,正常时使用主链路,当主链路出现故障时,使用备链路。这种配置法虽然也不是最佳方法,但里边的技术要点很重要,下面将具体介绍此配置法。
接着第1)步的配置,把双线形成主备链路。配置如下:
ip sla monitor 11 \\启用监测服务协议(sla全名Service-Level Agreement,服务等级协议),监测某服务的运行状态 type echo protocol ipIcmpEcho 1.1.1.1 source-interface Ethernet0/0 \\定义监测服务的内容 frequency 5 ip sla monitor schedule 11 life forever start-time now \\执行监测服务的时间等 ip sla monitor 22 type echo protocol ipIcmpEcho 10.45.1.3 source-interface Ethernet0/1 frequency 5 ip sla monitor schedule 22 life forever start-time now track 1 rtr 11 reachability \\跟踪对象(track)用于跟踪ip sla操作的状态 track 2 rtr 22 reachability ip route 0.0.0.0 0.0.0.0 1.1.1.1 5 track 1 \\将跟踪对象与该路由关联起来。 ip route 0.0.0.0 0.0.0.0 10.45.1.3 2 track 2
从默认路由与跟踪对象的关联,可知以out_b为主链路,out_a为备。
这种主备链路技术还有一种配置方法可以实现,比如与ISPB连接使用OSPF协且在ISPB端里边通告了默认路由。而与ISPA连接使用默认路由且一定要将管理距离修改大于OSPF的默认通告路由,这样在路由表中只显示ospf的默认路由了,当ospf端出现故障时,由于没有收到对端ospf的通告(即没有ospf默认路由),这时指向IPSA的默认路由将在路由表中显示,从而完成主备切换。