BGP路由反射器(RR)實驗詳解,結尾有詳細腳本

目錄

  1. 路由反射器基礎概念

  2. 實驗拓撲與設計

  3. 實驗配置步驟

  4. 配置驗證與排錯

  5. 實驗總結

  6. 完整配置命令集

路由反射器基礎概念

在傳統的IBGP網絡中,為了防止路由環路,BGP規定通過IBGP學到的路由不能再傳遞給其他IBGP對等體,這導致所有IBGP路由器必須建立全互聯(full-mesh)關系。當網絡規模擴大時,這種全互聯方式會消耗大量資源。

路由反射器(Route Reflector, RR)解決了這個問題,它允許將路由反射給特定客戶端,打破了IBGP的全互聯限制。一個路由反射器網絡包含三種角色:

  1. 路由反射器(RR):可以反射路由的BGP路由器

  2. 客戶端(Client):與RR形成特殊關系的IBGP對等體

  3. 非客戶端(Non-Client):普通的IBGP對等體

RR會將從客戶端學到的路由反射給其他客戶端和非客戶端,將從非客戶端學到的路由只反射給客戶端。

路由反射器關鍵屬性

路由反射器使用兩個特殊屬性來防止環路并跟蹤路由來源:

  1. Originator_ID

    • 類型碼為9的可選非過渡屬性

    • 由第一個反射路由的RR創建,記錄原始路由通告者的Router ID

    • 如果路由器發現收到的路由Originator_ID與自己的Router ID相同,則丟棄該路由

  2. Cluster_List

    • 類型碼為10的可選非過渡屬性

    • 記錄路由經過的反射器集群路徑(每個集群用Cluster ID標識)

    • 每個RR反射路由時會追加自己的Cluster ID

    • 如果RR發現收到的路由Cluster_List中包含自己的Cluster ID,則丟棄該路由

實驗拓撲與設計

  • R1:AS 100中的普通IBGP路由器

  • R2:作為路由反射器,負責反射路由

  • R3:R2的客戶端,同時與AS 200的R4建立EBGP連接

  • R4:AS 200中的路由器,通告網絡10.4.4.0/24

實驗配置步驟

1. 基礎網絡配置

首先確保所有接口和OSPF(用于IBGP環回口可達性)配置正確:

# 在R1、R2、R3上配置OSPF
[R1] ospf 1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 10.0.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255
# 類似配置R2、R3# 在R3和R4之間配置直連接口
[R3] interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1] ip address 10.0.34.3 24
[R4] interface GigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1] ip address 10.0.34.4 24

2. BGP基礎配置

BGP配置如下:

# R1配置
[R1] bgp 100
[R1-bgp] router-id 10.0.1.1
[R1-bgp] peer 10.0.2.2 as-number 100
[R1-bgp] peer 10.0.2.2 connect-interface LoopBack0# R2作為RR配置
[R2] bgp 100
[R2-bgp] router-id 10.0.2.2
[R2-bgp] peer 10.0.1.1 as-number 100
[R2-bgp] peer 10.0.1.1 connect-interface LoopBack0
[R2-bgp] peer 10.0.3.3 as-number 100
[R2-bgp] peer 10.0.3.3 connect-interface LoopBack0
[R2-bgp] peer 10.0.3.3 reflect-client  # 將R3配置為客戶端# R3配置
[R3] bgp 100
[R3-bgp] router-id 10.0.3.3
[R3-bgp] peer 10.0.2.2 as-number 100
[R3-bgp] peer 10.0.2.2 connect-interface LoopBack0
[R3-bgp] peer 10.0.34.4 as-number 200# R4配置
[R4] bgp 200
[R4-bgp] router-id 10.0.4.4
[R4-bgp] peer 10.0.34.3 as-number 100
[R4-bgp] network 10.4.4.0 255.255.255.0

3. 路由反射驗證

在R2上查看BGP對等體關系:

<R2> display bgp peer

可以看到R1為普通IBGP對等體,R3標記為路由反射客戶端。

配置驗證與排錯

1. 驗證路由傳播

在R1上檢查是否學到了AS 200的路由:

<R1> display bgp routing-table

