当前位置: 首页 > news >正文

BGP 协议笔记

BGP 协议笔记

一、BGP 基础概述

1. 产生背景

BGP(Border Gateway Protocol,边界网关协议)是自治系统(AS)间的动态路由协议,属于外部网关协议(EGP)。

  • 自治系统(AS):由统一管理、运行同一 IGP 的路由器组成的网络范围,使用相同路由策略。
  • AS 编号:
    • 2 字节:0-65535(公有 1-64511,私有 64512-65535);
    • 4 字节:公有 65536–4199999999,私有 4200000000–4294967294。

2. 协议分类

  • IGP(内部网关协议):RIP、OSPF、IS-IS(用于 AS 内部);
  • EGP(外部网关协议):BGP(用于 AS 之间)。

3. 核心特性

  • 仅负责 AS 间路由传递,AS 内部路由扩散依赖 IGP;
  • 路径矢量协议,“一跳” 代表一个 AS;
  • AS 防环机制:通过 AS_PATH 属性记录路由经过的 AS,若本地 AS 号在 AS_PATH 中则拒绝学习;
  • 基于 TCP 传输(端口 179),需手动配置邻居;
  • 首次收敛发送完整路由表,后续仅增量更新;
  • 支持丰富的属性控制选路、路由聚合、过滤和策略。

4. 基本术语

  • BGP Speaker:运行 BGP 的路由器;
  • BGP Peer(对等体):建立 TCP 连接并交换路由的 BGP Speaker;
    • EBGP 对等体:跨 AS 的邻居(通常直连);
    • IBGP 对等体:同一 AS 内的邻居(可非直连)。

二、BGP 消息与状态机

1. 消息类型

类型作用关键特征
Open建立对等体连接携带版本、AS 号、Hold Time(默认 180s)、Router-ID 等;需协商参数一致
Keepalive保活连接周期发送(默认 60s,为 Hold Time 的 1/3);无数据载荷
Update路由更新包含新增路由(NLRI)、撤销路由(Withdrawn Routes)及路径属性
Notification错误通知检测到错误时发送,随后关闭连接(如参数不匹配、路由格式错误)
Router-refresh路由刷新更改策略后,请求对等体重发指定地址族的完整路由表

2. 状态机

状态说明
Idle初始状态,准备建立 TCP 连接,停留 30s
ConnectTCP 连接中,失败则进入 Active 状态
Active主动尝试建立 TCP 连接,失败后重试
OpenSent已建立 TCP,发送 Open 报文,等待对方 Open 报文
OpenConfirm收到 Open 报文,发送 Keepalive,等待对方确认
Established收到 Keepalive,邻居关系建立,可交换路由

三、BGP 邻居建立

1. 邻居类型及条件

