sábado, 29 de maio de 2010

BGP - Melhor rota pelo Router-ID


1        Seleção de rotas

O protocolo BGP possui um critério de seleção de rotas Baseado nos atributos aplicados nas rotas recebidas. Seu critério de seleção segue abaixo:
1.     Preferir o cainho com o maior WEIGHT configurado.
O WEIGHT é um parâmetro específico da Cisco System e é avaliado localmente no routeador que é configurado, ou seja, não é enviado para os vizinhos junto com a rota.
2.     Preferir o caminho com o maior valor de LOCAL_PREF.
Um caminho sem LOCAL_PREF possui o valor configurado no comando “bgp default local-preference” ou o valor de 100 por padrão.
3.     Preferir o caminho originado localmente pelo comando network ou aggregate ou por uma redistribuição do IGP. Caminhos locais que são originados pelos comandos network ou redistribute são preferidos do que os aggregates.
4.     Preferir o caminho com o menor AS_PATH.
Considerações:
         Esse passo é ignorado se estiver configurado “bgp bestpath as-path ignore”.
         Um AS_SET conta como 1, no importando quantos Ass existem no set.
         Os ASs de confederation não são incluidos no tamanho do AS_PATH.
5.     Preferir o caminho com o menor tipo de origem.
O IGP (i) é melhor que o EGP (e) e o EGP ié melhor que INCOMPLETE (?).
6.     Preferir o caminho com a menor métrica multi-exit discriminator (MED).
Considerações:
         Essa comparação somente ocorre se o primeiro AS (AS vizinho) for o mesmo dos dois caminhos. Todos os confederation sub-Ass são ignorados.
         Se o comando “bgp always-compare-med” estiver configurado o MED sera comparado para todos os caminhos. Você deve desabilitar essa opção em todo o AS, caso contrário loops poderão ocorrer.
         Se o comando “bgp bestpath med-confed” estiver configurado o MED será comparado paratodos os caminhos que estiverem somente no AS_CONFED_SEQUENCE. Esses caminhos são originados dentro da confederação local.
         Por padrão um caminho é recebido com o MED no valor 0 ao menos que tenha sido configurado  0 comando “bgp bestpath med missing-as-worst” que ajusta o MED do caminho para 4,294,967,294.
         O MED dos caminhos que são recebidos dos vizinhos com o valor 4,294,967,295 são alterados para o valor 4,294,967,294 antes de serem inseridos na tabela de roteamento BGP.
7.     Preferir caminhos externos (eBGP) à internos (iBGP).
Caminhos que contenham sequencia de AS de confederation são considerados locais a confederação. Portanto, esses caminhos são tratados como caminhos internos. Não há distinção entre externo e interno na confederação.
8.     Preferir os caminhos com menor métrica IGP para o nexthop BGP.
9.     Preferir rotas externas mais antigas. Essa regra é válida caso não esteja configurado nenhum “bgp bestpath”.
10. Preferir as rotas recebidas de um roteador BGP com menor Router ID. O router ID é o maior endereço IP do roteador que é escolhido o IP da loopback. Pode-se usar o comando “bgp router-id” para configurar manualmente.
Se um caminho for aprendido por um route reflector (RR), o originator ID substitui o router ID.
11. Se o originator ID ou o router ID for o mesmo para caminhos múltiplos, preferir o caminho com o menor tamanho de cluster list. Isso só existe em ambientes com RR.
12. Preferir um caminho com o menor endereço do vizinho. Esse endereço é o endereço IP que é usado na configuração de vizinhança BGP.

2        Cenário

2.1           Objetivo

Seis roteadores (R1, R2, R3, R4, R5 e R6) são conectados fisicamente R1-R2-R3-R4-R5-R6-R1 e devem ser configurados com roteamento BGP seguindo os criterios abaixo:
         Os roteadores R1, R2 e R3 devem possuir como IGP o OSPF na área 0 divulgando suas interfaces físicas, porém as interfaces externas do AS deverão ficar no modo passivo;
         Os roteadores R4, R5 e R6 pertencem aos AS 4, 5 e 6 respectivamente e deverão fazer conexão EBGP R4 com R5 e R5 com R6;
         O R1 (AS 123) deverá fazer conexão EBGP com o R4 (AS 456) e IBGP com o R2 (AS 123) divulgando somente a sua loopback (1.1.1.1);
         O R3 (AS 123) deverá fazer conexão EBGP com o R6 (AS 456) e IBGP com o R2 (AS 123);
         O roteador R2 é Router-reflectors do seu AS;

