BGP筆記整理

一、BGP 基礎概念

1. 產生背景

BGP(Border Gateway Protocol)是自治系統(AS)間的動態路由協議,屬于外部網關協議(EGP),用于在不同 AS 之間傳遞路由信息。

2. 自治系統(AS)

  • 定義:一組被統一管理、運行相同 IGP 協議的路由器集合,通常使用相同路由策略。

  • AS 編號

    • 2 字節:范圍 0-65535(0 和 65535 保留),其中公有 AS 為 1-64511,私有 AS 為 64512-65535。

    • 4 字節:公有 AS 為 65536–4199999999,私有 AS 為 4200000000–4294967294。

二、路由協議分類

  • IGP(內部網關協議):用于 AS 內部路由,如 RIP、OSPF、IS-IS。

  • EGP(外部網關協議):用于 AS 之間路由,BGP 是目前唯一廣泛使用的 EGP。

三、BGP 協議特性

  1. 路由傳遞范圍:僅負責 AS 間路由傳遞,AS 內部路由擴散依賴 IGP。

  2. 路徑矢量協議:一跳代表一個 AS,路由傳入 AS 時,下一跳變為上個 AS 的出接口 IP;AS 內部傳遞時,下一跳不變。

  3. AS 防環機制:通過AS_PATH屬性防環,路由每經過一個 AS,會將該 AS 編號按 “右到左” 順序加入AS_PATH;若收到的路由AS_PATH包含本地 AS 編號,則不學習。

  4. 傳輸層依賴:基于 TCP 協議,端口號 179,需手動配置鄰居。

  5. 更新方式:首次收斂發送完整路由表,后續僅增量更新。

  6. 路由控制:支持多種屬性控制選路,支持路由聚合、過濾和策略。

四、BGP 基本術語

  • BGP Speaker:運行 BGP 協議的路由器。

  • BGP Peer(對等體):通過 TCP 連接交換路由信息的 BGP Speaker,分為:

    • EBGP 對等體:跨 AS 的鄰居,通常物理直連,從 EBGP 學到的路由會通告給所有對等體(包括 EBGP 和 IBGP)。

    • IBGP 對等體:同一 AS 內的鄰居,可非直連,受 “水平分割” 限制(從 IBGP 學到的路由不傳給其他 IBGP)。

五、路由黑洞及解決方法

  • 產生原因:IBGP 鄰居間存在未運行 BGP 的路由器,無法獲取 BGP 路由,導致數據包被丟棄。

  • 解決方法

    1. BGP 引入 IGP;

    2. 在黑洞路由器上配置靜態路由;

    3. IBGP 全連接(需所有 IBGP 路由器互建鄰居,適用于小規模網絡);

    4. 路由反射器(RR,無視 IBGP 水平分割,減少鄰居數量);

    5. BGP 聯盟(將 AS 劃分為子 AS,子 AS 間用 EBGP 連接,減少 IBGP 鄰居)。

六、BGP 環路問題(水平分割)

  1. EBGP 水平分割:通過AS_PATH屬性,若路由包含本地 AS 編號則拒絕學習。

  2. IBGP 水平分割:從 IBGP 對等體學到的路由,不向其他 IBGP 對等體通告。

七、BGP 消息種類

消息類型

作用

Open

建立對等體連接,攜帶router-idHold Time(默認 180s)等參數。

Keepalive

周期保活(默認 60s 發送一次),維持連接有效性。

Update

攜帶路由更新(新增 / 刪除),包含Withdrawn Routes(撤銷路由)和NLRI(新增路由)。

Notification

檢測到錯誤時發送,隨后關閉連接。

Router-refresh

更改路由策略后,請求對等體重發指定地址族的完整路由表。

八、BGP 狀態機

  1. Idle:初始化狀態,準備 TCP 連接,停留 30 秒。

  2. Connect:TCP 連接建立中,失敗則進入 Active 狀態。

  3. Active:主動嘗試建立 TCP 連接,失敗則重試。

  4. OpenSent:TCP 連接建立,發送 Open 報文,等待對方響應。

  5. OpenConfirm:收到 Open 報文,發送 Keepalive,等待對方 Keepalive。

  6. Established:收到 Keepalive,鄰居關系建立,開始交換路由。

