问题描述
在大型网络中,到达同一目的地通常会存在多条有效 BGP 路由,设备只会优选一条最优的 BGP 路由,将该路由加载到路由表中使用;
但是,该特点往往会造成很多流量负载不均衡的情况,即流量全部通过某条链路进行转发,资源未充分利用;
解决方案
通过配置 BGP 负载分担,可以使得设备同时将多条等代价的 BGP Route 加载到 RIB,实现流量负载均衡,减少网络拥塞;
bgp 200 maximum load-balancing ibgp 2
路由等价负载分担的条件
在设备上使能 BGP 负载分担功能后,只有满足条件的多条 BGP 路由才会成为等价路由,进行负载分担;
Preferred-Value 属性值相同;
Local_Preference 属性值相同;
都是聚合路由或者非聚合路由;
AS_Path 属性完全相同(若启用 as-path-ignore 特性,则 AS_Path 属性长度相同即可)
Origin 类型(IGP、EGP、Incomplete)相同;
MED 属性值相同;
都是 EBGP 路由或都是 IBGP 路由;
AS 内部 IGP 的 Metric 相同;
默认情况,设备只会对 AS_Path 完全相同的路由进行负载分担,通过 [] load-balancing as-path-ignore 忽略 AS_Path 路径不一致;
补充说明
值得注意的是,尽管配置 BGP 负载分担,但是在路由通告时:设备依然只会在多条到达相同目的地的 BGP 路由中优选一条路由,并只将这条路由通告给其他对等体;
在公网中到达同一目的地的路由形成负载分担时,系统会首先判断最优路由的类型:
1)若最优路由为 IBGP Route,则只是 IBGP 路由参与负载分担;
2)若最优路由为 EBGP Route,则只是 EBGP 路由参与负载分担;
3)即公网中到达同一目的地的 IBGP Route 和 EBGP Route 不能混合形成负载分担;