深入解析BGP路由反射器与联邦:突破IBGP全连接限制的两种方案

news2025/5/18 6:44:30

一、引言:大型BGP网络的挑战

在大型BGP网络架构中,传统的IBGP全连接架构会带来严重的扩展性问题。当网络中存在N台路由器时,需要维护N*(N-1)/2个IBGP连接,这对设备资源和运维管理都是巨大挑战。本文将深入解析两种主流解决方案:路由反射器和联邦体系。

二、路由反射器(Route Reflector)技术解析

场景

问题:

当R2学到他的EBGP对等体R1来的路由后会发送给R3,但是由于IBGP水平分割的限制,R3是无法把路由发送给他的IBGP对等体R4和R5的。

2.1 核心架构原理

路由反射器(RR)通过建立层次化结构打破IBGP水平分割规则:

当我们将一台设备制定成为路由反射器后,同时需要制定他的一个或多个的IBGP对等体作为他的客户。(client)剩余没有被指定为客户的IBGP对等体称为非客户。

  • ​反射簇​​:由RR及其客户端组成,簇ID默认采用RR的Router ID
  • ​角色定义​​:
    • RR(路由反射器):负责路由转发的中枢
    • Client(客户端):仅需与RR建立连接
    • Non-Client(非客户端):需要与RR保持全连接

2.2 路由反射规则详解

路由来源反射方向典型场景
客户端反射给所有客户端和非客户端分支机构路由传播
非客户端仅反射给所有客户端数据中心间路由同步
EBGP对等体正常转发给所有IBGP节点互联网路由注入

总结为“非非不传”

2.3 防环机制深度剖析

路由反射器实际上通过打破 IBGP 水平分割来实现更灵活的路由传播,所以会有环路出现,这时利用属性来防止路由环路,确保网络的稳定性和可靠性。

路由反射器通过两个关键属性防止环路:

1. ​​Originator_ID​

  • 记录路由始发者的Router ID
  • 当路由器收到携带自身ID的路由时自动丢弃

2. Cluster_List​

  • 记录路由经过的反射簇ID序列
  • 检测到重复簇ID立即终止传播

2.4 配置

#只需在RR上指定client即可
[r3-bgp]peer 2.2.2.2 reflect-client 

查看BGP路由详细信息

注意:因为以上两个防环属性是IBGP对等体内部进行防环使用,所以,在发送给自己EBGP对等体时,将不携带。

三、联邦(Confederation)体系架构

3.1 联邦核心设计理念

通过AS嵌套机制实现逻辑分割:

  • ​成员AS​​:内部使用私有AS号(64512-65535)
  • ​联邦AS​​:对外显示统一公有AS号
  • ​路由传播​​:
    • 联邦内使用EBGP协议交互
    • 对外路由隐藏内部AS细节

3.2 典型配置示例

1)拓补:
2)基础配置准备:

1. 划分IP地址:

路由器环回地址物理接口地址示例
AR11.1.1.1/24GE0/0/0: 12.0.0.1/24
AR22.2.2.2/24GE0/0/0: 12.0.0.2/24   GE0/0/1: 23.0.0.1/24
AR33.3.3.3/24GE0/0/0: 23.0.0.2/24   GE0/0/1: 34.0.0.1/24
AR44.4.4.4/24GE0/0/0: 34.0.0.2/24   GE0/0/1: 45.0.0.1/24
AR55.5.5.5/24GE0/0/0: 45.0.0.2/24   GE0/0/1: 56.0.0.1/24
AR66.6.6.6/24GE0/0/0: 56.0.0.2/24

2. AS2内部配置OSPF实现互通

3)联邦核心配置

R1:

[r1-bgp]dis this
[V200R003C00]
#
bgp 1
 router-id 1.1.1.1
 peer 12.0.0.2 as-number 2 (AS之间还是以大AS建邻)
 #
 ipv4-family unicast
  undo synchronization
  network 1.1.1.0 255.255.255.0 
  peer 12.0.0.2 enable
#
return

R2:

[r2-bgp]dis this
[V200R003C00]  # 设备系统版本V200R003C00
#
bgp 64512  # 启动BGP进程,使用私有AS号64512(成员AS号)
 router-id 2.2.2.2  # 设置BGP路由器ID(需与环回地址一致)
 confederation id 2  # 声明联邦公有AS号
 
 # IBGP对等体配置(连接同成员AS的AR3)
 peer 3.3.3.3 as-number 64512  # 指定邻居AS号
 peer 3.3.3.3 connect-interface LoopBack0  # 使用环回口建立邻居
 
 # EBGP对等体配置(连接外部AS1的AR1)
 peer 12.0.0.1 as-number 1  # 指定邻居AS号(物理接口直连)
 