类型建邻条件特殊配置
IBGP需 TCP 可达;建议用环回口建邻(需指定更新源connect-interface默认 TTL=255;从 EBGP 学习的路由需修改下一跳为本机(next-hop-local
EBGP通常直连;非直连需修改最大跳数(ebgp-max-hop默认 TTL=1;环回口建邻需手动调整 TTL

2. 路由黑洞及解决

  • 原因:IBGP 邻居间存在未运行 BGP 的路由器,无法获取 BGP 路由,导致数据包丢弃。
  • 解决方法:
    • BGP 路由引入 IGP;
    • 黑洞路由器配置静态路由;
    • IBGP 全连接(需所有 IBGP 邻居互建连接,适用于小规模网络);
    • 路由反射器或联盟(减少邻居数量)。

四、BGP 选路原则(13 条)

  1. 丢弃下一跳不可达的路由;
  2. 优选 Preferred-value(首选项)最大的路由(华为 / H3C 私有属性,0-65535);
  3. 优选 Local-Preference(本地优先级)最高的路由(默认 100,仅 IBGP 传递);
  4. 依次选择network宣告路由、import-route引入路由、聚合路由;
  5. 优选 AS_PATH 最短的路由;
  6. 依次选择 Origin 属性为 IGP(i)、EGP(e)、Incomplete(?)的路由;
  7. 优选 MED(多出口鉴别器)最低的路由(仅相邻 AS 间传递);
  8. 依次选择从 EBGP、联盟 EBGP、联盟 IBGP、IBGP 学习的路由;
  9. 优选下一跳 IGP 度量值最低的路由;
  10. 优选 Cluster-list 最短的路由;
  11. 优选 Originator-ID 最小的路由;
  12. 优选 Router ID 最小的路由器发布的路由;
  13. 优选对等体 IP 地址最小的路由。

五、BGP 属性(选路控制核心)

1. 公认必遵属性(所有路由必须携带)

属性作用选路影响
AS_PATH记录路由经过的 AS 编号短路径优先;防环(含本地 AS 则拒绝)
Next-hop路由的下一跳地址下一跳可达是路由有效的前提
Origin路由来源(IGP/i、EGP/e、Incomplete/?)优先级:i > e > ?

2. 公认可选属性(所有路由器识别,非必须携带)

属性作用选路影响
Local-Preference指示 AS 内离开 AS 的优选路由仅 IBGP 传递,值大优先(默认 100)
Atomic-aggregate标记自动聚合的路由无直接选路影响,用于标识聚合行为

3. 可选传递属性(可不识别,但会传递)

属性作用特点
Community(团体属性)标记具有相同特征的路由,用于批量控制公认值:Internet(默认,可通告所有对等体)、no-advertise(不通告任何对等体)、no-export(不传出本 AS)等;需手动开启传递(advertise-community
Aggregator标记手工聚合的路由记录聚合者的 AS 和 Router-ID

4. 可选非传递属性(可不识别,不传递)

属性作用选路影响
MED指导流量进入 AS 的优选路径仅相邻 AS 间比较,值小优先(默认 0)
Cluster-list路由反射器集群列表短列表优先;防环(含本地 Cluster ID 则拒绝)
Originator-ID路由反射器中路由的始发者 ID小 ID 优先;防环(与本地 Router ID 一致则拒绝)

六、大规模 BGP 网络解决方案

1. 对等体组(Peer Group)

  • 定义:将具有相同属性的对等体分组,简化配置。

  • 分类:IBGP 对等体组(同一 AS 内)、EBGP 对等体组(同一外部 AS)。

  • 配置示例:

    [R2-bgp] group in internal  # 创建IBGP对等体组
    [R2-bgp] peer 3.3.3.3 group in  # 加入对等体
    [R2-bgp] peer in connect-interface LoopBack 0  # 统一指定更新源
    

2. 路由聚合

  • 作用:减小路由表规模,减少 LSA 泛洪。

  • 类型:

    • 自动聚合:仅对引入的 IGP 路由聚合至主类(可能产生黑洞,默认关闭);
    • 手工聚合:精确汇总,可抑制明细路由(detail-suppressed)。
  • 配置示例:

    [R1-bgp] aggregate 172.16.0.0 16 detail-suppressed  # 聚合并抑制明细
    

3. 路由反射器(RR)

  • 作用:替代 IBGP 全连接,允许从一个 IBGP 邻居学习的路由反射给其他 IBGP 邻居。
  • 角色:
    • RR(路由反射器):负责反射路由;
    • Client(客户机):与 RR 建立 IBGP 连接,无需互建连接;
    • 非客户机:需与 RR 互建连接,不被反射。
  • 反射规则:
    • 从非客户机学习的路由 → 仅反射给客户机;
    • 从客户机学习的路由 → 反射给所有客户机和非客户机(排除始发者);
    • 从 EBGP 学习的路由 → 反射给所有客户机和非客户机。
  • 防环机制:
    • Cluster-list:记录经过的 RR 集群 ID,含本地 ID 则拒绝;
    • Originator-ID:标记路由始发者 ID,与本地一致则拒绝。

4. 联盟(Confederation)

  • 作用:将一个 AS 划分为多个子 AS(用私有 AS 号),子 AS 间建立联盟 EBGP,内部仍用 IBGP,减少邻居数量。

  • 配置要点:

    • 子 AS 需配置联盟 ID(原 AS 号)和同伴子 AS;
    • 跨子 AS 的 EBGP 邻居需修改下一跳为本机。
  • 示例:

    [R2-bgp] bgp 65001  # 子AS号
    [R2-bgp] confederation id 200  # 联盟ID(原AS号)
    [R2-bgp] confederation peer-as 65002  # 同伴子AS
    

5. 路由衰减(Route Dampening)

  • 作用:解决路由振荡(频繁 Up/Down),通过惩罚值抑制不稳定路由。
  • 参数:
    • 抑制阈值(默认 2000):惩罚值超此时抑制路由;
    • 重用阈值(默认 750):惩罚值低于此时恢复路由;
    • 半衰期(默认 15 分钟):惩罚值每 15 分钟减半。
  • 配置[R1-bgp] dampening(启用默认参数)。

七、BGP 基本配置流程

  1. 启动 BGP 并配置 Router-ID:

    [Huawei] bgp 100  # 启动BGP,指定AS号
    [Huawei-bgp] router-id 1.1.1.1  # 配置Router-ID
    
  2. 配置邻居:

    [Huawei-bgp] peer 10.1.1.2 as-number 200  # 指定EBGP邻居
    [Huawei-bgp] peer 2.2.2.2 as-number 100  # 指定IBGP邻居
    [Huawei-bgp] peer 2.2.2.2 connect-interface LoopBack 0  # 指定更新源
    
  3. 宣告或引入路由:

    [Huawei-bgp] network 192.168.1.0 24  # 宣告直连路由
    [Huawei-bgp] import-route ospf 1  # 引入OSPF路由
    
  4. 查看命令:

    [Huawei] display bgp peer  # 查看邻居状态
    [Huawei] display bgp routing-table  # 查看BGP路由表
    

八、关键实验场景

  • EBGP/IBGP 邻居建立:验证直连 / 非直连建邻、TTL 调整;
  • 路由黑洞解决:通过引入 IGP 或路由反射器消除黑洞;
  • 选路控制:通过修改 AS_PATH、Local-Preference、MED 等属性调整最优路由;
  • 大规模网络优化:配置对等体组、聚合、路由反射器或联盟减少配置复杂度。
http://www.lryc.cn/news/615206.html

相关文章:

  • 使用qemu运行与GDB调试内核
  • 微软推出革命性AI安全工具Project IRE,重塑网络安全防御新范式
  • 用天气预测理解分类算法-从出门看天气到逻辑回归
  • Kubernetes(K8s)不同行业的典型应用场景及价值分析 原创
  • windows、linux应急响应入侵排查
  • Qdrant Filtering:must / should / must_not 全解析(含 Python 实操)
  • 【2025】Datawhale AI夏令营-多模态RAG-Task1、Task2笔记-任务理解与Baseline代码解读
  • 金融通用智能体(Financial General Agent, FGA)的端到端解决方案
  • 机器翻译中的语言学基础详解(包括包括语法、句法和语义学等)
  • C语言:构造类型
  • TDengine IDMP 产品基本概念
  • 使用 Visual Studio 2022 编译 PortAudio 项目
  • occworld(1):论文解读
  • Ghost备份分区设置分包大小方法
  • 任务发布悬赏查询管理地推抖音快手微信任务赚佣金网站源码功能详解二开
  • 谷歌警告云存储桶劫持攻击
  • 让大模型 “睡觉”:把版本迭代当作人类睡眠来设计(附可直接改造的训练作息表与代码)
  • n沟道增强型mos管
  • B.10.01.6-DDD领域驱动设计:从理论到落地的完整指南
  • Typora上传图片保存到assets目录下
  • 第十四届蓝桥杯青少年组省赛 编程题真题题解
  • stm32项目(24)——基于STM32的汽车CAN通信系统
  • WinForm 复合控件(用户控件):创建与使用指南
  • 深入 FastMCP 源码:认识 tool()、resource() 和 prompt() 装饰器
  • sqli-labs通关笔记-第39关 GET数值型堆叠注入(手工注入+脚本注入两种方法)
  • 数据分析框架从 “工具堆砌” 转向 “智能协同”
  • 大语言模型提示工程与应用:提示工程-提升模型准确性与减少偏见的方法
  • node.js 零基础入门
  • 学习嵌入式第二十四天
  • Kotlin 协程线程切换机制详解