BGP
首页 / 文章 / BGP

BGP

一、邻居建立条件

BGP 邻居建立前,先确认这些条件:

条件 说明
IP 可达 双方邻居地址必须可达
TCP 179 可通 BGP 基于 TCP 建立会话
AS 号正确 eBGP 对端 AS 写对,iBGP 同 AS
Router ID 唯一 同一 BGP 域内不要冲突
源地址一致 使用 Loopback 建邻居时要指定源接口
多跳配置 eBGP 使用 Loopback 或非直连时需要 ebgp-max-hop
认证一致 如果配置 MD5,双方必须一致

二、eBGP 和 iBGP

对比项 eBGP iBGP
邻居关系 不同 AS 同一个 AS
默认 TTL 1,通常要求直连 较大,可跨设备
路由传递 收到 eBGP 路由可传给其他 eBGP/iBGP 从 iBGP 学到的路由默认不再传给其他 iBGP
Next-Hop 通告给 eBGP 时通常改为自己 通告给 iBGP 时默认不改
防环 AS_Path 检查 水平分割、RR、联盟

三、BGP 报文类型

报文 作用
Open 建立邻居时协商参数
Update 发布或撤销路由
Keepalive 保持邻居关系
Notification 出错时通知并关闭连接
Route-refresh 请求对端重新发送路由,便于策略刷新

四、邻居状态机

常见状态:

Idle -> Connect -> Active -> OpenSent -> OpenConfirm -> Established
状态 含义 排查方向
Idle 初始状态或出错后回到初始 配置、路由、对端地址
Connect 正在尝试建立 TCP TCP 179、IP 可达性
Active TCP 连接失败后反复尝试 地址、源接口、ACL、防火墙、AS
OpenSent 已发送 Open AS 号、Router ID、认证
OpenConfirm Open 通过,等待 Keepalive Keepalive、参数协商
Established 邻居建立成功 开始收发路由

五、Loopback 建邻居

生产网络常用 Loopback 建 BGP 邻居,因为 Loopback 稳定,不随物理接口抖动。

iBGP 常见写法:

bgp 65001
 peer 2.2.2.2 as-number 65001
 peer 2.2.2.2 connect-interface LoopBack0

eBGP 如果使用 Loopback,通常还需要多跳:

bgp 65001
 peer 2.2.2.2 as-number 65002
 peer 2.2.2.2 connect-interface LoopBack0
 peer 2.2.2.2 ebgp-max-hop 2

六、下一跳可达性

BGP 邻居 Established 不代表路由一定可用。

BGP 路由要进入 IP 路由表,还要满足:

BGP 路由的 Next-Hop 在本地路由表中可达。

iBGP 场景常见问题:

R1 从 eBGP 学到路由后传给 iBGP 邻居 R2;
默认 Next-Hop 仍是外部邻居地址;
R2 不知道这个 Next-Hop 怎么去,路由不可用。

常见解决:

peer x.x.x.x next-hop-local

七、排错速查

现象 重点检查
一直 Active IP 可达、TCP 179、源地址、
OpenSent 后失败 AS 号、Router ID、认证
Established 但没路由 对端是否发布、本端策略是否过滤
学到路由但不可用 Next-Hop 是否可达
iBGP 路由不继续传递 iBGP 水平分割,需要 RR 或全互联
分享这篇:
扫码阅读本文 扫码用手机阅读 / 分享

评论