BGP路由協議(一):基本概念

###BGP概述

BGP的版本:

  1. BGP-1 RFC1105
  2. BGP-2 RFC1163
  3. BGP-3 RFC1267
  4. BGP-4 RFC1771 1994年
  5. BGP-4 RFC4271 2006年
    AS Autonomous System 自治系統:由一個單一的機構或者組織所管理的一系列IP網絡及其設備所構成的集合
    根據工作范圍的不同,動態路由協議可以分兩類:
    a. IGP Interior Gateway Protocol 內部網關協議
    ⅰ. RIP
    ⅱ. OSPF
    ⅲ. IS-IS
    b. EGP Exterior Gateway Protocol 外部網關協議
    ⅰ. BGP

BGP Border Gateway Protocol 邊界網關協議
6. BGP使用TCP作為傳輸層協議 TCP端口 179
7. 建立對等體關系后,只發送增量更新或者在需要時進行觸發性更新
8. BGP采用認證和GTSM的方式,保證了網絡的安全性
9. BGP提供了豐富的路由策略,能夠靈活的進行路由選路,并且指導鄰居按策略發布路由
10. BGP提供了路由聚合和路由衰減功能,用于防止路由震蕩,提高了網絡的穩定性

###BGP對等體關系類型

  1. BGP的對等體關系不要求設備必須直連
  2. BGP基于TCP 179 端口建立連接

BGP兩種對等體關系:

  1. EBGP External BGP Peer 如果建立對等體關系的兩臺路由器位于不同的AS,那么他們之間的關系被稱為EBGP對等體關系
    a. EBGP對等體之間發送的BGP協議報文的TTL值默認為1,可以修改
    b. 通常情況下,EBGP對等體關系基于直連接口建立
  2. IBGP Internal BGP Peer 如果建立對等體關系的兩臺BGP路由器位于相同的AS,那么他們之間的關系被稱為IBGP對等體關系
    a. IBGP對等體不要求路由器必須路直連

###BGP鄰居建立

  1. eBGP:運行于不同AS之間的BGP稱為eBGP。為了防止AS間產生環路,當BGP設備接收eBGP對等體發送的路由時,會將帶有本地AS號的路由丟棄
  2. iBGP:運行在相同AS之內BGP稱為iBGP,為了防止AS內產生環路,在AS內需要保持全連接的iBGP鄰居

###BGP的路由標識(RouterID)

BGP的RouterID是一個用于標識BGP設備的32位的值,通常是IPv4地址的格式,在BGP會話建立時發送的Open報文攜帶。對等體之間會話建立,每個BGP設備都必須有唯一的RouterID,否則對等體之間無法建立連接
BGP RouterID可以通過兩種方式獲取:

  1. BGP自動選取
  2. 手工配置
    缺省情況下,BGP選中設備上Loopback接口的IPv4地址作為BGP設備的RouterID,如果沒有配置Loopback接口,系統會選擇接口中最大的地址作為BGP的RouterID。一旦選出RouterID,除非發生進程重啟或者接口地址刪除,否則即時配置了更大的地址,也保持原來的RuterID