2.2           Topologia

Figure-01:              Topologia

2.3           IOS utilizados

         R1, R2, R3, R4, R5 e R6 – c7200-js-mz.123-7.T.bin

2.4           Configuração dos Roteadores

Em todos os roteadores, antes de configurar o roteamento BGP, deve-se configurar o IGP, ou seja, o roteamento interno para que os roteadores possam conhecer o endereço IP para fechar a conexão BGP e também para que a rota seja divulgada na tabela de roteamento BGP. Esse IGP pode ser OSPF, ISIS, estático, etc.

2.4.1      Configurações do OSPF

Para o OSPF a configuração é feita pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. Para adicionar interfaces usa-se o comando “network
area ”. Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.

2.4.2      Configurações do BGP

No BGP, agora que os roteadores conhecem os endreços IPs de seus vizinhos pelo IGP, configura-se-o em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do provedor. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ”, onde se o for igual ao AS do roteador a conexão é IBGP, se for diferente será EBGP.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “router-id ”. Para divulgar rede no BGP é necessário que a rede exista na tabela de roteamento interna e ou adicionar o comando “network mask ” ou redistribuindo rotas para o BGP com o comando “redistribute ”.
Os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, pois o BGP só divulga para o vizinho rotas aprendidas por EBGP, ou seja, rotas externas. Para isso ou faz-se o full-mesh de conexão BGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
De acordo com o critério de seleção de rotas do BGP, é necessário que os critérios Weight, Local Preference, AS_PATH, origem e métrica IGP empatem e também seja adicionado o comand “bgp bestpath compare-routerid” para que seja feita a avaliação da rota baseado no Router-ID. O comando “bgp bestpath compare-routerid” é necessário para que não seja usada a rota mais antiga como melhor caminho.

2.5           Observações e Bugs

Documentação:

2.6           Comandos Importantes de Verificação

R5#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 3
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1        
  4 123
    45.45.45.4 from 45.45.45.4 (44.44.44.44)
      Origin IGP, localpref 100, valid, external
  6 123
    56.56.56.6 from 56.56.56.6 (6.6.6.6)
      Origin IGP, localpref 100, valid, external, best  1        

3        Configuração

3.1           R1

!
router ospf 1
 network 12.12.12.1 0.0.0.0 area 0
 network 14.14.14.1 0.0.0.0 area 0
!
router bgp 123
 network 1.1.1.1 mask 255.255.255.255
 neighbor 12.12.12.2 remote-as 123
 neighbor 14.14.14.4 remote-as 4
!      

3.2           R2

!
router ospf 1
 network 12.12.12.2 0.0.0.0 area 0
 network 23.23.23.2 0.0.0.0 area 0
!
router bgp 123
 neighbor 12.12.12.1 remote-as 123
 neighbor 23.23.23.3 remote-as 123
!      

3.3           R3

!
router ospf 1
 network 23.23.23.3 0.0.0.0 area 0
 network 36.36.36.3 0.0.0.0 area 0
!
router bgp 123
 neighbor 23.23.23.2 remote-as 123
 neighbor 36.36.36.6 remote-as 6
!      

3.4           R4

!
router bgp 4
 bgp router-id 44.44.44.44
 neighbor 14.14.14.1 remote-as 123
 neighbor 45.45.45.5 remote-as 5
!      

3.5           R5

!
router bgp 5
 bgp bestpath compare-routerid
 neighbor 45.45.45.4 remote-as 4
 neighbor 56.56.56.6 remote-as 6
!      

3.6           R6

!
router bgp 6
 bgp router-id 6.6.6.6
 neighbor 36.36.36.3 remote-as 123
 neighbor 56.56.56.5 remote-as 5
