BGP的基礎理論知識

轉載網址:https://blog.csdn.net/Enoch_Liu/article/details/106491303

BGP(邊界網關協議,屬於傳輸層協議),可用於同AS(自治系統)之間的內部動態路由協議,成爲IBGP,也可用在不同AS之間,稱爲EBGP
 

一、BGP的特點:

    BGP是一種EGP(外部網關協議),與OSPF、RIP等IGP(內部網關協議)不同,不能去發現、計算路由,只能控制路由傳播和選擇最佳路由
    BGP使用TCP作爲傳輸層協議(端口號179),提高協議可靠性
    BGP是一種距離矢量協議,採用到目的地址所經過的AS列表來衡量到目的地址距離
    BGP支持CIDR(無類別域間路由)
    路由更新時,只發布更新路由,減少了BGP傳播所佔帶寬
    BGP通過攜帶AS路徑信息徹底解決路由環路問題
    BGP提供策略路由,能對路由實現靈活的過濾和選擇
    BGP易於擴展,能適應網絡新的發展
    
二、BGP的消息類型

    Open:TCP連接建立後發送的第一個消息,用於BGP對等體之間建立會話
    Updata:用於對等體之間交換路由信息,一條Updata可以發佈具有相同路徑屬性的多條可達路由,也可以同時撤銷多條不可達路由
    Keepalive:BGP週期性向對等體發送Keepalive消息,保持會話有效性
    Route-refresh:用來要求對等體重新發送指定地址簇的路由信息
    Notification:當BGP檢測到錯誤狀態,就向對等體發出Notification消息,之後BGP會話會立即中斷
    
三、BGP的路由屬性
    1.源
        源屬性定義信息來源,有三種

            IGP:優先級最高,表示路由產生於AS內
            EGP:優先級次之,表示路由通過EGP學到 
            Incomplete:優先級最低,表示路由來源無法確定。比如其他路由協議引入的路由信息
            
    2.AS路徑(AS_PATH)
        AS_PATH屬性記錄了某條路由從本地到目的地址所要經過的所有AS號,當BGP路由器將一條路由通告到其他AS中,會把本地號添加在AS_PATH列表中。收到的路由的BGP路由根據AS_PATH屬性就可以知道達到目的地址所要經過的AS
        AS_PATH屬性有以下兩種:

            AS_SEQUENCE:AS號按照一定的順序排列,離本地AS最近的相鄰AS號排在前面,其他AS號按順序依次排列
            AS_SET:AS號只是經過的AS的簡單羅列,沒有順序要求
        AS_PATH屬性的用途:

            避免環路形成:缺省下,如果BGP路由器接收到路由的AS_PATH屬性中已包含了本地AS,則會認爲出現環路,拒絕該路由
            影響路由的選擇:其他因素相同下,BGP優先選擇路徑短的路由
            對路由過濾:配置AS路徑過濾表,可以針對AS_PATH屬性中所包含的AS號來對路由進行過濾
    
    3.下一跳(NEXT_HOP)
        BGP的NEXT_HOP屬性取值不一定是鄰居路由器的IP,NEXT_HOP屬性取值分爲以下幾種:
            BGP發言者對自己產生的路由發送給鄰居,把該路由信息的NEXT_HOP屬性設爲自己對端連接的端口
            BGP發言者把接收的路由發送給EBGP對等體時,將該路由信息NEXT_HOP屬性設爲與自己對端連接的接口
            BGP發言者把從EBGP鄰居得到的路由發送給IBGP鄰居,並不會改變路由信息的NEXT_HOP屬性。如果配置負載分擔,等價路由被髮送給IBGP鄰居則會修改NEXT_HOP屬性
    
    4.MED(多出口區分)
        MED屬性僅在兩個AS之間交換,收到此屬性的AS不會再將其通告給其它AS
        MED屬性相當於IGP使用的度量值,它用於判斷流量進入AS時最佳路由,當一個BGP路由器通過不同的EBGP對等體得到目的地址相同但下一條不同的路由時,其它條件相同的情況下,將優先選擇MED值最小的作爲最佳路由
    
    5.本地優先(LOCAL_PREF)
        LOCAL_PREF僅在IBGP對等體之間交換,不通告給其他AS,它表明BGP路由器的優先級.
        LOCAL_PREF屬性用於判斷流量離開AS時的最佳路由,當BGP路由器通過不同的IBGP對等體得到目的的地址相同但下一跳不同的多條路由時,將優先選擇LOCAL_PREF屬性較高的路由
   
    6.團體(COMMUNITY)
        BGP將相同特徵路由歸一起稱一個團體,在路由中攜帶團體屬性標識路由所屬團體。團體沒有物理邊界,不同AS能屬於一個團體
        公認團體屬性:

        INTERNET:缺省下,所有的路由都屬於INTERNET團體,有此屬性的路由可以被通告給所有的BGP對等體
        NO_EXPORT:有此屬性的路由收到後,不能被髮布到本地AS之外,如果使用聯盟,則不能被髮布到聯盟外,可以發佈給聯盟中其他AS
        NO_ADVERTISE:有此屬性的路由被接收後,不能被通告給任何其他的BGP對等體
        NO_EXPORT_SUBCONFED:此屬性的路由被接收後,不能被髮布到本地AS之外,不能被髮布到聯盟中的其他子AS
    
    7.擴展團體屬性
        擴展團體屬性與團體屬性的不同點:

            擴展團體屬性爲八字節,提供更多的屬性值
            擴展團體屬性可劃分類型
        設備支持拓展團體屬性有*** Target屬性和SoO屬性。
        SoO屬性有三種格式:

            16位自治系統號:32位用戶自定義數
            32位IP地址:16位用戶自定義數
            32位自治系統號:16位用戶自定義數字,其自定義系統號最小值爲65536
    
    
四、BGP的選路規則:

    丟棄下一跳不可達的路由
    優先首選值最大的路由
    優先選擇本地優先級最高路由
    優先選擇network命令產生的路由,import-route命令引入的路由、聚合路由
    優先選擇AS路徑最短路由
    依次選擇ORIGIN類型IGP、EGP、Incomplete的路由
    優先選擇MED值最低的路由
    優先選擇EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由
    優先選擇下一跳Cost值最低的路由
    優先選擇CLUSTER_LIST長度最短的路由
    優先選擇ORIGINATOR_ID最小的路由
    優先選擇Router ID最小的路由器發佈的路由
    優先選擇IP地址最小的對等體發佈的路由

五、BGP發佈路由策略

    存在多條有效路由時,BGP發言者只發最優的給對等體
    BGP發言者只會把自己使用的路由發佈給對等體
    BGP發言者會將從EBGP獲得的路由發佈給所有BGP對等體
    BGP發言者會將從IBGP獲得的路由發佈給他的EBGP對等體
    會話建立,BGP發言者把滿足條件的所有BGP路由發佈給新對等體。此後BGP發言者只在路由發生變化,就會向對等體發佈更新的路由

六、BGP負載分擔
    BGP負載分擔分爲兩種

        基於迭代路由實現負載分擔
        通過改變BGP選路規則實現負載分擔
————————————————
版權聲明:本文爲CSDN博主「劉以諾_lyn」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Enoch_Liu/article/details/106491303

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