BGP理論基礎

BGP理論基礎

BGP 的基本概念:
BGP基於TCP來承載,端口號爲179,且無需週期性更新,路由更新 只發送增量路由,通過週期性發送keepalive報文來保活。


1、 自治系統AS(Autonomous System):
AS號分爲2字節和4字節——2字節AS號範圍:1-65535,64511-65535爲私有AS號碼;4字節AS號範圍:2的32次方個。


2、 BGP分類:
1)、EBGP:運行於不同AS之間的BGP;(防環機制:通過as-path機制,即從EBGP鄰居學到的路由中,包含本地AS號的將被丟棄,可通過命令修改爲不丟棄)(EBGP中TTL默認爲1)
2)、IBGP:運行於同一AS內部的BGP;(防環機制:從IBGP對等體學到的路由不通告給其他的IBGP對等體)(IBGP中TTL默認爲255)


3、 BGP的路由器號(Router ID):
用於標識 BGP 設備的 32 位的值,通常是 IPv4 地址的形式,在 BGP 會話建立時發送的 Open 報文中攜帶。對等體之間建立 BGP 會話時,每個 BGP 設備都必須有唯一的
Router ID,否則對等體之間不能建立 BGP 連接。


4、 BGP的5種報文:
1)、open:用於建立BGP對等體連接;
2)、update:用於在對等體之間交換路由信息(包括傳遞可達和不可達的路由信息,不可達的路由信息意思是需要撤銷掉這條路由);
3)、notification:用於中斷BGP連接,當BGP對等體檢測到錯誤的時候,就發送這個消息給對等體;
4)、keepalive:用於保持BPG連接(週期性發送);(間隔時間爲60s,hold time時間爲180s)
5)、route-refresh:用於在改變路由策略後請求對等體重新發送路由信息。只有支持路由刷新能力的BGP設備會發送和響應此報文


5、 BGP狀態機:
6 種狀態機:空閒狀態(Idle)、連接狀態(Connect)、活躍(Active)、 Open 報文已發送(OpenSent)、 Open 報文已確認(OpenConfirm)和連接已建立(Established)
BGP理論基礎
1)、Idle:BGP初始狀態,這個時候拒絕鄰居發送的連接請求。只有收到本設備的Start事件後(相當於我們只要使能了BGP協議,就進入Idle狀態,Start就是我們配置BGP的過程)纔開始嘗試與其他BGP對等體進行TCP連接並轉入Connect狀態。(收到 Notification 報文 或 TCP 拆鏈通知等 Error 事件後,BGP 會轉至 Idle狀態)
2)、Connect:建立TCP連接,並啓用重傳定時器。如果TCP三次握手建立成功,就向BGP對等體發送Open報文並轉入Opensent狀態;如果TCP三次握手建立失敗,就轉入Active狀態;如果在重傳定時器超時後還沒收到對等體的響應(沒有收到對端的TCP響應),那麼就停留在Connect狀態並向其他BGP對等體建立TCP連接。
3)、Active:總是在嘗試建立TCP連接。如果TCP建立成功,就向對等體發送Open報文,關閉重傳定時器並轉入Opensent狀態;如果TCP建立不成功,就停留在Active狀態。
4)、Opensent:說明TCP連接已經正常並且已經發送了Open報文。等待對等體的Open報文,並且檢查所收到對端的Open報文中的AS號,版本,認證等信息。如果正確,就發送keepalive報文,並轉入OpenConfirm狀態;如果錯誤,就發送Notification給對等體,並轉入Idle狀態。
5)、OpenConfirm:等待對等體的keepalive或者Notification報文,如果收到keepalive報文就轉入Estabilished狀態;如果收到Notification報文,就轉入Idle狀態。
6)、Estabilished:交互keepalive,Update,Route-refresh,Notification報文。


6、 BGP對等體交互原則:
1)、 從IBGP鄰居學到的路由,只會發給EBGP鄰居,默認不會發給IBGP鄰居;(IBGP水平分割原則,可以通過路由反射器或聯盟解決)
2)、從EBGP鄰居獲取的路由,傳遞給IBGP鄰居時,默認不會修改下一跳;(可以修改爲下一跳自我)
3)、BGP只會把本地最優的路由傳遞給鄰居;
4)、路由更新時,只會發送更新的BGP路由給鄰居。


7、 BGP認證:
1)、MD5認證:只能對TCP連接設置認證;(BGP是通過TCP承載,所以BGP後續報文都有認證信息)
2)、Keychain認證:可以爲TCP連接設置認證,也可以對BGP協議報文設置認證。


8、 BGP GTSM:
檢測 IP 報文頭中的 TTL(time-to-live)值是否在一個預先設置好的特定範圍內,並對不符合 TTL 值範圍的報文進行允許通過或丟棄的操作,從而實現了保護 IP 層以上業務,增強系統安全性的目的


