今天值班,,觀察流量時突然發(fā)現(xiàn)中中E320往中中CRS方向的OUT流量劇降,幾乎為0了。登錄上E320查看OSPF鄰居,,一切正常,,查看路由表,發(fā)現(xiàn)OSPF下發(fā)的默認路由只有從中南CRS來的,,中中CRS竟然沒有下發(fā)默認路由,。這可不妙,馬上登錄中中CRS查看中中CRS的配置,,發(fā)現(xiàn)配置沒有問題的,。查看中中CRS的路由表,發(fā)現(xiàn)中中CRS的默認路由竟是從中南學習過來的OSPF,,而正常應該是從D1路由器學習過來的EBGP路由,。
聯(lián)想到凌晨D1路由器有割接,于是想可能是割接時候配置有問題,,這臺D1路由器沒有下發(fā)默認路由,。于是立刻上報。但NOC回復說D1配置沒有問題,,肯定下發(fā)了BGP默認路由,。查看中中CRS的BGP路由表,終于發(fā)現(xiàn)了原因,。原來D1路由器的確下發(fā)了EBGP默認路由,,這在BGP路由表里可以看到,但問題出在這個EBGP默認路由的METRIC值太大,,大于中南CRS發(fā)過來的IBGP默認路由的METRIC值,,而CISCO的CRS設備在這種情況下是優(yōu)先選擇中南CRS下發(fā)的IBGP路由的(這點和華為的設備不同,華為的設備總是優(yōu)選EBGP的,,不比較METRIC值)這樣這條IBGP默認路由被優(yōu)選出來,,同時中中和中南CRS之間還建立有OSPF關系,于是中南CRS還同時把OSPF的默認路由發(fā)給中中CRS,,因為IBGP的路由管理距離要大于OSPF,系統(tǒng)選擇了OSPF做為默認路由放入了路由表,,因為中中E320雙掛中中和中南CRS的,,所以中中CRS發(fā)過來的OSPF默認路由自然沒有被接受(很正常,因為這條默認路由是由中南CRS始發(fā)的外部路由,,OSPF的路由環(huán)路檢測機制會丟棄從中中CRS發(fā)過來的默認路由),。當然如果是EBGP路由在BGP路由選擇中勝出,情況就不一樣了,,因為EBGP路由管理距離要小于OSPF,,系統(tǒng)選擇了EBGP做為默認路由,這樣中中CRS發(fā)給中中E320的默認路由始發(fā)就不是中南CRS了,,而是自己,,中中E320就會接受這條默認路由,,并把從中南接受到的默認路由同時放入路由表,進行負載均擔,。這種情況也是正常的情況,,但D1路由器割接時可能改動了METRIC值,這自然影響了中中CRS的路由選擇,,于是導致了上述情況發(fā)生,。
解決方法也很簡單,那就是恢復D1路由器上的原來的METRIC值,,使得EBGP在BGP路由選擇中勝出,。但這樣會在骨干網(wǎng)上產(chǎn)生路由振蕩。另一種方法就是在中中CRS建立指向D1路由器的默認路由,,這種方法不會產(chǎn)生路由振蕩,,影響最小,實際上最后采用的解決方法也是這一種,。