九、BGP 鄰居建立條件

1. IBGP 鄰居

  • 物理口建鄰:建議用直連接口地址。

  • 環回口建鄰:需 TCP 可達(路由可達),修改更新源為環回口(peer connect-interface LoopBack 0),默認 TTL 為 255。

2. EBGP 鄰居

  • 物理口建鄰:建議用直連接口地址。

  • 環回口建鄰:需 TCP 可達,修改最大跳數(ebgp-max-hop),默認 TTL 為 1(需改為更大值,如 2)。

注意

  • 若路由器同時有 EBGP 和 IBGP 鄰居,需修改 IBGP 鄰居的下一跳為本機(next-hop-local),否則路由可能不可達。

十、BGP 基本配置

1. 啟動 BGP 并創建連接

[huawei] bgp <as-number>                # 啟動BGP,指定AS編號
[huawei-bgp] router-id <router-id>       # 配置Router-id(可選,建議配置)
[huawei-bgp] peer <ip-address> as-number <as-number>  # 指定對等體及AS
[huawei-bgp] address-family ipv4 unicast  # 進入IPv4地址族(華三設備)
[huawei-bgp-ipv4] peer <ip-address> enable  # 使能對等體路由交換

2. 優化配置

[huawei-bgp] peer <ip-address> connect-interface <interface>  # 指定TCP連接源接口
[huawei-bgp] peer <ip-address> ebgp-max-hop <hop-count>       # 修改EBGP最大跳數

3. 發布路由

# 宣告本地路由
[router-bgp] network <ip-address> [mask <mask-length>] [route-policy <name>]
# 引入其他協議路由
[router-bgp] import-route <protocol> [process-id] [route-policy <name>]

4. 查看命令

display bgp peer        # 查看BGP鄰居狀態
display bgp routing-table  # 查看BGP路由表

十一、BGP 選路原則(13 條)

  1. 丟棄下一跳不可達的路由。

  2. 優選Preferred-value(首選項)最大的路由(默認 0,華為 / H3C 私有屬性)。

  3. 優選Local_Pref(本地優先級)最高的路由(默認 100,僅 IBGP 傳遞)。

  4. 依次選擇network生成、import-route引入、聚合的路由。

  5. 優選AS_PATH最短的路由。

  6. 依次選擇ORIGIN為 IGP(i)、EGP(e)、Incomplete(?)的路由。

  7. 優選MED(多出口鑒別器)最小的路由(默認 0,相鄰 AS 間傳遞)。

  8. 依次選擇從 EBGP、聯盟 EBGP、聯盟 IBGP、IBGP 學到的路由。

  9. 優選下一跳 IGP 度量值最低的路由。

  10. 優選CLUSTER_LIST最短的路由。

  11. 優選ORIGINATOR_ID最小的路由。

  12. 優選 Router ID 最小的路由器發布的路由。

  13. 優選 IP 地址最小的對等體發布的路由。

十二、BGP 屬性

1. 公認必遵屬性(所有路由必須攜帶)

  • AS_PATH:記錄路由經過的 AS 編號,用于防環和選路(短路徑優先)。

  • Next-hop:路由的下一跳 IP,EBGP 鄰居間傳遞時更新,IBGP 鄰居間傳遞時不變(需手動修改為本地)。

  • ORIGIN:路由來源,優先級:IGP(i)> EGP(e)> Incomplete(?)。

2. 公認可選屬性(所有路由器識別,非必須攜帶)

  • Local_Pref:本地優先級,僅 IBGP 傳遞,值越大越優先(默認 100)。

  • Atomic-aggregate:自動聚合標記。

3. 可選傳遞屬性(可不識別,但會傳遞)

  • Community(團體屬性):標記路由,用于批量控制,如no-export(不傳出 AS)、no-advertise(不向任何對等體通告)。

4. 可選非傳遞屬性(可不識別,不傳遞)

  • MED:多出口鑒別器,用于相鄰 AS 間選路,值越小越優先。

  • Cluster_list:路由反射器集群列表,用于防環。

  • Originator_ID:路由反射器中路由的始發者 ID,用于防環。

