路由故障:出口流量負載分擔未實現
路由策略配置不當導致出口流量負載分擔未能實現的解決辦法如下:
網絡環境
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子句,將進入下一個節點繼續測試。
【編輯推薦】