!     

BGP - Seleção de rota pelo IGP


1        Seleção de rotas

O protocolo BGP possui um critério de seleção de rotas Baseado nos atributos aplicados nas rotas recebidas. Seu critério de seleção segue abaixo:
1.     Preferir o cainho com o maior WEIGHT configurado.
O WEIGHT é um parâmetro específico da Cisco System e é avaliado localmente no routeador que é configurado, ou seja, não é enviado para os vizinhos junto com a rota.
2.     Preferir o caminho com o maior valor de LOCAL_PREF.
Um caminho sem LOCAL_PREF possui o valor configurado no comando “bgp default local-preference” ou o valor de 100 por padrão.
3.     Preferir o caminho originado localmente pelo comando network ou aggregate ou por uma redistribuição do IGP. Caminhos locais que são originados pelos comandos network ou redistribute são preferidos do que os aggregates.
4.     Preferir o caminho com o menor AS_PATH.
Considerações:
         Esse passo é ignorado se estiver configurado “bgp bestpath as-path ignore”.
         Um AS_SET conta como 1, no importando quantos Ass existem no set.
         Os ASs de confederation não são incluidos no tamanho do AS_PATH.
5.     Preferir o caminho com o menor tipo de origem.
O IGP (i) é melhor que o EGP (e) e o EGP ié melhor que INCOMPLETE (?).
6.     Preferir o caminho com a menor métrica multi-exit discriminator (MED).
Considerações:
         Essa comparação somente ocorre se o primeiro AS (AS vizinho) for o mesmo dos dois caminhos. Todos os confederation sub-Ass são ignorados.
         Se o comando “bgp always-compare-med” estiver configurado o MED sera comparado para todos os caminhos. Você deve desabilitar essa opção em todo o AS, caso contrário loops poderão ocorrer.
         Se o comando “bgp bestpath med-confed” estiver configurado o MED será comparado paratodos os caminhos que estiverem somente no AS_CONFED_SEQUENCE. Esses caminhos são originados dentro da confederação local.
         Por padrão um caminho é recebido com o MED no valor 0 ao menos que tenha sido configurado  0 comando “bgp bestpath med missing-as-worst” que ajusta o MED do caminho para 4,294,967,294.
         O MED dos caminhos que são recebidos dos vizinhos com o valor 4,294,967,295 são alterados para o valor 4,294,967,294 antes de serem inseridos na tabela de roteamento BGP.
7.     Preferir caminhos externos (eBGP) à internos (iBGP).
Caminhos que contenham sequencia de AS de confederation são considerados locais a confederação. Portanto, esses caminhos são tratados como caminhos internos. Não há distinção entre externo e interno na confederação.
8.     Preferir os caminhos com menor métrica IGP para o nexthop BGP.
9.     Preferir as rotas recebidas de um roteador BGP com menor Router ID. O router ID é o maior endereço IP do roteador que é escolhido o IP da loopback. Pode-se usar o comando “bgp router-id” para configurar manualmente.
Se um caminho for aprendido por um route reflector (RR), o originator ID substitui o router ID.
10. Se o originator ID ou o router ID for o mesmo para caminhos múltiplos, preferir o caminho com o menor tamanho de cluster list. Isso só existe em ambientes com RR.
11. Preferir um caminho com o menor endereço do vizinho. Esse endereço é o endereço IP que é usado na configuração de vizinhança BGP.

2        Cenário

2.1           Objetivo

Seis roteadores (R1, R2, R3, R4, R5 e R6) são conectados fisicamente R1-R2-R3-R4-R5-R6-R1 e devem ser configurados com roteamento BGP seguindo os criterios abaixo:
         Os roteadores R1, R2 e R3 devem possuir como IGP o OSPF na área 0 divulgando suas interfaces físicas, porém as interfaces externas do AS deverão ficar no modo passivo;
         Os roteadores R4, R5 e R6 devem possuir como IGP o também o OSPF na área 0 divulgando suas interfaces físicas, porém as interfaces externas do AS deverão ficar no modo passivo;
         O R1 (AS 123) deverá fazer conexão EBGP com o R4 (AS 456) e IBGP com o R2 (AS 123) divulgando somente a sua loopback (1.1.1.1);
         O R3 (AS 123) deverá fazer conexão EBGP com o R6 (AS 456) e IBGP com o R2 (AS 123);
         Os roteadores R2 e R5 deverão ser Router-reflectors dos seus respectivos AS;

