BGP五種報文類型及實戰應用解析
Open 報文:自我介紹信
作用:幫助兩個路由器確認彼此的身份信息。
自我介紹:發送方(R1)發送一個包含自身AS號的報文,例如“我是AS100,希望每60秒聯繫一次”。
對方回應:接收方(R2)必須確認AS號是否正確,否則會導致斷聯。如果AS號正確,R2會發送一個類似的報文。
驗證:雙方必須同時發送自我介紹,否則可能無法建立連接。這種驗證確保了雙方身份的正確性。
注意事項:AS號必須唯一且正確,避免假AS號的出現。這種報文是BGP連接的基礎,確保了雙方的初步身份驗證。

Update 報文:路線變更通知
作用:通知對方哪些地址能到達(新增路由)和哪些地址不通(撤銷路由)。
詳細工作流程:
數據準備:發送方(R1)收集所有最新的路由信息,包括新增和刪除的路由。
報文結構:Update報文由發送方的AS號、目的AS號、路由信息組成,例如:“從AS100到AS200的路由是192.168.1.1/24”。
發送與處理:R1發送Update報文給R2,R2檢查是否已收到並確認新路由。如果R2未收到,可能需要發送自己的Update報文以確認。
注意事項:每次發送只傳輸變化部分,節省流量。如果發送的路由信息錯誤(如聲稱能到達無法到達的地址),會導致網絡混亂。

Keepalive 報文:心跳消息
作用:定期確認對方是否活著,確保網絡的連通性。
詳細工作流程:
時間設置:雙方在配置中設置相同的保活時間,通常是每20秒一次。
報文頻率:根據保活時間,發送方每20秒發送一次Keepalive報文,例如:“我還活著”。
驗證:接收方在收到Keepalive報文後,如果超過保活時間未收到回覆,可能會發送Notification報文,要求斷開連接。
注意事項:保活時間需要一致,否則可能導致一方多次發送或等待過久。Keepalive報文只佔19字節,不會佔用太多帶寬。

Notification 報文:絕交信
作用:發現對方違規時,立即斷絕關係。
詳細工作流程:
常見違規類型:
錯誤碼2:對方AS號錯誤,例如發送了錯誤的AS號。
錯誤碼3:路由環路,例如繞回自身家。
處理流程:發送方發送Notification報文,例如:“你填寫的AS號是假的!請斷開連接。”接收方如果未回覆或拒絕,發送方必須重新加對方為鄰居才能恢復聯繫。
注意事項:一旦發送Notification報文,必須確保雙方再次建立連接才能恢復關係。這種報文是BGP中重要的斷聯機制,確保網絡的安全性。

Route-Refresh 報文:地圖重傳請求
作用:讓路由器發送最新的路由信息,無需斷開連接。
詳細工作流程:
數據準備:發送方(R1)收集最新的路由信息,包括所有更新的路由。
報文結構:Route-Refresh報文由發送方的AS號和最新的路由信息組成,例如:“從AS100到所有地址的最新路由是192.168.1.1/24”。
發送與處理:R1發送Route-Refresh報文給R2,R2檢查是否已收到並確認新路由。如果R2未收到,可能需要發送自己的Route-Refresh報文以確認。
注意事項:Route-Refresh報文可以避免頻繁斷聯,適合需要頻繁更新的情況。如果發送的路由信息錯誤,可能導致網絡混亂。

六種狀態機:友誼的六個階段
Initial(初始)
狀態:剛購買路由器,未開啟BGP功能。
行為:不主動加鄰居,也不通過好友申請。
檢查:確認是否開啟BGP功能。

Connect(嘗試連接)
狀態:主動或被動嘗試加對方為鄰居。
行為:瘋狂點擊“加好友”按鈕,等待對方確認。
檢查:對方IP是否正確。防火牆是否開放179端口。

Active(被動等待)
狀態:雙方都在等待對方確認。
行為:每隔2分鐘重試一次加好友。
問題:雙方同時等待,導致僵持狀態。

OpenSent(已發送開放信息)
狀態:雙方確認身份,開始發送Update報文。
行為:發送自我介紹信,確認AS號一致。
檢查:對方AS號是否正確。保活時間是否一致。

OpenConfirm(已確認)
狀態:確認成功,進入穩定連接狀態。
行為:定期發送Keepalive報文。
斷聯條件:連續3次未收到回覆。對方發送違規內容。

Established(穩定連接)
狀態:成為穩定的好友,日常操作正常。
行為:發送Update報文更新路由。發送Keepalive報文保持連接。
檢查:對方是否在穩定狀態下。路由器是否正常運行

實戰示例:排查網絡斷網問題
現象:BGP鄰居一直卡在Active狀態。 排查步驟:
檢查加好友流程:確認雙方IP是否正確。防火牆是否開放179端口。
查看報文狀態:確認雙方是否已發送開放信息。檢查保活時間是否一致。
解決方法:一方發送Notification報文,要求對方確認AS號。使用debug bgp命令查看詳細報文,找出問題所在。

總結:BGP的核心要點
BGP是網絡中的“五筆字型”:不關心數據如何傳輸,只關心如何選擇路由。
五種報文是網絡連接的“工作流程”:Open → Update → Keepalive → Notification → Route-Refresh。
狀態機是人際關係的“階段圖”:從陌生人到穩定好友,中間任何一步出錯都會導致網絡問題。
