BGP属性

一、属性分类

BGP属性是BGP进行路由决策和控制的重要信息。它可以分为如下两大类四小类:
一、公认属性

  • 公认必遵(Well-known mandatory )
  • 公认可选(Well-known di scretionary )

公认属性是所有运行BGP协议的系统都必须识别和支持的属性。
其中,公认必遵属性是BGP UPDATE消息中必须包含的属性。
公认可选则是BGP UPDATE消息中可以*选择是否包含的属性。

二、可选属性

  • 可选过渡(Optional transitive)
  • 可选非过渡(Optional non-transitive )

可选属性并不要求所有运行BGP协议的系统都识别。
如果属性是可选过渡的,那么,即使运行BGP的系统不能识别该属性,也要接受该属性并将其转发给它的对等体。
而如果属性是可选非过渡的,运行BGP的系统可以忽略包含该属性的消息并且不向它的对等体转发。

BGP属性

二、属性详述

1.起源(Origin)属性

条目的产生方式
该属性的修改可以在整个控制层面流量经过的任意接口修改;

0RIGIN标示路径信息的来源,是公认必遵属性。
ORIGIN可以是以下三种值:

  1. IGP: 表示网络层可达信息来源于AS内部
  2. EGP :表示网络层可达信息通过AS外部学习
  3. INCOMPLETE:表示网络层可达信息来源无法确定

一般的,具体的实现按如下方式决定一条路由的Origin属性

某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP (i)

■通过network命令注入BGP的路由

通过EGP(RFC904)学到的路由,则origin属性为EGP (e)
其他情形下,Origin属性都为Incomplete (?)

■通过import命令注入BGP的路由

Origin属性值默认情况下不被任何路由器修改

用dis BGP rout 可查看其属性
在路由选择的时候,ORIGIN 中,IGP 优于EGP,EGP 优于INCOMPLETE.

2、 AS路径(AS_ PATH)属性

优选经过AS数量较少路径;该属性的自动添加是在EBGP邻居关系间进行;

切记:as-path 属性又用于EBGP的水平分割,若人为添加的as号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号;

AS_ PATH 由一系列AS路径组成,是公认必遵属性。

AS-PATH采用AS_ SEQUENCE方式表示一一该路由经过的AS的有序集

当BGP发布者发布路由给IBGP 对等体时,BGP 不修改路由的AS_ PATH属性。当BGP发布者发布路由给EBGP对等体时,本地系统应该把自己的AS号作为序列的最后一个元素加在序列的最后面。

AS_PATH可以用来作为路由选路的一种度量。经过更少AS路径的路由更优先。

同时AS_ PATH也作为一种手段来避免环路 。如果BGP路由信息发布者从EBGP对等体收到一条路由,它的AS_ PATH 包含发布者自己的AS号,就说明这条路由曾经从本AS发出过,将其丢弃,同时不再进行转发。基于上述机制,AS_ PATH属性可以避免AS之间的路由环路的出现,AS内部的路由环路的避免则采用其他手段来实现。

3、 下一跳(NEXT_ HOP)属性
它定义了到达目的地下一跳的设备IP地址,是公认必遵属性。
NEXT_HOP中IP地址的填写遵循如下规则:
1)如果是发布给EBGP对等体,NEXT_HOP填写BGP发布者的IP地址
2)如果是发布给IBGP对等体,且路由来自AS外部,则NEXT_H0P保留原始的AS外部对等体的IP地址
BGP属性
4、本地优先级(Local-preference)属性

L0CAL_PREF用来通告路由的优先程度,是公认可选属性。

L0CAL_ PREF属性仅在IBGP对等体之间交换,不通告给其他AS。
当BGP的路由器通过不同的IBGP对等体得到目的地址相同 但下一跳不同的多条路由时,将优先选择LOCAL_ PREF 属性值较高的路由。
BGP属性
如图,RouterB和RouterC发给RouterD的关于8.0.0.0的路由携带不同的LOCAL_ _PREF 值,从而引导从AS 20到AS 10的流量将选择Router C作为出口。