2.2           Topologia

Figure-01:              Topologia

2.3           IOS utilizados

         R1, R2, R3, R4, R5 e R6 – c7200-js-mz.123-7.T.bin

2.4           Configuração dos Roteadores

Em todos os roteadores, antes de configurar o roteamento BGP, deve-se configurar o IGP, ou seja, o roteamento interno para que os roteadores possam conhecer o endereço IP para fechar a conexão BGP e também para que a rota seja divulgada na tabela de roteamento BGP. Esse IGP pode ser OSPF, ISIS, estático, etc.

2.4.1      Configurações do OSPF

Para o OSPF a configuração é feita pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. Para adicionar interfaces usa-se o comando “network
area ”. Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.

2.4.2      Configurações do BGP

No BGP, agora que os roteadores conhecem os endreços IPs de seus vizinhos pelo IGP, configura-se-o em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do provedor. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ”, onde se o for igual ao AS do roteador a conexão é IBGP, se for diferente será EBGP.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “router-id ”. Para divulgar rede no BGP é necessário que a rede exista na tabela de roteamento interna e ou adicionar o comando “network mask ” ou redistribuindo rotas para o BGP com o comando “redistribute ”.
Os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, pois o BGP só divulga para o vizinho rotas aprendidas por EBGP, ou seja, rotas externas. Para isso ou faz-se o full-mesh de conexão BGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
De acordo com o critério de seleção de rotas do BGP, é necessário que os critérios Weight, Local Preference, AS_PATH e origem empatem para que seja feita a avaliação da rota baseado no IGP, no caso o OSPF. Configura-se então o custo do link no OSPF priorizando um caminho.

2.5           Observações e Bugs

Documentação:

3        Configuração

3.1           Comandos Importantes de Verificação

R5#sh ip route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
B       1.1.1.1 [200/0] via 36.36.36.3, 00:09:16
     5.0.0.0/32 is subnetted, 1 subnets
C       5.5.5.5 is directly connected, Loopback0
     36.0.0.0/24 is subnetted, 1 subnets
O       36.36.36.0 [110/6] via 56.56.56.6, 00:09:56, FastEthernet1/0
     56.0.0.0/24 is subnetted, 1 subnets
C       56.56.56.0 is directly connected, FastEthernet1/0
     14.0.0.0/24 is subnetted, 1 subnets
O       14.14.14.0 [110/11] via 45.45.45.4, 00:09:56, FastEthernet0/0
     45.0.0.0/24 is subnetted, 1 subnets
C       45.45.45.0 is directly connected, FastEthernet0/0

R5#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 4
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1        
  123, (Received from a RR-client)
    14.14.14.1 (metric 11) from 45.45.45.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal
  123, (Received from a RR-client)
    36.36.36.3 (metric 6) from 56.56.56.6 (6.6.6.6)
      Origin IGP, metric 0, localpref 100, valid, internal, best

R5#show ip ospf interface bri
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Fa1/0        1     0               56.56.56.5/24      5     BDR   1/1
Fa0/0        1     0               45.45.45.5/24      10    DR    1/1

3.2           R1

router ospf 1
 passive-interface FastEthernet1/0
 network 12.12.12.1 0.0.0.0 area 0
 network 14.14.14.1 0.0.0.0 area 0
!
router bgp 123
 network 1.1.1.1 mask 255.255.255.255
 neighbor 12.12.12.2 remote-as 123
 neighbor 14.14.14.4 remote-as 456
!

3.3           R2

!
router ospf 1
 network 12.12.12.2 0.0.0.0 area 0
 network 23.23.23.2 0.0.0.0 area 0
