问题描述
BGP 通过 network、import-route、aggregate 方式生成 BGP Route 后,通过 Update 报文将 BGP Peer 传递路由;
但是,当通告路由时,BGP 需要遵循通告原则,以防止出现环路等等问题;
解决方案
BGP 通告遵循以下原则:
1)有效、最优:只发布最优且有效路由;
2)EBGP 全部通告:从 EBGP Peer 获取的路由,会发布给所有其他 BGP Peer;
3)IBGP 水平分割:从 IBGP Peer 获取的路由,不会发送给 IBGP Peer;
4)BGP 同步规则指的是:当一台路由器从自己的 IBGP Peer 学习到一条 BGP Route 时(这类路由被称为 IBGP Route),它将不能使用该条路由或把这条路由通告给自己的 EBGP Peer,除非它又从 IGP 协议(例如 OSPF、ISIS 等等,也包含静态路由)学习到这条路由,也就是要求 IBGP 路由与 IGP 路由同步。该规则主要用于规避 BGP 路由黑洞问题。
第一原则:发布最优且有效的路由
第一原则:只发布最优且有效(即下一跳地址可达)路由,并且才可能在本地路由表中使用;
通过 display bgp routing-table 命令,能够查看 BGP RIB 信息:
Total Number of Routes: 2 Network NextHop MED LocPrf PrefVal Path/Ogn *>i 10.1.0.0/24 11.1.0.1 0 100 0 ? *i 11.1.0.2 0 100 0 ? 在 BGP RIB 中,同时存在以下两个标志的路由为最优、有效: * : 代表有效 > : 代表最优
Q:部分 NextHop 可达的路由也没有放入路由表(我们观察到现象是,建立 BGP 关系的直连路由,虽然本端通告,但是下一端未再继续通告该路由)。
A:为了防止 BGP 抖动,这是华为设备的行为(并非因为其不是最优路由)。
[AR2-bgp]display bgp routing-table ... Network NextHop MED LocPrf PrefVal Path/Ogn *> 10.1.1.1/32 10.1.12.1 0 0 200i 10.1.12.0/24 10.1.12.1 0 0 200i
第二原则:EBGP ⇒ IBGP
第二条原则:从 EBGP Peer 获取的路由,会发布给所有对等体(EBGP、IBGP);
R2 从 EBGP Peer 获取的 BGP Route,会发布给所有 EBGP Peer、IBGP Peer;
第三原则:IBGP ⇒ IBGP(水平分隔)
第三原则:从 IBGP Peer 获取的 BGP Route 将不再向其他 IBGP Peer 通告,该原则也称为 BGP Split-Horizon Rule(IBGP 水平分割),用于 Intra-BGP 防环(补充 Inter-AS 通过 AS_Path 进行防环)。
如图所示,如果没有该规则,则 IBGP Peer 学习到的路由会继续传递给其他的 IBGP Peer:
1)R2 将某条路由传递给 IBGP Peer R3;
2)R3 收到路由后,传递给 IBGP Peer R1;
3)R1 继续传递给 IBGP Peer R2;
4)最后,在该网络中将形成路由环路;
第四原则:IBGP ⇒ EBGP(同步原则)
第四原则:
1)当 Router 从自己的 IBGP Peer 学习到 BGP 路由时(这类路由被称为 IBGP 路由),它将不能使用该条路由(因为 BGP 能够非直连来传递路由,此时可能下一跳不可达)或不能把这条路由通告给自己的 EBGP Peer;
2)除非它又从 IGP 协议(例如 OSPF 等,此处也包含静态路由)学习到这条路由;
该条规则也被称为 BGP 同步原则,用于防止黑洞 —— 没有路由而导致数据丢失。
如图所示:
1)BGP 路由器 R4 上存在一条路由 10.0.4.0/24,R4 将其传递给 R2;
2)R2 将路由传递给非直连 IBGP 对等体 R3;
3)R3 将路由传递给 R5;
4)之后 R5 向 R4 10.0.4.4 发起访问 ⇒ 如果没有该原则,即 R3 会将路由下发给 R5,此时到达 R1 将丢包,因为 R1 未包含相关路由条目(数据黑洞问题)。 该规则的存在便是为了避免该问题。
解决方案:
1)通过同步(synchronization,类似路由引入)功能:此功能将 BGP 路由引入 IGP 协议中,IGP 将同步所有路由,此时 BGP 生效(下一跳可达)。但是 BGP 路由条目数量庞大,导致 IGP 设备(计算)压力大,所以很多设备厂商已禁用该特性;
2)通过 Full Mesh 技术,两两建立 IBGP 关系;但是设备 TCP 连接数会增多,同时该模式不利于 BGP 大规模部署;
3)通过 Route Reflector 或 MPLS 技术来解决;
参考文献
IBGP Advanced Configuration Synchronization Rule – CCIE