路由策略配置不当导致出口流量负载分担未能实现的解决办法如下:
网络环境
RouterA与RouterB,RouterA与RouterC之间运行EBGP,RouterB和RouterC之间IBGP,RouterB、RouterC、RouterD、RouterE之间运行OSPF;RouterB和RouterC通过EBGP从RouterA学到缺省路由,缺省路由的下一跳都为RouterA的loopback地址。
在IBGP之间禁止通告缺省路由。RouterB和RouterC的OSPF非强制引入缺省路由,在OSPF域内通告,实现出口流量负载均衡。OSPF域内所有的出境流量都从RouterC出去。
路由策略故障组网图
故障分析
这里RouterC的配置错误为例,RouterB与之类似,此不赘述。
1.RouterC先从EBGP学到的缺省路由并注入到路由表,然后OSPF非强制引入缺省路由;
2.而RouterB有两个方法学到缺省路由,一是通过EBGP从RouterA学到,二是通过OSPF从RouterC学到缺省路由,但在缺省情况下由于OSPF的协议优先级为150,比BGP小,因此,注入路由表的缺省路由是从OSPF学到的;
3.为了使得注入路由表的缺省路由是从EBGP学到的,需要对OSPF的协议优先级(仅针对缺省路由)设置为211,比BGP大。
在RouterB上的配置如下:
- ospf 1
- default-route-advertise cost 2000 type 1
- preference ase route-policy Change_OSPF_DR_Pre 150
- route-policy Change_OSPF_DR_Pre deny node 10
- if-match ip-prefix match_default_route
- apply preference 211
- route-policy Change_OSPF_DR_Pre permit node 20
- ip ip-prefix match_default_route index 10 permit 0.0.0.0 0
route-policy Change_OSPF_DR_Pre deny node 10中的deny的使用不当导致apply子句不执行,因此从OSPF学习到的缺省路由的优先级没有被修改为211,而还是150,注入IP路由表的缺省路由还是从RouterC学到的缺省路由,最终导致路由策略应用不成功。
操作步骤
在RouterB上修改路由策略配置如下:
- route-policy Change_OSPF_DR_Pre permit node 10
- if-match ip-prefix match_default_route
- apply preference 211
- route-policy Change_OSPF_DR_Pre permit node 20
----结束
案例总结
根据路由策略规则,deny指定节点的匹配模式为拒绝,当路由项满足该节点的if-match子句时,apply子句不会被执行,并且不进入下一个节点;如果路由项不满足该节点的if-match子句,将进入下一个节点继续测试。
【编辑推荐】