BGP communities 属性

BGP community 属性属于可选可传递属性,不支持该属性的路由器会原封不动的将community 值传递给下游BGP邻居(前提是配置了传递community 属性)。

BGP community 属性可以简化网络中路由器对相同路由条目的匹配工作,如果在一个大型网络中所有路由器上都需要匹配相同的路由条目,如果用ACL或者前缀列表进行匹配,则工作量比较大,所以可以在一台路由器上为相应的路由条目打上community 属性值,在其他路由器上可以通过匹配community 属性值的方式间接地来匹配路由条目,从而简化了路由条目的匹配工作。

Community 属性的类别:

可以分为私有community 属性值和众所周知的community 属性值。

私有的community 属性值通常用4字节的数字来表示(可以为一个32位的数,也可以是两个16位的数字,如1001

CISCO 的路由器中,默认是以32位的数字显示,如果要转换成两个16位的数字,则需用通过命令进行转换((config)#ip bgp-community new-format),会同时转换BGP表中的显示格式和配置文件中的显示格式。

ip bgp-community new-format 命令仅对本路由器有效,对邻居路由器无效。

众所周知的community 属性值主要有:

no-advertise : 不通告给任何BGP邻居(最严格)。

no-export : 不通告给任何EBGP邻居,如果存在BGP联邦,则会在联邦内的EBGP邻居之间传递。

local-AS :仅在AS 内传递,如果存在BGP联邦,

internet :表示所有路由,可以通过匹配Internet 属性来匹配所有的路由条目

当路由器接受到一条带有众所周知community 属性值的路由条目时,必须要做出相应的动作(根据community 属性值不同而不同)

也可以分为标准的community 属性值和扩展的community 属性值。

扩展的community 属性值一般在MPLS ××× 网络中才会涉及到。

注:

一条路由前缀可以携带多个community 值,可以同时携带私有community值和众所周知的community值。

在任何一台BGP 路由器上可以覆盖、追加、删除community 值。

BGP community 属性值不会自动传递给邻居,必须为特定的邻居配置传递。

(config-router)#neighbor 192.168.12.2 send-community ##为特定的邻居发送路由时传递community 属性。

配置:

为路由条目添加community 属性值

1、使用ACL或者前缀列表匹配需要添加community 属性值的路由条目,尽量使用前缀列表匹配

(config)#ip prefix-list 1 permit 1.1.1.1/32

2、定义一个route-map ,匹配到相应的路由条目,并且追加或者覆盖community 属性值

(config)#route-map 1 permit 10

(config-route-map)# match ip address prefix-list 1 ##匹配需要添加community 属性的路由条目

(config-route-map)# set community 126:1 ##为匹配到的路由条目打上一个私有的community