看到10.4.4.0/24的路由,下一跳為R3(10.0.3.3)。(RR會將從客戶端學到的路由反射給其他客戶端和非客戶端)

2. 驗證路由反射器屬性

檢查路由的反射器屬性:

# 查看路由詳細信息(在R1上執行)
<R1> display bgp routing-table 10.4.4.0# 輸出示例:
BGP local router ID : 10.0.1.1
Local AS number : 100
Paths:    1 available
From : 10.0.2.2 (10.0.2.2)
Route Duration : 0d00h01m23s  
Relay IP Nexthop : 10.0.2.2
Original nexthop: 10.0.3.3
Origin : igp
AS-path : 200
Originator: 10.0.3.3        # Originator_ID屬性
Cluster list: 10.0.2.2      # Cluster_List屬性

3. 驗證反射器狀態

在RR(R2)上查看反射狀態:

<R2> display bgp peer 10.0.3.3 verbose
# 在輸出中查找:
Route reflector client: Yes  # 確認客戶端狀態

4. 常見問題排查

  1. 路由未反射

    • 確認RR配置了reflect-client

    • 檢查OSPF是否使環回口可達

    • 使用display bgp peer確認對等體狀態為Established

  2. 路由屬性問題

    • 檢查路由的ORIGIN、AS_PATH等屬性是否正確

    • 使用display bgp routing-table 10.4.4.0查看詳細路由信息

  3. EBGP連接問題

    • 確認R3和R4的直連物理接口狀態為UP

    • 檢查EBGP對等體AS號配置是否正確

實驗總結

通過本實驗,我們成功構建了一個包含路由反射器的IBGP網絡,實現了:

  1. 在AS 100內使用路由反射器減少IBGP全互聯需求

  2. 通過R3與AS 200建立EBGP連接并引入外部路由

  3. 驗證路由反射器能夠正確反射路由給客戶端和非客戶端

路由反射器的使用大大簡化了大規模IBGP網絡的配置和維護工作,是實際網絡部署中常用的解決方案。

完整配置命令集

R1配置

system-view
sysname R1
interface LoopBack0ip address 10.0.1.1 255.255.255.255
interface GigabitEthernet0/0/0ip address 10.0.12.1 255.255.255.0
ospf 1area 0.0.0.0network 10.0.1.1 0.0.0.0network 10.0.12.0 0.0.0.255
bgp 100router-id 10.0.1.1peer 10.0.2.2 as-number 100peer 10.0.2.2 connect-interface LoopBack0

R2配置

system-view
sysname R2
interface LoopBack0ip address 10.0.2.2 255.255.255.255
interface GigabitEthernet0/0/0ip address 10.0.12.2 255.255.255.0
interface GigabitEthernet0/0/1ip address 10.0.23.2 255.255.255.0
ospf 1area 0.0.0.0network 10.0.2.2 0.0.0.0network 10.0.12.0 0.0.0.255network 10.0.23.0 0.0.0.255
bgp 100router-id 10.0.2.2peer 10.0.1.1 as-number 100peer 10.0.1.1 connect-interface LoopBack0peer 10.0.3.3 as-number 100peer 10.0.3.3 connect-interface LoopBack0peer 10.0.3.3 reflect-client

R3配置

system-view
sysname R3
interface LoopBack0ip address 10.0.3.3 255.255.255.255
interface GigabitEthernet0/0/0ip address 10.0.23.3 255.255.255.0
interface GigabitEthernet0/0/1ip address 10.0.34.3 255.255.255.0
ospf 1area 0.0.0.0network 10.0.3.3 0.0.0.0network 10.0.23.0 0.0.0.255
bgp 100router-id 10.0.3.3peer 10.0.2.2 as-number 100peer 10.0.2.2 connect-interface LoopBack0peer 10.0.34.4 as-number 200

R4配置

system-view
sysname R4
interface GigabitEthernet0/0/1ip address 10.0.34.4 255.255.255.0
bgp 200router-id 10.0.4.4peer 10.0.34.3 as-number 100network 10.4.4.0 255.255.255.0

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

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

相關文章

(aaai2025) SparseViT: 用于圖像篡改檢測的Spare-Coding Transformer

