BGP community属性
- 格式:docx
- 大小:296.21 KB
- 文档页数:9
BGP属性及选路原则BGP公认强制属性:1.AS路径(AS-path,编码为2),2,下⼀跳(next-hop,编码为3),3.源头(origin,编码 1)公认⾃由决定的属性:1.本地优先级(local preference 5)2.原⼦聚合(atomic aggregate 6)可选传递属性:聚合体(aggregator 7)共同体(community 8,cisco定义)可选⾮传递属性:1多出⼝鉴别器(multi-exit-discriminator MED,编码为4)AS路径属性:确保⽆环路环境,仅当路由器将路由通告给EBGP邻居是才修改路径属性加上⾃⼰的AS 号,通告给IBGP邻居是不会修改路径属性。
下⼀跳属性:是公认强制属性,指出前往⽬的地的下⼀跳ip地址,EBGP的下⼀跳是发送更新的邻居路由器的ip地址,igp的跳是路由器,⽽BGP的跳是AS,指下⼀个AS的⼊⼝ip地址。
BGP规定,EBGP通告的下⼀跳应传输到IBGP 中在多路访问⽹络中,运⾏BGP时,BGP路由器将使⽤合适的地址作为下⼀跳地址,(通过修还下⼀跳属性)。
以避免在⽹络中插⼊额外的跳,这种特性优势被称为第三⽅下⼀跳。
(third-party next hop源头,是公认强制属性,它定义路径信息的源头,源头属性可以是下列3个值之⼀:IGP:路由在起始AS中,⽤network通告BGP消息,源头在BGP表中⽤I标识EGP :在bgp表中⽤e标识,过时的路由选择协议,在Internet中不⽀持,⽀持分类路由选择,不⽀持CIDR不完全:路由的源头未知或通过其他⽅法获得,咱BGP表中通常⽤?标志本地优先级:是公认⾃由选择的属性他告诉AS中路由器。
那条路径是离开AS的⾸选路径本地优先级越⾼,路径被选中的可能性越⾼。
本地优先级是在路由器上配置的⼀种属性,只在同⼀个AS中的路由器之间交换。
Cisco路由器默认本地优先级值为100.共同体(团体):BGP 共同体是⽤于过滤⼊站、出站路由的⼀种⽅式。
BGPCommunity属性解释BGP Community属性解释1.Origin Code属性:属性种类:公认强制,指出了该路由条目的来源是什么。
有如下几种来源:1)Code= i:是在IGP的RIB中存在,并通过network命令宣告进BGP进程中的;2)Code= e:从EGP协议中获悉的;3)Code=?:Incomplete ,从其他手段获取的,如重分布Redistribute进 BGP进程中的~~~2.AS_Path属性:属性种类:公认强制,默认包含了一个有序的AS号列表(AS_SEQUENCE),描述了到达该网络所经过的所有AS有哪些。
请注意,只有将网络条目通告给EBGP邻居时,才将本地AS号加入到这个AS_Path属性中;如果只是通告给IBGP邻居,是不会增加任何AS号到AS_Path中滴~这个AS_Path有如下两个作用:1)让BGP进程决策最优路径,AS_Path最短最屌;2)防止环路,当某BGP Router从其EBGP邻居那里接收到一个网络的更新,并发现这个网络更新的AS_Path中有自己本地的AS号时,就证明有环路产生3.Next_Hop属性:属性种类:公认强制,存放到达该目的网络的下一跳的IP地址是什么。
有如下3种情况:Case1:(见下面的附件)Case2:(见下面的附件)Case3:(见下面的附件)4.Local_Pref属性:属性种类:公认自由决定,只用在和IBGP邻居间的Update分组更新中,这个属性字段是不会传递给EBGP邻居滴~~~告诉本地AS中的BGP Router,从哪个出口出去才是最优的:同一个AS中的BGP Router根据这个Local_Pref值来选择到达某个网络的最佳路径。
当Router要将路由条目通告给其EBGP邻居的时候,会将这个Local_Pref属性删掉哦~Local_Pref值越大越屌~~~Local_Pref默认值为100~~~5.MED属性:属性种类:可选非传递,把MED看成“Metric值”。
bgp属性总结BGP选路策略--属性分类1、公认强制的所有的bgp的updata消息都要包含该属性2、公认自由决定的该属性是可选可不选的,但是所有的bgp 进程都能识别3、可选传递的即使bgp进程不能识别该属性,也会继续传递下去4、可选非传递的如果bgp 进程不能识别该属性,可以忽略这条updata,并且不传递下去例如:1、公认强制属性--AS路径(AS-path)--下一跳(next-hop)--源头(origin)2、公认自由决定的--本地优先级(local preferent)3、可选传递的--社团属性(community)4、可选非传递属性--MEDweight(权重)--cisco私有技术,只具有本地意义,用于本地路由器进行选路一条路由信息包含了一组属性,每一个属性由三个字段组成。
·属性类型·属性长度·属性值If the AS path length is the same, prefer the lowest origin code (IGP < EGP < incomplete).1、<Weight>CISCO的私有属性越大越好·本地有效。
只在这一台路由器上起作用,人为设置的邻居的权重·默认值=32768(本地)/ 0(收到的路由)当一个路由器分别从两个不同的邻居处学到同一条路由,它可以根据WEIGHT值决定从哪个邻居走修改Weight---R1同时从R3和R2学到同一条BGP路由,在R1上改:R1(config-router)#Neighbot 3.3.3.3 weight 1R1(config)#route-map WER1(config-route-map)#match ip address _____R1(config-route-map)#set weight 8记住还要在后面写一条让其它路由通过的route-mapR1(config-router)#neighbor 3.3.3.3 route-map WE in 在自己的进方向R1(config-router)#neighbor 2.2.2.2 weight 8<Local_Preference>越大越好本地优先级是公认自由决定的属性,它告诉AS中的路由器,哪条路径是离开AS的首选路径。
BGP属性简介1、属性分类BGP属性是BGP进行路由决策和控制的重要信息。
它可以分为如下两大类四小类:一、公认属性●公认必遵(Well-known mandatory)●公认可选(Well-known discretionary)公认属性是所有运行BGP协议的系统都必须识别和支持的属性。
其中,公认必遵属性是BGP UPDATE消息中必须包含的属性。
公认可选则是BGP UPDATE消息中可以自由选择是否包含的属性。
二、可选属性●可选过渡(Optional transitive)●可选非过渡(Optional non-transitive)可选属性并不要求所有运行BGP协议的系统都识别。
如果属性是可选过渡的,那么,即使运行BGP的系统不能识别该属性,也要接受该属性并将其转发给它的对等体。
而如果属性是可选非过渡的,运行BGP的系统可以忽略包含该属性的消息并且不向它的对等体转发。
2、属性详述常见的BGP属性如下:1、ORIGINORIGIN标示路径信息的来源,是公认必遵属性。
ORIGIN可以是以下三种值:1)IGP:表示网络层可达信息来源于AS内部2)EGP:表示网络层可达信息通过AS外部学习3)INCOMPLETE:表示网络层可达信息来源无法确定在路由选择的时候,ORIGIN中,IGP优于EGP,EGP优于INCOMPLETE。
2、AS_PATHAS_PATH由一系列AS路径组成,是公认必遵属性。
AS-PATH采用AS_SEQUENCE方式表示——该路由经过的AS的有序集当BGP发布者发布路由给IBGP对等体时,BGP不修改路由的AS_PATH属性。
当BGP发布者发布路由给EBGP对等体时,本地系统应该把自己的AS号作为序列的最后一个元素加在序列的最后面。
AS_PATH可以用来作为路由选路的一种度量。
经过更少AS路径的路由更优先。
同时AS_PATH也作为一种手段来避免环路。
如果BGP路由信息发布者从EBGP对等体收到一条路由,它的AS_PATH包含发布者自己的AS号,就说明这条路由曾经从本AS发出过,将其丢弃,同时不再进行转发。
BGP小结一、需要使用BGP的网络:1、在国干网络使用BGP:目的是为了传递各个省、运营商或不同AS的路由,为不同的AS间数据互访进行寻经;将本国使用的路由发布到国际网络上。
国干路由器和AS出口路由器建立EBGP邻居。
2、省干网络使用BGP:目的是为了传递本省内各个不同城市的路由,为本省内不同城市间数据互访进行寻经;将本省内使用的路由发布到国干网络上。
省干落地设备可以与城域网出口建立EBGP邻居,同时为城域网下发EBGP缺省路由。
3、城域网出口路由器使用BGP:EBGP网络的末梢设备,目的将本城域网使用的路由发布到省干网络上,同时从省干落地设备接受BGP缺省路由;同时和城域网汇聚层设备建立IBGP邻居。
4、城域网汇聚层路由器使用BGP:城域网BGP网络的末梢设备,目的是对出网流量在汇聚层进行分流,从而可以减轻城域网骨干层路由器的负担。
MP-BGP运行在MPLS的网络上,目的是为了传递VPN的路由。
二、BGP常用的属性:BGP路由属性是一套参数,它对特定的路由进行了进一步的描述,使得BGP 能够对路由进行过滤和选择。
在配置路由策略时我们将广泛地使用路由属性,但是不是所有路由属性都要被用上。
事实上,路由属性被分为以下几类:必遵属性:所有BGP路由器都可以识别,且必须存在于Update消息中。
如果缺少这种属性,路由信息就会出错。
可选属性:所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来选择。
过渡属性:在AS之间具有可传递性的属性。
BGP路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。
非过渡属性:如果BGP路由器不支持此属性,则相应的Update消息会被忽略,且不会通告给其他对等体。
1、Origin属性:起点属性是一个必遵过渡属性,它指示路由更新的起源。
BGP允许三种类型的起源:BGP来说,BGP优先选用具有最小起点属性值的路由,即:IGP 优先于EGP,EGP优先于INCOMPLETE。
BGP公认Community属性的应用摘要本文介绍了BGP的公认的Community属性的解释和应用。
介绍团体(Community),团体是共享相同特性的一组目的地。
自治系统管理者可以定义目的地所属的团体。
默认的,所有目的地属于互联网团体。
团体属性BGP团体属性在RFC1997中定义(使用方法定义在RFC1998和2519中),它是一个可选过渡属性。
团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,它没有物理边界。
此属性一般是用来作为路由选择策略使用。
BGP团体属性是一个32位共4个八位组的值,然而为了管理上的安排,作了如下的假设:团体属性值范围从0x00000000到0x0000FFFF和从0xFFFF0000到0xFFFFFFFF被作为保留。
剩下的团体属性值应该使用AS号码作为头两个字节。
后两个字节的语义可以被AS自己定义。
(比如,AS690可以定义研究,教育和商业团体值,用于策略路由。
比如AS的操作者使用团体属性值0x02B20000到0x02B2FFFF)。
团体属性可以有3种方式定义:十进制方式,取值范围是1~4 294 967 295;十六进制方式,以aa:nn的格式表示,前面是本地自治系统号码,后面两个八位组是本地定义值;第三种方式是使用名字,使用公认的BGP团体名字。
公认的团体属性下列属性是全球意义的,它们的操作应该被应用在任何识别团体属性的BGP发言人。
Internet(0)默认的团体,所有支持BGP团体属性的路由器都属于本团体NO_EXPORT (0xFFFFFF01)所有接收到的路由承载的团体属性中包含这个值必须不会被通告给本自治系统或是联盟外的相邻体(一个孤立的AS,如果不是联盟的一部分可以看作自己构成一个联盟)。
NO_ADVERTISE (0xFFFFFF02)所有接收到的路由承载的团体属性中包含这个值必须不会被通告给任何其他相邻体。
Local-AS(也有称作NO_EXPORT_SUBCONFED)(0xFFFFFF03)所有接收到团体属性中包含这个值的路由必须不要被广播到任何EBGP相邻体(包括联盟中别的AS的成员)实际组网中的应用尽管我们了解了上述4个公认团体属性的定义,但在实际组网大家仍不能灵活应用,我们以下面这个案例来说明它们的应用场景。
【CCNP】BGPCommunity属性配置案例【CCNP】BGP Community属性配置案例版本V1.0密级?开放?内部?机密类型?讨论版?测试版?正式版1案例配置拓扑2案例配置需求1、如上图所示,IP地址规划方面,R1上有三个环回接口loopback 0、loopback 1、loopback 2,地址分别为50.1.1.1/32、100.1.1.1/32、200.1.1.1/32,路由器互连的接口为172.8.AB.X/24(其中AB为路由器编号叠加,X为路由器编号,如R1连接R2的接口S0/0的地址为172.8.12.1/24);2、图中有三个AS,AS 100、AS 200、AS 300,R1/R2为eBGP 邻居关系,R2/R3为iBGP邻居关系,R2/R4为eBGP邻居关系;3、将R1的环回接口发布到BGP中,R1将loopback 0接口的BGP路由发送给R2时,设置公有Community属性为NO_ADVERTISE,R1将loopback 1接口的BGP路由发送给R2时,设置公有Community属性为NO_EXPORT,R1将loopback 2接口的BGP路由发送给R2时,设置公有Community属性为LOCAL-AS,查看此时BGP的团体属性;4、在R1路由器上添加环回接口loopback 3,IP地址为3.3.3.3/32,设置发送给R2的私有Community属性为3:3,查看此时BGP的团体属性;3案例配置思路1、R1上的关键配置:router bgp 100no synchronizationbgp log-neighbor-changesnetwork 3.3.3.3 mask 255.255.255.255network 50.1.1.1 mask 255.255.255.255network 100.1.1.1 mask 255.255.255.255network 200.1.1.1 mask 255.255.255.255neighbor 172.8.12.2 remote-as 200neighbor 172.8.12.2 send-community /开启发送community 属性,默认不发送/neighbor 172.8.12.2 route-map community out /做out方向的策略/no auto-summary!ip bgp-community new-format/开启bgp community新格式,用来显示私有community属性/2、R2上的关键配置:router bgp 200no synchronizationbgp log-neighbor-changesneighbor 172.8.12.1 remote-as 100neighbor 172.8.23.3 remote-as 200neighbor 172.8.23.3 send-community /开启发送community 属性,默认不发送/neighbor 172.8.24.4 remote-as 300neighbor 172.8.24.4 send-community /开启发送community 属性,默认不发送/no auto-summary!ip bgp-community new-format3、R3上的关键配置:router bgp 200no synchronizationbgp log-neighbor-changesneighbor 172.8.23.2 remote-as 200no auto-summary!ip bgp-community new-format/开启bgp community新格式,用来显示私有community属性/4、R4上的关键配置:router bgp 300no synchronizationbgp log-neighbor-changesneighbor 172.8.24.2 remote-as 200no auto-summary!ip bgp-community new-format/开启bgp community新格式,用来显示私有community属性/ 4案例检验结果1、查看R1上关于策略的配置情况:R1#show ip prefix-listip prefix-list loopback0: 1 entriesseq 5 permit 50.1.1.1/32ip prefix-list loopback1: 1 entriesseq 5 permit 100.1.1.1/32ip prefix-list loopback2: 1 entriesseq 5 permit 200.1.1.1/32ip prefix-list loopback3: 1 entriesseq 5 permit 3.3.3.3/32R1#show route-map communityroute-map community, permit, sequence 10Match clauses:ip address prefix-lists: loopback0Set clauses:community no-advertisePolicy routing matches: 0 packets, 0 bytesroute-map community, permit, sequence 20Match clauses:ip address prefix-lists: loopback1Set clauses:community no-exportPolicy routing matches: 0 packets, 0 bytesroute-map community, permit, sequence 30Match clauses:ip address prefix-lists: loopback2Set clauses:community local-ASPolicy routing matches: 0 packets, 0 bytesroute-map community, permit, sequence 40Match clauses:ip address prefix-lists: loopback3Set clauses:community 3:3Policy routing matches: 0 packets, 0 bytesroute-map community, permit, sequence 50Match clauses:Set clauses:Policy routing matches: 0 packets, 0 bytes2、查看R2上关于BGP表及相关路由的community属性:R2#show ip bgpBGP table version is 9, local router ID is 172.8.24.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop Metric LocPrf Weight Path*> 3.3.3.3/32 172.8.12.1 0 0 100 i*> 50.1.1.1/32 172.8.12.1 0 0 100 i*> 100.1.1.1/32 172.8.12.1 0 0 100 i*> 200.1.1.1/32 172.8.12.1 0 0 100 iR2#show ip bgp 50.1.1.1 255.255.255.255Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Not advertised to any peer 100172.8.12.1 from 172.8.12.1 (200.1.1.1)Origin IGP, metric 0, localpref 100, valid, external, bestCommunity: no-advertise /与R1上设置的属性一致/R2#show ip bgp 100.1.1.1 255.255.255.255BGP routing table entry for 100.1.1.1/32, version 8Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer) Advertised to update-groups: 2100172.8.12.1 from 172.8.12.1 (200.1.1.1)Origin IGP, metric 0, localpref 100, valid, external, bestCommunity: no-export /与R1上设置的属性一致/ 雏鹰论坛CCNPR2#show ip bgp 200.1.1.1 255.255.255.255BGP routing table entry for 200.1.1.1/32, version 7Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised outside local AS)Advertised to update-groups:2100172.8.12.1 from 172.8.12.1 (200.1.1.1)Origin IGP, metric 0, localpref 100, valid, external, bestCommunity: local-AS /与R1上设置的属性一致/R2#show ip bgp 3.3.3.3 255.255.255.255Paths: (1 available, best #1, table Default-IP-Routing-Table)Advertised to update-groups:2 3100172.8.12.1 from 172.8.12.1 (200.1.1.1)Origin IGP, metric 0, localpref 100, valid, external, bestCommunity: 3:3 /R2路由器上打了BGP Community新格式命令,所以这里正常显示,否则,这里显示不正常/3、查看R3上的BGP表:R3#show ip bgpBGP table version is 1, local router ID is 172.8.23.3Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop Metric LocPrf Weight Path * i3.3.3.3/32 172.8.12.1 0 100 0 100 i* i100.1.1.1/32 172.8.12.1 0 100 0 100 i* i200.1.1.1/32 172.8.12.1 0 100 0 100 i/这里没有50.1.1.1/32的BGP路由,因为此路由在R2上的BGP Community为公有属性no-advertise,意思是不通告给任何的BGP 对等体,R3与R2为iBGP邻居关系,所以R3的BGP 表中不存在此路由,另外,路由前没有“>”,是由于下一跳不可达,这里只测试BGP Community/ 4、查看R4上的BGP表和BGP Community属性:R4#show ip bgpBGP table version is 9, local router ID is 172.8.24.4Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop Metric LocPrf Weight Path*> 3.3.3.3/32 172.8.24.2 0 200 100 i/R4没有收到50.1.1.1/32路由,因为此路由在R2上的BGP Community为公有属性no-advertise,意思是不通告给任何的BGP 对等体,R4与R2为eBGP邻居关系,所以R4的BGP表中不存在此路由,同理,100.1.1.1/32在R2上的BGP Community为公有属性no-export ,意思是不通告给eBGP对等体,R4与R2为eBGP邻居关系,所以R4的BGP表中不存在此路由,R3与R2为iBGP邻居关系,所以R3上存在此路由,200.1.1.1/32在R2上的BGP Community为公有属性local-as,意思是只在本AS内部发送,如果配置联盟,那么不发送到其它AS或者子AS,所以R4上不存在此路由,而R3上存在/ 雏鹰论坛CCNPR4#show ip bgp 3.3.3.3 255.255.255.255BGP routing table entry for 3.3.3.3/32, version 9Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer200 100172.8.24.2 from 172.8.24.2 (172.8.24.2)Origin IGP, localpref 100, valid, external, bestCommunity: 3:35案例数据抓包1、R1发送给R2的关于3.3.3.3/32的Update Message:2、R1发送给R2的关于200.1.1.1/32的Update Message:3、R1发送给R2的关于100.1.1.1/32的Update Message:4、R1发送给R2的关于50.1.1.1/32的Update Message:6案例配置文件7案例总结及其它1、BGP Community属性用来标识一些有相同性质的前缀,给路由打标记,以便统一处理,一个路由可以有多个属性值,不限于一个网络或一个自治系统,没有物理边界;2、BGP Community属性有公有和私有:公认的Community:a)NO_ADVERTISE:不通告给任何的BGP对等体;b)NO_EXPORT:不通告给eBGP对等体;c)INTERNET:可以通告给所有的其它BGP对等体;d)LOCAL-AS:表示本路径不发布到本AS 外部,当配置联盟时,本路径不发布给其它的自治系统或子自治系统;私有的Community:a)私有团体是对用户有意义的数字;b)四个字节,为增加可读性,可配置为aa:nn,一般aa建议为AS号,nn代表业务;3、缺省在peer之间不传递community属性,必须在bgp进程下针对特定peer使用neighbor ××××send-community才能将community属性发送出去;4、参见欢迎来雏鹰论坛参与讨论。
bgp知识点总结BGP(Border Gateway Protocol,边界网关协议)知识点总结。
一、BGP概述。
1. 定义与作用。
- BGP是一种用于在不同自治系统(AS)之间交换路由信息的外部网关协议(EGP)。
自治系统是由一个或多个网络组成的,在一个管理机构下运行并使用统一的内部路由策略。
- 其主要作用是实现不同自治系统之间的可达性,通过传递路由信息,使得不同AS中的网络能够相互通信。
2. BGP的特点。
- 路径矢量协议:BGP不像内部网关协议(如OSPF、RIP)那样基于链路状态或距离矢量,而是基于路径矢量。
它通告的是到达目的网络的完整路径(包括经过的自治系统序列)。
- 可靠性高:使用TCP作为传输协议(端口号179),这保证了BGP消息的可靠传输。
因为TCP具有确认、重传等机制,可以确保BGP对等体之间的消息准确无误地传递。
- 策略丰富:BGP允许网络管理员根据多种策略来控制路由的传播和选择。
例如,可以基于AS路径长度、路由的本地优先级等因素来决定选择哪条路由进入自己的路由表。
二、BGP的消息类型。
1. Open消息。
- 用于建立BGP对等体关系。
在Open消息中包含了BGP版本号、本地AS号、保持时间(Hold Time)、BGP标识符(通常是路由器的某个接口的IP地址)等信息。
- 当两个BGP路由器之间交换Open消息并且参数协商成功后,它们之间就建立了BGP对等体关系。
2. Update消息。
- 用于通告可达路由信息和撤销不可达路由信息。
Update消息包含网络层可达性信息(NLRI),即目的网络的前缀和掩码,以及到达这些目的网络的路径属性(如AS 路径、下一跳等)。
- 如果某个路由不再可达,BGP也会通过Update消息来撤销该路由的通告。
3. Notification消息。
- 用于报告错误信息。
当BGP对等体检测到错误时,会发送Notification消息给对等体,然后关闭BGP连接。
BGP community属性无敌详解文档(视频详解+配套文档)community属性是BGP众多路径属性中一个相对比较难理解的知识点,需要通过大量实验加深印象,为了帮助大家更清晰的了解这个路径属性,我特定编写了这份文档,希望对大家有所帮助。
本文档配套详解视频:1、community的基本概念可选传递,用于简化路由策略的执行。
可以将某些路由分配一个特定的COMMUNITY 属性,之后就可以基于COMMUNITY值而不是每条路由进行BGP属性的设置了。
COMMUNITY属性对邻居起作用,在设置后,同时需要向邻居发送(send community,默认是不会发送的)。
COMMUNITY属性是一组4个8位组的数值,RFC1997规定前2B表示AS号,后2B 表示基于管理目的设置的标示符,格式为AA:NN,而CISCO默认显示格式为NN:AA (CISCO IOS在显示community值时,默认是按10进制格式显示),可使用全局配置命令ip bgpcommunity new-format将CISCO默认格式改为RFC格式。
例如将AS12的某条路由COMM值改为10000,RFC采用十六进制表示COMMUNITY属性,而CISCO采用十进制。
RFC格式为12:10000,十六进制为0x 000C2710,再转换为十进制796432(这就是CISCO IOS默认显示的值)。
抓个包看一下:2、在route-map中设置community属性route-map test permit 10set community ?<1-4294967295> community numberaa:nn community number in aa:nn formatadditive Add to the existing community 设置commu值为附加,否则为覆盖 internet Internet (well-known community) 默认所有路由都属于该团体local-AS Do not send outside local AS (well-known community)no-advertise Do not advertise to any peer (well-known community)no-export Do not export to next AS (well-known community)none No community attribute下边我们来看一下community的这几个众所周知值的本文为原创博文,no-advertiseno-exportlocal-as配置示例(使用route-map为路由分配community):在R1上为路由11.11.11.0/24分配community 100:11,并且传递给R2,那么R1上配置如下:ip prefix-list 11 permit 11.11.11.0/24route-map test permit 10match ip address prefix-list 11set community 100:11router bgp 100network 11.11.11.0 mask 255.255.255.0neighbor 10.1.12.2 remote-as 200neighbor 10.1.12.2 send-community // 默认community不发送,因此必须配置该命令neighbor 10.1.12.2 route-map test out注意community默认不发送,必须send-community。
另外一条路由前缀可以携带多个community形成一个列表,如果要针对特定路由在原有的community基础之上再增加一个community,则在route-map中set community时,增加additive关键字。
3、使用ip community-list匹配community值ip community-list ?<1-99> Community list number (standard)<100-500> Community list number (expanded)expanded Add an expanded community-list entrystandard Add a standard community-list entryip community-list 也像ACL那样,有标准和扩展之分,1-99为标准,100-199为扩展。
扩展的community-list 可以使用正则表达式匹配路由。
这里有一点需要注意,ip bgp-community new-format用于转换community在CISCO IOS中的显示格式,当在扩展的community-list列表中使用正则表达式的过滤结果会由于格式的选择不同而不同。
ip community-list示例1在上面实验的基础上,R1传递给R2的11.11.11.0/24路由,携带了community值100:11,这个值可以在R2上使用ip community-list进行匹配,从而可以进一步在route-map中用这个community-list去设置策略。
我们现在在R2上用community-list 去匹配100:11,通知添加一个no-export的community到该路由。
R2的配置如下:ip community-list 11 permit 100:11route-map test permit 10match community 11set community no-export additiverouter bgp 200neighbor 10.1.12.1 remote-as 100neighbor 10.1.23.3 remote-as 300neighbor 10.1.23.3 send-communityneighbor 10.1.23.3 route-map test outR3上show ip bgp 11.11.11.0BGP routing table entry for 11.11.11.0/24, version 5Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer)Flag: 0x820Not advertised to any peer200 10010.1.23.2 from 10.1.23.2 (10.1.23.2)Origin IGP, localpref 100, valid, external, bestCommunity: 100:11 no-exportip community-list的示例2(逻辑关系):当11.11.11.0/24路由前缀携带的community属性为“100:11 no-export”,我们做如下测试:Ip community-list 11 permit 100:11匹配。
这种写法将匹配community中包含100:11的路由。
Ip community-list 11 permit 100:11 no-advertise不匹配。
这种写法要求community中同时包含100:11及no-advertise才匹配成立。
Ip community-list 11 permit 100:11Ip community-list 11 permit no-export (或将no-export换成no-adv)匹配。
这种写法只要community中包含100:11或no-export就匹配成立ip community-list的示例3(严格匹配community):注意我们实验环境的变化,12.12.12.0携带的community值为no-export,如果我们只希望匹配no-export community值(的路由),那么怎么写呢?如果是直接去匹配no-export,会连同11.11.11.0也一并匹配上了,所以就要使用到exact-match关键字了。
在R3上如果配置如下:Ip community-list 11 permit no-exportroute-map test permit 10match community 11 exact-match // 严格匹配如果不加exact-match关键字,则该community-list将匹配11及12路由,加了之后,则只匹配community为no-export的路由,不能多,不能少。
4、在community列表中删除特定的community值前面已经说了,一条路由,允许携带多个community值,构成一个community列表,那么如果想删除某个或者某几个community值,例如:12:11 12:1111 no-export 这个comm列表,要删除其中的no-export,则可ip community-list 1 permit no-export // 匹配要删除的commu值route-map test permit 10set comm-list 1 delete // 用这条命令删除如果要删除多个community(而不是所有),则可在一个community-list中写多条,如ip community-list 1 permit no-exportip community-list 1 permit 12:1111然后再用set comm-list 1 delete去删除,注意上面community-list的写法,要用多行,在同一行写多个commu如ip community-list 1 permit no-export 12:1111则不生效。
R3收到两条路由,分别携带的community属性如上,现在,我们只想删除11路由的no-export属性。
ip community-list 11 permit 100:11 no-export //这条用来匹配11路由ip community-list standard del permit no-export //这条用来删除no-export属性,是个命令列表route-map test permit 10match community 11set metric 1111set comm-list del deleteroute-map test permit 20router bgp 300neighbor 10.1.23.2 remote-as 200neighbor 10.1.23.2 route-map test in如果想把11路由的100:11及no-export 两个community值都删除,则修改del 这条community-list即可:ip community-list standard del permit no-exportip community-list standard del permit 100:11。