当前位置: 首页 > 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.dtcms.com/a/330318.html

相关文章:

  • 110. 字符串接龙
  • 【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(6)——MCP Client(MCP客户端)
  • 最新Coze(扣子)智能体工作流:用Coze实现「图片生成-视频制作」全自动化,3分钟批量产出爆款内容
  • Docker网络命名空间隔离与VPS服务器环境的连通性测试方法解析
  • kali linux 2025.2配置局域网打印服务器惠普打印机HP1108p
  • MySQL查询表结构、表大小
  • 告别意外中断,iOS辅助工具按键精灵「异常停止重启脚本」功能介绍
  • <c1:C1DateTimePicker的日期时间控件,控制日期可以修改,时间不能修改,另外控制开始时间的最大值比结束时间小一天
  • git clone 支持在命令行临时设置proxy
  • 康托展开与逆康托展开
  • 词向量转化
  • RocketMQ 消息存储机制 CommitLog和ConsumerQu
  • 第八课:python的运算符
  • 从 VLA 到 VLM:低延迟RTSP|RTMP视频链路在多模态AI中的核心角色与工程实现
  • 论文分享 | Flashboom:一种声东击西攻击手段以致盲基于大语言模型的代码审计
  • 04-spring-手写spring-demo-aop0V1
  • Canal解析MySQL Binlog原理与应用
  • Unity、C#常用的时间处理类
  • Laravel 使用ssh链接远程数据库
  • 使用 Simple Floating Menu 插件轻松实现浮动联系表单
  • AI一周事件(2025年8月6日-8月12日)
  • [ Mybatis 多表关联查询 ] resultMap
  • ResourcelessTransactionManager的作用
  • 第三天-如何在DBC中描述CAN Signal的“负数/值”
  • JetPack系列教程(六):Paging——让分页加载不再“秃”然
  • 理财学习资料推荐
  • 谈一些iOS组件化相关的东西
  • C# 多线程:并发编程的原理与实践
  • C++中的STL标准模板库和string
  • Heterophily-aware Representation Learning on Heterogeneous Graphs