问题描述
当到达同个目的网段存在多条路由时,BGP 需要按照规则进行最佳路由优选。
解决方案
如下规则依序排列,BGP 进行路由优选时,从第一条规则开始执行,如果根据第一条规则无法作出判断(例如,路由的 Preferred-Value 属性值相同),则继续执行下一条规则。如果根据当前的规则,BGP能够决策出最优的路由,则不再继续往下执行。
00、下一跳必须可达
规则说明:下一跳必须可达,如果下一跳不可达,则该路由将不会参与优选规则。
在 R2 与 R3 中,未配置 peer x.x.x.x next-hop-local 特性,导致 R1 收到的路由下一跳仍未原始出接口地址,
而 R1 无法到达该地址,因此对于 R1 来说,路由的下一跳不可达,因此导致路由不会参与优选。
01、Preferred-Value
规则说明:Preferred-Value,值最大的路由,将成为优选路由;
如图,调整由 R3 发来的路由的 Preferred-Value 值,使其更优,成为优选路由。
02、Local-Preference
规则说明:Local-Preference,值最大的路由,将成为优选路由;
03、Route Type(本地始发优选)
规则说明:本地始发 BGP Route 优选,本地始发的路由优先级:aggregate > 自动聚合 > network > import route > 从对等体学到的;
该规则可概括为:在相同条件下,优选本地生成的路由,从 BGP Peer 学习到的路由条目为次优;
同时本地生成的路由也可能存在多种途径,当本地存在多种途径学习到相同路由时,从高到低优先级如下:
1)手动聚合:在 BGP 中,通过 aggregate 命令聚合生成的聚合路由;
2)自动聚合:summary automatic 命令生成的自动聚合路由
3)network 注入的路由
4)import-route 注入的路由
not preferred for route type
aggregate
ip route-static 10.0.45.0 255.255.255.128 null0 # 黑洞路由 ip route-static 10.0.45.128 255.255.255.128 null0 bgp 200 # aggregate 10.0.45.0 255.255.255.0 detail-suppressed network 10.0.45.0 255.255.255.0 # 引入路由(该路由与黑洞路由具有相同网络) import-route static # 然后,丢弃没有明细的路由
如上配置方式,运营商对接会采用:
1)将 AS 路由人工计算汇总,并配置静态路由条目;
2)然后,通告该静态汇总路由条目
3)当收到数据包后:
—- 由于明细路由的存在,不会匹配 null0 条目;
—- 而不存在明细的数据包,直接利用 null0 丢弃;
summary automatic
自动聚合仅能用于引入的路由条目;
[R3] ip route-static 10.0.45.0 255.255.255.128 null0 [R3] ip route-static 10.0.45.128 255.255.255.128 null0 [R3] bgp 200 [R3] summary automatic [R3] import-route static
R3上 配置两条静态路由,将静态路由通过 import-route 注入到 BGP,并开启自动聚合,BGP 将按照自然网段聚合路由(例如非自然网段A类地址10.1.1.1/24和10.2.1.1/24将聚合为自然网段A类地址10.0.0.0/8),并且 BGP 只向 Peer 通告聚合后的路由。
在R3上将会看到路由被聚合为10.0.0.0/8。
R5上又注入了路由10.0.0.0/8,并通告给了R3。
补充说明:
1)自动聚合的路由产生的聚合路由并不会携带 Atomic-Aggregate 属性,而手动聚合会携带该属性(display bgp route x.x.x.x);
2)鉴于自动聚合产生的路由为自然网段(相当宽泛),所以可控性较低,自动聚合在实际环境中较少使用;
04、AS-Path
规则说明:AS-Path,最短的路由具有更高的优先级。
05、Origin
规则说明:Origin 最优的路由:IGP > EGP > Incomplete;
06、MED
规则说明:MED,最小的路由;
07、EBGP Peer > IBGP Peer
规则说明:若某条路由既能从 EBGP Peer 学到,又能从 IBGP Peer 学到,则优选从 EBGP Peer 学来的路由(EBGP Route 优先级高于 IBGP Route)。
not preferred for peer type
08、Next-Hop Metric
规则说明:优选到 Next-Hop 的度量值(IGP Metric)最小的路由,即:去往下一跳的开销值越小越好。
not preferred for IGP cost
补充说明:
1)该规则是分界点,当匹配到该规则时,所有条件依旧相同,则 BGP 会认为路由条目为等价路由,能够实现 Load Balancing(负载分担);
09、Cluster-List
规则说明:优选 Cluster-List 最短的路由。
not preferred for Cluster List
10、Orginator-ID & Router ID
规则说明:优选 Orginator-ID 而后 Router ID,最小的设备通告的路由。
not preferred for Router ID,即使通过 Orginator-ID 优选,提示消息依旧为 Route ID
11、BGP Peer IP Address
规则说明:优选具有最小 IP-ADDR 的 Peer 通告的路由。
//======\\ // \\ Network-A - R1 R2 \\ // \\======//
not preferred for peer address
补充说明
前 2 条,取值越大越优
后 8 条,取值越小越优
前 8 条,属性全部相同时可以形成路由负载分担:BGP Load Balancing
AIGP(Accumulated Interior Gateway Protocol,累加IGP度量值)用于传递并累加IGP metric值,该属性值并不常用,在 BGP 路由优选规则中并不涉及。