BGP中COMMUNITY属性

COMMUNITY——可选传递属性

一种标记,用于简化路由策略的执行

可以将某些路由分配一个特定的community属性,之后就可以基于该community值而不是每条路由进行BGP属性设置

community属性就可以理解成在IGP内打TAG的意思,只不过在BGP中是community值

community值会一直传递下去,如果不做策略,永远不会丢失。

community属性在cisco路由器有两种表现形式:

Cisco路由器默认表现形式是十进制的形式,例如图片中:796432

RFC格式:AA:NN的形式

很明显RFC的AA:NN的格式更直观对吧    AA可以表示AS号,NN可以表示序列号

而且两种格式在正则表达式中的应用也会有所不同,因为这是完全两种不一样的值,正则表达式的写法也就不一样

R1(config)#ip bgp-community new-format

用上边的命令修改格式

Community属性配置方法:

R1(config)#ip community-list standard COMMUNITY permit 100:10

全局配置用community-list匹配community值,permit 100:10就是去permit一个带100:10的community值的路由。

在Route-map中去配置community属性

你match一个community列表后打一问号回有一个可选项,这个叫严格匹,community在match时有严格匹配和宽松匹配两种模式,严格匹配就是去严格的执行community-list所permit的那些community值,具体的在下边实验体现,我会专门跟据这个严格匹配做一个实验

R1(config)#route-map test permit 10

R1(config-route-map)#match community COMMUNITY  ?

exact-match  Do exact matching of communities                严格匹配最后有讲到

在Route-map中去set那个community属性时,打个问号会有很多可选项,下边实验我们一一的介绍这些可选项的使用方法

R1(config-route-map)#set community ?                         set  community值

<1-4294967295>  community number

aa:nn           community number in aa:nn format

additive         Add to the existing 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

internet         Internet (well-known community)

additive:再原有的community属性上,再增加一个community值,后边要加上additive关键字,如果不加,就会覆盖掉先前的community值。这个关键字是整个community属性我个人觉得是最重要的一个关键字了

