CCIE思科教育培训 CCIE培训

BGP(四) BGP的路径属性

实验室发伙食费了…怒赞。

上篇文章中我们介绍了四种BGP消息格式,其中以UPDATE消息最为重要,只是里面的Path Attribute字段基本上没有讲,这一篇博文将对此做详细说明。Path Attribute顾名思义是指路径属性的意思,UPDATE传递是路由信息,因此此时指的是此路由的路径参数。在BGP UPDATE 中,拥有同样的Path Attribute的路由才允许被包含在同一个UPDATE包中。

Path Attribute格式
在分析各个Path Attribute之前,我们有必要对此字段做格式说明(即接上篇博文的UDPATE之后继续说明)。Path Attribute是一个可变字段,由Total Path Attribute Length指定长度,以三元组形式储存。

其中Attribute Type长2个字节,又分为两部分,各占一个字节。

Attribute Flag
Attribute Flag的各个比特位说明如下:


Bit 0 :
0表示well-known,1表示optional;标识了此路径属性是否可选(optional意味着允许BGP不用理解该属性).

Bit 1 :
0表示non-transitive,1表示transitive;标识了此路径属性是否可传递(non-transitive意味着BGP Speaker不一定会把该属性传递其他对等体).

Bit 2 :
0表示complete,1表示partial;标识了此路径属性是否只是局部的.

Bit 3 :
0表示Attribute Length占了1字节,1表示占了2个字节;标识了路径属性长度是否可扩展(即占用几个字节).

Bit 4-7 :
未使用

Attribute Code
Attribute Code对应各个Path Attribute,下面罗列对应关系,之后再对每个属性做解释:

Code 1 : ORIGIN
Code 2 : AS_PATH
Code 3 : NEXT_HOP
Code 4 : MULTI_EXIT_DISC
Code 5 : LOCAL_PREF
Code 6 : ATOMATIC_AGGREGATE
Code 7 : AGGREGATOR

ORIGIN
ORIGIN参数说明该路由是怎么产生的,有三种原因,按优先级排列分别为IGP,EGP,IMCOMPLETE。其中最后一种表示来源不明。此参数是由产生该路由的BGP Speaker指定,属于well-known mandatory,即要求必须被支持且不可或缺。

AS_PATH
AS_PATH标识了从本地到目的路由所经过的AS,由一系列AS Segments(包括Set,Sequence两种)组成,属于well-known mandatory。AS_PATH修改分为两种情况:

1.由BGP Speaker自己产生的路由:
若准备向Internal Peer发,即往同一个AS内的BGP Speaker发布,显然此AS_PATH为空.
若准备向External Peer发,则把本身的AS Number包装成AS_SEQUENCE放在AS_PATH第一个Segment.

2.BGP Speaker收到UPDATE,并转发到其他的BGP Speaker:
若准备向Internal Peer发,显然不需要修改AS_PATH.
若准备向External Peer发,且AS_PATH里的AS已经以AS_SEQUENCE形式储存,则把本身的AS放在该AS_SEQUENCE的第一个;若之前以AS_SET储存,则把本身的AS Number包装成AS_SEQUENCE,置于AS_PATH最前面.

有些时候需要在AS_PATH添加不止一个AS Number,这需要在本地进行配置.

NEXT_HOP
这应该很熟悉的参数吧,属于well-known mandatory~即到某个目的地的下一跳地址,但是和一般的不一样,这里的NEXT_HOP不一定是邻居路由器的IP地址,即可能不是直接相连的.NEXT_HOP的修改分为两种:

1.由BGP Speaker自己产生的路由,并发向自己的邻居.
则把NEXT_HOP改成自己的IP地址(即和对端对应的那个IP地址)。

2.BGP Speaker收到并转发向其他BGP Speaker:
若准备发向Internal Peer,不改变该NEXT_HOP;若准备发向External Peer则改成自己和对端对应的IP地址.

MULTI_EXIT_DISC
当某个AS和外部某个AS有多条路由时,MULTI_EXIT_DISC用来区分每条路由,以让本地选择哪条路由为最优。属于optional non-transitive, 即BGP Speaker可以支持也可以不支持该属性,而且不必向邻居转发该属性。

LOCAL_PREF
和MULTI_EXIT_DISC类似,不过是用来区分AS内部的路由的.

ATOMIC_AGGREGATE
当BGP Speaker对路由进行一定的聚合之后,向邻居公布自己的路由时需要加上该属性。

AGGREGATOR
BGP Speaker在做路由聚合时,需要加上自己的信息,如AS Number和自己的IP地址。

最后
理应接下来博主要分析一下BGP工作的有限自动机(但是我觉得没有配图很难讲明白啊…), BGP的错误处理(鄙人一点都不关心这个)的更新路由处理(我觉得这个挺重要,值得讲讲), 以及路由决策,路由聚合等。

但是下周四要毕设开题了,鄙人就先准备自己的工作了。BGP的学习先到这里为止,也许以后会继续写五六七,也许就这样了…其实我觉得讲的也挺清楚了吧….



出处:http://www.ccpt.cc/path_attribute_of_bgp/

Tags:

发布: admin 分类: CCIE思科 评论: 0 浏览: 206
留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。