#
 ipv4-family unicast  # 进入IPv4单播地址族视图
  undo synchronization  # 关闭BGP与IGP同步(华为默认关闭)
  
  # 在IPv4地址族下激活邻居
  peer 3.3.3.3 enable  # 使能IBGP邻居的IPv4路由交换
  peer 3.3.3.3 next-hop-local  # 修改下一跳为自身(华为设备必须显式配置)
  
  peer 12.0.0.1 enable  # 使能EBGP邻居的IPv4路由交换
#
return

R3:

[r3-bgp]dis this
[V200R003C00]
#
bgp 64512
 router-id 3.3.3.3
 confederation id 2
 confederation peer-as 64513 # 声明联邦邻居AS
 peer 2.2.2.2 as-number 64512 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 4.4.4.4 as-number 64513 
 peer 4.4.4.4 ebgp-max-hop 255 
 peer 4.4.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 4.4.4.4 enable
#
return

R4:

[r4-bgp]dis this
[V200R003C00]
#
bgp 64513
 router-id 4.4.4.4
 confederation id 2
 confederation peer-as 64512 # 声明联邦邻居AS
 peer 3.3.3.3 as-number 64512 
 peer 3.3.3.3 ebgp-max-hop 255 
 peer 3.3.3.3 connect-interface LoopBack0
 peer 5.5.5.5 as-number 64513 
 peer 5.5.5.5 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 3.3.3.3 enable
  peer 5.5.5.5 enable
#
return

R5:

[r5-bgp]dis this
[V200R003C00]
#
bgp 64513
 router-id 5.5.5.5
 confederation id 2
 peer 4.4.4.4 as-number 64513 
 peer 4.4.4.4 connect-interface LoopBack0
 peer 56.0.0.2 as-number 3 
 #
 ipv4-family unicast
  undo synchronization
  peer 4.4.4.4 enable
  peer 56.0.0.2 enable
#
return

R6:

[r6-bgp]dis this
[V200R003C00]
#
bgp 3
 router-id 6.6.6.6
 peer 56.0.0.1 as-number 2 
 #
 ipv4-family unicast
  undo synchronization
  peer 56.0.0.1 enable
#
return

联邦也打破了IBGP水平分割,所以,也有可能出环,因为已经成为EBGP对等体关系,则可以直接使用EBGP对等体的水平分割---即通过AS_PATH属性来进行防环。

注意,联邦的AS号使用小括号括起来,在防环时,需要防止回传,但是,在选路时,直接不考虑。因为联邦的AS号是IBGP对等体内部进行防环使用,所以,在发送给自己EBGP对等体时,将不携带。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2378314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT设置MySQL驱动

QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 第一步:下载MySQL https://dev.mysql.com/downloads/mysql/ 解压缩下载的安装包,其目录结构如下所示: 第二…

String的一些固定程序函数

append reverse length toString

3.2/Q2,Charls最新文章解读

文章题目:Transition of nighttime sleep duration and sleep quality with incident cardiovascular disease among middle-aged and older adults: results from a national cohort study DOI:10.1186/s13690-025-01577-5 中文标题:中老年人…

大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶-文献精读129

Systematic identification and expression profiles of the BAHD superfamily acyltransferases in barley (Hordeum vulgare) 系统鉴定与大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶的表达谱分析 摘要 BAHD 超家族酰基转移酶在植物中催化和调控次…

docker迅雷自定义端口号、登录用户名密码

在NAS上部署迅雷,确实会带来很大的方便。但是目前很多教程都是讲怎么部署docker迅雷,鲜有将自定义配置的方法。这里讲一下怎么部署,并重点讲一下支持的自定义参数。 一、部署docker 在其他教程中,都是介绍的如下命令&#xff0c…

中国30米年度土地覆盖数据集及其动态变化(1985-2022年)

中文名称 中国30米年度土地覆盖数据集及其动态变化(1985-2022年) 英文名称:The 30 m annual land cover datasets and its dynamics in China from 1985 to 2022 CSTR:11738.11.NCDC.ZENODO.DB3943.2023 DOI 10.5281/zenodo.8176941 数据共享方式&#xff1a…

