深入理解BGP的几个路由特性(试读连载六)

简介:

以下内容摘笔者编著,现在接受最优惠的7折预订(并送特制的2011年台历),即将于11月8号首发上市的《路由器配置与管理完全手册——H3C篇》。本书完整目录参见:http://winda.blog.51cto.com/55153/353767

其姊妹篇——《路由器配置与管理完全手册——Cisco篇》的完整目录参见:http://winda.blog.51cto.com/55153/333804

10.1.2 BGP的几种主要路由属性

       BGP路由属性是BGP 路由的核心概念。它是一组参数,在路由更新消息中一同被发给连接对等体/对等体组。这些参数记录了BGP路由信息,用于选择和过滤路由。它们可以被看作是选择路由的度量(metric)。

      BGP路由属性可以分成四类:公认强制(Well-known mandatory attributes)、公认自由选择(Well-known discretionary attributes)、可选传递(Optional transitive attributes)和可选非传递(Optional nontransitive attributes)。

       公认的(Well-known)属性对于所有的BGP路由器来说都是可辨别的;每个路由更新消息中都必须包含强制(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(MED,本地路由器使用,区别到其他AS的多个出口);5,LOCAL-PREF(在本地AS内传播,标明各路径的优先级);6,ATOMIC_AGGREGATE;7,AGGREGATOR。在RFC1997中还定义了8,COMMUNITY。

      在上面这些属性中,1、2号属性是公认强制;3、5、6是公认可选;7、8是可选过渡(“过渡”的意思就是可以传播到其他AS中);4是可选非过渡。这些属性在路由的选择中,考虑的优先级是不同的。仅就这8个属性来说,其中优先级最高的是LOCAL-PREF,接下来是ORIGIN和AS_PATH。

      在配置BGP路由时,首先需要了解BGP路由的一些主要属性,否则很难正确理解本章后面所要介绍的BGP路由配置步骤,因为尽管有些属性从名字上看起来它与其他路由属性一样,但内涵有着比较明显的区别。

1. ORIGIN(源)属性

      这是公认强制的BGP属性。Origin属性指明了当前路由是从哪里得到的,用来标记一条路由的路由信息源。这在显示BGP路由表时每条BGP路由信息中都会有体现的。它有以下三种类型:

clip_image001 IGP(i):是BGP用Network命令通告的IGP路由表中存在的路由,优先级最高,说明路由产生于本AS内。

clip_image001[1] EGP(e):是从eBGP邻居那里学习得到的路由,优先级次之。

clip_image001[2] incomplete(?):优先级最低,它并不是说明路由不可达,而是表示路由的来源无法确定。例如,引入的其它路由协议的路由信息。

2. AS_PATH(AS路径)属性

       这也是公认强制的BGP属性。AS_PATH属性是一定顺序记录了某条路由从本地到达目的地址,一路所经过的所有AS号,这就是“AS路径”的含义。当BGP将一条路由通告到其他AS时,便会把本地AS号添加在AS_PATH列表的最前面。收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。通过观察AS_PATH,BGP Speaker可以找出路由是从哪个自治系统产生的,以及这个路由传递经过了多少AS。最右边的AS号就是路由的产生者,最左边的AS号就是刚刚声明了路由的那个相邻的AS。处于AS_PATH中间的AS号是路由传递经过的AS。这样的AS_PATH序列被称为AS_SEQUENCE,AS_PATH序列就处在它的维护的序列中。但通常情况下,BGP不会接受AS_PATH中已包含本地AS号的路由,从而避免了形成路由环路的可能。也就是只有在eBGP Peer之间通告路由时,才会在AS_PATH列表中添加AS号,同一个AS中的通告不会添加AS号的。如果某台BGP路由器从其外部Peer收到某条路由的AS_PATH列表中包含了自己的AS号,则该路由就知道出现了环路,因而丢弃该路由。

       如图10-1中有两条从AS 50区域中路由器到达目的网络8.0.0.0的路由,根据箭头所示的路由通告方向(通告方向是路由路径的反方向)可以看出,在AS_PATH列表中依次添加了所经过的AS号,并且是最近的处于最前面,其他AS号按顺序依次排列,中间以逗号分隔。如最后D=8.0.0.0(30,20,10)和D=8.0.0.0(40,10)。

clip_image003

图10-1 AS_PATH属性示例

       同时,AS_PATH属性也可用于路由的选择和过滤。在其他因素相同的情况下,BGP会优先选择路径较短的路由。比如在前面的图10-1中,AS 50中的BGP路由器会优先选择经过AS 40的路径作为到目的地址8.0.0.0的最优路由。

       在某些应用中,可以使用路由策略来人为地增加AS路径的长度,以便更为灵活地控制BGP路由路径的选择。通过配置AS路径过滤列表,还可以针对AS_PATH属性中所包含的AS号来对路由进行过滤。这些具体将在本章后面介绍。

3. NEXT_HOP(下一跳)属性

       这也是公认强制的BGP属性。BGP是一个AS到AS的路由协议,并不是一个路由器到路由器的路由协议。在BGP中,下一跳的意思并不是指下一下路由器,而是指到达另一个AS的IP地址。所以BGP路由的NEXT_HOP属性中所描述的IP地址不总是邻居路由器的IP地址。具体规则如下。

clip_image001[3] 如果发起路由的路由器与接收通告的路由器位于不同AS(它们之间是eBGP关系),那么下一跳是通告路由的对应路由器接口。如图10-2中的AS 100路由器产生到达8.0.0.0网络的路由通告给AS 200路由器时,下一跳地址就是AS 100路由器与AS 2000路由器连接时所用的接口IP地址1.1.1.1/24。

clip_image001[4] 如果BGP Speaker把接收到的路由(并不是由他发起的)发送给eBGP对等体时(它们之间也是eBGP关系),将把该路由信息的下一跳属性设置为转发路由的对应路由器接口。如图10-2中的AS 200向AS 300中左边那台路由器转发从AS 100得到的路由通告时,其路由的下一跳地址为AS 200与AS 300中左边那台路由器相连时所用的接口的IP地址1.1.2.1/24。

clip_image005

图10-2 BGP下一跳属性示例

clip_image001[5] BGP Speaker把从eBGP邻居得到的路由转发给iBGP邻居时(它们之间是iBGP关系,但路由是来自其他AS),不改变该路由信息的下一跳属性,也就是路由中原来的下一跳是什么地址就是什么地址。如图10-2中AS 300左边那台路由器转发从AS 200获得的路由通告到相同区域中的右边那台路由器时,其下一跳没有改变,仍为AS 200与AS 300中左边那台路由器相连时所用的接口的IP地址1.1.2.1/24。如果配置了负载均衡,路由被发给iBGP邻居时则会修改下一跳属性。

clip_image001[6] 如果通告路由的路由器与接收通告的路由器属于同一个AS(它们之间是iBGP关系),且所通告的路由是本AS中的,则下一跳为邻居路由器的接口IP地址。只有这种情况才与RIP、OSPF路由的下一跳是一样的。

4. LOCAL_PREF(本地优先)属性

      这是公认自选的BGP属性。LOCAL_PREF属性用于判断流量离开AS时(后面将要介绍的MED属性是进入AS时)的最优路由。LOCAL_PREF属性仅在iBGP对等体之间交换和比较,不通告给其他AS。它表明BGP路由器的优先级。

       当BGP的路由器通过不同的iBGP对等体得到目的地址相同,但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。如图10-3所示,在Router D上学习到了有两条通过同一AS中的路由器路径可以到达Router A,这时就可以使用本地优先级进行选路了,经过比较最终确定从AS 20到AS 10的流量将选择Router C作为出口,因为Router C中的LOCAL_PREF属性值为200,高于Router B中的LOCAL_PREF属性值100。

clip_image007

图10-3 BGP LOCAL_PREF属性示例

5. MED(MULTI_EXIT_DISC)属性

       MED(Multi-Exit Discriminators,多出口区分)属性是一个可选非过渡(也就是不能传播到其他AS中)属性。MED属性相当于IGP使用的度量值(metrics),用于判断流量进入AS时的最优路由。MED属性仅在相邻两个AS之间交换,收到此属性的AS一方不会再将其通告给任何其他第三方AS。当一个BGP路由器通过不同的eBGP对等体得到目的地址相同,但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最优路由。如图10-4所示,从AS 10到AS 20的流量将选择Router B作为入口,因为Router B中的MED值为0,小于Router C中的MED值100。

clip_image009

图10-4 BGP MED属性示例

       一般情况下,路由器只比较来自同一AS中多个eBGP邻居路径(也就是这些路径来自同一个eBGP AS)的MED属性,不比较来自不同AS的MED值。若非得要比较的话,则通过配置compare-different-as-med命令,可以强制BGP比较来自不同AS的路由的MED属性值。

6. COMMUNITY(团体)属性

       Community属性是一个可选过渡BGP属性,是一组有相同特征的目的地址的集合,用来简化路由策略的应用和降低维护管理的难度。团体中具体集合的路由数量没有物理上的边界,与其所在的AS无关。公认的团体属性有:

clip_image001[7] INTERNET:默认情况下,所有的路由都属于INTERNET团体。具有此属性的路由可以被通告给所有的BGP对等体。

clip_image001[8] NO_EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS。

clip_image001[9] NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体。

NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。

本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/395323如需转载请自行联系原作者


茶乡浪子

相关文章
|
6月前
|
负载均衡 网络协议 网络架构
|
6月前
|
网络协议 安全 数据中心
【专栏】OSPF路由汇总技术,用于减少路由表大小和提高协议可伸缩性
【4月更文挑战第28天】本文探讨了OSPF路由汇总技术,用于减少路由表大小和提高协议可伸缩性。汇总将连续网络合并为超网,以降低网络复杂性、提升路由器性能和稳定性。文章分为概念与优势、实施方法和最佳实践三部分,强调了路由表减小、网络流量降低和管理简化等优点。实施涉及选择汇总边界、配置路由及验证调整。最佳实践包括考虑网络扩展、保持拓扑连续性和优化性能安全。OSPF路由汇总是网络高效管理的关键。
181 0
|
6月前
|
网络协议 算法 安全
【专栏】硬核干货:BGP(边界网关协议)是自治系统间交换路由信息的关键协议,用于大型网络的高效路由选择
【4月更文挑战第28天】BGP(边界网关协议)是自治系统间交换路由信息的关键协议,用于大型网络的高效路由选择。它基于路径向量算法,通过TCP连接建立邻居关系,交换并选择最优路径。BGP支持丰富的路由属性和多种消息类型,允许灵活的路由控制。配置与应用包括启用BGP、配置邻居、路由宣告、过滤及社区属性使用。虽然BGP具备强大路由控制和可扩展性,但其配置复杂,存在安全挑战。理解BGP对于网络管理和优化至关重要。
271 0
|
6月前
|
存储 网络协议 算法
|
6月前
|
网络协议 网络安全 网络架构
网络路由之静态路由学习资料整理
静态路由是由网络管理员手动配置的固定路由表项,不受动态路由协议的影响,用于指定网络目标及其下一跳,提供网络控制和管理的手动路由选择。
115 0
|
安全 网络安全 数据中心
网络进阶学习:单臂路由(灵魂五问)
网络进阶学习:单臂路由(灵魂五问)
540 0
|
网络协议 网络虚拟化 网络架构
|
网络协议 算法 网络架构
动态路由四大天王:OSPF、RIP、IS-IS、BGP,收藏这篇文章足矣!
动态路由四大天王:OSPF、RIP、IS-IS、BGP,收藏这篇文章足矣!
263 0
|
算法 网络协议 网络架构
二十八、路由算法和路由协议
二十八、路由算法和路由协议
二十八、路由算法和路由协议