Você está na página 1de 7

Community BGP

Outro atributo que pode ser muito útil quando necessário para influenciar a seleção do caminho são as community BGP. Esta é uma classe transitiva opcional que é suportada por cada fornecedor agora por dias. A finalidade dele é para bàsicamente marcar cada rota que vem ou que vai a um vizinho de eBGP com um descritor das sortes. Há um par de formatos diferentes para community (2 octects / 32 bits).

  • 1. Valor inteiro entre <1-4294967295>

  • 2. ASN: Integer <65000: 123>

Note: Best Practice is the ASN:Integer notation

Abaixo está o cenário em que estaremos trabalhando.

As redes estão em R3 / R4 para simplicidade como apenas loopback ip que são anunciados para fora BGP via o comando de rede. R2 está recebendo atualizações de rede idênticas a partir de R3 / R4, mas escolher R3 dado que é router-id é menor. Ver abaixo.

Gateway of last resort is not set

B

1.0.0.0/32 is subnetted, 1 subnets 1.1.1.1 [200/0] via 10.2.2.10, 00:19:49

**

50.0.0.0/24 is subnetted, 1 subnets

B

50.50.50.0 [20/0] via 10.2.2.1, 01:19:05**

C

2.0.0.0/32 is subnetted, 1 subnets

B

2.2.2.2 is directly connected, Loopback0 70.0.0.0/24 is subnetted, 1 subnets 70.70.70.0 [20/0] via 10.2.2.1, 01:19:05** 10.0.0.0/30 is subnetted, 3 subnets

C

10.2.2.8 is directly connected, FastEthernet2/0

C

10.2.2.0 is directly connected, FastEthernet0/0

C

10.2.2.4 is directly connected, FastEthernet1/0

**

60.0.0.0/24 is subnetted, 1 subnets color

B

60.60.60.0 [20/0] via 10.2.2.1,** 01:19:07

A razão para a nossa rota preferida via R3 como mencionado acima é porque estamos usando o BGP bestpath comparar-router-id comando que em vez de tie-quebrar o caminho BGP através do qual bgp sessão foi até o mais longo que olha para o mais baixo roteador -id dado todos os outros atributos são iguais como peso, local_prof, as_path etc.

no synchronization bgp log-neighbor-changes **bgp bestpath compare-routerid**

Agora vamos adiante e aplicar um mapa de rota em R4 que irá enviar todas as suas rotas com uma community de 200 (Não é possível usar o formato aa: nn por causa da versão bug do IOS Estou correndo converte aa: nn em um número negativo) . Isto, por sua vez, será recebido em R2 e com base nestas community vamos definir a preferência para 200 para as rotas recebidas em R2.

R4# sh runn | sec route-map

route-map community_routes permit 10

set community 200

route-map community_routes permit 20

R4#sh runn | sec bgp

router bgp 65001

neighbor 10.2.2.6 remote-as 65002

neighbor 10.2.2.6 send-community

neighbor 10.2.2.6 route-map community_routes out

Devemos estar recebendo as três redes 50.50.50.0/24, 60.60.60.0/24 e 70.70.70.0/24 com uma community de 200 em R2 do nosso vizinho R4. Vamos verificar isso.

R2#show ip bgp community 200 exact-match

BGP table version is 8, local router ID is 2.2.2.2

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

* 50.50.50.0/24

10.2.2.5

0

0 65001 i

* 60.60.60.0/24

10.2.2.5

0

0 65001 i

* 70.70.70.0/24

10.2.2.5

0

0 65001 i

Outra maneira de ver a community é através do BGP show ip 50.50.50.0/24

R2#show ip bgp 50.50.50.0/24

BGP routing table entry for 50.50.50.0/24, version 7

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

Advertised to update-groups:

1

2

65001

10.2.2.5

from 10.2.2.5 (4.4.4.4)

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

 

Community: 200

65000

10.2.2.1

from 10.2.2.1 (3.3.3.3)

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

Então, agora que estamos recebendo as redes de R4 com esta community de 200 Vamos em frente e criar um mapa de rota em R2 que coincide com este valor de community e definir um local_preference valor de 200. Isso deve substituir as rotas recebidas de R3 e, assim, mudar Nosso comportamento de roteamento.

1- Crie uma ACL de community que corresponda à community 200.

ip community-list 1 permit 200

2- Crie um mapa de rota que corresponda a esta community e configure a preferência local para 200

route-map community_routes permit 10

match community 1

set local-preference 2001

3- Adicione uma declaração de licença em branco ao mapa de rotas no final para que todas as outras rotas não marcadas sejam aceitas.

route-map community_routes permit 20

4- Aplicar route-map em que R4 vizinho.

R2#sh runn | sec bgp

router bgp 65002

neighbor 10.2.2.5 route-map community_routes in

Agora, uma vez que tudo isso é aplicado lembre-se de limpar a sua sessão bgp vizinho e você deve obter o seguinte.

R2#show ip bgp

R2#show ip bgp

BGP table version is 11, local router ID is 2.2.2.2

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

*>i1.1.1.1/32

10.2.2.10

0

100

0

i

*> 50.50.50.0/24

10.2.2.5

0

200

0 65001 i

*

10.2.2.1

0

0 65000 i

*> 60.60.60.0/24

10.2.2.5

0

200

0 65001 i

*

10.2.2.1

0

0 65000 i

*> 70.70.70.0/24

10.2.2.5

0

200

0 65001 i

*

10.2.2.1

0

0 65000 i

Podemos ver agora que as rotas a partir de 10.2.2.5 ter uma local_preference de 200 por isso as rotas devem ser os instalados em nossa costela. Vamos olhar.

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets

B

1.1.1.1 [200/0] via 10.2.2.10, 02:12:53

50.0.0.0/24 is subnetted, 1 subnets

B

50.50.50.0 [20/0] via 10.2.2.5, 00:12:56

2.0.0.0/32 is subnetted, 1 subnets

C

2.2.2.2 is directly connected, Loopback0

70.0.0.0/24 is subnetted, 1 subnets

B

70.70.70.0 [20/0] via 10.2.2.5, 00:12:56

10.0.0.0/30 is subnetted, 3 subnets

C

10.2.2.8 is directly connected, FastEthernet2/0

C

10.2.2.0 is directly connected, FastEthernet0/0

C

10.2.2.4 is directly connected, FastEthernet1/0

60.0.0.0/24 is subnetted, 1 subnets

B

60.60.60.0 [20/0] via 10.2.2.5, 00:12:58

Perfeito! Vamos executar um traceroute a partir de R1 agora e devemos vê-lo ir via R2 - > R4.

R1#traceroute 50.50.50.1 source lo0

Type escape sequence to abort.

Tracing the route to 50.50.50.1

  • 1 10.2.2.9 4 msec 8 msec 12 msec

  • 2 10.2.2.5 20 msec 44 msec 48 msec

Há muitas outras coisas que podemos fazer com as community e também podemos filtrar com base em prefixos e community para aceitar algumas rotas e outras não. Espero que tenha gostado.