O protocolo BGP possui a versatilidade de agregar redes e atributos; anunciando e modificando cada prefixo de maneira individual. Um desses atributos, o Community permite “taguear” o anuncio de cada rede individualmente de acordo com o negócio, políticas de roteamento ou para fins de troubleshooting.
De forma básica o uso de community (ou “comunidade BGP” em português) pode ser usado como uma flag para marcar um determinado grupo de rotas.
Provedores de Serviço utilizam essas marcações para aplicar políticas de roteamento específicas em suas redes, por exemplo alterando o Local Preference, MED ou Weight.
O atributo community é opcional e transitivo (optional transitive) e de tamanho variável, isto é, implementações BGP não necessitam reconhecer o atributo e fica ao critério do administrador de rede alterar ou reencaminhar para outros pares . O atributo consiste em um número de 32 bits que específica uma community. Sendo que sua representação é feita AA:NN onde o AA é o Autonomous System (AS) e o NN é o número da community.
Um prefixo pode participar de mais de uma community e os roteadores BGP podem tomar uma ação em relação à um prefixo baseado em uma, algumas ou todas as communities associadas ao prefixo.
O comando utilizado para configurar uma community em um Roteador Cisco (baseado no IOS) é via set community dentro de um route-map:
R1(config-route-map)#set community ? <1-4294967295> community number aa:nn community number in aa:nn format additive Add to the existing community 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
O comando “set community” apaga a comunidade existente vinculada a um prefixo substituindo-o pela nova community, a menos que seja especificado o comando additive após o valor da community.
R1(config-route-map)#set community 65535:1 additive
A community pode ser aplicada em um ou mais prefixos com a utilização de route-maps nos seguintes itens do processo BGP:
- No peering BGP de in/out
- Redistribuição
- Comando network
Três communities são definidas e reservadas na RFC 1997 para implementações BGP: NO-EXPORT (0xFFFFFF01 ), NO-ADVERTISE (0xFFFFFF02 ), and NO-ADVERTISE-SUBCONFED (0xFFFFFF03 ). Adicionalmente, NO-PEER (0xFFFFFF04 ) tem sido proposta em um draft para Internet [3].
NO-EXPORT é geralmente utilizado dentro de um AS para instruir os roteadores para não exportar o prefixo para vizinhos eBGP.
NO-ADVERTISE instrui um roteador BGP para não encaminhar o prefixo “tagueado” para qualquer vizinhos, seja iBGP ou eBGP.
NO-ADVERTISE-SUBCONFED é utilizado para prevenir um prefixo de ser anunciado para outros membros dentro da confederação.
NO-PEER é usado em situações onde é necessário o controle de engenharia de tráfego ao longo de um prefixo “mais específico”, restringindo a sua propagação apenas aos prestadores de trânsito e não seus pares. Ou seja, o prefixo é anunciado de AS para AS, desde que haja uma relação de trânsito / cliente, ao contrário do NO-EXPORT, que restringe a propagação do prefixo somente ao AS adjacente. Atualmente tal comunidade não é reconhecido pela maioria dos fabricantes e requer uma implementação manual.
Durante processos complexos de redistribuição de IGPs no BGP, o uso de community pode ser usado para detectar o protocolo de origem (por exemplo, uma community para IS-IS outra definida para OSPF, etc).
Community List
A Community-list é como uma ACL, só que para communities. Essas listas são adicionadas com o comando “ip community-list ” onde o valor é representado por “AA:NN” ou por caracteres especiais como, por exemplo, “*” que representa tudo.
Exemplo de configuração
No exemplo abaixo iremos anunciar 3 prefixos do ASN 65524, dois serão marcados com community e um sem community. No ASN 65525 iremos atribuir um valor de local preference para cada prefixo de acordo com a comunidade atribuída.

Roteador R4 ! ip bgp-community new-format ! Exibe o valor da community de 32 bits dividido em 2 de 16 separados por ":" ! ! Configurando as route-maps para atribuir o valor de community route-map SET_COMM_B permit 10 set community 65524:2 ! route-map SET_COMM_A permit 10 set community 65524:1 ! router bgp 65524 no synchronization bgp log-neighbor-changes network 172.16.100.0 mask 255.255.255.0 route-map SET_COMM_A network 172.16.101.0 mask 255.255.255.0 route-map SET_COMM_B network 172.16.102.0 mask 255.255.255.0 ! Anunciando as redes no processo BGP de acordo com as communities atribuídas neighbor 192.168.45.5 remote-as 65525 neighbor 192.168.45.5 send-community ! Permitindo o envio de community para o peer BGP no auto-summary ! ip classless ip route 172.16.100.0 255.255.255.0 Null0 ip route 172.16.101.0 255.255.255.0 Null0 ip route 172.16.102.0 255.255.255.0 Null0 ! end
Roteador R5
!
ip bgp-community new-format
! Exibe o valor da community de 32 bits dividido em 2 de 16 separados por ":"
!
! Community-list para filtro de valores de Communities
ip community-list standard LOCAL_PREF_150 permit 65524:1
ip community-list standard LOCAL_PREF_200 permit 65524:2
!
!
route-map SET_LOCAL_PREF permit 10
match community LOCAL_PREF_150
set local-preference 150
! Atribuindo o local preference aos prefixos da community-list
!
route-map SET_LOCAL_PREF permit 20
match community LOCAL_PREF_200
set local-preference 200
! Atribuindo o local preference aos prefixos da community-list
!
route-map SET_LOCAL_PREF permit 30
!
router bgp 65525
neighbor 192.168.45.4 remote-as 65524
neighbor 192.168.45.4 send-community
neighbor 192.168.45.4 route-map SET_LOCAL_PREF in
! Atribuíndo os route-maps configurados no peering BGP
no auto-summary
!
ip classless
!
end
!
! Verificando o valor de Local Preference atribuído a cada prefixo
R5#show ip bgp
BGP table version is 4, local router ID is 192.168.45.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure
Origin codes: i - IGP, e - EGP, ? – incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.100.0/24 192.168.45.4 0 150 0 65524 i
*> 172.16.101.0/24 192.168.45.4 0 200 0 65524 i
*> 172.16.102.0/24 192.168.45.4 0 0 65524 i
!
! Verificando o valor de community atribuído ao prefixo
R5#show ip bgp 172.16.100.0
BGP routing table entry for 172.16.100.0/24, version 2
Paths: (1 available, best #1)
Not advertised to any peer
65524
192.168.45.4 from 192.168.45.4 (192.168.45.4)
Origin IGP, metric 0, localpref 150, valid, external, best
Community: 65524:1
Até logo!!!
Referências
http://babarata.blogspot.com.br/2010/05/bgp-atributo-community.html
http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_6-2/bgp_communities.html