BGP 进阶与 MP-BGP
配套课件
这一章解决什么问题
BGP 进阶的重点不再是“邻居能否建起来”,而是要区分三个层面:会话是否建立、目标地址族是否已协商、路由是否以期望的属性和下一跳进入转发表。排错时不要只看 IPv4 单播邻居的 Established 状态。
MP-BGP 与 IPv6 地址族
传统 BGP 报文主要承载 IPv4 单播 NLRI;MP-BGP 通过 MP_REACH_NLRI 与 MP_UNREACH_NLRI 扩展,同时携带地址族(AFI)和子地址族(SAFI)。IPv6 单播通常使用 AFI 2、SAFI 1。
在 VRP 上,IPv6 邻居和 IPv4 邻居的建立、地址族激活是两件事。以下是结构示意,地址和 AS 需要替换为实验拓扑的实际值:
bgp 65001
ipv6-family unicast
peer 2001:db8:12::2 as-number 65002
peer 2001:db8:12::2 enable先确认 IPv6 可达与 TCP/179 可建立,再确认该邻居在 IPv6 地址族中已启用。若只在全局 BGP 视图创建了邻居而未启用地址族,邻居可能存在但不会交换 IPv6 单播路由。
IBGP 全互联与路由反射器
IBGP 默认不会把从 IBGP 对等体学到的路由再通告给另一台 IBGP 对等体,因此全互联规模增大后需要 RR(Route Reflector)。
RR 的作用是消除全互联要求,但它不是“自动保证可达”:
- 客户端与非客户端的反射方向不同;
- 反射后的路由会带上 Originator ID、Cluster List 等环路防护信息;
- 即使路由已被反射,BGP Next Hop 若在 IGP 中不可达,仍不能正确转发;
- 部分 IBGP 组网还要特别检查同步的 IGP 路由、下一跳改写策略和等价路由数量。
验证应同时看 BGP 表与路由表:BGP 表中有路由不代表已经成为最优路由,也不代表下一跳在 FIB 中可解析。
display bgp routing-table
display bgp ipv6 routing-table
display ip routing-table <prefix>
display fib <prefix>ORF 与 Route Refresh
ORF(Outbound Route Filtering)让接收方将自己的过滤需求告知发送方,发送方只发送符合条件的路由,适合大规模路由表的预过滤场景。它解决的是“向邻居发送哪些路由”的效率问题,不替代本地入/出方向的策略设计。
Route Refresh 用于策略改变后请求对端重新发送路由。执行前应确认双方能力协商、过滤策略的方向及匹配对象;否则即使刷新成功,也可能因为策略方向错误而看不到预期结果。
缺省路由发布
缺省路由需要先明确来源与传播边界:它可以由已有的 0.0.0.0/0 路由引入,也可以按邻居或地址族定向发布。不要因为“上游存在一条默认路由”就默认认为所有下游都应收到它。
验收时至少回答三个问题:
- 目标邻居是否收到默认路由;
- 收到后它是否为最优且下一跳可达;
- 默认路由是否越过了不应传播的 VPN、客户或备份链路边界。
建议排错顺序
- 用
display bgp peer、display bgp ipv6 peer确认会话与地址族能力; - 查询精确前缀,确认路由来源、优选状态、下一跳和 AS_PATH;
- 检查 route-policy、community/large-community、ORF 和出入方向;
- 查询 IGP 与 FIB,确认 BGP 下一跳可递归解析;
- 策略变更后按需 Route Refresh,再保留变更前后的路由证据。
