随笔:故障处理之BGP翻动
故障處理-BGP篇
BGP Flapping Issue Case Study
一、問題狀態
發現兩個IBGP鄰居不停的flapping,有一個明顯的規律是bgp 鄰居建立起來之后經過大約5分鐘的時間就會因為holdtimer超時而down掉,然后鄰居又會馬上建立起來。
二、問題分析思路
環境兩個IBGP鄰居用loopback0建立IBGP鄰居,中間經過多臺路由器。
示意拓撲如下:
1.問題的規律
2.從log中我們可以發現這個IBGP鄰居斷掉以及重建的規律。
因為bgp鄰居每次斷掉之后就會很快的重建起來,IP路由應該沒有問題。
(1)現在我們要理解bgp鄰居建立起來之后會做什么。發送路由更新,也就是update報文。
(2)對于bgp來說,鄰居的維護使用keepalive報文,但是如果有路由更新,發送update報文的話,此update報文就具有keepalive報文的功能,路由器就不用再專門發送一個bgp keepalive報文。 綜合以上兩點我們可以懷疑是bgp update報文對端沒有收到。
3.由于是第一個update報文,根據路由表容量的大小,我們可以知道這個報文會達到最大值,我們知道bgp 報文最大可以達到4096個字節,同時也受限于TCP 對端的MSS大小。
MSS(Maximum Segment Size ) 是指一個host能夠接受最大TCP datagram的大小,這個值是在tcp option字段中協商得到的。我們可以通過以下命令知道。
如下這個命令輸出的Datagrams (max data segment is 4394 bytes)。
4.檢查當前BGP的MSS值
show ip bgp vpnv all neighbors 10.32.100.100 | in Datagrams
5, 檢查線路是否可以通過當前的MSS值報文
這里可以使用設備自帶的擴展ping或者不分片ping測試即可,具體命令不寫了。如果不通,我們可以知道是路徑中某臺路由器的接口mtu較小導致。
6.解決辦法
變更線路經過的所有接口MTU值為一致,或者將本端出接口MTU調整到全程最小MTU,即可穩定
問題總結此問題
對于bgp 的troubleshooting,因為bgp 是基于tcp報文的,所以不僅僅是ip層面的,也有可能是也要基于tcp層面進行分析。
1.BGP neighbor發出的notification而導致的鄰居down掉,我們都可以基于給出的 error code 和subcode(holdtimer 超時是4/0)來知道down掉的原因。
具體的code的分類和意思可以參考RFC4271.2.相關命令Show ip bgp
總結
以上是生活随笔為你收集整理的随笔:故障处理之BGP翻动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vant踩坑地址AddressList地
- 下一篇: 高端音响的死亡被大大夸大了