BGP協議筆記

一、BGP協議(邊界網關協議)

是一種用于自治系統間的動態路由協議,是一種外部網關(EGP)協議。負責在不同自治系統(AS)之間交換路由信息,目的是實現大規模網絡的可擴展性、策略控制和穩定性。

自治系統AS:一組被進行統一管理,運行同一個IGP協議的路由器組成的網絡范圍。通常使用相同的路由策略。

查看AS編號:www.cidr.report

二、BGP特性

路徑向量協議:記錄路由的完整AS路徑(AS-Path防環機制),而非跳數,避免環路;

TCP連接:使用TCP 179端口,建立可靠的單播連接(鄰居(peer)無需直連);

增量更新:僅傳播變化的路由,減少帶寬消耗;

策略驅動:支持基于AS路徑、前綴、團體屬性等靈活控制路由;

策略優先:支持豐富的路由策略(如路由過濾、屬性修改);

支持IPv4/IPv6:通過MP-BGP擴展支持多協議(如VPNv4、EVPN)。

三、BGP基本術語

? ?BGP Speaker:運行BGP協議的路由器稱為BGP發言者

? ?BGP Peer:相互之間在TCP連接、相互交換路由信息的BGP發言者之間互稱為BGP對等體

BGP鄰居可以直連,也可以非直連

BGP鄰居類型:

?IBGP(內部BGP);建立在同一AS內,無需直連;用于企業內部分分支路由同步。

?EBGP(外部BGP);建立在不同AS間,默認要求直連;用于運營商之間互聯。

四、BGP規劃問題(路由黑洞)

產生原因:由于IBGP鄰居之間有沒有運行BGP協議的路由器,無法獲得BGP的路由,從而導致數據包進入路由器被丟棄。

解決方法:

(1)BGP引入IGP

(2)在黑洞路由器上配置目的網段的靜態路由

(3)IBGP全連接??----IBGP防環機制:IBGP水平分割:從IBGP鄰居學習到的路由不會傳遞給其他IBGP鄰居

4)BGP路由反射器(無視IBGP的防環機制,可以減少鄰居關系的數量)

(5)BGP聯盟(可以減少鄰居關系的數量,IBGP水平分割限制)

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

1、EBGP水平分割(AS_PATH)

通過AS_PATH屬性防環,在學習到的路由中,若有本地AS號,則拒絕學習,防止環路

2、IBGP水平分割

當路由器從一個IBGP對等體學習到某條BGP路由時,它將不能再把這條路由通告給任何IBGP對等體。

六、BGP消息種類(數據包可抓包看)

(1)BGP頭部信息:

標記(Marker):該字段被保留下來用于解決協議兼容性問題,沒有其他含義

長度(length):指示BGP報文的長度(字節數)

類型(Type):該字段指示了BGP報文的類型,就是前面提到的BGP5種數據包類

(2)數據包種類

Open:用于建立BGP對等體之間的連接關系,正常收發一次即可;攜帶route-id

Hold time:保持時間,該字段表示路由器在收到Keepalive消息或者Update消息之前等 待的最長時間,默認180s,如果鄰居雙方的保持時間不一致,將以較短的時間作為雙 方可接收的保持時間。

可選參數長度:指示了BGP報文中可選參數的長度

可選參數:Open包中包含多個可選參數,主要用于宣告及協商BGP對等體的某些 能力特征。

Keepalive:周期性的向BGP對等體發出Keepalive(周期保活)消息,用于保持連接 的有效性,在默認情況下每60秒發送一條Keepalive消息,或者以已協商一致的保 持時間的1/3為周期發送Keepalive消息。默認60s超時180s

Update:攜帶的是路由更新(刪減、增加)信息

Notfication:當BGP檢測到錯誤狀態時,就向對等體發出notfication消息,之后BGP 連接會立即被關閉(鄰居關系結束了)

Router-refresh:用于在改變路由策略后,要求對等體重新發送指定地址族的完整路由 表信息;只有支持路由刷新能力的路由器才會響應router-refresh報文。

七、BGP鄰居建立條件

IBGP:

物理口建鄰:

? 建議使用直連接口地址(物理地址)來指定IBGP鄰居;

環回口建鄰:

?對方接口要有IP地址,TCP可達(需要具有到達對方IP地址的路由),建議使用環回口地址來指定IBGP鄰居

更新源地址必須和指定的鄰居地址一致,需要修改更新源為環回;