Internet:默认所有路由都属于该可选项,可以匹配路由表中所有的路由前缀,给他们标记community值。(正常情况我们是先用ACL或prefix-list(前缀列表)匹配出想要的路由,然后调用它为它标记community值,如果你不先用ACL去抓路由,想把路由表中所有路由前缀一并标记community值,就可以set这个可选项

local-AS:不传出本AS自治系统,如果定义了联邦可以在联邦内传递。(联邦就是在一个AS自治系统内定义多个小AS自治系统)

no-advertise:不将路由传递任何BGP邻居

no-export:不传递给任何EBGP邻居(联邦EBGP邻居除外)

none:不携带任何的Community值

全篇的IP地址规划:192.168.xy.z    其中x是较小设备编号,y是较大设备编号,z是本设备编号  例如:R1---R2   R1的IP:192.168.12.1   R2的IP:192.168.12.2   所有路由器均有loopback0接口 R1是1.1.1.1/32 类推

全篇不再赘述IP地址规划,邻居可以根据拓扑可以看出哪些是EBGP,哪些是IBGP邻居,也不再赘述

需求:1. R1路由器向EBGP邻居R2通告了两条路由前缀,我们为172.16.1.0/24路由前缀标记一个community属性值

2.在R2路由器利用标记了community属性值的路由针对邻居R4做路由策略,为了方便实验效果,在R2针对标记community属性值修改local-preference属性(因为local-preference属性它默认值是100,我们调整成200)

R1(config)#ip prefix-list 10 permit 172.16.1.0/24                        抓取172.16.1.0/24路由,注意我只抓了这一个路由并没有172.16.2.0/24路由

R1(config)#route-map test permit 10                                             创建Route-map,取名test

R1(config-route-map)#match ip address prefix-list 10                 match那个前缀列表

R1(config-route-map)#set community 100:10                               分配一个100:10的 community属性值

R1(config)#route-map test permit 20                                              Router-map隐含deny,所以写一条空的Router-map语句,空Router-map等同于permit any。你如果不写,那么其他路由将会被最后隐 R1(config-route-map)#exit                       含的deny 所匹配

R1(config)#router bgp 100

R1(config-router)#network 172.16.1.0 mask 255.255.255.0

R1(config-router)#network 172.16.2.0 mask 255.255.255.0

R1(config-router)#neighbor 192.168.12.2 route-map test out            针对邻居应用Router-map

R1(config-router)#neighbor 192.168.12.2 send-community               Send-community属性,你不send邻居它是收不到任何community值。比如,R1上边为X路由标记100:10,你假设不去send,那                                                        R2路由器,它不是说看不到这条路由,而是看不到这个100:10的community值。你要传递给邻居,你就要send一下这个属性

R2#show ip bgp 172.16.1.0                                                                         在R2路由器查看172.16.1.0/24路由详细信息

BGP routing table entry for 172.16.1.0/24, version 9

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Flag: 0x8A0

Advertised to update-groups:

2

100

192.168.12.1 from 192.168.12.1 (1.1.1.1)

Origin IGP, metric 0, localpref 100, valid, external, best

Community: 100:10                                                                              最后有一个Community: 100:10的信息

R2(config)#ip community-list standard COMMUNITY permit 100:10                 创建 community-list抓取Community属性路由,匹配Community属性使用community-list匹配的

R2(config)#route-map test permit 10                                                                   创建Route-map,取名test

R2(config-route-map)#match community COMMUNITY                                                           match那个community-list列表

R2(config-route-map)#set local-preference 200                                                                          修改local-preference属性值为200

R2(config)#route-map test permit 20                                                                                             Router-map隐含deny,所以写一条空的

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 4.4.4.4 route-map Community out         针对邻居应用Router-map语句

R2(config-router)#neighbor 4.4.4.4 send-community                          Send-community属性,使得该属性生效

R4#show ip bgp                                             在R4看有没有生效

BGP table version is 10, local router ID is 4.4.4.4

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*>i172.16.1.0/24    2.2.2.2                  0    200      0 100 i

*>i172.16.2.0/24    2.2.2.2                  0    100      0 100 i

R4路由器关于172.16.1.0/24的local-preference属性生效了,172.16.1.0/24的local-preference属性还是默认值100

需求:R2路由器已经通过上边实验有了一个100:10的community值,然后在原有的community值上在添加一个新的200:23的community值

Additive可选项使用规则: 再原有的community属性上,再增加一个community值

R2(config)#ip community-list standard COMMUNITY permit 100:10

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set community 200:23 additive      再原有的community属性上,再增加一个community值,后边要加上additive关键字,如果不加,就会覆盖掉先前的100:10值

R2(config)#route-map test permit 20                           写一个空的Route-map,放行其他的路由

R2(config-route-map)#exit

R2(config)#router bgp 23

R2(config-router)#neighbor 4.4.4.4 route-map COMMUNITY out              针对邻居调用Route-map

R4#show ip bgp 172.16.1.0

BGP routing table entry for 172.16.1.0/24, version 6

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Advertised to update-groups:

2    3

(23) 100

2.2.2.2 (metric 156160) from 2.2.2.2 (2.2.2.2)

Origin IGP, metric 0, localpref 200, valid, confed-external, best

Community: 100:10 200:23                Community后边多了一个200:23的属性值,说明成功了

上图定义了联邦,AS号标识的很清楚BGP的邻居关系

需求:在R2上部署no-advertise关键字,让R4路由器在收到带有no-advertise关键字时,不将路由传递给任何BGP邻居

no-advertise可选项使用规则:

R2(config)#ip community-list standard COMMUNITY permit 100:10

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set community no-advertise additive            additive关键字要加,不加先前100:10和200:23 两个  community属性值就会丢失了

R2(config)#route-map test permit 20                                                    写一个空的Route-map,放行其他的路由

R2(config-route-map)#exit

R2(config)#router bgp 23

R2(config-router)#neighbor 4.4.4.4 route-map test out                  针对邻居调用Route-map

R4#show ip bgp 172.16.1.0                                      在R4路由器观察现象

BGP routing table entry for 172.16.1.0/24, version 17

Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer)

Flag: 0x820

Not advertised to any peer

(23) 100