###BGP有線狀態機

  1. Idle
    a. BGP空閑狀態,在Idle狀態下,BGP拒絕鄰居發送的連接請求,此時等待由BGP系統發出的Start事件
    b. Strat事件發生后,BGP會對自己的資源進行初始化,重置連接計時器(Connect Retrt 默認為32s),發起TCP連接請求,并且開始偵聽遠端對等體發起連接的端口,并轉至Connect狀態
    c. Start事件是一個由操作者配置一個BGP過程,或者重置一個已經存在的過程,或者路由器軟件重置BGP過程引起的
    d. 任何狀態中收到Notification報文或者TCP拆除鏈路通知等Error事件后,BGP都會轉至Idle狀態
  2. Connect
    a. 在Connect狀態下,BGP啟動重傳定時器,等待TCP完成連接
    b. 如果TCP連接成功,那么BGP向對等體發送Open報文,并轉至OpenSent狀態
    c. 如果TCP連接失敗,那么BGP轉至Active狀態
    d. 如果連接重傳定時器超時,BGP任沒有收到BGP對等體的響應,那么BGP繼續嘗試和其他BGP對等體進行TCP連接,停留在Connect狀態
    e. 如果發生其他事件(如BGP系統或者操作者人員啟動的),則退回Idle狀態
  3. Active
    a. 在Active狀態,BGP總是在試圖建立TCP連接
    b. 如果TCP連接成功,那么BGP向對等體發送Open報文,關閉連接重傳定時器,并轉至OpenSent狀態
    c. 如果TCP連接失敗,那么BGP停留在Active狀態
    d. 如果重傳定時器超時,任沒有收到BGP對等體的響應,那么BGP轉至Connect狀態
    e. 如果發生其他事件 如BGP系統或者操作者人員啟動的),則退回Idle狀態
    f. 如果鄰居狀態在Connect和Active來回切花,有可能是TCP重傳次數過多或者IP地址不可達造成的
  4. OpenSent
    a. 在OpenSent狀態下,BGP等待對等體的Open報文,并對收到的Open報文中的AS號、版本號、認證碼等進行檢查
    b. 如果收到的Open報文正確,那么BGP發送Keepalive報文,且重置Keepalive定時器,并轉至OpenConfirm狀態
    c. 如果收到的Open報文有錯誤,那么BGP發送Notification報文給對等體,并轉至Idle狀態
  5. OpenConfirm
    a. 在OpenConfirm狀態下,BGP等待keepalive或Notification報文,如果收到keepalive報文,則轉至Established,如果收到Notification報文,則轉至Idle狀態
  6. Established
    a. 在Established狀態下,BGP可以和對等體交換Update、Keepalive、Router-refresh報文和Notification報文
    b. 如果收到正確的Update或keepalive報文,那么BGP就認為對端處于正常運行狀態,將保持BGP連接
    c. 如果收到錯誤的Update報文或Keepalive報文,那么BGP發送Notification報文通知對端,并轉至Idle狀態
    d. Route-refresh報文不會改變BGP狀態
    e. 如果收到Notification報文,那么BGP轉至Idle狀態
    f. 如果收到TCP拆除鏈接通知,那么BGP將斷開連接,轉至Idle狀態

在這里插入圖片描述

###BGP鄰居無法建立的因素

處于Idle、Connect、Active狀態,說明BGP會話沒有建立成功,處于OpenSent、OpenConfirm則說明鄰居協商出現問題:

  1. 兩邊BGP Peer地址不可達,一般是因為底層原因或者缺少可達的路由
  2. 對等體AS配置錯誤
  3. eBGP跳數問題
  4. 更新源問題
  5. BGP的認證錯誤
  6. Open報文協商失敗,Open報文需要協商BGP版本,Holdtime、RouterID以及可選項參數等
  7. BGP的RouterID沖突
  8. 聯盟與非聯盟之間的BGp連接配置錯誤
  9. 錯誤報文導致連接中斷,比較少見的比如BGP的Marker值出現錯誤

###BGP對等體之間交互原則

BGP設備將最優路由加入BGP路由表,形成BGP路由,BGP設備與對等體建立鄰居關系后,采取以下交互原則

  1. 從iBGP對等體收到的路由,BGP設備只發布給他的eBGP對等體
  2. 從eBGP對等體收到的路由,BGP設備發布給它所有的eBGP和iBGP對等體
  3. BGP設備只將最優路由發布給對等體
  4. 路由更新時,BGP設備只發送跟新的BGP路由
  5. 所有對等體發送的路由,BGP設備都會接收

BGP水平分割

IBGP水平分割用于解決BGP路由在一個AS內傳遞時,發生環路的問題
IBGP水平分割:BGP規定,當路由器從一個IBGP對等體學習到某條BGP路由時,他將不能再把這條路由通告給任何IBGP對等體

路由黑洞問題以及BGP同步規則

為了避免路由黑洞問題,BGP引入了同步規則(BGP Synchronization)
BGP同步規則:當一臺路由器從自己的IBGP對等體學習到一條BGP路由時,它將不能使用該條路由或者把這條路由通告給自己的EBGP對等體,除非他又從IGP(ospf、靜態路由)學習到這條路由,也就是要求IBGP路由與IGP路由同步

解決路由黑洞的三種方案:

  1. AS內所有路由器都運行BGP
  2. 開啟BGP同步規則(華為設備默認關閉同步規則)
  3. MPLS

路由通告

