路由故障:出口流量负载分担未实现


  本文标签:路由 流量

路由策略配置不当导致出口流量负载分担未能实现的解决办法如下:

网络环境

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上的配置如下:

  1. ospf 1  
  2.  
  3. default-route-advertise cost 2000 type 1  
  4.  
  5. preference ase route-policy Change_OSPF_DR_Pre 150  
  6.  
  7. route-policy Change_OSPF_DR_Pre deny node 10  
  8.  
  9. if-match ip-prefix match_default_route  
  10.  
  11. apply preference 211  
  12.  
  13. route-policy Change_OSPF_DR_Pre permit node 20  
  14.  
  15. 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上修改路由策略配置如下:

  1. route-policy Change_OSPF_DR_Pre permit node 10  
  2.  
  3. if-match ip-prefix match_default_route  
  4.  
  5. apply preference 211  
  6.  
  7. route-policy Change_OSPF_DR_Pre permit node 20 

----结束

案例总结

根据路由策略规则,deny指定节点的匹配模式为拒绝,当路由项满足该节点的if-match子句时,apply子句不会被执行,并且不进入下一个节点;如果路由项不满足该节点的if-match子句,将进入下一个节点继续测试  。