2.2.2.2 (metric 156160) from 2.2.2.2 (2.2.2.2)

Origin IGP, metric 0, localpref 200, valid, confed-external, best

Community: 100:10 200:23 no-advertise                  多了一个no-advertise可选参数,并且先前200:23都还在,因为加了additive关键字

R5#show ip bgp

BGP table version is 26, local router ID is 5.5.5.5

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*>i172.16.2.0/24        2.2.2.2            0    100      0 (23) 100 i

R6#show ip bgp

BGP table version is 26, local router ID is 5.5.5.5

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*>i172.16.2.0/24       192.168.46.4         0     100  0 (23) 100 i

由于R4收到了一个带no-advertise关键字的community 值路由,R4将不会在将该路由传递给任何邻居,可以看到R5路由表丢失了172.16.1.0/24路由,R6同样也没有该路由前缀信息

环境:R1和R2是EBGP邻居            R2和R4是联邦EBGP           R4和R5是联邦EBGP                      R4和R6是EBGP

需求:在R2上部署no-export关键字,让R4在收到该属性不传递给任何EBGP邻居(联邦EBGP除外)

no-export可选项使用规则:

R2(config)#ip community-list standard COMMUNITY permit 100:10

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set community no-export                     additive 加上additive关键字要加,不加先前100:10和200:23 两个  community属性值就会丢失了

R2(config)#route-map test permit 20                          写一个空的Route-map,放行其他的路由

R2(config-route-map)#exit

R2(config)#router bgp 23

R2(config-router)#neighbor 4.4.4.4 route-map test out

R5#show ip bgp

BGP table version is 33, local router ID is 5.5.5.5

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*>i172.16.1.0/24    2.2.2.2                  0    200      0 (23) 100 i

*>i172.16.2.0/24    2.2.2.2                  0    100      0 (23) 100 i

R5作为R4的联邦EBGP邻居,不会丢失172.16.1.0/24路由和172.16.2.0/24路由

R6#show ip bgp

BGP table version is 29, local router ID is 6.6.6.6

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*> 172.16.2.0/24    192.168.46.4            0     100    100  i

R6作为R4的EBGP邻居,丢失了172.16.1.0/24路由

需求:R2上使用none关键字,在向邻居发送路由时不携带任何的Community值

注意:R2关于172.16.1.0/24先前实验中有一个100:10的community值,是R1传递过来的

none可选项使用规则:

R2(config)#ip community-list standard COMMUNITY permit 100:10

R2(config)#route-map test permit 10

R2(config-route-map)# match community COMMUNITY

R2(config-route-map)#set community 200:23 additive      加上additive关键字

R2(config-route-map)#set community none                        Set none属性,使得R2在传输该路由前缀时不携带任何community值

R2(config-route-map)#set local-preference 200

R2(config)#route-map test permit 20                                  写一个空的Route-map,放行其他的路由

R2(config-route-map)#exit

R2(config)#router bgp 23

R2(config-router)#neighbor 4.4.4.4 route-map test out

R4#show ip bgp 172.16.1.0

BGP routing table entry for 172.16.1.0/24, version 29

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Flag: 0x880

Advertised to update-groups:

2    3

(23) 100

2.2.2.2 (metric 156160) from 2.2.2.2 (2.2.2.2)

Origin IGP, metric 0, localpref 200, valid, confed-external, best

Community: 100:10

R2明明也为172.16.1.0/24路由标记了一个200:23的Community值,但是R4丢失了200:23的Community值,但是并未丢失100:10的Community值,因为R2使用了additive关键字, 100:10的Community值R1路由器配置的所以不会丢失 。通过实验可以看出R2在向R4传递路由时候是没有携带任何的Community值。

需求:R2部署Loopbackkcal-AS关键字该属性只能在本AS内传递,定义了联邦则联邦EBGP邻居也能收到,但是无法传出本AS,就是大AS自治系统

Loopbackkcal-AS可选项使用规则:

R2(config)#ip community-list standard COMMUNITY permit 100:10

R2(config)#route-map test permit 10

R2(config-route-map)# match community COMMUNITY

R2(config-route-map)#set community 200:23 additive                 加上additive关键字

