BGP理論基礎

BGP理論基礎

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


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


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


三、 BGP的路由器號(Router ID):
用於標識 BGP 設備的 32 位的值,一般是 IPv4 地址的形式,在 BGP 會話創建時發送的 Open 報文中攜帶。對等體之間創建 BGP 會話時,每一個 BGP 設備都必須有惟一的
Router ID,不然對等體之間不能創建 BGP 鏈接。ide


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


五、 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報文。router


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


七、 BGP認證:
1)、MD5認證:只能對TCP鏈接設置認證;(BGP是經過TCP承載,因此BGP後續報文都有認證信息)
2)、Keychain認證:能夠爲TCP鏈接設置認證,也能夠對BGP協議報文設置認證。繼承


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


九、 BGP屬性:
1)、公認必遵(Well-known mandatory):全部路由器都認識,Update信息必須有,不然會報錯;
2)、公認任意(Well-known discretionary):全部路由器都認識,Update信息無關緊要;
3)、可選傳遞(Optional transitive):路由器能夠不認識,可是會接收此類屬性,而且傳遞給其餘對等體;
4)、可選非傳遞(Optional non-transitive):路由器能夠不認識,但若是不認識就會忽略此類屬性,而且不會傳遞給他的對等體。ip


十、 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地址低的優先。


十一、 路由反射器原理及路由發佈規則:
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添加)。


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


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

相關文章
相關標籤/搜索