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

BGP 笔记梳理

一、BGP 基本概念


- 定义:边界网关协议(Border Gateway Protocol),是一种外部网关协议(EGP),用于不同自治系统(AS)之间交换路由信息。
- 特点:
- 基于 TCP 协议,端口号 179,可靠性高。
- 路径矢量协议,通过 AS 路径(AS-Path)等属性避免环路。
- 支持 CIDR(无类域间路由),能携带大量路由信息。
- 策略性强,可通过路由属性灵活控制路由的选择和传播。

二、BGP 核心术语



- 自治系统(AS):由同一机构管理、使用统一路由策略的网络集合,用 AS 号标识(16 位:1-65535,其中 64512-65535 为私有 AS 号)。
- BGP 邻居:不同设备通过 TCP 建立连接后形成的对等体关系,分为:
- IBGP 邻居:同一 AS 内的 BGP 邻居,需遵循“水平分割”原则(不转发从 IBGP 邻居学到的路由)。
- EBGP 邻居:不同 AS 间的 BGP 邻居,默认 TTL 为 1(环回口建邻需修改 TTL)。
- Router-ID:标识 BGP 设备的唯一 ID,通常为设备环回口 IP,需全网唯一。

三、BGP 路由属性



- 必选属性:所有 BGP 路由必须携带。
- Origin:表示路由来源(IGP 为  i ,EGP 为  e ,重分发为  ? ,优先级: i > e > ? )。
- AS-Path:记录路由经过的 AS 号列表,用于防环(收到包含本地 AS 号的路由时丢弃)。
- Next-Hop:路由的下一跳地址(EBGP 邻居发布的路由,下一跳为邻居自身接口 IP;IBGP 邻居发布的路由,下一跳默认不变)。
- 可选属性:
- Local-Preference:仅在 IBGP 中传递,用于优选出 AS 的出口路由(值越大越优先,默认 100)。
- MED(Multi-Exit Discriminator):用于向 EBGP 邻居提示进入本 AS 的优选入口(值越小越优先,仅在相邻 AS 间有效)。
- Community:路由团体属性,用于标记路由,便于批量控制路由的接收、发布等策略。

四、BGP 工作过程



1. 建立邻居关系:通过  peer  命令配置邻居,交换 Open 报文协商参数(如 AS 号、Router-ID 等),成功后进入 Established 状态。
2. 交换路由信息:通过 Update 报文传递路由及属性,首次交换完整路由表,后续仅更新变化的路由。
3. 路由选路:根据 BGP 路由属性优先级(从高到低:Weight(思科私有)→ Local-Preference → 本地生成路由 → AS-Path 长度 → Origin → MED → EBGP 路由优于 IBGP 路由等)选择最优路由,加入路由表。
4. 维护邻居关系:通过 Keepalive 报文(默认 60s 发送一次,hold time 为 180s)保持连接,超时则断开邻居。


五、常见配置要点



- 环回口建邻:提高邻居关系稳定性,需配置  peer connect-interface  指定环回口,EBGP 邻居还需配置  peer ebgp-max-hop  调整 TTL(如  peer 1.1.1.1 ebgp-max-hop 2 )。
- 路由宣告:通过  network  命令宣告本地路由(需在路由表中存在精确匹配的路由),或通过  import-route  引入其他协议路由(如 OSPF、静态路由)。
- 路由反射器:解决 IBGP 水平分割问题,减少 IBGP 邻居数量。配置反射器( peer reflect-client )后,反射器会将从客户机学到的路由反射给其他客户机和非客户机。
- 防环与优化:
- 配置黑洞路由( ip route-static 网段 NULL 0 )防止路由泄露形成环路。
- 通过路由策略(如  route-policy 、 prefix-list )过滤不必要的路由,减少路由条目。 

六、典型应用场景

 
- AS 间路由互通:不同 AS 网络通过 EBGP 邻居交换路由,实现跨 AS 通信。
- 路由策略控制:利用 Local-Preference、MED 等属性控制流量走向(如让流量优先从带宽大的链路进出)。
- 大规模网络路由管理:通过 Community 属性标记不同区域的路由,在骨干设备上统一控制路由的传播范围。 

七、故障排查思路

 
1. 邻居关系未建立:检查接口是否通、AS 号是否配置正确、是否存在 ACL 过滤 BGP 报文、TTL 是否足够等。
2. 路由未学习到:检查是否配置路由宣告或引入、邻居是否配置  peer enable 、是否存在路由策略过滤路由、AS-Path 是否包含本地 AS 号等。
3. 路由选路不符合预期:查看路由属性( display bgp routing-table ),检查 Local-Preference、AS-Path 等属性是否按预期配置。

http://www.lryc.cn/news/619428.html

相关文章:

  • 分布式事务DTP模型
  • Vue3 vs Vue2:全面对比与面试宝典
  • 递归函数与 lambda 函数:用法详解与实践
  • Pixelorama 1.1.3 像素动画编辑制作
  • 科普:Pygame 中的坐标系
  • 猫头虎AI分享:Excel MCP,让AI具备操作Excel表格|创建销售数据表、复制工作表、填充数据、写公式、绘制图表、调节颜色、添加透视表、保存为PDF
  • python与JavaScript的区别
  • Unity3d UGUI图片按钮只有非透明区域(透明阈值)可以点击功能实现(含源码)
  • 高级IO(五种IO模型介绍)
  • C# 多线程:并发编程的原理与实践
  • I2c、SPI、USB驱动架构类比
  • 2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
  • 欧姆龙E6B2-CWZ6C旋转编码器参数说明+示例代码
  • SQL详细语法教程(二)--DML(数据操作语言)和DQL(数据查询语言)
  • PostgreSQL——索引
  • 【Unity3D】Spine黑线(预乘问题)、贴图边缘裁剪问题
  • django request.data.get 的值修改
  • 基于Tensorflow2.15的图像分类系统
  • C++中的`auto`与`std::any`:功能、区别与选择建议
  • Android 在 2020-2025 都做哪些更新?
  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.13
  • 数据治理之元数据管理
  • TensorFlow实现回归分析详解
  • PyTorch基础(使用TensorFlow架构)
  • CSS counter-reset 与 counter-increment:用 CSS 实现自动编号的黑科技
  • 【贪心算法】加油站
  • TensorFlow深度学习实战(31)——强化学习仿真库Gymnasium
  • 【IntelliJ IDEA】如何在pom.xml中去除maven中未使用的依赖
  • 七大排序算法全解析:从入门到精通
  • 各种排序算法(一)