R2(config-route-map)#set community local-AS                              set那个local-AS可选项

R2(config-route-map)#set local-preference 200

R2(config-route-map)#exit

R2(config)#route-map test permit 20                                                  写一个空的Route-map,放行其他的路由

R2(config-route-map)#exit

R2(config)#router bgp 23

R2(config-router)#neighbor 4.4.4.4 route-map test out

R4#show ip bgp

BGP table version is 10, local router ID is 4.4.4.4

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*>i172.16.1.0/24    2.2.2.2                  0    200      0 100 i

*>i172.16.2.0/24    2.2.2.2                  0    100      0 100 i

R4作为R2的联邦EBGP邻居,虽然它们小AS号不同,但是它们同属一个大AS自治系统,说白了还是一家人嘛

R6#show ip bgp

BGP table version is 38, local router ID is 6.6.6.6

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*> 172.16.2.0/24    192.168.46.4             0    200   100    i

R6作为其他AS自主系统,丢失了172.16.1.0/24路由

需求:R1路由器5个loopback接口,假设R1还有很多很多loopback接口,只想对172.16.1.0/24路由标记100:10 community值,剩下全部标记100:20 community值。

Internet给我的感觉特别像空的Route-map,因为空的Route-map是permit any的意思,any不就是匹配所有路由么? Internet也是匹配所有路由。。。  还是挺绕的

Internet可选项使用规则:匹配路由表中所有路由前缀,一并标记community值。

R1(config)#ip prefix-list 10 permit 172.16.1.0/24                             抓取路由

R1(config)#route-map test permit 10

R1(config-route-map)#match ip address prefix-list 10

R1(config-route-map)#set community 100:10                                set一个community值100:10

R1(config-route-map)#exit

R1(config)#route-map test permit 20                                              创建Route-map,取名test

R1(config-route-map)#set community internet 100:100              匹配路由表中所有路由前缀

R1(config-route-map)#exit                                                                 这个时候就不用写空的Route-map了

R2(config)#ip community-list standard COMMUNITY permit 100:100

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set community 200:23 additive

R2(config-route-map)#set metric 2000                                       为了实验效果我们修改BGP的MED属性

R2(config)#route-map test permit 20                                           写一个空的Route-map,放行其他的路由

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 4.4.4.4 route-map test out

R4#show ip bgp

BGP table version is 35, local router ID is 4.4.4.4

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? – incomplete

Network          Next Hop          Metric     LocPrf  Weight Path

*> 172.16.1.0/24    2.2.2.2               0          100      0  100 i

*> 172.16.2.0/24    2.2.2.2               2000    100     0  100 i

*> 172.16.3.0/24    2.2.2.2               2000    100     0  100 i

*> 172.16.4.0/24    2.2.2.2               2000    100     0  100 i

上边一共做了六个实验,分别把Route-map中去set community属性的几个可选参数全部做了一遍

下边讲community-list在匹配的时候匹配规则,就是当一个路由携带多个community值的时候,你怎么写community-list列表才能去匹配住那个路由

 R1(config)#ip community-list standard name permit 100:10 100:10 local-AS ?        community-list在匹配的时候它可以在一行匹配N个community值和下边的参数

<1-4294967295>  community number

aa:nn           community number

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)

环境:R1在将172.16.1.0/24路由通过给R2路由器时为该路由分配了100:10和100:11两个个community值

但是R2它要基于community值简化配置,它的community-list要怎么写?

用community-list匹配community属性规则:

R1(config)#ip prefix-list 10 permit 172.16.1.0/24

R1(config)#route-map test permit 10

R1(config-route-map)#match ip address prefix-list 10

R1(config-route-map)#set community 100:10 100:11            分配了两个community 分别是100:10和100:11,注意下边红色的字体

R1(config-route-map)#exit

R1(config)#route-map test permit 20

R1(config-route-map)#exit

R2(config)#ip community-list standard COMMUNITY permit 100:10 100:20          注意R2的community-list写法一行同时写了两个,但是100:20然而并不是R1 set的100:11

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set community additive

R2(config-route-map)#set local-preference 200          为了看效果,修改下local-preference属性

