1,BGP報文
Open:建鄰居,交換version、AS號、holdtime、BGP identifier(即RouterID)、可選參數長度、可選參數。
Keepalive:保持鄰居 ,即和BGP對等體的keepalive消息。
Update:路由更新 ,NLRI(前綴和前綴長度)、路徑屬性、被撤銷路由。每個update只有一個路徑信息。
Notification:出錯關閉連接 ,檢測到錯誤條件時發送notification,然后立即關閉BGP連接。
Route-refresh:路由策略變化時,重新請求。
備注:
BGP RouterID選擇方法同OSPF。
IGP建鄰居和保持鄰居都是hello包;BGP建鄰居open,保持鄰居keepalive。
思科默認keepalive是60s,holdtime是180s,即180s收不到keepalive即失效。
2,BGP狀態
Idle:初始狀態,查找鄰居路由。
Connect:已找到路由,開始發送TCP包。嘗試TCP三次握手,成功則進入OpenSent,失敗則進入Active反復嘗試。
Active:繼續發送TCP包。TCP連接建立失敗,反復嘗試。
OpenSent:發送Open包,等待對方Open包。收到對端Open后,成功則進入OpenConfirm,出錯則發送notification。
OpenConfirm:發送keepalive包,等待對端keepalive/notification。前者則進入established,后者則進入idle。
Established:收到keepalive,開始交換update。show ip bgp summary最后一列會顯示數字
狀態遷移表:
狀態 | 操作 | 成功 | 失敗 |
idle | 查鄰居路由 | 進入connect | 進入idle |
connect | 發TCP包建TCP | 進入opensent | 進入active |
active | 發TCP包建TCP | 進入opensent | 進入active |
opensent | 發open等待一致open | 進入openconfirm | 發送notification |
openconfirm | 發keepalive等待keepalive/notification | 前者進入established | 后者進入idle |
established | 交互update | 無 | 無 |
停在idle:本端問題,沒有路由,查看IGP是否有問題
停在active:對端問題,鄰居沒有本端路由表,鄰居配錯了對端地址,鄰居沒有配命令,鄰居AS號配錯,neighbor對端與更新源不對。
3,建鄰居和通告路由使用命令
|
IGP | BGP |
建鄰居,即發hello包 | network | neighbor |
通告路由 | network | network |
備注:建鄰居后,一端TCP179,另一端隨機端口,另外建立兩條鏈路,然后隨機拆掉一條