[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0

?IBGP鄰居關系不需要直連;

EBGP:

物理口建鄰:

建議使用直連接口地址(物理地址)來指定EBGP鄰居;

環回口建鄰:

對方接口要有IP地址,TCP可達,

可通過修改EBGP最大跳數來使EBGP非直連;

更新源地址必須和指定的鄰居地址一致;

注:當一個路由器既有EBGP鄰居,又有IBGP鄰居的時候,需要對IBGP鄰居修改下一跳本機,否則會造成BGP的路由信息傳遞失敗。

BGP與IGP的對比

區別:

BGP

OSPF/RIP

協議類型

路徑向量(AS級路由)

鏈路狀態/距離向量(域內路由)

收斂速度

慢(策略復雜)

快(觸發更新)

適用場景

跨AS路由(如IS互聯)

企業內部網絡

八、BGP配置

基礎配置:

1.基礎eBGP對等體建立

??# bgp 65001???#進入BGP視圖,AS號為65001# router-id 1.1.1.1 ??#手動指定Router ID# peer 203.0.113.2 as-number 65002 ??#指定對端IP和AS號# peer 203.0.113.2 connect-interface 10 ??#指定與對等體建立會話時使用的本地 源接口# peer 203.0.113.2 ebgp-max-hop [hop-count] ??#修改最大跳數(默認255)# ipv4-family unicast ??#進入IPv4單播地址族# peer 203.0.113.2 enable ??#激活對等體

??2.路由引入與聚合

??# import-route ospf 1 ??#引入OSPF路由# aggregate 172.16.0.0 255.255.0.0 detail-suppressed ??#手動聚合路由(抑制明細)

??3.策略控制(基于Community)

##設置路由策略# route-policy BGP_OUT permit node 10# apply community no-export ??#標記路由不導出到其他AS##應用策略# peer 203.0.113.2 route-policy BGP_OUT export

高級特性配置:

1.路由反射器(RR)

##解決iBGP全互聯問題# peer 10.1.1.3 reflect-client ??#配置路由反射器客戶端

??2.BGP Confederation(聯盟)

##將大AS劃分為多個子AS,內部使用eBGP規則:# confederation id 65000 ??#對外顯示的統一AS號# confederation peer-as 65001 65002 ??#聲明子AS號

??3.BGP路由衰減(Dampening)

??##抑制頻繁震蕩的路由# dampening ??#啟用衰減

查看BGP對等體狀態:

# display bgp peer

檢查BGP路由表:

# display bgp routing-table

# display ip routing-table protocol bgp

驗證路由屬性:

# display bgp routing-table 192.168.1.0

調試BGP報文:

# debugging bgp packet

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

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

相關文章

Ⅹ—6.計算機二級綜合題27---30套

第27套 【填空題】 給定程序中,函數fun的功能是:計算形參x所指數組中N個數的平均值(規定所有數均為正數),將所指數組中小于平均值的數據依次移至數組的前部,大于等于平均值的數據依次移至x所指數組的后部,平均值作為函數值返回,在主函數中輸出平均值和移動后的數據。 …

GDB 調試全方位指南:從入門到精通

在程序開發中,調試是定位和解決問題的核心環節。GDB (GNU Debugger) 作為一款功能強大的命令行調試器,是Linux環境下C/C開發者的必備利器。本文將系統講解GDB的使用方法,涵蓋基礎操作到高級技巧,助你高效排錯。一、基礎準備&#…

Python:從元類到多態的實戰指南

Python 作為一門靈活且強大的編程語言,其高級特性為開發者提供了極大的創造力和代碼優化空間。本文將圍繞元類、序列化、抽象類與多態等核心高級特性展開,結合豐富的實戰代碼示例,從原理到應用進行全方位解析,幫助你更深入地理解 …

LLM實戰(三)——昇騰300i duo推理卡(NPU)大模型推理記錄

npu推理環境配置:https://ascend.github.io/docs/sources/ascend/quick_install.html llama-factory適配的NPU說明:https://llamafactory.readthedocs.io/zh-cn/latest/advanced/npu_inference.html 一些CANN命令: 與cuda的對應關系 # 查看NPU信息 npu-smi info = nvidia-s…

【原創】銳捷AM5532宿舍AP接口狀態智能巡檢實戰:Python腳本+Excel報表+QQ自動推送,某高校落地案例

? 項目已穩定運行 180+ 天,累計巡檢 14 萬接口,郵件告警 0 漏報 ?? CSDN 質量分 5.0 標準:代碼 + 圖表 + 可落地 + 可復制, 歡迎收藏、點贊、評論三連! 一、背景 某 高校學生宿舍采用銳捷 RG-AM5532 系列交換機下掛無線 AP,高峰期 2.4 萬終端并發。 網絡中心痛點: …

用戶、組和目錄的磁盤配額

一、XFS_quota限制用戶和組的容量(block)與文件數量(inode);限制block就限制了用戶可以使用的磁盤容量,限制inode就可以限制用戶新建的文件數量限制某一目錄的最大磁盤配額(directory project&a…

[GESP202506 五級] 最大公因數

題目描述 對于兩個正整數 a,ba,ba,b,他們的最大公因數記為 gcd?(a,b)\gcd(a,b)gcd(a,b)。對于 k>3k > 3k>3 個正整數 c1,c2,…,ckc_1,c_2,\dots,c_kc1?,c2?,…,ck?,他們的最大公因數為: gcd?(c1,c2,…,ck)gcd?(gcd?(c1,c2,……

實現一個進程池(精講)

目錄 寫進程池前的理論掃盲 進程池的實現 寫進程池前的理論掃盲 父進程創建子進程,父子倆都看見同一片資源,這片資源被倆進程利用,用來通信,這片資源就是管道,如圖所示,能很好地詮釋管道。 那么什么是進程…

【tips】css模仿矢量圖透明背景

就像棋盤格background-image: linear-gradient(45deg, #f0f0f0 25%, transparent 25%), linear-gradient(-45deg, #f0f0f0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f0f0f0 75%), linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);background-…

visual studio 歷史版本安裝

visual studio 歷史版本安裝 鏈接:Visual Studio 版本路線圖 說明:該頁面提供歷史版本的發布說明及下載鏈接(需滾動至頁面底部查找相關版本)。例如,2022 版本可能包含 17.0 至 17.14 等子版本,用戶可根據需…

微軟推出“憤怒計劃“:利用AI工具實現惡意軟件自主分類

微軟周二宣布推出一款能夠自主分析并分類軟件的人工智能(AI)代理系統,旨在提升惡意軟件檢測能力。這款基于大語言模型(LLM)的自主惡意軟件分類系統目前仍處于原型階段,被微軟內部代號命名為"憤怒計劃&…

SOLIDWORKS Electrical:實現真正意義上的機電協同設計

隨著市場的發展,企業面臨兩個方面的挑戰:從業務和市場方面來看,為了在競爭中取得更大優勢,需要更高質量的產品,較低的成本并縮短產品上市周期;從設計和技術方面來看,產品的集成度越來越高&#…

MySql_忘記了root密碼怎么辦

《MySql_忘記了root密碼怎么辦》在忘記root密碼的時候,可以按以下步驟處理(以windows為例)。_1) 關閉正在運行的MySQL服務。_2) 打開DOS窗口,轉到mysql\bin目錄。_3) 輸入mysqld –skip-grant-tables 回車。–skip-grant-tables 的…

wstool和catkin_tools工具介紹

好的,我們來詳細介紹一下 python3-wstool 和 python3-catkin-tools 這兩個在 ROS (Robot Operating System) 開發中非常重要的工具,以及它們之間的關系。 首先,python3- 這個前綴表示這些是針對 Python 3 的軟件包版本,這在現代 R…

吳恩達 深度學習筆記

最近在看吳恩達深度學習系列課程,簡單做一個基本框架筆記。 如感興趣或了解更多內容,推薦看原課程 以前也做過一些與機器學習和深度學習有關的筆記,過分重復的就一筆帶過了。 01 第一門課 神經網絡和深度學習 1.1 第一周:深度學習…

2025數字馬力一面面經(社)

2025數字馬力一面面經(社) 日常自我介紹js數據類型有哪些(報完菜名后簡單分析了一下使用引用類型)談談對const、var、let的理解(變量提升、let和const的主要區別、使用const命名引用類型的時可以對引用類型進行操作&am…

PyQt 中 pyqtSignal 的使用

目錄 基本用法 示例代碼 關鍵特性 常見用途 一、信號的定義規則 二、完整用法步驟 1. 導入必要模塊 2. 定義帶信號的類 3. 定義接收信號的槽函數 4. 連接信號與槽 5. 發射信號 6. 斷開連接(可選) 三、高級特性 1. 跨線程通信 2. 信號連接方式 3. 信號與匿名函數 4. 信號轉發 …

使用Python驗證常見的50個正則表達式

什么是正則表達式?正則表達式(Regular Expression)通常被用來檢索、替換那些符合某個模式(規則)的文本。此處的Regular即是規則、規律的意思,Regular Expression即“描述某種規則的表達式”之意。本文收集了一些常見的正則表達式用…

Redis是單線程性能還高的原因

Redis是單線程Redis單線程是指Redis的網絡IO和鍵值對讀寫是由一個線程完成的,其他功能還是使用多線程執行Redis主干業務使用單線程的原因Redis本質就是一個大的共享資源,共享資源是需要對其進行并發控制的,即使增加了線程,大部分線程也是在等待互斥鎖,并行變串行,而且還需要進行…

若依前后端分離版學習筆記(七)—— Mybatis,分頁,數據源的配置及使用

一 Mybatis 1、Maven依賴 在ruoyi父項目的pom文件中有一個分頁插件的依賴 <!-- pagehelper 分頁插件 --> <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version&…