!
router bgp 123
 neighbor 12.12.12.1 remote-as 123
 neighbor 12.12.12.1 route-reflector-client
 neighbor 23.23.23.3 remote-as 123
 neighbor 23.23.23.3 route-reflector-client
!

3.4           R3

!
router ospf 1
 passive-interface FastEthernet0/0
 network 23.23.23.3 0.0.0.0 area 0
 network 36.36.36.3 0.0.0.0 area 0
!
router bgp 123
 neighbor 23.23.23.2 remote-as 123
 neighbor 36.36.36.6 remote-as 456
!

3.5           R4

!
router ospf 1
 passive-interface FastEthernet1/0
 network 14.14.14.4 0.0.0.0 area 0
 network 45.45.45.4 0.0.0.0 area 0
!
router bgp 456
 neighbor 14.14.14.1 remote-as 123
 neighbor 45.45.45.5 remote-as 456
!

3.6           R5

!
interface FastEthernet0/0
 ip ospf cost 10
!        
interface FastEthernet1/0
 ip ospf cost 5
!
router ospf 1
 network 45.45.45.5 0.0.0.0 area 0
 network 56.56.56.5 0.0.0.0 area 0
!
router bgp 456
 neighbor 45.45.45.4 remote-as 456
 neighbor 45.45.45.4 route-reflector-client
 neighbor 56.56.56.6 remote-as 456
 neighbor 56.56.56.6 route-reflector-client
!

3.7           R6

!
router ospf 1
 passive-interface FastEthernet0/0
 network 36.36.36.6 0.0.0.0 area 0
 network 56.56.56.6 0.0.0.0 area 0
!
router bgp 456
 neighbor 36.36.36.3 remote-as 123
 neighbor 56.56.56.5 remote-as 456
!

sexta-feira, 28 de maio de 2010

BGP - Atributo Community


1        Atributo Community

A community é um atributo do BGP que pode ser usado como um 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.
Os provedores estabelecem um mapeamento de community com o cliente ou com outro provedor para que sejam aplicadas regras de roteamento.
A community é um grupo de prefixos que são compartilhados e podem ser configurados no atributo community do BGP. 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. 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. Um roteador BGP pode tomar uma ação em relação à um prefixo baseado em uma, algumas ou todas as communities associadas ao prefixo. O roteador tem a opção de adicionar ou modificar o atributo antes de passar para os outros pares.
O atributo community não é utilizado por padrão, ou seja, deve ser configurado para que o roteador envie o atributo para o seu vizinho. Essa configuração é feita especificamente para cada vizinho. O roteador Cisco também não vem com a representação AA:NN habilitada por padrão, então deve-se habilita-la.
As communities são geralmente aplicadas, modificadas ou interpretadas utilizando route-maps.

1.1           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.
Essas community-list são aplicadas nos route-maps.

2        Cenário

2.1           Objetivo

Seis roteadores (R1, R2, R3, R4, R5 e R6) são conectados fisicamente R1-R2-R3-R4-R5-R6-R1 e devem ser configurados com roteamento BGP seguindo os criterios abaixo:
         Os roteadores R1, R2 e R3 devem possuir como IGP o OSPF na área 0 divulgando suas interfaces físicas;
         Os roteadores R4, R5 e R6 devem possuir como IGP o ISIS, Level-2 somente, na área 49.0456 divulgando suas interfaces físicas;
         O R1 (AS 123) deverá fazer conexão EBGP com o R4 (AS 456) e IBGP com o R2 (AS 123) divulgando somente a sua loopback (1.1.1.1) com a community 123:1;
         O R3 (AS 123) deverá fazer conexão EBGP com o R6 (AS 456) e IBGP com o R2 (AS 123) divulgando somente a sua loopback (3.3.3.3) com a community 123:3;
         O R4 e o R6 devem divulgar suas respectivas loopbacks no BGP, porém como no-export para que não sejam divulgadas fora do AS;
         O R5 deve divulgar a sua loopback (5.5.5.5) com a community 456:5 e essa community deve ser trocada nos roteadores de borda do AS 123 para a community 123:456;
         Os roteadores R2 e R5 deverão ser Router-reflectors dos seus respectivos AS;

