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 较小的路由。