Weight属性:cisco私有的BGP属性参数,它只适用于一台路由器中的路由,也就是不会传递给任何其他的路由器。他的取值范围为<0-65535>,这个数越大优先级越高,默认从邻居学到的路由的weight都为0,从本地重分布进BGP路由表中的值为32768。Weight属性不能包括在BGP的update中,也不能以任何形式传递给其他运行BGP的邻居,就是说一个路由器上权值的分配不会影响其他路由器上的路由选项。
Neighbor X.X.X.X weight命令可以更改从该邻居收到的路由的weight。也可以用route-map中的set weight来设置weight,但是weigh不能用在路由更新的出方向。我们还可以在neighbor X.X.X.X filter-list ? Weight设置weight从而来匹配ip as-path access-list列表中的AS为他们设置weigh。如果三种都配置。那么route-map优于filter-list优于neighbot weight!!
Origin属性和next-hop属性在前面已经做了解释,在此不再赘述只说一下他们的修改方法。
Origin属性:route-map中set origin[egp/igp/incomplete]修改origin属性
Next-hop属性:neighbor X.X.X.X [next-hop-self/next-hop-unchanged]修改next-hop属性,也可以route-map中set ip next-hop[X.X.X.X/dynamic/in-vrf/peer-address/recursive/verify-availability]中进行更详细的修改。
第三方下一跳现象:当前缀通过EBGP通告出去后,next-hop会被自动的设置为那个正在发送该前缀的EBGP对等体的IP地址。有一种情况是例外的,就是当多个对等体同在一个共享的多路访问网络中,那么宣告者会把同一个网段上原来的宣告者设置为下一跳,而不是他自身。 这个特性可以被neighbor next-hop-self命令修改掉!
As-path属性:它以相反的顺序列出了一条前缀先后所经过的AS,最后一个AS放置在该列表的开始处。AS-path主要目的是为AS域间路由选择提供环路防止机制。因为AS-path列表的最短优先原则,因此在列表中前置相同的AS号影响入站路由选择是常用的方法,这种方法叫AS-path的通路附加。可以在route-map中in方向设置set as-path prepend 100 101 102在AS-path列表的最前面增加100 101 102三个AS号码。out方向在最后面加。Set as-path prepend last-as 3在AS-path列表的最前面增加3个最后的AS号码。只有在EBGP对等体之间公布路由的时候AS号才会被附加到AS-path中。
CISCO-IOS软件支持4种as-path:AS-SET、AS-SEQUENCE、AS-CONFED-SET、AS-CONFED-SEQUENCE!set和Sequence不同处是set中的AS-path是无序的,而sequence中的AS-path列表是有序的。当执行路由汇总时,会丢失AS-Path的细节信息,因为聚合点后面的AS号不会加在AS-path中,这样会出现路由选择环路。所以有了AS-set列表,当一个运行BGP的路由器根据从其他AS学习到的NLRI生成一个聚合路由时,在聚合点后面的路由所经过的AS会形成一个AS-SET。这个as-set在show ip bgp 时用{}括起来,{}外面的就是as-sequence.如:3 {1,2} i。as-set默认是关闭的我们可以在聚合命令下Aggregate-address 10.10.0.0 255.255.0.0 summary-only as-Set开启as-set功能。因为as-set会携带更多信息,所以只要开启as-set就不会再产生atomic-aggregate。
Local-preference属性:本地优先级,它只用在IBGP对等体之间的update消息中,以设置离开本AS的最优出口点,不会传给其他的AS(典型的,在入境EBGP更新中被设置),并且仅仅被同一个AS内的路径选择处理所使用。默认为100(可以被bgp default local-preference修改),越高越优先。即使在EBGP邻居使用route-map 配置了Set local-preference<0-4294967295>在出方向也是没用的,因为发给EBGP对等体的update根本不会携带这个属性,所以这样配置没有意义。这个属性发给IBGP对等体时会被自动继承下来,传递到所有路由器都知道这个路由前缀的本地优先级属性。
Multi-Exit-Disc(MED)属性:它被典型的用在AS间的链路上,以区分到达相同的邻居AS的多个出口点。它在EBGP和IBGP的update消息中携带但不可以在接收AS范围之外的地方传递MED属性,也就是说MED只会在相邻的AS之间影响业务量。它允许一个AS将它的首选入口点通过此属性通告给另外一个AS。可以在route-map中的set metric<0-4294967295>中设置,还可以在route-map中set metric +/-<metric>格外增加或者减少这个值。具有最低的metric值的路由优先。我们可以把它看为一个度量,越小越优先。如果到同一个目的地的两条路由来自不同的AS,此时BGP路由选路时不进行比较MED,MED只对单一的AS有意义(我们可以强制让它们比较bgp always-compare-med)。
在边界路由器本地被注入到BGP中的路由在被通告给EBGP对等体时携带MED值。他们的规则如下:
如果通过network或redistribute命令注入到BGP中的路由是来自于IGP的,那么BGP的MED从IGP中导出。
如果通过network或redistribute命令注入到BGP中的路由是来自于直连的,那么BGP的MED被设置为0。
如果是通过aggregate-address命令注入路由,那么本BGP表的MED不被设置。邻居收到后写成0。
如果路由从i/eBGP对等体学习到,那么它的MED传给EBGP对等体是删除的。我们可以强制边界路由器通告MED给EBGP对等体邻居。Route-map中设置set metric-type internal这样就会将本地IGP路由表的metric增加到条目中,如果本地IGP没有那么就为0。
Default-metric这条命令可以更改重分布(必须是redistribute命令)进BGP路由表的IGP条目的默认MED为多少。(缺省情况下redistribute会把IGP的开销放到BGP的MED属性中)
ATOMIC-AGGREGATE属性和AGGREGATOR属性:一个运行BGP的路由器能够向另外一个运行BGP的路由器传送重叠的路由。聚合路由是产生重叠路由的最主要方式。
重叠路由:可以到达同一个目的地但是不完全相同的路由。(常见的就是一条路由包含另一条路由)
当执行路由聚合时,会丢失路由信息(as-path、next-hop等),路由会变得不准确。聚合的发起者只会把自己的AS放入AS-path中,聚合前的AS信息都会丢失。
Atomic-aggregate属性:它可以警告下游路由器出现了路径的丢失。聚合时总是会把这个属性放进聚合后路由的update中。任何下游路由器再公布给其他路由器时,会传递这条路由的这个属性。
Aggregator属性:聚合时也会自动出现该属性。它包括发动聚合路由器的AS号码还有它的router-id,从而提供了执行聚合的地点信息。Atomic-aggregate属性指示出现了路径信息的丢失而aggregator属性指示聚合路由出现在哪里。
Community属性:它被一组共享相同特性的前缀所定义,多个社团可以应用到一条前缀上。Community属性有4个字节,RFC1997规定前两个字节代表AS号码,后两个字节是管理上定义的标识符。格式为AA:NN。cisco缺省时NN:AA格式,但是可用命令ip bgp-community new-format将这个缺省的NN:AA改为RFC1997的AA:NN。
团体属性有以下两种类型:well-known(公共)和Private(私有)。
公共社团属性:当收到这些带有团体属性的前缀时,对等体会自动根据预定义(操作已经定义好了)的社团属性意义来采取操作,不需要额外的配置。公共团体属性的保留范围是(0xFFFF0000-0xFFFFFFFF)。下面是4种公共社团属性
Internet:所有属于这个社团属性的路由都有一个缺省值,可以*地公布属于这个团体的路由。换句话说这个社团的前缀通告没有任何限制。在cisco的IOS软件中,每一条前缀都没有团体属性,但配置上这个属性并不会有什么变化,也是可以*传递。它的值为0。
No-export:有这个属性的前缀不会被通告给EBGP对等体,但是可以发送给联邦的EBGP对等体,也就是不能在联邦范围以外公布。这个团体的值为0xFFFFFF01。
Local-AS:有这个属性的路由条目不会被通告到本地AS之外。在联邦情况下,只有在同一个子AS中的对等体才会允许接受这些前缀。它的值为0xFFFFFF03在RFC1997中这个团体也叫做no-export-subconfed。
No-advertise:接受到带有值的路由不能公布给任何对等体,包括IBGP对等体和EBGP对等体。它的值为0xFFFFFF02。
私有社团属性:有网络管理员自己定义的社团属性,它的主要目的是为前缀附加管理标记,以便制定合适的策略。
社团属性默认并不会在对等体之间传递,传递社团属性需要命令neighbor send-community
Originator-id属性和cluster-list属性:他们在路由反射器中使用用来防止路由选择环路。
Originator-id:是本地AS中路由发起者的路由器ID。如果路由发起者在接收到路由的originator-id中发现了自己的RID,就知道产生了环路,于是忽略该路由条目,它提供在AS内的防环作用,它由第一个RR创建,并且不被后续的RR修改。它只应在IBGP对等体那里接收到,在RR上originator-id用来替代路由选择过程中的router-ID。它应该是这些路由器的router-id:在本地AS始发路由的BGP宣告者的router-id;如果是从EBGP学到的就是最初学到那个条目的路由器(本AS内边界路由器)的router-id(它一定是本AS内路由器的router-id)。
Cluster-list:是路由经过的路由反射器的簇ID(默认RR的router-ID)的一个列表,如果路由反射器接收到的路由的cluster-List中发现了自己的本地簇ID,就知道产生了环路,于是忽略该路由条目,RR从而能够分别出路由选择信息是否又环回到同一个簇。可以配置bgp cluster-id。cluter-id默认为RR自己的router-id所以默认情况下所有的RR都不在同一个簇。
MP_Reach_NLRI属性、MP_Unreach_NLRI属性和Extended_Communities属性将在MPLS/VPN体系结构中详细讲述。