論文&#xff1a;(aaai2025) SparseViT: Nonsemantics-Centered, Parameter-Efficient Image Manipulation Localization through Spare-Coding Transformer 代碼&#xff1a;https://github.com/scu-zjz/SparseViT 這個論文研究的是圖像篡改檢測&#xff08;Image Manipulatio…

C#測試調用Markdig解析Markdown的基本用法

Markdig是.NET平臺的高性能開源Markdown處理器&#xff0c;嚴格遵循 CommonMark 標準&#xff0c;確保解析一致性&#xff0c;其核心優勢在于擴展性強&#xff1a;通過模塊化管道模型&#xff0c;可輕松添加自定義語法或修改現有邏輯。Markdig內置支持表格、任務列表、數學公式…

MySQL 主從同步完整配置示例

以下是 MySQL 主從同步完整配置示例&#xff08;基于 Linux 系統&#xff09;&#xff0c;包含主庫和從庫的配置步驟&#xff1a; 一、主庫&#xff08;Master&#xff09;配置 1. 安裝 MySQL&#xff08;以 CentOS 為例&#xff09; yum install -y mysql-server systemctl …

可信啟動與fTPM的交互驗證(概念驗證)

安全之安全(security)博客目錄導讀 目錄 一、組件構成 二、Arm FVP平臺PoC構建 三、在Armv8-A Foundation FVP上運行PoC 四、微調fTPM TA 可信啟動&#xff08;Measured Boot&#xff09;是通過密碼學方式度量啟動階段代碼及關鍵數據&#xff08;例如使用TPM芯片&#xff…

SQL Server基礎語句4:數據定義

文章目錄 一、數據庫與架構1.1 創建與刪除數據庫1.1.1 使用CREATE DATABASE語句創建數據庫1.1.2 使用DROP DATABASE語句刪除數據庫1.1.3 使用SSMS創建數據庫1.1.4 使用SSMS刪除數據庫 1.2 CREATE SCHEMA&#xff1a;創建新架構1.2.1 Schema簡介1.2.2 使用CREATE SCHEMA語句創建…

上門按摩app會員系統框架搭建

一、邏輯分析 用戶注冊與登錄&#xff1a; 新用戶需要提供基本信息&#xff0c;如姓名、手機號、郵箱等進行注冊。手機號用于接收驗證碼進行身份驗證&#xff0c;郵箱可用于密碼找回等功能。注冊成功后&#xff0c;用戶可以使用手機號 / 郵箱和密碼進行登錄。登錄時需要驗證用戶…

java項目打包成jar包,并給jmeter使用

1.新建項目 編寫代碼&#xff0c;導入必要的jar包&#xff0c; 右鍵點擊項目&#xff0c;然后export&#xff0c;選擇main函數&#xff0c; package utils; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Random; …

【Qt開發】Qt音頻

Qt中&#xff0c;視頻播放的功能主要是通過 QMediaPlayer類和 QVideoWidget類來實現。在使用這兩個類時&#xff0c;需要在 .pro項目配置文件中添加對應的模塊——multimedia 和 multimediawidgets。 核心的API如下&#xff1a; 下面來模擬實現音頻文件的播放。 Widget::Widget…

橢球面上梯形面積的通用公式和圖幅公式

