优秀的编程知识分享平台

网站首页 > 技术文章 正文

BGP路径属性:Origin和AS_PATH(bgp路由协议中origin属性)

nanyue 2024-09-09 04:56:16 技术文章 11 ℃

BGP路径属性:Origin和AS_PATH

Origin属性

某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP,如通过network命令注入BGP的路由;通过EGP(RFC904)学到的路由,则origin属性为EGP;其他情形下如:import-route引入的路由,Origin属性都为 Incomplete,如通过import命令注入BGP的路由。注意:Origin属性值默认情况下不被任何路由器修改。

(1)IGP:在BGP路由表中(用display bgp routing-table查看)将会看到“i”的标识。通过network命令宣告的路由,起点属性为IGP, network命令所宣告的网络来自于IGP协议(包括静态路由),这些路由是有选择性的通过network命令转换为BGP路由,所以称为“半动态”。

(2)EGP:在BGP路由表中将会看到“E”的标识,通过EGP转化(import)的BGP路由将具备此属性,这个属性我们在现实网络中将很难遇到。

(3)Incomplete:在BGP路由表中将会有一个“?”标识,具备这种属性的路由是通过一些别的方式学到的,属于未知的不明确的状态。一般来说,是通过将IGP或者静态路由引入(import)以后产生的。

扩展内容:因为无条件的把IGP信息引入到BGP可能会造成副作用——不要的或者错误的信息会泄露(leak)进BGP中,比如IGP中可能会包含很多仅仅用于AS内部的专用地址或者未经注册的地址。除此以外,这样做还有可能造成BGP的动荡(因为BGP的路由依赖于IGP路由),对此问题BGP提供了一个解决方案,路由衰减(ROUTE DAMPENING)。

起点属性三个值的优先顺序为IGP>EGP>INCOMPLETE,这三个值对于BGP的选路起着控制作用。

AS_PATH属性

AS_PATH指BGP路由在传输的路径中所经历的AS的列表,是BGP中一个非常重要的公认必遵属性。 BGP不会接受AS_PATH属性中包含本AS Number的路由,从而避免了产生环路的可能。为此,BGP在向EBGP对等体通告一条路由时,AS_PATH属性列表以相反的顺序列出了一条前缀先后经过的AS,每经过的一个AS,该AS号会被放入AS_PATH列表的最前面(开始处)。如果在路由更新消息中发现自己所在的AS号已经被包含在AS_PATH属性中,则表明该路由之前曾经通过该AS或者是源自于该AS,为避免路由环路,将此路由信息丢弃。

另外,AS_PATH属性在路径选择上也是一个很重要的衡量参数。当路由器中存在两条或者两条以上的到同一目的地的路由时,这些路由可以通过此属性比较相互之间的优劣,AS_PATH越短的路径越优先。注意:在大多数的实际网络中,多条路径的优劣往往是由AS_PATH来决定。

聚合路由中怎么办?

在进行BGP的路由聚合时,缺省情况下形成聚合路由的具体路由其独特性将会丢失。这样一来如果某一个AS将来自于不同的其他AS的具体路由聚合。聚合路由的AS_PATH中将不会包含具体路由的AS号,这样此聚合路由就有可能会传回到其具体路由所在的AS中,从而形成路由环路。对此使用as-set 参数后聚合路由的 AS 信息中包含被聚合的每条具体路由的AS 信息,并随着被聚合路由的更新而变化。

Hub&Spoke组网方式下,我们需要接受AS号重复的BGP路由,怎么办?


如图所示,RTA-RTC、RTB-RTC建立EBGP邻居关系,当RTB将路由信息通告给RTC时带上本AS号(213)。然后RTA再从RTC接收路由时,路由的AS_PATH属性中就会带有本AS号(213),所以RTA不会接受这条路由信息。此时,可以用下面的命令来强制接受此类路由:

peer { group-name |ipv4-address } allow-as-loop [ number ]

参数:group-name:对等体组的名称;ipv4-address:对等体的IPv4地址;number:本地AS号的的重复次数,范围为1~10。缺省值为1。

选路时不想比较AS_PATH属性如何做?

bestrouteas-path-ignore用来配置BGP在选择最优路由时忽略AS路径属性。undo bestroute as-path-ignore用来配置BGP将AS路径属性作为选择最优路由的一个条件。

网络迁移更换AS号

peer fake-as命令用来为本端对等体指定一个伪AS号。缺省情况下,对等体使用本端实际的AS号。常规情况下,一个路由器只支持一个BGP进程,即只支持一个AS号。但是在某些特殊情况下,例如网络迁移更换AS号的时候来为了保证网络切换的顺利进行,可以通过配置peer fake-as命令,为指定对等体设置一个伪AS号。如果本端使用真实AS号与对端建立EBGP邻居,那么发送给邻居的路由的AS-Path列表就携带真实AS号。如果本端使用伪AS号与对端建立EBGP邻居,那么发送给邻居的路由的AS-Path列表就只携带伪AS号。

配置发送BGP更新报文时仅携带公有AS号

peer public-as-only命令用来配置发送BGP更新报文时不携带私有自治系统号,仅携带公有AS号缺省情况下,发送BGP更新报文时,可以携带私有自治系统号。

以下两种情况,配置该命令后,BGP不会删除私有AS号:

路由的AS_Path属性中含有对端的AS号时。这种情况下删除私有AS号,可能会造成路由环路。

As_Path列表中同时含有公有AS号和私有AS号。该列表表明路由已经经过了公网,如果删除私有AS号,可能会造成转发错误。

Tags:

最近发表
标签列表