十三、大規模 BGP 網絡優化

1. 對等體組(Peer Group)

  • 定義:將具有相同屬性的對等體分組,簡化配置。

  • 配置示例

    [R2-bgp] group <group-name> internal  # 創建IBGP對等體組
    [R2-bgp] peer <ip1> group <group-name>  # 加入對等體
    [R2-bgp] peer <group-name> connect-interface LoopBack 0  # 統一配置更新源
    

2. 路由聚合

  • 自動聚合:僅對引入的 IGP 路由聚合到主類(可能產生黑洞),命令:summary automatic

  • 手動聚合:精確匯總,可抑制明細路由,命令:

    [router-bgp] aggregate <network> <mask> detail-suppressed  # 抑制明細路由
    

3. 路由反射器(RR)

  • 作用:替代 IBGP 全連接,減少鄰居數量,允許將從 IBGP 學到的路由反射給其他 IBGP 鄰居。

  • 角色:RR(反射器)、Client(客戶機)、非客戶機。

  • 反射規則

    • 從非客戶機學到的路由,僅反射給客戶機。

    • 從客戶機學到的路由,反射給所有客戶機和非客戶機(除始發者)。

    • 從 EBGP 學到的路由,反射給所有客戶機和非客戶機。

  • 防環機制Cluster_list(記錄經過的 RR 集群 ID)和Originator_ID(路由始發者 ID)。

  • 配置示例

    [R2-bgp] peer <client-ip> reflect-client  # 配置客戶機
    [R2-bgp] reflector cluster-id <id>        # 配置集群ID(可選)
    

4. BGP 聯盟(Confederation)

  • 作用:將一個 AS 劃分為多個子 AS(用私有 AS 編號),子 AS 間用 EBGP 連接,減少 IBGP 鄰居。

  • 配置示例

    [R2] bgp <子AS編號>
    [R2-bgp] confederation id <主AS編號>  # 聲明主AS
    [R2-bgp] confederation peer-as <其他子AS編號>  # 聲明聯盟內其他子AS
    

5. 團體屬性(Community)

  • 作用:標記路由,批量控制路由發布范圍。

  • 公認團體屬性

    • Internet:默認,可通告給所有對等體。

    • no-advertise:不向任何對等體通告。

    • no-export:不傳出 AS(但可在聯盟內子 AS 間傳遞)。

  • 配置示例

    [R1] route-policy <name> permit node 10
    [R1-route-policy] apply community no-export  # 標記為no-export
    [R1-bgp] peer <ip> route-policy <name> export  # 應用策略
    [R1-bgp] peer <ip> advertise-community  # 允許傳遞團體屬性
    

6. 路由衰減(Route Dampening)

  • 作用:解決路由振蕩(頻繁上下線),通過懲罰值抑制不穩定路由。

  • 參數:抑制閾值(默認 2000)、重用閾值(默認 750)、半衰期(默認 15 分鐘)。

  • 配置示例

    [router-bgp] dampening  # 啟用默認參數

十四、BGP 實驗實例

1. 基本配置實驗

  • 目標:配置 EBGP 和 IBGP 鄰居,宣告業務網段,解決路由黑洞。

  • 關鍵步驟

    1. 配置 IP 和 OSPF(AS 內部互通)。

    2. 建立 EBGP(直連)和 IBGP(環回口)鄰居。

    3. 宣告業務網段,通過import-route bgp將 BGP 路由引入 IGP,解決黑洞。

2. 路由控制實驗

  • 目標:通過修改屬性控制選路(MED、Preferred-value、AS_PATH、Local-pref)。

  • 示例:修改 MED 使路由優選某路徑:

    [R2] acl 2000  # 抓取目標網段
    [R2-route-policy] apply cost 100  # 提高MED值
    [R2-bgp] peer <ip> route-policy <name> export  # 應用策略
    

3. 路由反射器實驗

  • 目標:配置 RR 減少 IBGP 鄰居,實現路由反射。

  • 關鍵步驟

    1. 配置 OSPF 確保 TCP 可達。

    2. 建立 IBGP 對等體組,配置 RR 及客戶機。

    3. 聚合業務網段,抑制明細路由。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92394.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92394.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92394.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql-MVCC機制

