BGP路由协议的选路原则及路由属性,一分钟记忆可以如此简单

2023-10-09 17:03:42

一、BGP简介

BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同 AS(Autonomous

System,自治系统)之间,又可以用于同一 AS 内部的动态路由协议。当 BGP 运行于同一 AS 内部

时,被称为 IBGP(Internal BGP);当 BGP 运行于不同 AS 之间时,称为 EBGP(External

BGP)。AS 是拥有同一选路策略,属于同一技术管理部门的一组路由器。

二、BGP选路原则【重要】

目前,BGP 选择路由的过程为:

(1) 丢弃下一跳(NEXT_HOP)不可达的路由;

(2) 优选首选值(Preferred-value)最大的路由;

(3) 优选本地优先级(LOCAL_PREF)最高的路由;

(4) 依次选择 network 命令生成的路由、import-route 命令引入的路由、聚合路由;

(5) 优选 AS 路径(AS_PATH)最短的路由;

(6) 依次选择 ORIGIN 类型为 IGP、EGP、Incomplete 的路由;

(7) 优选 MED 值最低的路由;

(8) 依次选择从 EBGP、联盟 EBGP、联盟 IBGP、IBGP 学来的路由;

(9) 优选下一跳 Cost 值最低的路由;

(10) 优选 CLUSTER_LIST 长度最短的路由;

(11) 优选 ORIGINATOR_ID 最小的路由;

(12) 优选 Router ID 最小的路由器发布的路由;

(13) 优选 IP 地址最小的对等体发布的路由。

三、BGP路由属性【重要的属性】

BGP 路由属性是跟随路由一起发布出去的一组参数。它对特定的路由进行了进一步的描述,使得路

由接收者能够根据路由属性值对路由进行过滤和选择。

1. 源(ORIGIN)属性

ORIGIN 属性定义了路由信息的来源,标记一条 BGP 路由是怎么生成的。它有以下三种类型:

A、IGP:优先级最高,表示路由产生于本 AS 内。

B、 EGP:优先级次之,表示路由通过 EGP 学到。

C、 Incomplete:优先级最低,表示路由的来源无法确定。例如,从其它路由协议引入的路由信

息。

2. AS路径(AS_PATH)属性

AS_PATH 属性记录了某条路由从本地到目的地址所要经过的所有 AS 号。当 BGP 路由器将一条路

由通告到其他 AS 时,会把本地 AS 号添加在 AS_PATH 列表中。收到此路由的 BGP 路由器根据

AS_PATH 属性就可以知道到达目的地址所要经过的 AS。

AS_PATH 作用:

A、避免路由环路的形成:缺省情况下,如果 BGP 路由器接收到的路由的 AS_PATH 属性中已经

包含了本地的 AS 号,则 BGP 路由器认为出现路由环路,不会接受该路由。

B、影响路由的选择:在其他因素相同的情况下,BGP会优先选择路径较短的路由。

C、 对路由进行过滤:通过配置 AS 路径过滤列表,可以针对 AS_PATH 属性中所包含的 AS 号来

对路由进行过滤。

3. 下一跳(NEXT_HOP)属性

BGP的NEXT_HOP属性取值不一定是邻居路由器的IP地址。NEXT_HOP属性取值

情况分为几种:

A、BGP 发言者把自己产生的路由发给所有邻居时,将该路由信息的 NEXT_HOP 属性设置为自

己与对端连接的接口地址;

B、BGP 发言者把接收到的路由发送给 EBGP 对等体时,将该路由信息的 NEXT_HOP 属性设置

为自己与对端连接的接口地址;

C、BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的NEXT_HOP

属性。

4. MED(Multi-Exit Discriminator,多出口区分)属性

MED 属性仅在相邻两个 AS 之间交换,收到此属性的 AS 不会再将其通告给其它 AS。

MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由。当一个BGP

路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的

情况下,将优先选择MED值较小者作为最佳路由。

5. 本地优先(LOCAL_PREF)属性

LOCAL_PREF 属性仅在 IBGP 对等体之间交换,不通告给其他 AS。它表明 BGP 路由器的优先级。

LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对等体得到

目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。