R2(config)#route-map test permit 20                             写一个空的Route-map,放行其它的路由

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 3.3.3.3 route-map test out

R3#show ip bgp

BGP table version is 41, local router ID is 6.6.6.6

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop          Metric  LocPrf   Weight  Path

*> 172.16.1.0/24       2.2.2.2            0      100      0     100 i

*> 172.16.2.0/24       2.2.2.2            0      100     0     100 i

可以看到刚才R2设置的local-preference属性并未生效,因为local-preference属性它默认值是100

由上可以看出community-list匹配规则是当要匹配的路由前缀携带多个community-list值时,

如果写在一行只有全部的community值匹配正确,才能匹配上。

但是如果你是下边的写法:

R2(config)#ip community-list standard COMMUNITY permit 100:10         注意R2的community-list写法一行只写了一个

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set community additive

R2(config-route-map)#set local-preference 200          为了看效果,修改下local-preference属性

R2(config)#route-map test permit 20                             写一个空的Route-map,放行其它的路由

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 3.3.3.3 route-map test out

R3#show ip bgp

BGP table version is 41, local router ID is 6.6.6.6

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop          Metric  LocPrf   Weight  Path

*> 172.16.1.0/24       2.2.2.2            0      200      0     100 i

*> 172.16.2.0/24       2.2.2.2            0      100     0     100 i

R2的local-preference属性生效了

总结:community-list写在一行写多个community值的时候是一个且的关系,就是这一行的community值全部匹配上,这个community-list才能成真。

上边就是community-list的匹配规则

下边讲Route-map在match那个community列表时的宽松和严格模式的规则

环境:R1向R2通告了两条路由,分别是loopback1和loopback2接口,并附带上两个不通的community值,具体附带什么看配置。    最关键的配置在R2路由器

R1(config)#ip prefix-list 10 permit 172.16.1.0/24

R1(config)#ip prefix-list 20 permit 172.16.2.0/24

R1(config)#route-map test permit 10

R1(config-route-map)#match ip address prefix-list 10

R1(config-route-map)#set community 100:10              loopback1路由set的是100:10的值

R1(config-route-map)#exit

R1(config)#route-map test permit 20

R1(config-route-map)#match ip address prefix-list 20

R1(config-route-map)#set community 100:10 100:20               loopback2路由set了两个值

R1(config-route-map)#exit

R1(config)#route-map test permit 30                                                写一个空Route-map

R1(config-route-map)#exit

R1(config)#router bgp 100

R1(config-router)#neighbor 192.168.12.2  route-map test out

R2(config)#ip community-list standard COMMUNITY permit 100:10                注意我community-list的我只permit了一个100:10的community值

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY

R2(config-route-map)#set local-preference 200                   修改下local-preference属性200待会看效果

R2(config)#route-map test permit 20

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 3.3.3.3 route-map test out

R3#show ip bgp

BGP table version is 41, local router ID is 6.6.6.6

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop          Metric  LocPrf   Weight  Path

*> 172.16.1.0/24       2.2.2.2            0      200      0     100 i

*> 172.16.2.0/24       2.2.2.2            0      200     0     100 i

你会发现两条路由都被修改了local-preference属性值,因为R2在community-list的时候只匹配了100:10这个community值,但是两条路由都包含100:10这个community值,所以都被修改了local-preference属性值。

下边我们在下边看下严格匹配的效果:

R2(config)#ip community-list standard COMMUNITY permit 100:10

R2(config)#route-map test permit 10

R2(config-route-map)#match community COMMUNITY exact-match          严格匹配关键字

R2(config-route-map)#set local-preference 200                                                       修改下local-preference属性200待会看效果

R2(config)#route-map test permit 20

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 3.3.3.3 route-map test out

R3#show ip bgp

BGP table version is 41, local router ID is 6.6.6.6

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop          Metric  LocPrf   Weight  Path

*> 172.16.1.0/24       2.2.2.2            0      200      0     100 i

*> 172.16.2.0/24       2.2.2.2            0      100     0     100 i

只有172.16.1.0/24被修改了local-preference属性值,这一次172.16.2.0/24并没有修改