1. MVCC機制詳解 在Read Uncommitted級別下&#xff0c;事務總是讀取到最新的數據&#xff0c;因此根本用不到歷史版本&#xff0c;所以MVCC不在該級別下工作。 在Serializable級別下&#xff0c;事務總是順序執行。寫會加寫鎖&#xff0c;讀會加讀鎖&#xff0c;完全用不到MVC…

MySQL面試題及詳細答案 155道(061-080)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

大數據中需要知道的監控頁面端口號都有哪些

以下是一些大數據中常見組件監控頁面的端口號&#xff1a;1. Hadoop&#xff1a;HDFS Web UI在Hadoop2.x版本中默認端口為50070&#xff0c;在Hadoop3.x版本中為9870&#xff0c;用于查看集群文件及目錄&#xff1b;YARN Web UI端口為8088&#xff0c;可查看MR執行情況&…

時隔六年!OpenAI 首發 GPT-OSS 120B / 20B 開源模型:性能、安全與授權細節全解

為什么這次開放值得關注&#xff1f; OpenAI 時隔六年再次“放權重”&#xff0c;一次性公布 gpt-oss-120b 與 gpt-oss-20b 兩個尺寸&#xff0c;并允許商業化二次開發 —— 采用 Apache 2.0 許可且可直接在 Hugging Face 下載(WIRED)。官方表示&#xff0c;開放旨在 降低門檻…

漏洞全講解之中間件與框架漏洞(數字基礎設施的“阿喀琉斯之踵“)

一、中間件漏洞的嚴峻現狀根據Synopsys《2023年開源安全報告》顯示&#xff1a;企業應用中平均包含158個中間件依賴高危漏洞年增長率達62%&#xff08;X-Force數據&#xff09;最危險漏洞&#xff1a;Log4j2&#xff08;CVE-2021-44228&#xff09;影響全球83%企業平均修復延遲…

Leetcode——菜鳥筆記2(移動0)

