「BGP」- 路由优选规则

  CREATED BY JENKINSBOT

问题描述

当到达同个目的网段存在多条路由时,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 路由优选规则中并不涉及。