Chinaunix首页 | 论坛 | 博客
  • 博客访问: 306030
  • 博文数量: 239
  • 博客积分: 481
  • 博客等级: 下士
  • 技术积分: 1170
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-15 17:28
文章分类

全部博文(239)

文章存档

2014年(13)

2013年(6)

2012年(122)

2011年(98)

分类:

2012-03-09 09:50:51

原文地址:BGP 路由选择 作者:wfeng

选择

BGP的消息报头由三个部分组成:标记、长度和类型。标记段占16个字节,用于安全检测和同步检测;长度段占2个字节,标明整个BGP消息的长度;类型段占一个字节,标明消息的类型。报头的后面可以不接数据部分,如Keepalive消息。

  BGP消息有四种类型:OPEN,UPDATE,NOTIFICATION和KEEPALIVE,分别用于建立BGP,更新路由信息,差错控制和检测可到达性。

  OPEN消息是在建立TCP连接后,向对方发出的第一条消息,它包括版本号、各自所在 AS的号码(AS Number)、BGP标识符(BGP Identifier)、协仪参数、会话保持时间(Hold timer)以及可选参数、可选参数长度。其中,BGP标识符用来标识本地路由器,在连接的所有路由器中应该是唯一的。这个标识符一般都使用接口上的最大 的IP地址(常常使用loopback接口来防止地址失效)。而会话保持时间,是指在收到相继的Keepalive或者Update信号之间的最大间隔时 间。如果超过这个时间路由器仍然没有收到信号,就会认为对应的连接中断了。如果把这个保持时间的值设为0,那么表示认为连接永远存在。UPDATE消息由 不可到达路由(Withdrawn Route)、路由属性(Route Attributes)和网络层可到达性(Network Layer Reachability Information—NLRI)组成。

  BGP路由属性是BGP 路由的核心概念。它是一组参数,在UPDATE消息中被发给连接对等体。这些参数记录了BGP路由信息,用于选择和过滤路由。它可以被看作选择路由的度量 尺度(metric)。路由属性被分为四类:公认强制(Well-known mandatory attributes)、公认自由选择(Well-known discretionary attributes)、可选传递(Optional transitive attributes)和可选非传递(Optional nontransitive attributes)。公认的(Well-known)属性对于所有的BGP路由器来说都是可辨别的;每个UPDATE消息中都必须包含强制 (mandatory)属性,而自由选择的(discretionary)属性则是可选的,可包括也可不包括。对于可选的(Optional)属性,不是 所有的BGP工具都支持它。当BGP不支持这个属性时,如果这个属性是过渡性的(transitive),则会被接受并传给其他的BGP对等体;如果这个 属性是非传递性的(nontransitive),则被忽略,不传给其他对等体。

在技术文档RFC1771定义了1~7号的BGP路由属性,依次是:

1,ORIGIN(产生该路由信息的AS);

2,AS_PATH(包已通过的AS集或序列);

3,NEXT_HOP(要到达该目的下一跳的IP地址,IBGP连接不会改变从EBGP发来的NEXT_HOP);

4,MULTI_EXIT_DISC(本地路由器使用,区别到其他AS的多个出口);

5,LOCAL-PREF(在本地AS内传播,标明各路径的优先级);

6,ATOMIC_AGGREGATE;

7,AGGREGATOR。RFC1997还定义了

8,COMMUNITY。其中,1、2号属性是公认强制;3、5、6是公认可选;7、8是可选过渡;4是可选非过渡。这些属性在路由的选择中,考虑的优先级是不同的,仅就这8个属性来说,其中优先级最高的是LOCAL-PREF,接下来是ORIGIN和AS_PATH。

  BGP所使用到的路由属性并不仅仅是这8个,其他的具体内容可以参阅RFC文档(RFC1771、1996、1997、1966、1863、2283)。

  网络层可到达性(NLRI)包含了<长度,前缀>这样的二维数组,使用CIDR(Classless Interdomain Routing)技术,来聚合路由,以减缓BGP表的增长速度。

  BGP工作流程如下:首先,在要建立BGP会话的路由器之间建立TCP会话连接,然后通 过交换OPEN信息来确定连接参数,如运行版本等。建立对等体连接关系后,最开始的路由信息交换将包括所有的BGP路由,也就是交换BGP表中所有的条 目。初始化交换完成以后,只有当路由条目发生改变或者失效的时候,才会发出增量的触发性的路由更新。所谓增量,就是指并不交换整个BGP表,而只更新发生 变化的路由条目;而触发性,则是指只有在路由表发生变化时才更新路由信息,而并不发出周期性的路由更新。比起传统的全路由表的定期更新,这种增量触发的更 新大大节省了带宽。路由更新都是由UPDATE消息来完成。UPDATE包含了发送者可到达的目的列表和路由属性。当没有路由更新传送时,BGP会话用 KEEPALIVE消息来验证连接的可用性。由于KEEPALIVE包很小,这也可以大量节省带宽。在协商发生错误时,BGP会向双方发送 NOTIFICATION消息来通知错误


文章转载至

阅读(331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~