O atributo do BGP community é utilizado como para marcação para um determinado grupo de rotas. Provedores de Serviço utilizam essas marcações para aplicar políticas de roteamento específicas em suas redes, como por exemplo, alterando o Local Preference, MED, etc. O atributo simplifica a configuração das políticas de roteamento, gerenciamento e manutenção.
Os ISP’s podem também estabelecem um mapeamento de community com o cliente ou com outro provedor para que sejam aplicadas regras de roteamento.
O recebimento e envio de communities BGP em Roteadores HP necessitam da configuração explicita do comando advertise-community. No exemplo abaixo, segue a configuração de um peer BGP em um roteador com o Comware 7:
bgp 65500
group AS65500 internal
peer AS65500 connect-interface LoopBack1
peer 192.168.2.2 group AS65500
#
address-family ipv4 unicast
peer AS65500 enable
peer AS65500 advertise-community
#
O atributo community é opcional e transitivo (optional transitive) de tamanho variável. O atributo consiste em um conjunto de 4 octetos ou um número de 32 bits que específica uma community. A representação de uma community BGP é geralmente feita no formato AA:NN onde o AA é o Autonomous System (AS) e o NN é o número da community.
Algumas communities tem significados pré-definidos como:
- NO_EXPORT (0xFFFFFF01)
- NO_ADVERTISE (0xFFFFFF02)
- NO_EXPORT_SUBCONFED (0xFFFFFF03)
-A community NO_EXPORT diz ao roteador que ele deve propagar os prefixos somente dentro de peers iBGP e que não deve propagar esses prefixos para roteadores pares eBGP.
-A community NO_EXPORT_SUBCONFED possui as mesmas funcionalidades do NO_EXPORT dentro de cenários com confederation.
-A community NO_ADVERTISE diz ao roteador que ele não deve anunciar o prefixo para nenhum peer BGP.
Abaixo, deixamos um exemplo de configuração utilizando a community NO_EXPORT e o output:
R1 # ip prefix-list COMM_iBGP index 10 permit 192.168.11.0 24 # route-policy SET_COMM permit node 5 if-match ip address prefix-list COMM_iBGP apply community no-export # route-policy SET_COMM permit node 65535 # # bgp 65500 group AS65500 internal peer AS65500 connect-interface LoopBack1 peer 192.168.2.2 group AS65500 # address-family ipv4 unicast network 192.168.11.0 255.255.255.0 network 192.168.111.0 255.255.255.0 peer AS65500 enable peer AS65500 route-policy SET_COMM export peer AS65500 advertise-community #
Verificando no Roteador R2 a marcação enviada por R1 para o prefixo 192.168.11.0/24 :
[R2]display bgp routing-table ipv4 192.168.11.0
BGP local router ID: 192.168.22.2
Local AS number: 65500
Paths: 1 available, 1 best
BGP routing table information of 192.168.11.0/24:
From : 192.168.1.1 (192.168.11.1)
Rely nexthop : 192.168.12.1
Original nexthop: 192.168.1.1
OutLabel : NULL
Community : No-Export
AS-path : (null)
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0
State : valid, internal, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
Configurando os valores manualmente…
Um prefixo pode também participar de mais de uma community e com isso um roteador pode tomar uma ação em relação ao prefixo baseado em uma (algumas) ou todas as communities associadas ao prefixo. O roteador tem a opção de manter, adicionar ou modificar o atributo antes de passar para os outros roteadores.
# ip prefix-list COMM_eBGP index 10 permit 192.168.111.0 24 ip prefix-list COMM_iBGP index 10 permit 192.168.11.0 24 # route-policy SET_COMM permit node 5 if-match ip address prefix-list COMM_iBGP apply community no-export # route-policy SET_COMM permit node 10 if-match ip address prefix-list COMM_eBGP apply community 65500:90 # route-policy SET_COMM permit node 65535 # bgp 65500 group AS65500 internal peer AS65500 connect-interface LoopBack1 peer 192.168.2.2 group AS65500 # address-family ipv4 unicast network 192.168.11.0 255.255.255.0 network 192.168.111.0 255.255.255.0 peer AS65500 enable peer AS65500 route-policy SET_COMM export peer AS65500 advertise-community #
Verificando a marcação enviada por R1 do prefixo 192.168.111.0/24:
[R4] display bgp routing-table ipv4 192.168.111.0
BGP local router ID: 192.168.44.4
Local AS number: 65507
Paths: 1 available, 1 best
BGP routing table information of 192.168.111.0/24:
From : 192.168.24.2 (192.168.22.2)
Rely nexthop : 192.168.24.2
Original nexthop: 192.168.24.2
OutLabel : NULL
Community : <65500:90>
AS-path : 65500
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
Em resumo, as operadoras utilizam communities BGP para manipulação de grande quantidade de prefixos para fins de políticas de roteamento, blackhole, etc. Grandes corporações também as utilizam para identificação de rotas de empresas filiais, rotas aprendidas em fusões com outras empresas, políticas de roteamento, redes de serviço e mais.
Referências
http://babarata.blogspot.com.br/2010/05/bgp-atributo-community.html