9、 BGP屬性:
1)、公認必遵(Well-known mandatory):所有路由器都認識,Update信息必須有,否則會報錯;
2)、公認任意(Well-known discretionary):所有路由器都認識,Update信息可有可無;
3)、可選傳遞(Optional transitive):路由器可以不認識,但是會接收此類屬性,並且傳遞給其他對等體;
4)、可選非傳遞(Optional non-transitive):路由器可以不認識,但如果不認識就會忽略此類屬性,並且不會傳遞給他的對等體。


10、 BGP選路策略:
1)、優選協議首選值(PrefVal)最高的路由。(華爲私有屬性,僅在本地有效,默認爲0)
2)、優選本地優先級(Local_Pref)最高的路由;(默認爲100)
3)、依次優選手動聚合路由、自動聚合路由、 network 命令引入的路由、 import-route 命令引入的路由、從對等體學習的路由;
4)、優選 AS 路徑(AS_Path)最短的路由;
5)、依次優選 Origin 類型爲 IGP、 EGP、 Incomplete 的路由;
6)、對於來自同一 AS 的路由,優選 MED(Multi Exit Discriminator)值最低的路由;(默認爲0)
7)、ebgp>ibgp>localcross路由>remotecross路由;(PE上某個 ×××實例的 ×××v4路由的 ERT匹配其他 ×××實例的 IRT後複製到該 ×××實例,稱爲 LocalCross;從遠端 PE 學習到的 ×××v4 路由的 ERT 匹配某個 ××× 實例的 IRT 後複製到該 ××× 實例,稱爲 RemoteCross)
8)、優選到 BGP 下一跳 IGP 度量值(metric)最小的路由;
9)、是否支持負載均衡<maxmum load-balance>,前8條一樣,且as-path完全相同(都是聚合路由或都不是),如果配置了多路徑負載均衡的話,進行負載均衡(這裏默認IBGP和EBGP路由都參與負載均衡);
10)、優選cluster-list長度最小的;
11)、orinator-id越小越優;
12)、router-id越小越優;
13)、peer ip address地址低的優先。


11、 路由反射器原理及路由發佈規則:
1)、採用獨有的 Cluster_List 屬性和 Originator_ID 屬性防止路由環路;
2)、選路規則:
1.從Non-Client端的IBGP對等體學到的路由會發給所有的Client端;
2.從Client端學到的路由,發佈給所有的Client端(發起此路由的Client除外)和Non-Client;
3.從EBGP對等體學到的路由,發佈給所有的Client端和Non-Client;
4.從Non-Client端的IBGP對等體學到的路由不會發給Non-Client端對等體;
3)、Cluster-List和Originator-ID的工作原理:
1.當一個客戶端/非客戶端更新一條路由給RR時,RR首先給這個信息打上Originator-ID,爲這條路由始發的router-id;
2.之後RR給這個更新信息打上自己簇的Cluster-ID放入Cluster-List裏面,並傳遞給他的客戶/非客戶端/另外一個RR;
3.當另外一個RR收到時,在原有的Cluster-List最前面再加上自己簇的Cluster-ID,Originator-ID如果有就不改變,如果沒有就創建;
4.這樣下去,Cluster-List裏面有所有經過RR的Cluster-ID,並且在Originator-ID裏面有路由始發的router-id;
5.當RR收到一個更新信息時,檢查Cluster-List,如果裏面有自己的router-id,就丟棄,如果沒有,就添加並且轉發;
6.當一個非RR收到更新信息時,檢查Originator-ID,如果發現和自己的router-id匹配,就丟棄,否則就接收。 (注:Cluster-List是給RR防環用的,Originator-ID是給非RR防環用的,但都由RR添加)。


12、 BGP路由聚合:
聚合後的路由默認不會繼承明細路由的屬性,從路由表上看是匯聚者自己產生的聚合路由,這樣就會把聚合後的路由反傳給明細路由的始發者,這樣一方面浪費了資源,沒必要將匯聚後的路由傳遞給始發者,一方面造成了路由黑洞,因爲當其中一條明細路由消失後,聚合不會消失(全部明細路由消失,聚合路由纔會消失),這樣去往這個明細的數據包還是通過聚合路由發送過來。所以這個時候我們使用AS-SET,當打上這個屬性後,聚合路由的as-path就是所有明細路由as-path的集合。as-set中的as-path是無序的。 (AS-SET的缺點:當聚合後使用AS-SET命令後,明細路由的消失會導致網絡的震盪,因爲聚合路由的as-path是所有明細的集合,所以當其中明細消失後,路由器都要通告給對等體,AS-PATH有改變。 AS-SET不僅繼承AS-PATH,也繼承起源屬性)


13、 BGP ORF:
ORF:根據本端的入口策略,構建對端的出口策略,本端需要哪些路由告訴對端,讓對端只發送我所需要的這些路由。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章