拓扑如下所示:
备注: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的默认路由将在路由表中显示,从而完成主备切换。