文章目錄題目解題題目 解題 /*nums【0&#xff0c;1&#xff0c;0&#xff0c;3&#xff0c;2】numsSize5 nums【1.3.2.0.0】 1.找非零數&#xff0c;依次放在前面 2.剩下補0 */ void moveZeroes(int* nums, int numsSize) {int count0 0;int temp 0;for (int i 0; i < …

【LINUX網絡】應用層自定義協議與序列化——通過實現一個簡單的網絡計算器來體會自定義協議

在了解了各種協議的使用以及簡單的socket接口后&#xff0c;學會了“怎么傳”的問題&#xff0c;現在來了解一下“傳什么”的問題。 1. 序列化與反序列化 在前面的TCP、UDP的socket api 的接口, 在讀寫數據時, 都是按 "字符串" 的方式來發送接收的. 如果我們要傳輸一…

電腦一鍵重裝系統win7/win10/win11無需U盤(無任何捆綁軟件圖文教程)

建議還是使用U盤進行重裝系統&#xff0c;如果暫時還不會沒有U盤&#xff0c;那就按照我這個來吧。 一&#xff0c;工具下載&#xff1a; 一鍵重裝工具 密碼:g5p3 二&#xff0c;鏡像下載: 鏡像站點&#xff1a;MSDN, 我告訴你 - 做一個安靜的工具站 可以下載需要重裝的系統…

深入探索Supervision庫:Python中的AI視覺助手

深入探索Supervision庫&#xff1a;Python中的AI視覺助手 在計算機視覺和機器學習領域&#xff0c;數據處理和結果可視化是項目成功的關鍵環節。今天我們將深入探討一個強大的Python庫——Supervision&#xff0c;它專為簡化AI視覺項目的工作流程而設計。 什么是Supervision&am…

面向對象之類、繼承和多態

系統是由匯總了數據和過程的“對象”組成的。在面向對象中&#xff0c;軟件被定義為“類”&#xff0c;然后創建“實例”并運行。系統是通過“實例”之間的互相交換“消息”而運行的&#xff0c;但由于進行了“封裝”&#xff0c;所以無法查看內部的詳細內容&#xff0c;這被稱…

傳統防火墻與下一代防火墻

防火墻的發展過程第一種簡單包過濾防火墻工作于&#xff1a;3、4層實現了對于IP、UDP、TCP信息的一些檢查優點&#xff1a;速度快、性能高、可用硬件實現&#xff1b;兼容性較好檢查IP、UDP、TCP信息缺點&#xff1a;安全性有限&#xff1a;僅能基于數據包的表面層面進行審查&a…

計算機視覺前言-----OpenCV庫介紹與計算機視覺入門準備

前言&#xff1a;OpenCV庫介紹與計算機視覺入門 OpenCV概述 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個開源的計算機視覺和機器學習軟件庫&#xff0c;由Intel于1999年首次發布&#xff0c;現由非盈利組織OpenCV.org維護。它包含了超過2500種…

AI面試系統助手深度評測:6大主流工具對比分析

導語&#xff1a;秋招季&#xff0c;企業如何破局高效招聘&#xff1f;隨著2024年秋招季臨近&#xff0c;企業招聘壓力陡增。據牛客調研數據顯示&#xff0c;74.2%的求職者已接觸過AI面試&#xff0c;89.2%的企業認為AI顯著提升了篩選效率。然而&#xff0c;面對市場上琳瑯滿目…

浮雕軟件Artcam安裝包百度云網盤下載與安裝指南

如你所知&#xff0c;ArtCAM是一款專業的CAD/CAM軟件工具&#xff0c;主要用于三維浮雕設計、珠寶加工及CNC數控雕刻&#xff0c;可將二維構思快速轉化為三維藝術產品&#xff0c;深受使用者的喜愛。一、主要應用領域?工藝品與制造業?&#xff1a;木工雕花、標牌制作、模具制…

六邊形架構模式深度解析

在分布式系統設計領域&#xff0c;六邊形架構&#xff08;Hexagonal Architecture&#xff0c;又稱端口與適配器模式&#xff09;作為一種以領域為中心的架構模式&#xff0c;通過明確分離核心業務邏輯與外部交互&#xff0c;有效提升系統的可測試性、可擴展性與可維護性。本文…

Beelzebub靶機

一、主機發現 arp-scan掃描一下局域網靶機 二、信息收集 nmap -sV -A -T4 -p- 192.168.31.132 22端口ssh服務和80端口web服務是打開的 目錄掃描 三、滲透測試 訪問一下web服務是個apache的首頁 web頁面分析 有一個很奇怪的地方&#xff0c;index.php明明是一個200的響應&a…

目前常用于視頻會議的視頻編碼上行/下行帶寬對比

視頻編碼上行/下行帶寬對比H.264、VP8和VP9在不同終端數量下的上行與下行帶寬需求差異&#xff08;單位&#xff1a;Mbps&#xff09;編碼效率說明H.264基準編碼標準&#xff0c;上行和下行帶寬需求相對較高&#xff0c;硬件兼容性最佳VP8開源編碼&#xff0c;上行和下行帶寬均…

CrewAI ——構建多智能體協作的框架

CrewAI 是一個用于構建多智能體協作的框架&#xff0c;它的核心目標是通過協調多個智能體&#xff08;Agents&#xff09;來完成復雜任務。這些智能體不僅可以在單一任務中進行合作&#xff0c;還可以在動態、開放的環境中進行交互與協作。CrewAI 的設計和實現使得智能體之間能…

【數據結構初階】--排序(五)--計數排序,排序算法復雜度對比和穩定性分析

&#x1f525;個人主頁&#xff1a;草莓熊Lotso &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C語言》 《數據結構與算法》《C語言刷題集》《Leetcode刷題指南》 ??人生格言&#xff1a;生活是默默的堅持&#xff0c;毅力是永久的…

InfluxDB 數據備份與恢復高級策略(二)

案例實戰&#xff1a;InfluxDB 數據備份恢復業務場景描述假設我們正在參與一個大型的物聯網項目&#xff0c;該項目涉及分布在不同區域的數千個傳感器設備 &#xff0c;這些設備實時采集環境溫度、濕度、設備運行狀態等數據&#xff0c;并將這些數據存儲在 InfluxDB 數據庫中。…