排除 BGP 动态路由协议故障与排错解析
1. 故障排除 BGP 邻居关系问题
遵循:
- 首先,应检查第 1/2 层;
- 其次是 IP 连通性(第 3 层),TCP 连接(第4层);
- 最后是 BGP 配置。
(1)直接的外部 BGP 邻居没有初始化
自治系统( AS)不会向 AS 发送或从 AS 接收任何 IP 前缀更新,除非邻居关系达到established 状态,该状态是 BGP 邻居建立的最后阶段。当 AS 有一条单一的 EBGP 连接时,直到 BGP 完成了它的收发 IP 前缀操作后 IP 连通性才能发生。
原因:
- 第 2 层宕掉了,阻止了与直接的 EBGP 邻居通信
- 在 BGP 配置中有错误的邻居 IP 地址
命令:
show ip bgp summary 和 show ip bgp neighbors 检查 BGP 邻居关系
active 状态表示邻居间没有发生成功的通信, 并且邻居未形成。 用 PING 测试其连通性,失败则表示要修复第 1/2 层问题。
debug ip bgp 能够帮助诊断问题
(2)非直接的外部 BGP 邻居没有初始化
有些情况下, EBGP 邻居不是直连的。 BGP 邻居关系能够建立在试图形成由一台或多台路由器分隔开的 EBGP 邻居关系的路由器之间。这种邻居在 IOS 中被称为 EBGP 多跳。
当路由器之间存在多个接口并且需要在那些接口之间 IP 流量负载均衡时,通常在回环接口之间建立 EBGP 对等实体。
可能的原因:
- 到非直连对等实体地址的路由从路由选择表中丢失了;
- BGP 配置中缺少 ebgp-multihop 命令;
- 缺少 update-source interface 命令。
命令:
show ip bgp summary 和 show bgp neighbors
router bgp 109
neighbor x.x.x.x remote-as 110
neighbor x.x.x.x ebgp-multihop 2
neighbor x.x.x.x update-source loopback0
(3)内部 BGP 邻居没有初始化
原因:
- 到非直接 IBGP 邻居的路由丢失了
- BGP 配置中缺少 update-source interface 命令
(4)BGP 邻居(外部和内部)没有初始化
接口访问列表 /过滤是 BGP 邻居活动问题的一个常见原因。
2. 故障排除 BGP 路由通告
发生在 BGP 路由通告的产生和接收中。
(1)没有产生 BGP 路由
原因:
- IP 路由选择表中没有匹配的路由
- 发生了配置错误
- BGP 自动汇总到有类别 /网络边界
(2)向 IBGP/EBGP 邻居传播 /产生一条 BGP 路由的问题配置的分布列表过滤可能是该问题的起因,或者是策略路由选择有问题。
(3)向 EBGP 邻居但没有向 IBGP 邻居传播一条 BGP 路由的问题
show run
show ip bgp
show ip bgp summary
解决:
- 使用 IBGP 全互联
- 设计一个路由反射器模型。
router bgp 109
neighbor x.x.x.x route-reflector-client
- 设计一个聪明模型
(4)向 IBGP/EBGP 邻接传播一条 IBGP 路由的问题
一条 BGP 路由只有首先通过 IGP 或静态路由获得后才是同步的。
show ip bgp 命令的输出显示了 BGP 表中的不同步路由。
3. 排除路由没有装入 IP 路由选择表中的故障
原因:
( 1) IBGP 原因
- IBGP 路由不同步
- BGP 下一跳不可达
( 2)EBGP 原因
- 在多跳 EBGP 情况下 BGP 下一跳不可达
- BGP 路由被抑制
- 多出口鉴别器( MED )值为无穷
4. BGP 下一跳不可达
解决:
使用静态路由或再分布经由 IGP 宣告 EBGP 下一跳
router ospf 1
network x.x.x.0 0.0.0.255 area 0
使用 next-hop-self 命令将下一跳改变为一个内部对等实体地址
router bgp 109
router ospf x.x.x.x next-hop-self
5、BGP 路由被抑制
抑制( dampening)是减小本地 BGP 网络中来自 EBGP 邻居的不稳定 BGP 路由所引起的不稳定性的方法。
抑制是一种为一条翻动的 BGP 路由指派一个罚点的方法。
router bgp 109
bgp dampening
转自Cisco 思科CCIE俱乐部
创作者:Eric· Charles