5、ATOMIC_AGGREGATE

ATOMIC_ AGGREGATE是用来通告路由接收者,该路由是经过聚合的,是公认可选属性。

有时BGP发布者会收到两条重叠的路由,其中一条路由包含的地址是另–条路由的子集。一般情况下 BGP发布者会优选更精细的路由(前者),但是在对外发布时,如果它选择发布更粗略的那条路由(后者),这时需要附加,上ATOMIC-AGGREGATE属性,以知会对等体。它实际上是-种警告,因为发布更粗略的路由意味着更精细的路由信息在发布过程中丢失了。在进行路由聚合时,对于聚合的路由信息会添ATOMIC-AGGREGATE属性。

6、AGGREGATOR

AGGREGATOR是ATOMIC_AGGREGATE属性的补充,是可选过渡属性。

如前面所述,ATOMIC_ AGGREGATE是一种路由信息丢失的警告,AGGREGATOR属性补充了路由信息在哪里丢失一它包含了发起路由聚合的AS号码和形成聚合路由的BGP发布者的IP地址。在进行路由聚合时,当对于聚合的路由信息同添加ATOMIC-AGGREGATE属性的同时,会添加AGGREGATOR属性。

7、团体(COMMUNITY)属性

COMMUNITY是一组共享相同属性的目的地集合,目的就是将路由信息编组,通过组的标识决定路由传递的策略。是可选过渡属性。

团体属性用来简化路由策略的应用和降低维护管理的难度,没有物理上的边界,与其所在的AS无关。

公认的团体属性有:
➢INTERNET:缺省情况下,所有的路由都属于INTERNET团体。具有此属性的路由可以被通告给所有的BGP对等体。
➢NO_ EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。.如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS。
➢NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体,即不再传递该路由。
➢no-export-subconfed 接收到的条目若存在该社团属性,将不传递给下一个小AS
若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致

8、MED 多出口的鉴别(MULTI_ EXIT_ DISC)属性

MULTI_ EXIT_ DISC被用来区分同一个邻接AS的多个接口,是一个可选非过渡属性,一般简写为MED.
MED只在EBGP发布的路由中产生,接收者可以向它的IBGP邻居转发,但不允许向它的EBGP对等体转发。假设一个AS和邻接AS有多个接口相连,通过发布不同的MED给对端,就可以控制进入网络的流量从MED值最小的那个接口进来。通常情况下,BGP 只比较来自同一个AS的路由的MED属性值。

BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)
BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;管理员可以在控制层面传递路由的过程中,手工修改MDE;最常用于干涉ebgp选路;常常用于AS1干涉AS2对AS1的选路;

由于实际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判断选路结果,
可以通过扩展ping来解决[r1]ping -r -a 1.1.1.1 3.3.3.3
BGP属性
如图,RouterB和RouterC发给RouterA的关于9.0.0.0的路由携带不同的MED属性,从而引导从AS10到AS20的目的地址为9.0.0.0网段的流量将选择Router B作为入口。

9、ORIGINATOR_ ID
ORIGINATOR_ ID用于标识路由反射器,是可选非过渡属性。
为了防止引入路由反射器之后出现环路,增加ORIGINATOR_ ID这个属性来标识,反射器在发布路由时加入ORIGINATOR_ID,当反射器收到的路由信息中的ORIGINATOR_ ID就是自己的ROUTER_ ID时,就可以发现路由环路的出现,将该路由丢弃,不再转发。

10、CLUSTER_ ID
CLUSTER_ ID用于标识路由反射器组,是可选非过渡属性。
CLUSTER_ ID属性也是用来防止环路,在路由经过路由反射器时路由反射器会将自己的CLUSTER_ID添加到路由携带的CLUSTER_LIST中,当路由反射器发现接收的路由的CLUSTER_ LIST中包含有自己的CLUSTER_ ID,则将该路由丢弃,不再转发。