一、BGP簡介
1.BGP概述
邊界網關協議(BGP)是運行于 TCP 上的一種自治系統的路由協議
BGP(Border Gateway Protocol),我們稱之為邊界網關路由協議,用于自治系統(Autonomous System)之間交換路由信息(交換網絡可達信息)
這些信息有效地構造了 AS 互聯的拓撲圖,并由此清除了路由環路
同時在 AS 級別上可實施策略決策(選擇最佳路由的矢量協議)
2.AS概述
自治系統(AS),指的是在同一個組織管理下、使用相同策略的設備的集合(也就是說,對于互聯網來說,一個AS是一個獨立的整體網絡)
每個AS有自己唯一的編號,不同AS通過AS號區分
AS號取值范圍:1-65535,其中64512-65535是私有AS號,IANA(互聯網數字分配機構)負責AS號的分發
二、BGP分類
1.EBGP
運行于不同AS之間的BGP稱為EBGP(自治系統之間交換路由信息)
為了防止AS間產生環路,當BGP設備接收EBGP對等體發送的路由時,會將帶有本地AS號的路由丟棄
2.IBGP
運行于同一AS內部的BGP稱為IBGP(在自治系統內部路由器之間來同步路由信息)
為了防止AS內產生環路,BGP設備不將從IBGP對等體學到的路由通告給其他IBGP對等體,并與所有IBGP對等體建立全連接
三、BGP的路由器號(Router-ID)
BGP的Router-ID是一個用于標識BGP設備的32位值,通常是IPv4地址的形式,在BGP會話建立時發送的Open報文中攜帶
對等體之間建立BGP會話時,每個BGP設備都必須有唯一的Router ID,否則對等體之間不能建立BGP連接
BGP的Router-ID在BGP網絡中必須是唯一的,可以采用手工配置,也可以讓設備自動選取
缺省情況下,BGP選擇設備上的Loopback接口的IPv4地址作為BGP的Router-ID
如果設備上沒有配置Loopback接口,系統會選擇接口中最大的IPv4地址作為BGP的Router-ID
一旦選出Router-ID,除非發生接口地址刪除等事件,否則即使配置了更大的地址,也保持原來的Router-ID
四、BGP的特點
BGP使用TCP作為其傳輸層協議(監聽端口號為179),提高了協議的可靠性
BGP是外部路由協議,用來在AS之間傳遞數據,對穩定性要求非常高。因此用TCP協議的高可靠性來保證BGP協議的穩定性
BGP的對等體之間必須邏輯上連通,并進行TCP連接(目的端口號為179,本地端口號任意)
BGP對等體和IGP對等體不同,BGP對等體(Peer)是指使用TCP建立連接的兩端,而非與IGP同概念的直連鄰居,只要TCP能夠建立連接并不一定需要直連
BGP本身只負責控制路由,數據轉發依然靠靜態或IGP路由
BGP支持無類別域間路由CIDR
路由更新時,BGP只發送更新的路由,大大減少了BGP傳播路由所占用的帶寬,適用于在Internet上傳播大量的路由信息
BGP是一種增強的距離矢量路由協議,從設計上避免了環路的發生
AS之間:BGP通過攜帶AS_Path信息標記途經的AS,帶有本地AS號的路由將被丟棄,從而避免了域間產生環路
AS內部:BGP在AS內學到的路由不會再通告給AS內的BGP鄰居,避免了AS內產生環路
BGP提供了豐富的路由策略,能夠對路由實現靈活的過濾和選擇
BGP提供了防止路由振蕩的機制(路由衰減),有效提高了Internet網絡的穩定性
BGP易于擴展,能夠適應網絡新的發展(ipv4單/組播、vpv4單/組播),主要是通過TLV進行擴展
五、BGP的工作原理
BGP對等體的建立、更新和刪除等交互過程主要有5種報文、6種狀態機和9個原則
1.BGP的5種報文
BGP對等體間通過以下5種報文進行交互,其中Keepalive報文為周期性發送,其余報文為觸發式發送:
Open報文:用于協商BGP對等體的各項參數,主要包括BGP版本(V4)、AS號等信息,建立BGP對等體連接
Open是TCP連接建立后發送的第一個報文
Update報文:用于在對等體之間交換路由信息
連接建立后,有路由需要發送或者路由變化時,發送Update通告對端可達或者撤銷路由信息及路徑屬性
Notification報文:用于中斷BGP連接
當BGP在運行中發現錯誤時,發送Notification報文通告BGP對端,隨后與之相關的鄰居關系將被關閉
Keepalive報文:用于保持BGP連接(保活)
定時發送Keepalive報文以保持BGP對等體關系的有效性
響應收到的正確的Open報文
Route-refresh報文:用于在改變路由策略后軟復位(刷新)BGP路由表請求對等體重新發送路由信息
只有支持路由刷新(Route-refresh)能力的BGP設備會發送和響應此報文
2.BGP的6種狀態機
BGP對等體的交互過程中存在6種狀態機:空閑(Idle)、連接(Connect)、活躍(Active)、Open報文已發送(OpenSent)、Open報文已確認(OpenConfirm)和連接已建立(Established)
在BGP對等體建立的過程中,通常可見的3個狀態是:Idle、Active和Established
Idle狀態是BGP初始狀態,在Idle狀態下,BGP拒絕鄰居發送的連接請求
只有在收到本設備的Start事件后,BGP才開始嘗試和其它BGP對等體進行TCP連接,并轉至Connect狀態
在Connect狀態下,BGP啟動連接重傳定時器(Connect Retry),等待TCP完成連接
●如果TCP連接成功,那么BGP向對等體發送Open報文,并轉至OpenSent狀態
●如果TCP連接失敗,那么BGP轉至Active狀態,反復嘗試連接
●如果連接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那么BGP繼續嘗試和其它BGP對等體進行TCP連接,停留在Connect狀態
在Active狀態下,BGP總是在試圖建立TCP連接
●如果TCP連接成功,那么BGP向對等體發送Open報文,關閉連接重傳定時器,并轉至OpenSent狀態。
●如果TCP連接失敗,那么BGP停留在Active狀態。
●如果連接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那么BGP轉至Connect狀態
在OpenSent狀態下,BGP等待對等體的Open報文,并對收到的Open報文中的AS號、版本號、認證碼等進行檢查
●如果收到的Open報文正確,那么BGP發送Keepalive報文,并轉至OpenConfirm狀態
●如果發現收到的Open報文有錯誤,那么BGP發送Notification報文給對等體,并轉至Idle狀態
在OpenConfirm狀態下,BGP等待Keepalive或Notification報文
如果收到Keepalive報文,則轉至Established狀態,如果收到Notification報文,則轉至Idle狀態
在Established狀態下,BGP可以和對等體交換Update、Keepalive、Route-refresh報文和Notification報文。
●如果收到正確的Update或Keepalive報文,那么BGP就認為對端處于正常運行狀態,將保持BGP連接。
●如果收到錯誤的Update或Keepalive報文,那么BGP發送Notification報文通知對端,并轉至Idle狀態
●Route-refresh報文不會改變BGP狀態
●如果收到Notification報文,那么BGP轉至Idle狀態
●如果收到TCP拆鏈通知,那么BGP斷開連接,轉至Idle狀態
3.BGP的9個原則(對等體之間的交互原則)
BGP設備將最優路由加入BGP路由表,形成BGP路由。BGP設備與對等體建立鄰居關系后,采取以下交互原則:
從IBGP對等體獲得的BGP路由,BGP設備只發布給它的EBGP對等體
從EBGP對等體獲得的BGP路由,BGP設備發布給它所有EBGP和IBGP對等體
當存在多條到達同一目的地址的有效路由時,BGP設備只將最優路由發布給對等體
路由更新時,BGP設備只發送更新的BGP路由
所有對等體發送的路由,BGP設備都會接收
所有EBGP對等體在傳遞過程中下一跳改變
所有IBGP對等體在傳遞過程中下一跳不變
默認EBGP傳遞時TTL值為1
默認IBGP傳遞時TTL值為255
4.建立對等體注意點
直連建立對等體需要注意的點
建立IBGP對等體時要讓下一跳可達,處于邊界的IBGP對等體需要將下一跳指向自己,這樣才能建立IBGP對等體
用環回口建立鄰居需要注意的點
需要修改更新源,默認更新源是物理口,需要修改成環回口,建立IBGP對等體時要保障下一跳可達,處于邊界的IBGP對等體需要將下一跳指向自己,這樣才能建立IBGP對等體
建立EBGP對等體時因為EBGP只能傳一跳,因而,在建立EBGP對等體時,需要修改EBGP多跳的跳數為2以上(自己環回到對端環回是兩跳,默認一跳)
關于為什么要用環回口建鄰居
原因是環回口穩定,只要路由器啟動著,環回口就不DOWN,而物理鏈路可能會受線路或者接口等因素的影響導致對等體關系有問題,因而一般BGP建立對等體都是環回口來建
審核編輯:郭婷
-
互聯網
+關注
關注
55文章
11248瀏覽量
106349 -
路由器
+關注
關注
22文章
3837瀏覽量
116622
原文標題:BGP理論難理解?別怕,這篇文章給你總結的明明白白!
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Path Bandwidth Extended Community:藏在BGP屬性里的智能路由革命

動態BGP與靜態BGP的區別?
Type-C PD Sink快充協議芯片XSP01E的特點及工作原理

確保藍牙網關穩定連接的8個核心方法
何時選擇OSPF作為路由協議

多線BGP技術通過哪幾種方式提升網絡穩定性?
芯科科技Wi-SUN邊界路由器解析
網關和路由器的對比分析
UART協議的工作原理和應用場景
諧振電路的工作原理和特點
華為設備中的BGP命令詳解
利用Modbus轉OPC UA協議網關實現Modbus設備無縫通信

評論