你一旦在match的时候加上exact-match严格匹配关键字,它一定会严格的按照你community-list列表上所以的community值进行匹配,多一点少一点都匹配不上。

在刚才的community-list列表上R2它只写了一个100:10对吧?

但是这两条路由所携带的community值只有172.16.1.0/24的是100:10,所以它被匹配上了,而172.16.2.0/24它不但有100:10它还有一个100:20的community值,这个时候它就不能被匹配上。这个就是在你match的时候严格匹配的意思

需求:R1在上边的配置对172.16.2.0/24配置了两个community值一个是100:10还有一个是100:20,现在R2路由器它想删除其中一个community值,让我们看下如何删除一个或多个community值

删除单个community值

R2(config)#ip community-list standard COMMUNITY permit 100:20         把要删的community值匹配出来

R2(config)#route-map test permit 10                                             创建Route-map

R2(config-route-map)#set comm-list community COMMUNITY                 直接set那个community列表

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 3.3.3.3 route-map test out

R3#show ip bgp 172.16.2.0

BGP routing table entry for 172.16.1.0/24, version 38

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Advertised to update-groups:

2    3

(23) 100

2.2.2.2 (metric 156160) from 2.2.2.2 (2.2.2.2)

Origin IGP, metric 0, localpref 100, valid, confed-external, best

Community: 100:10                                                                                                         只有一个100:10的值,100:20的成功被删除

需求:R1在上边的配置对172.16.2.0/24配置了两个community值一个是100:10还有一个是100:20,现在R2路由器它想删除两个个community值,让我们看下如何删除多个community值

删除多个community值

R2(config)#ip community-list standard COMMUNITY permit 100:10 把要删的community值匹配出来

R2(config)#ip community-list standard COMMUNITY permit 100:20 在写一个要community-list

R2(config)#route-map test permit 10                     创建Route-map

R2(config-route-map)#set comm-list community COMMUNITY         直接set那个community列表

R2(config-route-map)#exit

R2(config)#router bgp 200

R2(config-router)#neighbor 3.3.3.3 route-map test out

R3#show ip bgp 172.16.2.0

BGP routing table entry for 172.16.1.0/24, version 38

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Advertised to update-groups:

2    3

(23) 100

2.2.2.2 (metric 156160) from 2.2.2.2 (2.2.2.2)

Origin IGP, metric 0, localpref 100, valid, confed-external, best

可以看到R2成功的删除了多个community值,其实删除多个community值就是多写一个community-list列表

整个community属性就全部写完了,其实写这个还是挺累的,当中停了一次写着写着不知道要怎么表达,因为有些实验它需要以视频方式讲解更能去表达一个人的意思,用文字写,很啰嗦,尤其在这个快餐的时代,很少有人能够静下心来看完别人写的整篇文章。关键我也不是专业写这个的,有时候表达啊可能更愿意按照自己的想法。

但是更多的还是要自己去实践

在BGP的环境下做路由策略,它很多中方式。我全篇都是针对邻居做的Route-map

你可以针对特定的路由做Route-map(就是network后边也能携带Route-map)

重发布路由时也能携带Route-map。

至于说的network和neighbor的区别就是,你如果是用network的方式那么所有接收到该路由的邻居都能够继承你所配置的属性,但是如果你想针对特定的邻居生效那你就直接再用neighbor的方式。具体还有跟据情况决定。

原文地址:http://blog.51cto.com/13595867/2132137

时间: 2024-10-07 07:54:19

BGP中COMMUNITY属性的相关文章

BGP中正则表达式的理解

今天不经意和网上一个朋友聊到H3CTE 考试,不过很遗憾的上我考挂了,所以才和他讨论的,当时讨论BGP 的路由属性控制MED 和LOCAL-PECR ,突然帽出来个正则表达式,很郁闷的是,我一直都没怎么在乎这个东西,以前只是看到过,以为不怎么重要,今天他突然和我讲了下重要性,而且当时考H3CTE 就需要用上这个,汗~~~居然都不知道.和他聊完我立即找这相关方面的资料,找到了一点点,郁闷很难看懂啊,都是一些符号不好理解啊.没法呀,得学习^_^ 下面是对BGP 正则表达式的介绍 . 匹配任意单个字符