2.2           Topologia

Figure-01:              Topologia

2.3           IOS utilizados

         R1, R2, R3, R4, R5 e R6 – c7200-js-mz.123-7.T.bin

2.4           Configuração dos Roteadores

Em todos os roteadores, antes de configurar o roteamento BGP, deve-se configurar o IGP, ou seja, o roteamento interno para que os roteadores possam conhecer o endereço IP para fechar a conexão BGP e também para que a rota seja divulgada na tabela de roteamento BGP. Esse IGP pode ser OSPF, ISIS, estático, etc.

2.4.1      Configurações do OSPF

Para o OSPF a configuração é feita pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. Para adicionar interfaces usa-se o comando “network
area ”. Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.

2.4.2      Configurações do ISIS

Para o ISIS é configurado pelo comando “router Isis” independente da área e level e não possui o número de área no comando principal como o OSPF. Na configuração de roteamento é adicionado o endereço NSAP, que é o endereço único do roteador no ISIS configurado pelo comando “net” com o formato “49.XXXX.0000.0000.000Y.00. O “49” indica ser uma área privada e o “Y” um valor diferente dos demais roteadores.
Por padrão, todos os roteadores são Level-1-2. Deve-se alterar o level do roteador dentro do “router Isis” ou nas interfaces.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.

2.4.3      Configurações do BGP

No BGP, agora que os roteadores conhecem os endreços IPs de seus vizinhos pelo IGP, configura-se-o em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do provedor. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ”, onde se o for igual ao AS do roteador a conexão é IBGP, se for diferente será EBGP.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “router-id ”. Para divulgar rede no BGP é necessário que a rede exista na tabela de roteamento interna e ou adicionar o comando “network mask ” ou redistribuindo rotas para o BGP com o comando “redistribute ”.
Os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, pois o BGP só divulga para o vizinho rotas aprendidas por EBGP, ou seja, rotas externas. Para isso ou faz-se o full-mesh de conexão BGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
Para que o atributo community seja enviado nas atualizações de rotas, deve-se adicionar o comando “neighbor send-community both” para os vizinhos.
Para modificar o formato da community usado no roteador usa-se o comando “ip bgp-community new-format” que é de suma importância executa-lo no exame CCIE LAB.
Geralmente communities são aplicadas em uma rota usando route-map associado a uma lista de acesso. Na lista de acesso se “permite” uma determinada rede que é vinculada ao “match” do route-map. A community é adicionada no comando “set community ” onde o termo podem ser as communities padrão (no-export, no advertise,...) ou uma community específica AA:NN onde “AA” é o AS e o NN o valor da community.
A aplicação do route-map deve ser feita ou na configuração do vizinho com “neightbor mask route-map ”, ou na redistribuição de rota “redistribute route-map ” ou no comando na divulgação de rede “network mask route-map ”.
No route-map deve-se adicionar um último termo com “permit” para que o resto das rotas sejam aceitas ou “deny” para que nenhuma outra rota seja aceita.
Pode ser aplicado Local Preference, weight, outra community, MED, etc. baseado em uma community associada a um grupo de rotas. Ou seja, configura-se um route-map de entrada em um vizinho BGP para que todas as rotas que vierem com uma determinada community configurada seja aplicado o Local Preference 400, depois coloca-se uma regra de route-map permitindo que as outras rotas sejam recebidas normalmente.

2.5           Observações e Bugs

Observe que nos roteadores R1 e R3 são configurados as communities nas suas respectivas loopbacks que é divulgado para todos os vizinhos. Já nos R4 e R5 é usada a aplicação de Local Preference nas rotas baseado em community.
A community aplicada no R4 e R6 para suas respectivas loopbacks é a no-export que não envia para outro AS a rota.
Documentação:

2.6           Comandos Importantes de Verificação

R5#show ip route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
B       1.1.1.1 [200/0] via 36.36.36.3, 00:23:50
     3.0.0.0/32 is subnetted, 1 subnets
