如上图所示,SR88-X路由器出口路由器与对端两台设备互联,两台SR88上旁挂两台防火墙;在SR88-X出口配置PBR将入向流量引到防火墙上,同时在SR88-X内网接口配置PBR将内网出向流量同样引到防火墙上,通过PBR节点形成进行防火墙主备切换;
正常情况下,网络正常可达;但是在FW切换测试过程中发现如下问题:
1. 将主用防火墙DOWN后,流量切换正常;
2. 此时再将备用防火墙DOWN后,流量发生中断;
3. 此时将外网接口的PBR取消后,通信正常;
由以上信息来看,为什么在下一跳不可达的情况下,策略路由还是会生效呢?为什么会造成流量中断呢?
由于网络拓扑较大,我们抽丝剥茧来将拓扑简化一下,如下所示:
SR88-X设备(使用模拟器MSR3620模拟)关键配置如下,
//网络互通配置
ospf 1
area 0.0.0.0
//tracert测试使用
ip unreachables enable
ip ttl-expires enable
//关闭快速转发负载分担
undo ip fast-forwarding load-sharing
#LF—CD侧的策略路由
policy-based-route h3c permit node 10
if-match acl 3001
apply next-hop 20.0.0.2
#CD—LF侧策略路由
policy-based-route h4c permit node 10
if-match acl 3002
apply next-hop 20.0.0.2
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
ospf 1 area 0.0.0.0
#外网接口
interface GigabitEthernet0/0
port link-mode route
combo enable copper
ip address 10.0.0.2 255.255.255.252
ospf 1 area 0.0.0.0
ip policy-based-route h3c
#内网接口
interface GigabitEthernet0/1
port link-mode route
combo enable copper
ip address 10.0.0.5 255.255.255.252
ospf 1 area 0.0.0.0
ip policy-based-route h4c
#FW接口
interface GigabitEthernet0/2
port link-mode route
combo enable copper
ip address 20.0.0.1 255.255.255.252
#还原现网配置,有一条汇总的路由下一跳为LF
ip route-static 20.0.0.0 8 10.0.0.1
#
acl advanced 3001
rule 0 permit ip destination 3.3.3.3 0
#
acl advanced 3002
rule 0 permit ip destination 1.1.1.1 0
在LF侧tracert CD侧,流量正常上送防火墙:
traceroute to 3.3.3.3 (3.3.3.3) from 1.1.1.1, 30 hops at most, 40 bytes each packet, press CTRL_C to break
1 10.0.0.2 (10.0.0.2) 1.000 ms 1.000 ms 0.000 ms
2 20.0.0.2 (20.0.0.2) 2.000 ms 1.000 ms 0.000 ms
3 20.0.0.1 (20.0.0.1) 2.000 ms 0.000 ms 1.000 ms
4 3.3.3.3 (3.3.3.3) 2.000 ms 2.000 ms 1.000 ms
在CD侧tracert LF侧,流量正常上送防火墙:
traceroute to 1.1.1.1 (1.1.1.1) from 3.3.3.3, 30 hops at most, 40 bytes each packet, press CTRL_C to break
1 10.0.0.5 (10.0.0.5) 0.875 ms 0.792 ms 0.549 ms
2 20.0.0.2 (20.0.0.2) 0.950 ms 1.167 ms 2.085 ms
3 20.0.0.1 (20.0.0.1) 1.470 ms 1.001 ms 0.916 ms
4 1.1.1.1 (1.1.1.1) 2.098 ms 2.226 ms 2.024 ms
此时关闭与防火墙互联端口,然后在LF侧tracert CD侧tracert,路由发生环路:
traceroute to 3.3.3.3 (3.3.3.3) from 1.1.1.1, 30 hops at most, 40 bytes each packet, press CTRL_C to break
1 10.0.0.2 (10.0.0.2) 1.000 ms 1.000 ms 0.000 ms
2 10.0.0.1 (10.0.0.1) 0.000 ms 1.000 ms 2.000 ms
3 10.0.0.2 (10.0.0.2) 0.000 ms 1.000 ms 0.000 ms
4 10.0.0.1 (10.0.0.1) 1.000 ms 1.000 ms 1.000 ms
5 10.0.0.2 (10.0.0.2) 1.000 ms 1.000 ms 1.000 ms
6 10.0.0.1 (10.0.0.1) 1.000 ms 1.000 ms 1.000 ms
7 10.0.0.2 (10.0.0.2) 1.000 ms 2.000 ms *
8 10.0.0.1 (10.0.0.1) 1.000 ms 1.000 ms 2.000 ms
9
在CD侧tracert LF侧不通:
[H3C]tracert -a 3.3.3.3 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1) from 3.3.3.3, 30 hops at most, 40 bytes each packet, press CTRL_C to break
1 10.0.0.5 (10.0.0.5) 0.847 ms 0.684 ms 0.639 ms
2
从上面tracert结果可以看出,此时PBR未失效,而是根据路由表中的静态路由进行了转发,查看配置手册描述如下:
·首先根据配置的策略路由转发。
·若找不到匹配的节点或虽然找到了匹配的节点,但指导报文转发失败时,再根据路由表中除缺省路由之外的路由来转发报文。
·若转发失败,则根据策略路由中配置的缺省下一跳和缺省出接口指导报文转发。
·若转发失败,则再根据缺省路由来转发报文。
这种情况下虽然下一跳不可达,但是会查找路由表中进行迭代查找下一跳进行转发,需要注意如果配置的是默认路由,则不会出现路由环路的情况。
1. 重新规划路由,不要写缺省的大网段汇总路由;
2. 配置策略路由下一跳时,可以添加direct参数:
policy-based-route h3c permit node 10
if-match acl 3001
apply next-hop 20.0.0.2 direct
#
policy-based-route h4c permit node 10
if-match acl 3002
apply next-hop 20.0.0.2 direct
此时tracert正常:
[H3C]tracert -a 1.1.1.1 3.3.3.3
traceroute to 3.3.3.3 (3.3.3.3) from 1.1.1.1, 30 hops at most, 40 bytes each packet, press CTRL_C to break
1 10.0.0.2 (10.0.0.2) 2.000 ms 0.000 ms 1.000 ms
2 3.3.3.3 (3.3.3.3) 1.000 ms 1.000 ms 1.000 ms
1. 路由规划要细致;
2. 要熟悉PBR的转发规则;
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作