sphinx中复合属性字段sql_attr_multi的用法

sphinx中复合属性字段sql_attr_multi的用法 sql_attr_multi在sphinx可以用来检索有层级关系的数据,效率相当高,如,在数据库中用一个4层的分类,分类下对应着不用的文章,现在需要做一个文章列表,要求,选择第一级分类时属于它的子分类的文章也要显示出来,就可以用下面的方法建索引 sql_query=                 SELECT di.company_document_id as id,di.company_document_id,          

html中onclick属性问题

今天下午弄一下表格的分页跳转功能,其实一个小小的功能用javascript写一个小功能函数就可以实现的,可是居然花了我好长的时间,一直没法实现. 刚开始还以为是servlet中没有完整地嵌入HTML格式(因为是直接在servlet中实现的),后来测试才发现不用完整的格式也可以显示页面. 接着又质疑自己javascript是否写得不对(因为刚学没多久),然后就用外部链接的方式重新写了个测试输出的Javascript,发现其实没有错啊,但就是点了按钮之后没有反应. 最后我才对这个按钮产生怀疑,一看按

HTML5中meta属性

meta属性在HTML中占据了很重要的位置.如:针对搜索引擎的SEO,文档的字符编码,设置刷新缓存等.虽然一些网页可能没有使用meta,但是作为正规军,我们还是有必要了解一些meta的属性,并且能够熟练使用它们. 1.声明文档使用的字符编码 <meta charset='utf-8'> 2.声明文档的兼容模式 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 指示IE以目前可用的最

Hibernate 中配置属性详解(hibernate.properties)

Hibernate能在各种不同环境下工作而设计的, 因此存在着大量的配置参数.多数配置参数都 有比较直观的默认值, 并有随 Hibernate一同分发的配置样例hibernate.properties 来展示各种配置选项. 所需做的仅仅是将这个样例文件复制到类路径 (classpath)下并做一些自定义的修改. 属性1.Hibernate JDBC属性 属性名 用途 hibernate.connection.driver_class jdbc驱动类 hibernate.connection.ur

深入理解JavaScript中的属性和特性

深入理解JavaScript中的属性和特性? JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaScript中理解对象的本质.理解对象与类的关系.对象与引用类型的关系 对象属性如何进行分类 属性中特性的理解 第一部分:理解JavaScript中理解对象的本质.理解对象与类的关系.对象与引用类型的关系 对象的本质:ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数.即

javascript 构造函数中的属性与原型上属性优先级的比较

备注: 下面这个问题是我前天看书上发现的. 按照我以前的理解, a.rename()这个方法传什么值,结果都会弹出 小a,但我看书上的demo 弹出的是大A.... 我的困惑是:  js的构造函数中的属性与方法, 不是比原型对象上的属性与方法优先级要高吗?为什么会弹出的是大A? PS: 小弟很想有人能用通俗易通的语言, 简单的描述下,为什么会弹出的是 A, 而不是小 a.在此谢谢了  function F(name) { this.name = name; } var a = new F("a&

【cocos2d-js官方文档】十八、Cocos2d-JS v3.0中的属性风格API

1. 新的API风格 我们直接来看看你可以如何使用Cocos2d-JS v3.0: 以前的API 新的API node.setPosition(x, y); node.x = x; node.y = y; node.setRotation(r); node.rotation = r; 如表格中可以看到的,设置position属性的函数调用在3.0版中会被替换为直接的对象属性存取.不仅仅是示例中的x,y和rotation,几乎所有节点类型中关于属性存取的函数都会被替换为直接的对象属性访问.具体的属

angular在模板中使用属性引发Cannot read property &#39;xxx&#39; of undefined

在使用ng2的过程中,发现模板中如下方式 <li *ngFor="let item of model"> {{item.name}} </li> 不会又任何问题. 如果是一下未使用结构指令方式,直接使用组件的属性 <li > {{model.name}}</li> 就会报错null错误,一开始百思不得其解,后来搞明白,model是异步请求获取的数据,在定义的时候let mode:any 时是属于unde值,而这时组件模板已经开始渲染了,也