import numpy as np def ellipsoidal_trapezoid_area(a, b, phi1_deg, phi2_deg, delta_L_deg, is_map_sheetFalse): """ 計算橢球面上梯形面積的通用公式和圖幅公式 參數: a: 橢球長半軸&#xff08;米&#xff09; b: 橢球…

Pytest 入門:測試函數與測試類詳解

概述 在編寫自動化測試時,了解如何組織和管理測試用例是至關重要的。Pytest 提供了靈活的方式來定義測試函數和測試類,并支持多層次的設置(setup)和清理(teardown)機制,幫助你更高效地進行代碼驗證。本文將詳細介紹 測試函數 和 測試類 的概念、定義、注意點以及實際操…

大模型的部署簡單搭建

大模型的部署搭建 真的好久沒有進行博客的寫作了,原因,最近的自己生活有點小波動, 最近想想還是有空寫一篇文章,這篇文章的描述是學習的當下熱門AI 本期,介紹的也是AI相關的LLM(大語言模型) 這個好多人應該都是模糊的,包括我一開始沒有學習,就感覺牛逼的不行,今天我們親自部署實…

基于ssm英語學習交流平臺微信小程序源碼數據庫文檔

摘要 隨著信息技術在管理上越來越深入而廣泛的應用&#xff0c;管理信息系統的實施在技術上已逐步成熟。本文介紹了英語學習交流平臺小程序的開發全過程。通過分析英語學習交流平臺小程序管理的不足&#xff0c;創建了一個計算機管理英語學習交流平臺小程序的方案。文章介紹了英…

華為云Flexus+DeepSeek征文|在Dify-LLM平臺中開發童話故事精靈工作流AI Agent

華為云FlexusDeepSeek征文&#xff5c;在Dify-LLM平臺中開發童話故事精靈工作流AI Agent &#x1f31f;嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 總有人間一兩風&#xff0c;填我十萬八千夢。 &#x1f680; 路漫漫其修遠兮&#xff0c;吾將上下而求索。 目錄…

從實踐出發談如何開發一款好用的RTMP播放器

近幾年&#xff0c;RTMP 播放器市場涌現出大量“宣傳型”產品。各種“低延遲”“不卡頓”“跨平臺”幾乎成為標配口號&#xff0c;宣傳文案看起來精彩紛呈&#xff0c;實際項目落地時卻屢屢暴露問題&#xff1a;啟動緩慢、黑屏、音畫不同步&#xff0c;甚至連基本的穩定播放都無…

STM32F1\F4\H7 CubeMx 定時器配置

目錄 1 定時器使用 1.1 CubeMX 配置 1.1.1 創建工程 1.1.2 時鐘配置 1.1.3 定時器配置 1.1.4 GPIO 配置 1.1.5 工程管理 1.2 keil5 配置 1.2.1 添加代碼 1.2.2 修改配置 1.2.3 下載程序 2 PWM使用 2.1 CubeMX 配置 2.1.1 PWM 配置 2.1.2 周期\頻率計算方法 2.2…

2025中科院2區SCI-狀態優化算法Status-based Optimization-附Matlab免費代碼

近年來&#xff0c;現實世界的優化問題變得越來越復雜&#xff0c;挑戰了傳統確定性方法的有效性。本文介紹了基于狀態的優化&#xff08;SBO&#xff09;&#xff0c;這是一種受人類對地位提升的渴望啟發的高效算法。通過模擬個人如何接近、學習或從高地位人物那里獲得資源&am…

MySQL 啟動報錯 “The server quit without updating PID file“ 的全面解決方案(適用于 5.7/8.0 全版本)

摘要 在 MySQL 數據庫運維中&#xff0c;"The server quit without updating PID file" 是常見且棘手的啟動錯誤。本文結合 MySQL 官方文檔及實戰經驗&#xff0c;系統梳理該錯誤的 10 大核心成因與解決方案&#xff0c;覆蓋權限、配置、磁盤、SELinux 等多維度&…

運行時安全引擎RSE

安全之安全(security)博客目錄導讀 目錄 一、RSE 通信層 1.1 消息結構 1.2 源代碼文件 1.3 MHU 通信的 API 二、RSE 提供的運行時服務 2.1 運行時服務 API 2.2 軟件與 API 層次結構 三、基于 RSE 的 Measured Boot&#xff08;度量啟動&#xff09; 3.1 Measured Boo…

Elasticsearch、Faiss、Milvus在向量索引實現上的核心差

Faiss、Elasticsearch&#xff08;ES&#xff09;和Milvus在向量索引實現上的核心差異主要體現在架構定位、索引技術、擴展性及適用場景上&#xff0c;具體對比如下&#xff1a; 一、架構設計與定位? ?維度??Faiss??Elasticsearch??Milvus??核心定位?單機向量索引…

iot-dc3 項目windows本地運行保姆喂奶級教程

一.源碼拉取 當前時間:2025年06月18日12點02分 后臺接口服務:https://gitee.com/pnoker/iot-dc3.git 前端:https://gitee.com/pnoker/iot-dc3-web.git 請自行拉取至本地。 二.本地環境準備 其他基礎環境先不講了,如有需要請留言。 idea + VS Code。 IntelliJ IDEA 2024.2.…