BGP路由属性是一套参数,它对特定的路由进行了进一步的描述,使得BGP能够对路由进行过滤和选择。在配置路由策略时我们将广泛地使用路由属性,但是不是所有路由属性都要被用上。

事实上,路由属性被分为以下几类:

必遵属性:在路由更新数据报文中必须存在的路由属性,这种属性域在BGP 路由信息中有着不可替代的作用,如果缺少必遵属性,路由信息就会出错。如AS-Path 就是必遵属性,BGP用它来避免路由环路,没有它路由就可能出问题。

可选属性:它是可选的,不一定存在于路由更新数据报文中,我们设置它完全是根据需要。如MED属性,我们就用它来控制选路。

过渡属性:具有AS间可传递性的属性就是过渡属性,过渡属性的域值可以被传递到其他AS中去并继续起作用。如Origin属性,路由信息的起源一旦确定,域值会一直存在,无论此路由信息被传到哪个AS中去。

非过渡属性:只在本地起作用,出了自治系统,域值就恢复成缺省值。如Local-preference 。

以下列出几种常用属性的情况:

类型代码        属性名        必遵/可选        过渡/非过渡

1        Origin        必遵        过渡

2        AS-Path        必遵        过渡

3        Next-hop        必遵        过渡

4        MED        可选        非过渡

5        Local-preference        可选        非过渡

8        Community        可选        过渡

每个属性都有特定的含义并可以灵活的运用,使得BGP的功能十分强大。

BGP属性可以扩展到256种。


常见BGP路由属性

Origin  起点属性:定义路径信息的来源,标记一条路由是怎样成为BGP路由的。如IGP、EGP、Incomplete等。

As-Path  AS 路径属性:是路由经过的AS 的序列,即列出在到达所通告的网络之前所经过的AS 的清单。BGP发言者将自己的AS前置到接收到的AS 路径的头部,它可以防止路由循环,并用于路由的过滤和选择。

Next hop 下一跳属性:包含到达更新消息所列网络的下一跳边界路由器的IP地址。BGP的下一跳与IGP有所不同,它可以是通告此路由的对等体的地址,如EBGP,这同IGP是相同的。而在其它情况下,BGP使用第三方的下一跳,如IBGP对从EBGP对等体获得的下一跳不加改变的在自治系统内传递;在多路访问媒体上,BGP以路由的实际来源为下一跳,即使它不是BGP对等体。

MED (Multi-Exit-Discriminators)属性: 当某个AS有多个入口时,可以用MED属性来帮助其外部的邻居路由器选择一个较好的入口路径。一条路由的MED值越小,其优先级越高。

Local-Preference 本地优先属性: 本地优先属性用于在自治系统内优选到达某一个目的地的路由。反映了BGP发言人对每个外部路由的偏好程度。本地优先属性值越大,路由的优选程度就越高。

Community 团体属性: 团体属性标识了一组具有相同特征的路由信息,与它所在的IP子网和自治系统无关。公认的团体属性值有:NO-EXPORT、NO-ADVERTISE、LOCAL-AS 和 INTERNET。


BGP路由选择过程

综合起来,本地BGP路由选择的过程为:

(1)如果此路由的下一跳不可达,忽略此路由;

(2)选择本地优先级较大的路由;

(3)选择本地路由器始发的路由(本地优先级相同);

(4)选择AS 路径较短的路由;

(5)依次选择起点类型为IGP,EGP,INCOMPLETE类型的路由;

(6)选择MED 较小的路由;

(7)选择RouterID 较小的路由。