B       3.3.3.3 [200/0] via 14.14.14.1, 00:14:56
     4.0.0.0/32 is subnetted, 1 subnets
B       4.4.4.4 [200/0] via 45.45.45.4, 01:05:04
     5.0.0.0/32 is subnetted, 1 subnets
C       5.5.5.5 is directly connected, Loopback0
     36.0.0.0/24 is subnetted, 1 subnets
i L2    36.36.36.0 [115/20] via 56.56.56.6, FastEthernet1/0
     6.0.0.0/32 is subnetted, 1 subnets
B       6.6.6.6 [200/0] via 56.56.56.6, 00:55:20
     56.0.0.0/24 is subnetted, 1 subnets
C       56.56.56.0 is directly connected, FastEthernet1/0
     14.0.0.0/24 is subnetted, 1 subnets
i L2    14.14.14.0 [115/10] via 45.45.45.4, FastEthernet0/0
     45.0.0.0/24 is subnetted, 1 subnets
C       45.45.45.0 is directly connected, FastEthernet0/0

R4#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 23
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
     2         
  123
    14.14.14.1 from 14.14.14.1 (1.1.1.1)
      Origin incomplete, metric 0, localpref 100, valid, external
      Community: 123:1
  123
    36.36.36.3 (metric 30) from 45.45.45.5 (5.5.5.5)
      Origin incomplete, metric 0, localpref 400, valid, internal, best
      Community: 123:1
      Originator: 6.6.6.6, Cluster list: 5.5.5.5

R6#sh ip bgp 3.3.3.3 
BGP routing table entry for 3.3.3.3/32, version 26
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
     2        
  123
    36.36.36.3 from 36.36.36.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, external
      Community: 123:3
  123
    14.14.14.1 (metric 20) from 56.56.56.5 (5.5.5.5)
      Origin IGP, metric 0, localpref 400, valid, internal, best
      Community: 123:3
      Originator: 4.4.4.4, Cluster list: 5.5.5.5

R2#show ip bgp 5.5.5.5
BGP routing table entry for 5.5.5.5/32, version 27
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1        
  456, (Received from a RR-client)
    14.14.14.4 (metric 2) from 12.12.12.1 (1.1.1.1)
      Origin incomplete, metric 0, localpref 100, valid, internal, best
      Community: 123:456
  456, (Received from a RR-client)
    36.36.36.6 (metric 2) from 23.23.23.3 (3.3.3.3)
      Origin incomplete, metric 0, localpref 100, valid, internal
      Community: 123:456

3        Configuração

3.1           R1

router ospf 1
 network 12.12.12.1 0.0.0.0 area 0
 network 14.14.14.1 0.0.0.0 area 0
!
router bgp 123
 bgp router-id 1.1.1.1
 redistribute connected route-map set-community_123:1
 neighbor 12.12.12.2 remote-as 123
 neighbor 12.12.12.2 send-community both
 neighbor 12.12.12.2 route-map set-community_123:456 out
 neighbor 14.14.14.4 remote-as 456
 neighbor 14.14.14.4 send-community both
!
!        
ip bgp-community new-format
ip community-list 456 permit 456:*
!
!
ip access-list standard lo0
 permit 1.1.1.1
!
!
route-map set-community_123:1 permit 10
 match ip address lo0
 set community 123:1
!
route-map set-community_123:1 deny 20
!
route-map set-community_123:456 permit 10
 match community 456
 set community 123:456
!
route-map set-community_123:456 permit 20
!

3.2           R2

!
router ospf 1
 network 12.12.12.2 0.0.0.0 area 0
 network 23.23.23.2 0.0.0.0 area 0
!
router bgp 123
 bgp router-id 2.2.2.2
 neighbor 12.12.12.1 remote-as 123
neighbor 23.23.23.2 route-map set-community_123:456 out
 neighbor 36.36.36.6 remote-as 456
 neighbor 36.36.36.6 send-community both
!
!
ip community-list 456 permit 456:.
!
!
ip access-list standard lo0
 permit 3.3.3.3
!
!
route-map set-community_123:3 permit 10
 match ip address lo0
 set community 123:3