3D个人简历网站 5.天空、鸟、飞机

1.显示天空 models下新建文件Sky.jsx Sky.jsx // 从 React 库中导入 useRef 钩子,用于创建可变的 ref 对象 import { useRef } from "react"; // 从 react-three/drei 库中导入 useGLTF 钩子,用于加载 GLTF 格式的 3D 模型 import { useGLT…

STM32IIC实战-OLED模板

STM32IIC实战-OLED模板 一,SSD1306 控制芯片1, 主要特性2,I2C 通信协议3, 显示原理4, 控制流程5, 开发思路 二,HAL I2C API 解析I2C 相关 API1,2,3,4&#xf…

c#车检车构客户管理系统软件车辆年审短信提醒软件

# CMS_VehicleInspection 车检车构客户管理系统软件车辆年审短信提醒软件 # 开发背景 软件是给泸州某公司开发的车检车构客户管理系统软件。用于在车检年审到期前一个月给客户发送车检短信提醒 # 功能描述 主要功能:车辆年审前一个月给客户发年审短信提醒&#xf…

通俗版解释CPU、核心、进程、线程、协程的定义及关系

通俗版解释(比喻法) 1. CPU 和核心 CPU 一个工厂(负责干活的总部)。核心 工厂里的车间(比如工厂有4个车间,就能同时处理4个任务)。 2. 进程 进程 一家独立运营的公司(比如一家…

大语言模型 11 - 从0开始训练GPT 0.25B参数量 MiniMind2 准备数据与训练模型 DPO直接偏好优化

写在前面 GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,…

USRP 射频信号 采集 回放 系统

USRP 射频信号采集回放系统 也可以叫做: 利用宽带RF录制和回放系统实现6G技术研究超宽带射频信号采集回放系统使用NI USRP平台实现射频信号录制和回放操作演示USRP也能实现多通道宽带信号流盘回放了! 对于最简单的实现方法就是使用LabVIEW进行实现 采…

【skywalking】index“:“skywalking_metrics-all“},“status“:404}

skywalking 启动报错 java.lang.RuntimeException: {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [skywalking_metrics-all]","resource.t ype":"inde…

【C++详解】string各种接口如何使用保姆级攻略

文章目录 一、string介绍二、string使用构造函数析构函数赋值运算符重载string的遍历修改方法1、下标[]2、迭代器3、范围for 迭代器使用详解const迭代器反向迭代器(reverse) Capacity(容量相关)size/lengthmax_sizecapacityclear/emptyshrink_to_fit(缩容)reserve(扩…

2025深圳杯D题法医物证多人身份鉴定问题四万字思路

Word版论文思路和千行Python代码下载:https://www.jdmm.cc/file/2712074/ 引言 法医遗传学中的混合生物样本分析,特别是短串联重复序列(Short Tandem Repeat, STR)分型结果的解读,是现代刑事侦查和身份鉴定领域的核心…

【时时三省】(C语言基础)字符数组应用举例2

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 例题: 有3个字符串,要求找出其中“最大”者。 解题思路: 可以设一个二维的字符数组str,大小为320,即有3行20列(每一…

Mysql触发器(附案例)

文章目录 触发器简介1、insert类型2、update类型3、delete类型总结 触发器简介 触发器是与表有关的数据库对象,指定在 insert/update/delete 之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性…

使用DDR4控制器实现多通道数据读写(十二)

一、章节概括 这一节使用interconnect RTL ip核将DDR4与四个读写通道级联,在测试工程中,将四个通道同时写入/读出地址与数据,并使用modelsim仿真器仿真,四个通道同时发送写请求或读请求后,经过interconnect后&#xff…

Kafka 生产者工作流程详解

以下是 Kafka 生产者工作流程的清晰分步解释,结合关键机制与用户数据: 1. 生产者初始化与数据发送 主线程创建生产者对象,调用 send(ProducerRecord) 发送消息。 拦截器(可选):可添加自定义逻辑&#xff08…

完整卸载 Fabric Manager 的方法

目录 ✅ 完整卸载 Fabric Manager 的方法 1️⃣ 停止并禁用服务 2️⃣ 卸载 Fabric Manager 软件包 3️⃣ 自动清理无用依赖(可选) 4️⃣ 检查是否卸载成功 ✅ 补充(仅清除服务,不删包) ✅ 完整卸载 Fabric Mana…