BGP路由在對等體之間交互路由時,有以下幾個原則:

  1. 只將最優的路由加載到路由表中使用(激活了負載分擔功能的情況下除外),而且只會將最優的路由通告給BGP對等體
  2. 當一臺路由器從自己的EBGP對等體學習BGP路由時,默認會將這些路由通告給所有IBGP對等體以及EBGP對等體
  3. 當一臺路由器從自己的IBGP對等體學習到BGP路由時,他不會將這些路由通告給其他IBGP對等體–水平分割使然
  4. 當一臺路由器從自己的IBGP對等體學習到BGP路由時,如果BGP同步規則被激活,則路由器只有從IGP協議也學習到相應的路由時,才會將這些BGP路由通告給EBGP對等體;如果BGP同步規則被關閉,則即使沒有從IGP協議學習到相應的路由,他也會將這些BGP路由通告給EBGP對等體
    注意:華為路由器默認關閉BGP同步規則

AS號

BGP私有AS號的范圍是64512-65534。這些AS號可以由私人組織自行使用。

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

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

相關文章

mit6.031 2023spring 軟件構造 筆記 Testing

當你編碼時,目標是使程序正常工作。 但作為測試設計者,你希望讓它失敗。 這是一個微妙但重要的區別。 為什么軟件測試很難? 做不到十分詳盡:測試一個 32 位浮點乘法運算 。有 2^64 個測試用例!隨機或統計測試效果差&am…

【Unity開發】Unity核心學習(三)

四、三維模型導入相關設置 1、Model模型頁簽(1)場景相關(2)網格相關(3)幾何體相關2、Rig操縱(骨骼)頁簽 (1)面板基礎信息(i)None&…

C#語言入門詳解(17)字段、屬性、索引器、常量

C#語言入門詳解(17)字段、屬性、索引器、常量前言一、字段 Field二、屬性三、索引器四、常量內容來自劉鐵猛C#語言入門詳解課程。 參考文檔:CSharp language specification 5.0 中文版 前言 類的成員是靜態成員 (static member) 或者實例成…

Total PDF Converter多功能 PDF 批量轉換工具,無水印 + 高效處理指南

在辦公場景中,PDF 格式的 “不可編輯性” 常成為效率瓶頸 —— 從提取文字到格式轉換,從批量處理到文檔加密,往往需要多款工具協同。Total PDF Converter 破解專業版作為一站式 PDF 解決方案,不僅支持 11 種主流格式轉換&#xff…

[Windows] WPS官宣 64位正式版(12.1.0.22525)全新發布!

[Windows] WPS官宣 64位正式版 鏈接:https://pan.xunlei.com/s/VOYepABmXVfXukzlPdp8SKruA1?pwdeqku# 自2024年5月,WPS 64位版本在WPS社區發布第一個內測體驗安裝包以來,在近一年多的時間里,經過超過3萬名WPS體驗者參與版本測試…

WinExec