!
route-map set-community_123:3 deny 20
!
route-map set-community_123:456 permit 10
 match community 456
 set community 123:456
!
route-map set-community_123:456 permit 20
!
ip bgp-community new-format ! alteracao do formato de community para AA:NN
!

3.3           R3

!
router ospf 1
 network 23.23.23.3 0.0.0.0 area 0
 network 36.36.36.3 0.0.0.0 area 0
!
router bgp 123
 bgp router-id 3.3.3.3
 network 3.3.3.3 mask 255.255.255.255 route-map set-community_123:3
 neighbor 23.23.23.2 remote-as 123
 neighbor 23.23.23.2 send-community both
 neighbor 36.36.36.6 remote-as 456
 neighbor 36.36.36.6 send-community both
!
ip bgp-community new-format ! alteracao do formato de community para AA:NN
!        
!
ip access-list standard lo0
 permit 3.3.3.3
!
!
route-map set-community_123:3 permit 10
 match ip address lo0
 set community 123:3
!

3.4           R4

!
interface FastEthernet0/0
 ip router isis
!        
!
router isis
 net 49.0456.0000.0000.0004.00
 is-type level-2-only
 passive-interface FastEthernet1/0
!
router bgp 456
 bgp router-id 4.4.4.4
 network 4.4.4.4 mask 255.255.255.255 route-map no-export
 neighbor 14.14.14.1 remote-as 123
 neighbor 14.14.14.1 send-community both
 neighbor 14.14.14.1 route-map 123:3_set_LP_400 in
 neighbor 45.45.45.5 remote-as 456
 neighbor 45.45.45.5 send-community both
!
!
ip bgp-community new-format ! alteracao do formato de community para AA:NN
!
ip community-list 3 permit 123:3 ! lista para identificar a community 123:3
!
!
ip access-list standard lo0
 permit 4.4.4.4
!
!
route-map no-export permit 10
 match ip address lo0
 set community no-export
!
route-map 123:3_set_LP_400 permit 10
 match community 3
 set local-preference 400
!
route-map 123:3_set_LP_400 permit 20
!

3.5           R5

!
interface FastEthernet0/0
 ip router isis
!        
interface FastEthernet1/0
 ip router isis
!
router isis
 net 49.0456.0000.0000.0005.00
 is-type level-2-only
!
router bgp 456
 bgp router-id 5.5.5.5
 redistribute connected metric 99999 route-map set-communty_456:5
 neighbor 45.45.45.4 remote-as 456
 neighbor 45.45.45.4 route-reflector-client
 neighbor 45.45.45.4 send-community both
 neighbor 56.56.56.6 remote-as 456
 neighbor 56.56.56.6 route-reflector-client
 neighbor 56.56.56.6 send-community both
!
!
ip bgp-community new-format ! alteracao do formato de community para AA:NN
!
!
ip access-list standard lo0
 permit 5.5.5.5
!
!
route-map set-communty_456:5 permit 10
 match ip address lo0
 set community 456:5
!

3.6           R6

!
interface FastEthernet0/0
 ip router isis
!        
interface FastEthernet1/0
 ip router isis
!
router isis
 net 49.0456.0000.0000.0006.00
 is-type level-2-only
!
router bgp 456
 bgp router-id 6.6.6.6
 network 6.6.6.6 mask 255.255.255.255 route-map no-export
 neighbor 36.36.36.3 remote-as 123
 neighbor 36.36.36.3 send-community both
 neighbor 36.36.36.3 route-map 123:3_set_LP_400 in
 neighbor 56.56.56.5 remote-as 456
 neighbor 56.56.56.5 send-community both
!
!
ip bgp-community new-format ! alteracao do formato de community para AA:NN
!
ip community-list 1 permit 123:1 ! lista para identificar a community 123:1
!
!
ip access-list standard lo0
 permit 6.6.6.6
!
!
route-map no-export permit 10
 match ip address lo0
 set community no-export
!
route-map 123:3_set_LP_400 permit 10
 match community 1
 set local-preference 400
!
route-map 123:3_set_LP_400 permit 20
!