Skip to main content

BGP选路原则

路由器对BGP路由的处理过程

BGP路由来源包括从其他协议引入和从邻居学习两个部分。为了缩小路由表规模,可以先进行路由聚合。之后路由器进行路由选择、路由发送和路由下发IP路由表等过程。

q4WY9UeAsWbDF1SJ-drawing-1-1709131405.png
BGP 路由器对路由的处理过程

序号

说明

1

BGP可以引入其他路由协议的路由,比如直连路由、静态路由、UNR路由和IGP路由。BGP引入路由时支持Import和Network两种方式。

2

BGP在从其他路由协议引入路由,从邻居接收路由,向邻居发送路由时都可以使用路由策略,路由策略可以实现对路由过滤,也可以修改路由属性。

3

BGP支持两种路由聚合方式:自动聚合和手动聚合。其中,使用手动聚合时还可以应用多种路由策略。

4

BGP严格按照选路规则进行路由选择。而选路规则正是本文后续讨论重点。

5

BGP将优选的路由存在路由表中供自己使用,同时向邻居发送。

6

BGP将从BGP邻居学习的,并且在BGP路由表中优选的路由下发IP路由表,指导数据流量转发。

选路规则

BGP在选择路由时严格按照先后顺序比较路由的属性,如果通过前面的属性就可以选出最优路由,BGP将不再进行后面的比较;如果BGP通过所有属性仍没有选出最优路由,则先收到的路由优选。下图按照顺序列出了这些属性的助记简写、选择规则和补充说 明。从下图可以看出,仅仅前两项协议首选值和本地优先级是数值高者优选,其他大部分是数值小者或长度短者优选。另外,下图的第一列还可以归纳成如下字符串:“PPAAA OMTCC RA”,记住此字符串有助于记忆整个选路规则。

5dl0PyreVpXnC1en-drawing-1-1709133012.png
BGP选路属性表

助记简写

项目

选择规则

补充说明

P

协议首选值 (PrefVal)

数值高者优选。

缺省值0。

华为设备的特有属性,仅在本地有效。

P

本地优先级 (Local_Pref)

数值高者优选。

缺省值100。

可以通过执行default local-preference命令修改BGP路由的缺省本地优先级。

A

说明

此处取字符 串"ASNIL"的首字面。

路由生成方式

A>S>N>I>L。其中:

  • A:aggregate命令生成的聚合路由。
  • S:summary automatic命令生成的聚合路由。
  • N:network命令引入的路由。
  • I:import-route命令引入的路由。
  • L:从邻居学习的路由。

-

A

AIGP (Accumulate d Interior Gateway Protocol)

数值小者优选。

有AIGP的路由优于没有AIGP的路由。

-

A

AS_Path

长度短者优选。

执行bestroute as-path-ignore命令后,BGP选路时忽略AS_Path的比较。

O

Origin

IGP>EGP>Incomplete。

-

M

MED(Multi Exit Discriminator)

数值小者优选。

缺省值0。

执行bestroute med-none-as-maximum命令后,BGP选路时将该路由的MED值按最大值4294967295来处理。

更多MED的使用规则请参考MED。

T

邻居类型(Peer Type)

EBGP>IBGP。

-

C

IGP Cost

数值小者优选。

执行bestroute igp-metric-ignore命令后,BGP选路时忽略IGP Cost的比较。

C

Cluster_List

长度短者优选。

缺省情况下,BGP在选择最优路由时Cluster-List优先于Originator-ID。配置bestroute routerid-prior-clusterlist命令后,BGP在选择最优路由时Originator-ID优先于Cluster-List。

R

Router ID

数值小者优选。

如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。

A

对等体地址(Peer Address)

数值小者优选。

-

配置负载分担时的路由选择

配置BGP负载分担后,满足如下所有条件的多条BGP路由会成为等价路由,进行负载分担:

  • 首选值(PrefVal)相同。
  • 本地优先级(Local_Pref)相同。
  • 都是聚合路由,或者都不是聚合路由。
  • AIGP值相同。
  • AS_Path属性完全相同。
  • Origin类型(IGP、EGP、Incomplete)相同。
  • MED(Multi_Exit Discriminator)值相同。
  • 都是EBGP路由或都是IBGP路由。配置maximum load-balancing eibgp命令后,BGP在选择最优VPN路由时忽略该条比较。
  • AS内部IGP的Metric相同。配置maximum load-balancing eibgp命令后,BGP在选择最优VPN路由时忽略该条比较。

此外,需要特别指出的是,携带标签的BGP路由与不携带标签的BGP路由即使满足上述条件,也不能形成负载分担。

私网路由选路规则

在VRP的实现中,私网BGP路由选路规则与公网BGP路由选路规则相同。唯一的不同是,相对于公网BGP路由,私网BGP路由需要根据VPN-Target进行路由交叉。更多关于 路由交叉的内容,请参见《VRP 特性描述-IP路由-BGP》中的“BGP私网路由选择”章节。

理解 BGP 路由表

在详细学习BGP路由属性对BGP选路的影响之前,用户需要了解如何查询这些路由属性。

BGP路由属性查询命令

路由属性

常用查询命令

协议首选值 (PrefVal)

display bgp routing-table [ network ]

本地优先级 (Local_Pref)

display bgp routing-table [ network ]

路由生成方式

display bgp routing-table network

AIGP

display bgp routing-table network

AS_Path

display bgp routing-table [ network ]

Origin

display bgp routing-table [ network ]

MED

display bgp routing-table [ network ]

邻居类型

display bgp routing-table network

IGP Cost

  • display bgp routing-table network 
  • display ip routing-table ip-address [ mask | mask-length ] [ verbose ], 其中ip-address是BGP路由的下一跳IP地址。

Cluster_List

display bgp routing-table network

Originator ID

display bgp routing-table network

Router ID

display bgp routing-table network

对等体地址

display bgp routing-table network