函數原型: __drv_preferredFunction("CreateProcess","Deprecated. See MSDN for details") WINBASEAPI UINT WINAPI WinExec(__in LPCSTR lpCmdLine,__in UINT uCmdShow); preferred : 更好的 __drv_preferredFunction("CreateProcess…

基于GA遺傳優化的雙向LSTM融合多頭注意力(BiLSTM-MATT)時間序列預測算法matlab仿真

目錄 1.前言 2.算法運行效果圖預覽 3.算法運行軟件版本 4.部分核心程序 5.算法仿真參數 6.算法理論概述 7.參考文獻 8.算法完整程序工程 1.前言 時間序列預測是機器學習領域的重要任務,廣泛應用于氣象預報、金融走勢分析、工業設備故障預警等場景。傳統時間…

Multi-Head RAG: Solving Multi-Aspect Problems with LLMs

以下是對論文《Multi-Head RAG: Solving Multi-Aspect Problems with LLMs》的全面解析,從核心問題、方法創新到實驗驗證進行系統性闡述:??一、問題背景:傳統RAG的局限性??傳統檢索增強生成(RAG)在處理??多維度復…

Jenkins 全方位指南:安裝、配置、部署與實戰應用(含圖解)

一、Jenkins 安裝 1.1 系統要求 基礎環境:Java 8 或 Java 11(推薦)、至少 2GB 內存、10GB 以上磁盤空間 支持系統:Windows、Linux(Ubuntu/CentOS)、macOS 網絡端口:默認使用 8080 端口&…

以國產IoTDB為代表的主流時序數據庫架構與性能深度選型評測

> 💡 原創經驗總結,禁止AI洗稿!轉載需授權 > 聲明:本文所有觀點均基于多個領域的真實項目落地經驗總結,數據說話,拒絕空談! 目錄 引言:時序數據庫選型的“下半場” 一、維…

7.2elementplus的表單布局與模式

基礎表單<template><el-form ref"ruleFormRef" :model"form" :rules"rules" label-width"100px"><el-form-item label"用戶名" prop"username"><el-input v-model"form.username"…

PyTorch實戰(3)——PyTorch vs. TensorFlow詳解

PyTorch實戰&#xff08;3&#xff09;——PyTorch vs. TensorFlow詳解0. 前言1. 張量2. PyTorch 模塊2.1 torch.nn2.2 torch.optim2.3 torch.utils.data3. 使用 PyTorch 訓練神經網絡小結系列鏈接0. 前言 PyTorch 是一個基于 Torch 庫的 Python 機器學習庫&#xff0c;廣泛用…

在win服務器部署vue+springboot + Maven前端后端流程詳解,含ip端口講解

代碼打包與基本配置 首先配置一臺win系統服務器&#xff0c;開放你前端和后端運行的端口&#xff0c;如80和8080 前端打包 前端使用vue3&#xff0c;在打包前修改項目配置文件&#xff0c;我使用的是vite所以是vite.config.js。 import { defineConfig } from vite import …

Springcloud-----Nacos

一、Nacos的安裝 Nacos是阿里推出的一種注冊中心組件&#xff0c;并且已經開源&#xff0c;目前是國內最為流行的注冊中心組件。下面我們來了解一下如何安裝并啟動Nacos。 Nacos是一個獨立的項目&#xff0c;我們可以去GitHub上下載其壓縮包來使用&#xff0c;地址如下&#x…

騰訊云重保流程詳解:從預案到復盤的全周期安全防護

摘要 騰訊云針對國家級重大活動&#xff08;如進博會、冬奧會等&#xff09;提供的網絡安全保障服務&#xff08;重保&#xff09;是一套系統化的主動防御體系。本文從“事前準備”“事中響應”“事后復盤”三個核心階段出發&#xff0c;結合民生銀行等典型用戶的實戰案例&…

單表查詢-group by rollup優化

1、group by rollup基本用法 我們有時候在項目上看到group by rollup用法&#xff0c;其實就是對group by分組進行合計。 下面看一下例子 select count(1),c3 from t1 group by rollup(c3); 計劃從計劃中解讀亦是如此&#xff0c;另外可以從結果上進行分析第21行的count其實就是…

云網絡(參考自騰訊云計算工程師認證)

計算機網絡&#xff1a;OSI七層模型&#xff1a; 應用層&#xff1a;負責處理網絡應用程序之間的通信、 表示層&#xff1a;負責數據的格式化和加密、 會話層&#xff1a;負責建立、管理和終止會話、 傳輸層&#xff1a;負責端到端的可靠傳輸、 網絡層&#xff1a;負責數據的路…

【MLLM】多模態理解Ovis2.5模型和訓練流程(更新中)

note 模型架構&#xff1a;延續 Ovis 系列創新的結構化嵌入對齊設計。 Ovis2.5 由三大組件構成&#xff1a;動態分辨率 ViT 高效提取視覺特征&#xff0c;Ovis 視覺詞表模塊實現視覺與文本嵌入的結構對齊&#xff0c;最后由強大的 Qwen3 作為語言基座&#xff0c;處理多模態嵌…

mysql中的通用語法及分類

MySQL 是一種廣泛使用的關系型數據庫管理系統&#xff08;RDBMS&#xff09;&#xff0c;其語法設計遵循 SQL 標準&#xff0c;但也有一些特有的擴展。以下從??通用語法規范??和??SQL 語句分類??兩個維度系統梳理 MySQL 的核心語法體系。一、MySQL 通用語法規范通用語法…

Linux-搭建NFS服務器

Linux-搭建NFS服務器前言一、網絡配置二、在nfs服務器上安裝nfs-utils軟件包三、設置共享目錄四、掛載NFS共享目錄前言 NFS&#xff08;Network File System&#xff0c;網絡文件系統&#xff09; 是一種分布式文件系統協議&#xff0c;最初由 Sun Microsystems 于 1984 年開發…