1、BGP选路规则的技术背景
1、当BGP设备学习到去往同一个目的网络的多条BGP路由(路径)时,设备将这些路由都装载到BGP路由表,并在这些条目中进行路由优选,最终决策出最优( Best )的路由,将该BGP路由加载到全局路由表中,作为数据转发的依据。
2、当存在多路径时,BGP只会将其选择出来的最优路由通告给其他对等体。
3、BGP定义了一系列路由优选规则,从而使得设备能够在多条路由中选择出最优的路由。BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过当前的属性就可以选出最优路由,BGP将不再进行后面的比较。
4、BGP的选路规则与BGP路径属性及路由策略息息相关,它们使得BGP拥有了强大的路由操控能力。
2、路径属性
1、定义:路径属性: path attributes,作用类似于metric,用于度量BGP的路由优劣(用来进行选路)
2、分类:分为四大类,第一类是公认必遵属性,第二类公认自觉属性,第三类可选传递属性,第四类可选非传递属性。
公认必遵属性:所有的bgp的update消息都要包含该属性。其中含有三个属性:>>>AS路径(AS-path) >>>下一跳(next-hop) >>>起源(origin)。
公认自觉属性:该属性可选可不选,但是所有的BGP都能识别。包含一个属性:>>>本地优先级(local preferent)
可选传递属性:即使BGP进程不能识别该属性,也会继续传递下去
可选非传递属性:如果BGP进程不能识别该属性,可以忽略这条update,并且不传递下去。
3、BGP选路规则
***1、如果此路由的下一跳不可达,忽略此路由
2、Preferred-Value值数值越高越优先,华为私有属性,仅本地有意义
***3、Local-Preference值最高的路由优先
4、聚合路由优先于非聚合路由
5、本地手动聚合路由的优先级高于本地自动聚合的路由
6、本地通过Network命令引入的路由的优先级高于本地通过import-route命令引入的路由
***7、As-path的长度最短的路径优先
8、比较origin属性,IGP优于EGP,EGP优于Incomplete
***9、选择MED较小的路由
10、EBGP路由优于IBGP路由
11、BGP优先选择到BGP下一跳的IGP度量值最低的路径
当以上全部相同,则为等价路由,可以负载分担(注意: As_Path必须一致,当负载分担时,以下3条原则无效)
12、比较cluster list长度,短者优先
13、比较originator_ID(如果没有originator_ID,则用Router_ID比较),选择数值较小的路径。
***14、比较对等体的IP地址,选择IP地址数值最小的路径。
3、BGP的配置属性
第一种:根据local-prefernce控制选路(越大越优):
为公认自决属性,用于告诉As中的路由器,哪条路径是离开As的首选路径
local-prefernce命令:
[R3] route-policy lop permit node 10
[R3-route-policy] apply local-preference 288
[R3-route-policy] q
[R3] bgp 200
[R3-bgp] peer 4.4.4.4 route-policy lop export
[R3-bgp]q
[R3]q
<R 3> refresh bgp all export
第二种:使用AS-PATH属性控制选路(越少越优)
AS-Path命令:
[R2] route-policy as permit node 10
[R2-route-policy] apply as-path 888 additive
[R2-route-policy] q
[R2] bgp 200
[R2-bgp] peer 1.1.1.1 route-policy as export
[R2-bgp] q
[R2] q
<R 2> refresh bgp all export
MED控制选路(越小越优):
[R2] route-policy med permit node 10
[R2-route-policy] apply cost + 500
[R2-bgp] peer 1.1.1.1 route-policy med export
<R 2> refresh bgp all export
[R1] dis bgp routing-table