Download - Apostila-completa Curso Bgp Design v3dot0

Transcript
Page 1: Apostila-completa Curso Bgp Design v3dot0

BGP Design com Roteadores Cisco

Instrutor: Rinaldo Vaz Analista de Redes Responsável técnico pelo AS 28135

Versão do material: 3.0Última publicação: 26/3/2013

1.0✔ Esse material foi utilizado no curso de Florianópolis nos dias

4,5,6,7 e 8 de março de 2013

✔ Próximo curso: João Pessoa-PB dias 13,14,15,16 e 17 de maio de 2013

Page 2: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

2

Visão Geral sobre BGP

Versão do material: 3.0Última publicação: 26/3/2013

1.0

1. Visão geral sobre BGP

• 1.1 Introdução• 1.2 Requisitos para se tornar um sistema autônomo• 1.3 Preenchendo o formulário do Registro.br• 1.4 Quando utilizar IGP e EGP• 1.5 Atributos BGP• 1.6 Entendendo o processo de escolha de rotas

Page 3: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

3

1.1 Introdução

Diferenças entre FIB e RIB:

Fowarding Information Base (FIB)

Quando um router recebe 2 rotas diferentes para o mesmo prefixo os critérios de escolha de rota são analisados. A rota que foi considerada melhor de acordo com os critérios BGP fica na FIB.(caso não haja uma rota de melhor metrica estática ou recebida por outro protocolo de roteamento)

Router Information Base (RIB)

As rotas que não foram consideradas melhores ficarão guardadas na RIB e serão utilizadas caso a rota principal fique indisponível.

O BGP jamais anuncia uma prefixo que não esteja na FIB!

Page 4: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

4

1.1 Introdução

Distâncias administrativas:

Outro ponto importante é a distância administrativa, caso 2 prefixos sejam idênticos, o router analisa essa distância, a menor sempre "ganha". Caso sejam iguais, os critérios particulares do protocolo de roteamento correspondente serão analisados:

Directamente Conectada 0Estática 1eBGP 20EIGRP (Interno) 90IGRP 100OSPF 110ISIS 115RIP 120EGP 140EIGRP (Externo) 170iBGP 200BGP Local 200Desconhecido 255

Padrão Cisco*

Router discovery 55RIP 100RIPng 100PIM 105DVMRP 110Aggregate 130OSPF AS external routes 150IS-IS Level 1 external route 160IS-IS Level 2 external route 165BGP 170MSDP 175

Directly connected network 0System routes 4Static and Static LSPs 5RSVP-signaled LSPs 7LDP-signaled LSPs 9OSPF internal route 10IS-IS Level 1 internal route 15IS-IS Level 2 internal route 18Redirects 30Kernel 40SNMP 50

Padrão Juniper*

Page 5: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

5

1.1 Introdução

A versão corrente do BGP é a versão 4, especificada na RFC 1771

É o protocolo responsável por fazer a internet funcionar da maneira que é

Page 6: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

6

1.1 Introdução

Algumas Características:

1. É um protocolo do tipo “vetor de caminho”

2. As tabelas completas de roteamento são trocadas entre os dois routers no início da sessão

3. Atualizações adicionais são enviadas imediatamente através de mensagens de update *

4. Utiliza por padrão a porta TCP 179

*Quando uma nova rota é instalada o router “avisa” imediatamente para seus outros peers BGP, porém há possibilidade de estabelecer um tempo mínimo (Minimum Route Advertisement Interval ou MRAI) entre cada rodízio de atualizações, forçando-o a segurar alguns updates e envia-los de uma só vez em um intervalo pre-definido. Por exemplo:

neighbor {ip-address | peer-group-name} advertisement-interval seconds

● Fonte:http://www.cisco.com/en/US/docs/ios/iproute_bgp/command/reference/irg_bgp3.html

Page 7: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

7

1.1 Introdução

Mensagens BGP: – Open (abertura) - É a primeira mensagem enviada por um router que

deseja estabelecer uma sessão com outro, esse por sua vez também envia uma mensagem open. Após recebidas e checadas*, cada router envia a primeira mensagem de keep alive e a sessão é estabelecida.

*Mensagens de OPEN contém várias informações sobre o remetente como versão do BGP configurada, número do AS, routerID, valores de timers configurados entre outros

Page 8: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

8

1.1 Introdução

Mensagens BGP: – Update (atualização) - É dentro dessas mensagens que vão informações

sobre cada prefixo que está sendo anunciado, uma mensagem de update também pode conter informações sobre redes que ficaram indisponíveis e devem ser removidas

Fonte da imagem: http://www.potaroo.net/ispcol/2005-03/fig1.png

Page 9: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

9

1.1 Introdução

Mensagens BGP: – Notificação (notification message) – É enviada quando uma condição de

erro é detectada; elas são usadas para encerrar uma sessão ativa e informar a quaisquer roteadores conectados do porque do encerramento da sessão.

– Sempre que um router envia uma mensagem do tipo notification esse finaliza imediatamente a sessão BGP correspondente

● Ex: Ao receber uma mensagem de “open” com o número de AS diferente do que foi configurado localmente, o router responde imediatamente com uma mensagem de notification

Page 10: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

10

1.1 Introdução

Mensagens BGP: – Keep-alive (ainda estou aqui) - De tempo em tempo cada router envia

uma mensagem de keep-alive para que o vizinho saiba que há conectividade IP. Caso o keep-alive atrase, o router começa a contagem de hold-time e, se nesse período não for recebido nenhum keep-alive, a sessão é finalizada. Tanto o tempo de keep-alive como o de hold-time podem ser configurados para mais ou menos tempo de acordo com o tipo de link.

– Os valores padrão são 60 segundos de intervalo para keepalive e 180 segundo de tolerância (hold time) que podem ser alterados com o seguinte comando:

!

router bgp 65001

neighbor 192.168.2.1 timers 20 60

!

– Com esse comando, o tempos de keepalive e hold time ficariam setados em 20 e 60 segundos respectivamente

Page 11: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

11

Requisitos para se tornar um Sistema Autônomo

1.2

Page 12: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

12

1.2 - Requisitos para se tornar um sistema autônomo

Uma organização justifica a designação de um ASN quando apresenta uma das seguintes necessidades:

– Multi Provedor: Quando a organização está conectada a dois ou mais provedores de transito Internet distintos e independentes e necessita, portanto, fazer uso de protocolos de roteamento dinâmico

– Política única de roteamento: Quando a organização possui uma política de roteamento que é distinta daquela aplicada pelo(s) provedor(es) de transito Internet.

Mais informações em:

http://registro.br/provedor/numeracao/regras.html

Page 13: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

13

Preenchendo o Formulário do registro.br

1.3

Page 14: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

14

1.3 - Preenchendo o Formulário do registro.br

Há um formulário simples que pode ser baixadono seguinte endereço:

http://registro.br/provedor/numeracao/pedido-form.txt

Em caso de dúvidas há um arquivo contento informações de ajuda:

http://registro.br/provedor/numeracao/pedido-ajuda.txt

Informações completas em:

http://registro.br/provedor/numeracao/faq.html

Page 15: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

15

Quando utilizar

IGP e EGP

1.4

Page 16: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

16

1.4 - Quando utilizar IGP e EGP

O BGP foi desenvolvido para troca de rotas entre Sistemas Autônomos distintos

– Não há nenhum motivo para um provedor de serviços utilizar BGP se esse não possuir um ASN.

– A finalidade do BGP é permitir que os IPs do Sistema Autônomo apareçam na internet.

– Tecnicamente nada impede de utilizar BGP com apenas uma operadora, porém é um requisito para obter um ASN:

Page 17: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

17

1.4 - Quando utilizar IGP e EGP

Caso um dos clientes do provedor também seja um Sistema Autônomo é indispensável a utilização do BGP com o cliente e operadorasde trânsito.

Page 18: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

18

Atributos BGP

1.5

Page 19: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

19

1.5 - Atributos BGP

Conhecidos obrigatórios (Well-known mandatory): Além de obrigatório em todas as implementações, precisam estar em todas as mensagens de update trocadas entre os roteadores via BGP.

Conhecidos discricionários (Well-known discretionary): Semelhantes aos obrigatórios, porém não precisam estar contidos em todas as mensagens de update. Todas as implementações precisam suporta-los

Page 20: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

20

1.5 - Atributos BGP

Opcional transitivo (Optional transitive): Não precisam ser implementados por todos os fabricantes, e quando sim, podem ser “propagados” para outros neighbors através de mensagens de update.

Opcional não-transitivo (Optional non-transitive): Semelhantes aos citados acima, porém, um router nunca “propaga” esses atributos para outro neighbor.

Page 21: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

21

1.5 - Atributos BGP

Uma boa descrição pode ser encontrada no livro: “CCNP BSCI - Official Exam Certification Guide, 4th edition” de Brent Steward:

Page 22: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

22

Entendendo o Processo de

Escolha de Rotas

1.6

Page 23: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

23

1.6 - Entendendo o processo de escolha de rotas

Em primeiro lugar, o BGP apenas analisa os atributos para "desempatar" duas ou mais rotas para o MESMO PREFIXO.

Caso haja um prefixo mais específico esse sempre será preferido independentemente dos seus atributos "mais favoráveis".

Page 24: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

24

1.6 - Entendendo o processo de escolha de rotas

Como o BGP escolhe uma rota: Sempre que houverem duas ou mais opções de rota para prefixos iguais (mesma máscara de sub-rede) e

ambas tiverem sido recebidas via BGP, o protocolo vai escolher a melhor rota de acordo com a ordem:

1. Rota com maior valor de WEIGHT (Cisco, Quagga, RouterOS, OpenBGPD)

2. Rota com maior valor de LOCAL_PREF

3. Rota originada localmente (bgp network)

4. Rota com o menor AS_PATH.

5. Rota com menor tipo de origem. IGP (i) < EGP (e) < INCOMPLETE (?)

6. Rota com menor métrica multi-exit discriminator (MED).

7. Escolhe a rota recebida por (eBGP) em relação a uma (iBGP).

Page 25: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

25

1.6 - Entendendo o processo de escolha de rotas

Como o BGP escolhe uma rota:

8. Rota com a menor métrica IGP para o nexthop BGP Ex: O next-hop aprendido via OSPF vai ”vencer” um next-hop aprendido via ISIS

9. Rota externa mais antiga

10. Rota recebida de um router com menor Router ID

11. Rota com o menor tamanho de cluster list. (Ambientes com Route Reflector apenas)

12. Rota com o menor endereço de neighbor

A análise segue para o próximo critério apenas quando há empate no critério atual, assim, o tamanho do AS PATH só será analisado caso o valor de weight e local preference sejam os mesmos para as duas rotas.

Page 26: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

26

PERGUNTAS?PERGUNTAS?

1.6

Page 27: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

27

2.0Primeiros Passospara Aparecer na Internet2. Primeiros Passos para Aparecer na Internet• 2.1-Configurando BGP com apenas um link• 2.2-Analisando as rotas recebidas• 2.3-Configurando BGP com 2 links• 2.4-Utilizando um Looking Glass• 2.5-Fail-Over automático• 2.6-Escolhendo o melhor link• 2.7-Balanceamento de links• 2.8-Implementando alta disponibilidade com VRRP• 2.9-BGP Timers

Page 28: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

28

Configurando BGP com apenas um link

2.1

Page 29: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

29

2.1-Configurando BGP com apenas um link

Antes de começar, vamos entender o cenário no ponto de vista geral, onde cada aluno é dono de um AS:

CENARIO 1-1

LAB 1-1-1

Page 30: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

30

2.1-Configurando BGP com apenas um link

Nesse LAB, cada aluno possui um Cisco 3660 com uma placa serial modelo NM-4T conectado ao AS 100 na interface s1/1 e uma fast ethernet conectada ao switch da sala do curso.

O “X” deve ser entendido como o AS do aluno (1 até 24).

LAB 1-1-1

Page 31: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

31

2.1-Configurando BGP com apenas um link

O router de cada grupo responde pelo IP X.128.0.254/9 (onde X é o número do grupo).

Para acessá-lo, configurem nos seus laptops um IP dentro dessa mesma rede preferencialmente .1 e gateway padrão X.128.0.254.

Verifiquem a conectividade IP e em caso positivo abram uma sessão telnet com esse equipamento:

ALUNO@notebook# telnet X.128.0.254

Trying X.128.0.254...

Connected to X.128.0.254.

Escape character is '^]'.

User Access Verification

Password: A senha de acesso é 123

Para quem usa windows pode usar o Putty......http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

LAB 1-1-1

Page 32: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

32

Estamos agora no modo ”usuário”:

GX-R1>

Para iniciar as configurações precisaremos inicialmente entrar no modo ”privilegiado”, e será exigida uma outra senha:

G1-R1>enable

Password: gXr1

GX-R1#

E em seguida no modo de configuração ”global”:

GX-R1#terminal monitor

GX-R1#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

GX-R1(config)#

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 33: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

33

O primeiro passo na configuração BGP é adicionar um neighbor (peer):

2.1-Configurando BGP com apenas um link

GX-R1(config)# router bgp XGX-R1(config-router)# neighbor 100.X.1.1 remote-as 100GX-R1(config-router)# neighbor 100.X.1.1 description eBGP com as 100

!--- Se digitar errado e o sistema “aceitar” o comando,!--- digite o mesmo comando com “no” antes.!--- Ex: neighbor 100.x.1.1 remote-as 101!--- no neighbor 100.x.1.1 remote-as 101!--- no neighbor 100.x.1.1 (remove tudo)

LAB 1-1-1

Page 34: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

34

Verificando o status da sessão BGP recém-criada:

2.1-Configurando BGP com apenas um link

LAB 1-1-1

GX-R1#sh ip bgp summary Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 7 4 4 0 0 00:00:02 2

Page 35: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

35

2.1-Configurando BGP com apenas um link

router> configurerouter# set routing-options autonomous-system Xrouter# set protocols bgp group AS100 type externalrouter# set protocols bgp group AS100 export Internorouter# set protocols bgp group AS100 peer-as 100router# set protocols bgp group AS100 neighbor 100.X.1.1

[admin@mikrotik] > /routing bgp instance[admin@mikrotik] /routing bgp instance> set default as=X/routing bgp peer[admin@mikrotik] /routing bgp peer> add name=AS100 remote-address=100.X.1.1 remote-as=100

LAB 1-1-1

Como realizar a mesma configuação no JunOS e RouterOS

Page 36: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

36

Verificando os anúncios que recebo da minha operadora:

GX-R1#show ip bgp neighbors 100.X.1.1 routes

Network Next Hop Metric LocPrf Weight Path...

*> 100.0.0.0 100.X.1.1 0 100 i

*> 123.123.123.0/24 100.X.1.1 0 100 111 55 123 i

Posteriormente veremos na prática a diferença entre os comandos com ”received-routes” e apenas ”routes” no final.

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 37: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

37

Agora todos tentam ping para 123.123.123.1 a partir do seu router:

Sucesso??

Agora um Traceroute!

Em seguida ping para 123.123.123.1 a partir do seu laptop

Sucesso??

Agora um Traceroute!

Que problema pode estar havendo?

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 38: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

38

Esse ponto merece uma pausa para analisar algo importante no ”Troubleshooting”.

Ao executar um traceroute um host verifica a sua tabela de roteamento, caso não haja ocorrências os pacotes do traceroute são encaminhados pela rota padrão, não sendo nada especificado no comando, o IP de origem é sempre o mesmo da interface conectada ao ”next-hop”.

Em nosso LAB qual o next-hop para 123.123.123.1 ?

Provavelmente 100.X.1.1, qual IP o router vai utilizar como origem?

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 39: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

39

O IP de origem é 100.X.1.2 que por sua vez está dentro de uma rede ”conhecida” pelo looking glass (123.123.123.1).

Já o laptop não consegue alcançar o destino porque o seu IP de origem é X.128.0.1, rede que não é conhecida pelo looking glass já que ainda não anunciamos nada.

Não se trata então de o laptop ”não conseguir alcançar” 123.123.123.1, na verdade os pings disparados pelo laptop chegam ao seu destino, porém o destino não sabe para quem responder.

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 40: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

40

O segundo passo é anunciar o classe A (bloco /8) do seu grupo:

2.1-Configurando BGP com apenas um link

GX-R1(config)# router bgp X!--- entra no nodo de configuração BGPGX-R1(config-router)#network X.0.0.0 mask 255.0.0.0!--- adiciona a rede x.0.0.0 para ser anunciada a partir desse routerGX-R1(config-router) auto-summary!--- permite que o BGP anuncie x.0.0.0/8 bastando com que haja qualquer!--- IP/rotaFIB dentro das redes declaradas em networksGX-R1(config-router)#end!--- volta ao modo privilegiadoGX-R1# clear ip bgp 100.X.1.1!--- reinicia a sessão BGP ==> OPCIONAL

LAB 1-1-1

Page 41: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

41

Auto-Summary:

2.1-Configurando BGP com apenas um link

Quando habilitamos o auto-summary, o BGP vai sumarizar na classe padrão (classe A, B ou C) os prefixos declarados em network ou redistribute

Algumas literaturas afirmam que o auto-summary não funciona com prefixos anunciados via comando “network”. É possível que isso ocorra em versões mais antigas do IOS, porém como podemos ver nesse LAB (IOS 12.4), temos um IP /32 em uma interface loopback, que por sua vez é sumarizado e redistribuído como uma classe A

É importante lembrar que esse tipo de sumarização ocorre apenas para classes PADRÃO, e muito dificilmente será utilizado em produtividade.

LAB 1-1-1

Page 42: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

42

Agora verifico os anúncios que estou fazendo para o AS 100:

GX-R1#sh ip bgp neighbors 100.X.1.1 advertised-routes

BGP table version is 15, local router ID is 100.X.1.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> X.0.0.0 0.0.0.0 0 32768 i

Caso apareça algo parecido com isso, vamos testar novamente a conectividade IP com o looking glass a partir do laptop.

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 43: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

43

Sintam-se à vontade para entrar no looking glass e executar testes de PING e TRACEROUTE!

2.1-Configurando BGP com apenas um link

LAB 1-1-1

Page 44: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

44

PERGUNTAS?PERGUNTAS?

2.1

Page 45: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

45

Analisando as rotas recebidas

2.2

Page 46: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

46

2.2-Analisando as rotas recebidas

Vamos detalhar melhor as rotas recebidas:

GX-R1>sh ip bgp summary

...

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

Esse comando mostra todas as sessões BGP configuradas ativas e não ativas.

Nesse laboratório apenas uma sessão está configurada.

Vamos entender o que cada campo significa...

Page 47: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

47

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

Neighbor = 100.X.1.1

Esse é o IP do router remoto (configurado em router BGP X).

2.2-Analisando as rotas recebidas

Page 48: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

48

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

V = 4

Versão do BGP utilizada nessa sessão.

2.2-Analisando as rotas recebidas

Page 49: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

49

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

AS = 100

AS do neighbor remoto (configurado em neighbor 100.X.1.1 remote-as X).

2.2-Analisando as rotas recebidas

Page 50: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

50

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

MsgRcvd = 112

MsgSent = 83

Quantidade total de mensagens BGP recebidas e enviadas incluindo ”keepalives” e ”updates”.

2.2-Analisando as rotas recebidas

Page 51: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

51

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

TblVer = 22

Versão atual da tabela de rotas BGP, sempre que uma nova rota é inserida ou removida o TblVer é incrementado.

2.2-Analisando as rotas recebidas

Page 52: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

52

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

InQ = 0

OutQ = 0

Updates na fila de entrada e de saída.

2.2-Analisando as rotas recebidas

Page 53: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

53

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

Up/Down = 01:06:03

Contador das horas minutos e segundos desde de que a sessão foi estabelecida ou que a sessão ficou down, após 24 horas o contador muda para 1d00h00m (dias/horas/minutos) após uma semana 01w0d00h (semanas/dias/horas).

Antes de uma sessão estabelecer ao menos uma vez o contador fica em ”never”.

2.2-Analisando as rotas recebidas

Page 54: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

54

Entendendo os campos do summary:

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.1.1 4 100 112 83 22 0 0 01:06:03 3

State/PfxRcd = 3

Esse campo merece uma atenção especial pois será o mais frequentemente observado. Indica o estado da conexão BGP.

● Nesse caso está contando 3 prefixos, mas existem 5 estados possíveis, IDLE, CONECT, ACTIVE, OPENSENT, OPENCONFIRM e ESTABLISHED, iremos entender melhor cada um desses estados nos próximos slides.

2.2-Analisando as rotas recebidas

Page 55: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

55

Entendendo os campos do summary:

State/PfxRcd

IDLE

É o estado em que a sessão fica quando é interrompida por uma mensagem de notificação ou intervenção do administrador, esse estado, quando se prolonga por muito tempo, aponta algum possível problema de conectividade IP ou ainda que o BGP não foi configurado corretamente do lado remoto.

2.2-Analisando as rotas recebidas

Page 56: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

56

Entendendo os campos do summary:

State/PfxRcd

ACTIVE ACTIVE: O BGP tenta estabelecer comunicação com um peer inicializando uma conexão

TCP. Caso esta seja bem sucedida, passa-se ao estado OPENSENT. Se esta tentativa não for bem sucedida, pelo motivo de expiração do tempo, por exemplo, o estado passa para CONNECT. Em cada interrupção pelo sistema ou pelo administrador, volta ao estado IDLE. Geralmente as transições entre o estado de CONNECT e ACTIVE refletem problemas no nível TCP.

2.2-Analisando as rotas recebidas

Page 57: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

57

Entendendo os campos do summary:

State/PfxRcd

CONNECT Neste estado o BGP aguarda pela conexão TCP, com destino na porta 179. Quando a

conexão estiver estabelecida, ou seja, com o recebimento da mensagem de OPEN, passa-se ao estado de OPENSENT. Se a conexão nível de transporte não for bem sucedida, o estado vai para ACTIVE. No caso do tempo de espera ter sido ultrapassado, o estado volta para CONNECT. Em qualquer outro evento o estado retorna para IDLE.

2.2-Analisando as rotas recebidas

Page 58: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

58

Entendendo os campos do summary:

State/PfxRcd

OPEN SENT OPENSENT: Neste estado o BGP aguarda pela mensagem de OPEN e faz uma checagem de

seu conteúdo. Caso seja encontrado algum erro como número de AS incoerente ao esperado ou a própria versão do BGP, envia-se uma mensagem tipo NOTIFICATION e volta ao estado de IDLE. Caso não ocorram erros na checagem, inicia-se o envio de mensagens KEEPALIVE. Em seguida, acerta-se o tempo de Hold Time, sendo optado o menor tempo entre os dois peers. Depois deste acerto, compara-se o número AS local e o número AS enviado pelo peer, com o intuito de detectar se é uma conexão iBGP (números de AS iguais) ou eBGP (números de AS diferentes). Em caso de desconexão a nível TCP, o estado passa para ACTIVE. Para as demais situações de erro, como expiração do Hold Time, envia-se uma mensagem de NOTIFICATION com o código de erro correspondente e retorna-se ao estado de IDLE. No caso de intervenção do administrador ou o próprio sistema, também retorna-se o estado IDLE.

2.2-Analisando as rotas recebidas

Page 59: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

59

Entendendo os campos do summary:

State/PfxRcd

OPEN CONFIRM OPENCONFIRM: Neste estado o BGP aguarda pela mensagem de KEEPALIVE e quando

esta for recebida, o estado segue para ESTABLISHED e a negociação do peer é finalmente concluída. Com o recebimento da mensagem de KEEPALIVE, é acertado o valor negociado de Hold Time entre os peers. Se o sistema receber uma mensagem tipo NOTIFICATION, retorna-se ao estado de IDLE. O sistema também envia periodicamente, segundo o tempo negociado, mensagens de KEEPALIVE. No caso da ocorrência de eventos como desconexão ou intervenção do operador, retorna-se ao estado de IDLE também. Por fim, na ocorrência de eventos diferentes aos citados, envia-se uma mensagem NOTIFICATION, retornando ao estado de IDLE.

2.2-Analisando as rotas recebidas

Page 60: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

60

Entendendo os campos do summary:

State/PfxRcd

ESTABLISHED ESTABLISHED: Neste estado, o BGP inicia a troca de mensagens de UPDATE ou

KEEPALIVE, de acordo com o Hold Time negociado. Caso seja recebida alguma mensagem tipo NOTIFICATION, retorna-se ao estado IDLE. No recebimento de cada mensagem tipo UPDATE, aplica-se uma checagem por atributos incorretos, inconsistentes, duplicados, ou mesmo faltando, caso algum erro seja detectado, envia-se uma mensagem de NOTIFICATION, retornando ao estado IDLE. Por fim, se o Hold Time expirar ou for detectada desconexão ou intervenção do administrador, também retorna-se ao estado de IDLE.

2.2-Analisando as rotas recebidas

Page 61: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

61

Entendendo os campos do summary:

State/PfxRcd

3

Esse número não representa a quantidade de prefixos recebidos de um neighbor, mas sim a quantidade de prefixos que foram parar na RIB após terem passado pelos filtros.

Um State/PfxRcd 0 não significa necessariamente que não estou recebendo nenhuma rota, por exemplo, pode ser que o next-hop dessas rotas seja inalcançável pelo meu router e assim elas não aparecem. Detalharemos esses casos posteriormente.

2.2-Analisando as rotas recebidas

Page 62: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

62

Vamos detalhar todas as rotas BGP:

GX-R1# show ip bgp

BGP table version is 22, local router ID is 100.X.1.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 6.0.0.0 100.X.1.1 0 100 6 i

*> 100.0.0.0 100.X.1.1 0 100 i

*> 123.0.0.0 100.X.1.1 0 100 222 123 i

Esse comando mostra todas as rotas recebidas via BGP escolhidas (FIB) e não escolhidas (RIB). Como recebemos rotas de apenas um peer, não há rotas ”não escolhidas”.

2.2-Analisando as rotas recebidas

Page 63: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

63

Vamos detalhar uma rota específica:

GX-R1#sh ip bgp 123.0.0.0

BGP routing table entry for 123.0.0.0/8, version 10

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

Flag: 0x208

Not advertised to any peer

100 111 55 123

100.X.1.1 from 100.X.1.1 (100.100.100.1)

Origin IGP, localpref 100, valid, external, best

#Esse comando detalha as rotas para o prefixo 123.0.0.0/8, e caso outras rotas para esse mesmo prefixo tenham sido recebida via BGP de outro(s) neighbor(s), mais entradas semelhantes aparecerão uma abaixo da outra.

Entenderemos cada campo a seguir:

2.2-Analisando as rotas recebidas

Page 64: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

64

Vamos detalhar uma rota em específico:

GX-R1#sh ip bgp 123.0.0.0

BGP routing table entry for 123.0.0.0/8, version 22

...

Essa linha mostra a versão da routing table descrita nos slides anteriores.

2.2-Analisando as rotas recebidas

Page 65: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

65

Vamos detalhar uma rota em específico:

GX-R1#sh ip bgp 123.0.0.0

...

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

Paths significa a quantidade de neighbors que me enviaram rotas para esse mesmo prefixo, ou seja, ”1 avaliable” diz que apenas 1 neighbor me enviou.

”best #1” a rota que foi escolhida (na ordem de cima para baixo) de acordo com os critérios do BGP – weigh, local_pref, etc.

”table Default-IP-Routing-Table” significa que as rotas estão na FIB padrão. Múltiplas FIB's são usadas com VRF.

2.2-Analisando as rotas recebidas

Page 66: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

66

Vamos detalhar uma rota em específico:

GX-R1#sh ip bgp 123.0.0.0

...

Flag: 0x208

...

2.2-Analisando as rotas recebidas

Page 67: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

67

Vamos detalhar uma rota em específico:

GX-R1#sh ip bgp 123.0.0.0

...

Not advertised to any peer

...

Essa mensagem significa que esse prefixo 123.0.0.0/8 não está sendo anunciada via BGP para nenhum neighbor. Na verdade qualquer rota nesse laboratório aparecerá com essa mensagem.

Esse campo será detalhado posteriormente na sessão ”AS de trânsito”.

2.2-Analisando as rotas recebidas

Page 68: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

68

Vamos detalhar uma rota em específico:

GX-R1#sh ip bgp 123.0.0.0

...

100 111 55 123

...

AS-PATH: mostra da direita para a esquerda o AS que originou essa rota e todos os ASs no caminho.

Ou seja, o AS 123 originou o anúncio para o AS 55 que recebeu, considerou como melhor rota e exportou para o as 111, depois para o AS 100, o qual também considerou como melhor e repassou para meu AS.

Um ponto importante a se observar é que mesmo que um AS tenha mil caminhos para um determinado prefixo, é apenas UM que ele vai escolher como ”BEST #” e passar adiante.

2.2-Analisando as rotas recebidas

Page 69: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

69

Vamos detalhar uma rota em específico:

GX-R1#sh ip bgp 123.0.0.0

...

100.X.1.1 from 100.X.1.1 (x.x.x.x)

...

O primeiro IP dessa linha significa o ”next-hop”(próximo salto) para esse prefixo, caso o next-hop não esteja contido em uma rota válida da FIB, esse jamais será eleito como ”BEST”.

O segundo IP dessa linha me diz o endereço do ”neighbor” que me enviou essa rota via BGP.

O IP (X.X.X.X) é na verdade o ”router-ID” desse neigbor descrito acima.

2.2-Analisando as rotas recebidas

Page 70: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

70

PERGUNTAS?PERGUNTAS?

2.2

Page 71: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

71

Configurando BGP com 2 links

(MULTIHOMING)(MULTIHOMING)

2.3

Page 72: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

72

2.3 Configurando BGP com 2 links

Os próximos Laboratórios (1-2-1 e 1-2-2) utilizarão esse cenário, e dessa vez, temos link também com o AS 200:

LAB 1-2-1

Page 73: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

73

2.3 Configurando BGP com 2 links

Nesse LAB, receberemos mais um link (AS 200) através da interface s1/0:!-- lembrando que X é o número do AS do aluno

LAB 1-2-1

Page 74: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

74

2.3 Configurando BGP com 2 links

Primeiro passo é a configuração do próximo neighbor:

GX-R1(config)# router bgp X

GX-R1(config-router)#

network x.0.0.0 mask 255.0.0.0

neighbor 100.x.1.1 remote-as 100

neighbor 100.x.1.1 description eBGP com as 100

!--- O neighbor acima foi já configurado

!--- próximo Neigborneighbor 200.X.1.1 remote-as 200

neighbor 200.X.1.1 description eBGP com as 200

LAB 1-2-1

Page 75: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

75

Verificando o status das sessões BGP recém-criadas:

GX-R1#sh ip bgp summary

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.1.1.1 4 100 192 170 9 0 0 00:27:48 7

200.1.1.1 4 200 191 181 9 0 0 00:27:51 7

O número de PfxRcd vai ser maior a medida que os alunos estabeleceram suas conexões.

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 76: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

76

Detalhando as rotas recebidas via BGP

Em 23 dos 24 routers parte da saída desse comando aparecerá parecida com isto:

G1-R1>sh ip bgp BGP table version is 9, local router ID is 1.1.1.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path*> 1.0.0.0 0.0.0.0 0 32768 i*> 2.0.0.0 100.1.1.1 0 100 2 i* 200.1.1.1 0 200 2 i*> 55.0.0.0 100.1.1.1 0 100 111 55 i* 200.1.1.1 0 200 222 123 55 i*> 100.0.0.0 100.1.1.1 0 100 i* 200.1.1.1 0 200 2 100 i*> 111.0.0.0 100.1.1.1 0 100 111 i* 200.1.1.1 0 200 2 100 111 i* 123.0.0.0 100.1.1.1 0 100 111 55 123 i*> 200.1.1.1 0 200 222 123 i* 200.0.0.0/8 100.1.1.1 0 100 2 200 i*> 200.1.1.1 0 200 i* 222.0.0.0/8 100.1.1.1 0 100 2 200 222 i*> 200.1.1.1 0 200 222 i

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 77: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

77

Detalhando as rotas recebidas via BGP

Porém em 1 dos 24 routers a saída será diferente:

G1-R1>sh ip bgp BGP table version is 9, local router ID is 1.1.1.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> 1.0.0.0 0.0.0.0 0 32768 i*> 2.0.0.0 100.1.1.1 0 100 2 i* 200.1.1.1 0 200 2 i*> 55.0.0.0 100.1.1.1 0 100 111 55 i* 200.1.1.1 0 200 222 123 55 i*> 100.0.0.0 100.1.1.1 0 100 i* 200.1.1.1 0 200 2 100 i*> 111.0.0.0 100.1.1.1 0 100 111 i* 200.1.1.1 0 200 2 100 111 i* 123.0.0.0 100.1.1.1 0 100 111 55 123 i*> 200.1.1.1 0 200 222 123 i*> 200.0.0.0/8 200.1.1.1 0 200 i*> 222.0.0.0/8 200.1.1.1 0 200 222 i

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 78: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

78

Detalhando as rotas recebidas via BGP

O que significa essas 2 ”rotas alternativas” desaparecerem até da RIB?

E o que isso implica na prática?

Vamos ver a FIB do “felizardo”?.

Por enquanto o importante à saber é que esse router passou a ser ”trânsito” dos AS's 200 e 222 para alcançar o AS 100,111 e todos os seus ”downstreams”.

No caso desse router ficar down, outro grupo ficará na mesma situação... vamos ver quem?

* 200.0.0.0/8 100.1.1.1 0 100 2 200 i*> 200.0.0.0/8 200.1.1.1 0 200 i* 222.0.0.0/8 100.1.1.1 0 100 2 200 222 i*> 222.0.0.0/8 200.1.1.1 0 200 222 i

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 79: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

79

Evitando se tornar AS de trânsito dos meus UPSTREAMS

Fazer anúncios faz do meu router um potencial provedor de trânsito das redes que anuncio (dependendo da origem).

GX-R1>sh ip bgp neighbors 100.X.1.1 advertised-routes ...

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

...

GX-R1>sh ip bgp neighbors 200.X.1.1 advertised-routes

...

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i*> 2.0.0.0 100.1.1.1 0 100 2 i*> 55.0.0.0 100.1.1.1 0 100 111 55 i*> 100.0.0.0 100.1.1.1 0 100 i*> 111.0.0.0 100.1.1.1 0 100 111 i...

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 80: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

80

Implementando filtros de saída em meus upstreams

Há várias maneiras e vamos iniciar pela mais simples:

1)Criando uma prefix-list:GX-R1(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8

!--- adiciona o bloco do AS do grupo na lista ”MEUS-BLOCOS”

GX-R1(config)#router bgp X

GX-R1(config-router)#neighbor 200.X.1.1 prefix-list MEUS-BLOCOS out!---aplicar o mesmo filtro na saída do AS 200

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out !--- aplicar o mesmo filtro na saída do AS 100

GX-R1(config-router)#end

GX-R1#clear ip bgp *

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 81: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

81

Verificando as rotas recebidas após o filtro de saída

● Agora o router anuncia para os UPSTREAMS apenas o necessário que é o prefixo /8 correspondente ao grupo:

GX-R1>sh ip bgp neighbors 100.X.1.1 advertised-routes BGP table version is 24, local router ID is 9.9.9.9Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

GX-R1>sh ip bgp neighbors 200.X.1.1 advertised-routes

BGP table version is 24, local router ID is 9.9.9.9Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

2.3 Configurando BGP com 2 links

LAB 1-2-1

Page 82: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

82

PERGUNTAS?PERGUNTAS?

2.3

Page 83: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

83

Utilizando um Looking Glass

2.4

Page 84: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

84

2.4 Utilizando um Looking Glass

Um looking glass nada mais é do que um router com acesso público em algum lugar da internet, em sua maioria, a interface é web para facilitar a vida do usuário, mas é o mesmo que entrar nesse router e executar certos comandos como:

show ip bgp x.x.x.x, ping x.x.x.x, traceroute x.x.x.x

Um dos mais famosos é o Hurricane Eletric...

http://lg.he.net

Page 85: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

85

2.4 Utilizando um Looking Glass

Page 86: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

86

2.4 Utilizando um Looking Glass

Page 87: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

87

2.4 Utilizando um Looking Glass

Em nosso LAB o Looking glass é 123.123.123.1, vamos primeiramente verificar a conectividade com esse endereço:

ALUNO@notebook:~$ traceroute 123.123.123.1 -n

traceroute to 123.123.123.1 (123.123.123.1), 30 hops max, 60 byte packets

1 X.128.0.254 5.292 ms 5.655 ms 5.640 ms

2 200.X.1.1 13.807 ms 14.198 ms 100.701 ms

3 200.200.1.1 111.035 ms 86.082 ms 86.477 ms

4 222.200.10.1 92.724 ms 92.302 ms 69.351 ms

5 222.222.1.1 127.492 ms 73.505 ms 69.707 ms

6 123.222.2.1 43.309 ms 78.401 ms 66.332 ms

*Clientes Windows utilizam ”tracert 123.123.123.1”

O que podemos concluir com esse traceroute?

Meus pacotes entram no AS 200, depois no AS 222 e chegam ao seu destino.

Page 88: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

88

2.4 Utilizando um Looking Glass

Qual critério o meu router (primeiro salto) utilizou para considerar esse caminho como melhor?

Vamos entender:

Notem que em nenhuma das rotas há qualquer valor no atributo "weight" que é o primeiro critério, em segundo é verificado o "localpref" que nos dois casos está em 100 (empate), o algoritmo de seleção de rotas segue então para o próximo "critério de desempate" (menor AS Path) onde a rota #2 foi mais feliz.

GX-R1>sh ip bgp 123.123.123.1BGP routing table entry for 123.0.0.0/8, version 7Paths: (2 available, best #2, table Default-IP-Routing-Table) Not advertised to any peer 100 111 55 123 100.X.1.1 from 100.X.1.1 (100.100.100.1) Origin IGP, localpref 100, valid, external 200 222 123 200.X.1.1 from 200.X.1.1 (200.200.200.1)Origin IGP, localpref 100, valid, external, best

Page 89: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

89

2.4 Utilizando um Looking Glass

#Conectar-se ao looking Glass

Os pacotes seguiram o seguinte caminho: AS 222 depois AS 200 e finalmente AS X.

ALUNO@notebook:~$ telnet 123.123.123.1...

AS-123-R1>traceroute X.128.0.1Type escape sequence to abort.Tracing the route to 1.0.1.1 1 123.222.2.2 8 msec 8 msec 12 msec 2 222.222.1.2 [AS 222] 12 msec 40 msec 12 msec 3 222.200.10.2 [AS 222] 24 msec 28 msec 12 msec 4 200.200.1.2 [AS 200] 52 msec 24 msec 56 msec 5 200.X.1.2 [AS 200] 56 msec 24 msec 28 msec 6 X.128.0.1 [AS X] 64 msec 64 msec 28 msec

Page 90: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

90

2.4 Utilizando um Looking Glass

Verifique agora que o mesmo critério (menor AS Path) fez o router decidir pelo "mesmo caminho” para alcançar o notebook do aluno:

AS-123-R1>sh ip bgp X.128.0.1BGP routing table entry for X.0.0.0/8, version 45Paths: (2 available, best #2, table Default-IP-Routing-Table) Advertised to non peer-group peers: 123.55.2.2 55 111 100 X 123.55.2.2 from 123.55.2.2 (55.55.55.2) Origin IGP, localpref 100, valid, external 222 200 X 123.222.2.2 from 123.222.2.2 (222.222.222.2) Origin IGP, localpref 100, valid, external, best

Page 91: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

91

PERGUNTAS?PERGUNTAS?

2.4

Page 92: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

92

Fail-Over Automático

2.5

Page 93: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

93

2.5 Fail-Over automático

Utilizando a rota alternativa

Vamos simular um problema técnico no AS200 deligando seus CPE's...

aguardem alguns instantes...

GX-R1# terminal monitor5d06h: %BGP-5-ADJCHANGE: neighbor 200.X.1.1 Down ...

LAB 1-2-2

Page 94: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

94

2.5 Fail-Over automático

Agora execute novamente um traceroute a partir do seu laptop:

Com o AS 200 down ,os pacotes entram no AS 100, depois no AS 111, e só depois de passar no AS 55 alcançam o destino (looking glass).

ALUNO@notebook:~$ traceroute 123.123.123.1 -ntraceroute to 123.123.123.1 (123.123.123.1), 30 hops max, 60 byte packets 1 X.128.0.254 3.118 ms 3.492 ms 3.482 ms 2 100.X.1.1 11.808 ms 11.799 ms 17.716 ms 3 100.100.1.1 38.856 ms 42.330 ms 21.847 ms 4 111.100.10.1 38.422 ms 108.815 ms 108.392 ms 5 111.111.1.1 133.799 ms 69.868 ms 133.367 ms 6 55.111.2.1 110.819 ms 107.647 ms 65.948 ms 7 55.55.1.1 138.345 ms 129.942 ms 129.917 ms 8 123.55.2.1 115.805 ms * *ALUNO@notebook:~$

LAB 1-2-2

Page 95: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

95

2.5 Fail-Over automático

Agora note que a rota alternativa (mais distante) passou a ser utilizada e o "melhor caminho" que havia não existe mais, restando apenas o "pior caminho" que dadas as circunstâncias, passou a ser um "ótimo" caminho:

GX-R1>sh ip bgp 123.123.123.1BGP routing table entry for 123.0.0.0/8, version 16Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 100 111 55 123 100.X.1.1 from 100.X.1.1 (100.100.100.[1-3]) Origin IGP, localpref 100, valid, external, best

LAB 1-2-2

Page 96: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

96

2.5 Fail-Over automático

Vamos verificar no ponto de vista do Looking Glass:

ALUNO@notebook:~$ telnet 123.123.123.1Trying 123.123.123.1...Connected to 123.123.123.1.Escape character is '^]'.

User Access Verification

Password: 123AS-123-R1>traceroute X.128.0.1

Type escape sequence to abort.Tracing the route to 1.0.1.1

1 123.55.2.2 8 msec 8 msec 4 msec 2 55.55.1.2 [AS 55] 12 msec 24 msec 16 msec 3 55.111.2.2 [AS 55] 32 msec 28 msec 40 msec 4 111.111.1.2 [AS 111] 52 msec 36 msec 64 msec 5 111.100.10.2 [AS 111] 56 msec 48 msec 52 msec 6 100.100.1.2 [AS 100] 84 msec 60 msec 64 msec 7 100.X.1.2 [AS 100] 84 msec 88 msec 60 msec 8 X.128.0.1 [AS 1] 92 msec 68 msec 96 msec

LAB 1-2-2

Page 97: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

97

2.5 Fail-Over automático

Verifiquem que o looking glass escolhe o caminho mais “longo” para chegar ao notebook do aluno:

*agora é a única rota disponível

E essa mensagem "advertised to... 123.222.2.2" ?

Nos slides anteriores era "advertised to 123.55.2.2"

Vamos ver o debug do as 123 após um “clear ip bgp”

Mas deixa claro que a(s) rede(s) do(s) aluno(s) estão sendo anunciadas para o as 222, e consequentemente para o AS 200

Vamos comprovar...

AS-123-R1>sh ip bgp X.128.0.1BGP routing table entry for 1.0.0.0/8, version 49Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: 123.222.2.2 55 111 100 X 123.55.2.2 from 123.55.2.2 (55.55.55.2) Origin IGP, localpref 100, valid, external, best

LAB 1-2-2

Page 98: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

98

2.5 Fail-Over automático

Partindo do laptop vamos tentar alcançar o AS 200...

Agora alcançamos o AS 200 pelo caminho mais longo possível, AS 100, AS 111, AS 55, AS 123, AS 222 e finalmente AS 200.

Vamos analisar...

ALUNO@notebook:~$ traceroute 200.200.200.10 -ntraceroute to 200.200.200.10 (200.200.200.10), 30 hops max, 60 byte packets 1 X.128.0.254 6.128 ms 6.510 ms 6.501 ms 2 100.X.1.1 19.342 ms 19.735 ms 68.139 ms 3 100.100.1.1 100.368 ms 68.527 ms 99.945 ms 4 111.100.10.1 68.506 ms 79.031 ms 100.321 ms 5 111.111.1.1 78.604 ms 68.467 ms 68.456 ms 6 55.111.2.1 45.810 ms 39.272 ms 127.491 ms 7 55.55.1.1 136.322 ms 123.845 ms 114.650 ms 8 123.55.2.1 113.618 ms 123.932 ms 112.493 ms 9 123.222.2.2 161.647 ms 101.636 ms 111.676 ms10 222.222.1.2 161.596 ms 176.097 ms 183.647 ms11 222.200.10.2 154.398 ms 122.534 ms 101.285 ms

LAB 1-2-2

Page 99: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

99

2.5 Fail-Over automático

Verifiquem as entradas para a rede em que faz parte o IP do AS-200-R10:

Observe o AS Path, precisamos dar a "volta ao mundo" para alcançar o AS 200.

Discutiremos soluções alternativas nos próximos capítulos.

GX-R1>sh ip bgp 200.200.200.10BGP routing table entry for 200.0.0.0/8, version 20Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 100 111 55 123 222 200 100.X.1.1 from 100.X.1.1 (100.100.100.1) Origin incomplete, localpref 100, valid, external, best

LAB 1-2-2

Page 100: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

100

2.5 Fail-Over automático

A mesma coisa pode ser observada a partir do R10 do AS 200

O novo caminho fica bem mais “longo”, mas não fica fora

ALUNO@notebook:~$ telnet 200.200.200.10Trying 200.200.200.10Connected to 200.200.200.10Escape character is '^]'.

AS-200-R10>sh ip bgp X.0.0.0BGP routing table entry for X.0.0.0/8, version 77Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to peer-groups: IBGP 222 123 55 111 100 X 222.200.10.1 from 222.200.10.1 (222.222.222.1) Origin IGP, localpref 100, valid, external, best

LAB 1-2-2

Page 101: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

101

2.5 Fail-Over automático

Conclusões:

O protocolo BGP trata praticamente sozinho os problemas de queda nos links.

Porém não tem como entender certas variáveis que fazem o link A ser mais viável que o link B, ou mesmo quando precisamos somar 2 links.

Em outras palavras, se tenho contratados 100Mbs de trânsito com o AS 100 e apenas 50 com o AS 200, seria inviável ter o link do AS 200 como principal, e nesse caso precisamos "interferir" na decisão do protocolo BGP manipulando certos atributos.

Page 102: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

102

PERGUNTAS?PERGUNTAS?

2.5

Page 103: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

103

Escolhendo o Melhor Link

2.6

Page 104: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

104

2.6 Escolhendo o melhor link

Considere quase toda a minha demanda de trânsito vindo sempre do AS 123 as seguintes situações:

O link entre o AS 222 e 200 está passando por dificuldades.

A negociação com o AS 100 me garantiu um preço que me permitiu dobrar a banda contratada.

Algum outro motivo que me obrigue a utilizar o AS 100 como link principal e o as 200 como backup.

Como vimos anteriormente, o BGP escolhe por padrão o as 200, vamos modificar essa escolha...

Page 105: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

105

2.6 Escolhendo o melhor link

Alterando o atributo Weight:

Vamos verificar como ficaram as rotas BGP...

GX-R1#configure terminalGX-R1(config)#router bgp XGX-R1(config-router)#neighbor 100.X.1.1 weight 10GX-R1(config-router)#end!--- agora vamos efetuar um clear na sessão BGP

GX-R1#clear ip bgp 100.X.1.1

LAB 1-3-1

Page 106: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

106

2.6 Escolhendo o melhor link

Analisando a rota para rede do looking glass após a mudança no atributo:

Acabamos de forçar o router a escolher a rota #2, já que o primeiro critério é o atributo weight, a rota 2# foi escolhida como melhor mesmo com um as path MAIOR.

GX-R1#sh ip bgp 123.123.123.1BGP routing table entry for 123.0.0.0/8, version 35Paths: (2 available, best #2, table Default-IP-Routing-Table) Not advertised to any peer 200 222 123 200.X.1.1 from 200.1.1.1 (200.200.200.1) Origin IGP, localpref 100, valid, external

100 111 55 123 100.X.1.1 from 100.X.1.1 (100.100.100.1) Origin IGP, localpref 100, weight 10, valid, external, best

LAB 1-3-1

Page 107: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

107

2.6 Escolhendo o melhor link

Testando...

Executem um traceroute do seu laptop para 123.123.123.1

…...

Caso a mudança no weight tenha sido bem sucedida os pacotes seguiram a rota pelo AS 100 ao invés do AS 200.

Porém isso resolve apenas "metade" do meu problema conforme veremos no slide seguinte...

LAB 1-3-1

Page 108: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

108

2.6 Escolhendo o melhor link

Ping extendido:

GX-R1#pingProtocol [ip]:Target IP address: 123.123.123.1Repeat count [5]: 2Datagram size [100]:Timeout in seconds [2]:Extended commands [n]: ySource address or interface: X.128.0.254Type of service [0]:Set DF bit in IP header? [no]:Validate reply data? [no]:Data pattern [0xABCD]:Loose, Strict, Record, Timestamp, Verbose[none]: recordNumber of hops [ 9 ]:Loose, Strict, Record, Timestamp, Verbose[RV]:Sweep range of sizes [n]:Type escape sequence to abort.Sending 2, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:Packet sent with a source address of 172.16.32.1Packet has IP options: Total option bytes= 39, padded length=40 Record route: <*> (0.0.0.0) (0.0.0.0) (0.0.0.0) (0.0.0.0)

(...continua...) LAB 1-3-1

Page 109: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

109

2.6 Escolhendo o melhor link

Ping extendido:

(...continuação...) (0.0.0.0)

Reply to request 0 (152 ms). Received packet has options Total option bytes= 40, padded length=40 Record route: (100.X.1.2) (100.100.2.2) (111.100.1.2) (111.111.2.2) (55.111.1.2) (55.55.2.2) (123.55.1.2) (123.123.123.1) (123.222.1.1) *essa é interface pelo qual o ping foi respondido <*>

End of list

<Omited> Success rate is 100 percent (2/2), round-trip min/avg/max = 116/134/152 msGX-R1#

LAB 1-3-1

Page 110: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

110

2.6 Escolhendo o melhor link

Agora verificar o ponto de vista do looking glass testando a partir dele:

Como podemos verificar, o AS 123 continua escolhendo a mesma rota, uma vez que a mudança no atributo weight, teve influência apenas no meu UPLOAD, sendo assim, meu download continua chegando pelo AS 200 (menor AS PATH no ponto de vista do AS 123).

Não tenho como pedir que o AS 123 altere os seus atributos, preciso convencê-los de outra forma a mudar de rota.

ALUNO@notebook:~ telnet 123.123.123.1

!--- Efetuem um traceroute para o seu laptop

AS-123-R1>traceroute para X.128.0.1

LAB 1-3-1

Page 111: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

111

2.6 Escolhendo o melhor link

Fazendo anúncios mais específicos para o AS 100

Como mencionado anteriormente, os atributos BGP só são analisados quando há um empate de prefixo, porém quando há um prefixo MAIS ESPECÍFICO os atributos são ignorados.

Quais blocos anunciar para cada AS?

Dividiremos em 2 blocos /9 para o as 100 e o /8 para o AS 200.

LAB 1-3-1

Page 112: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

112

2.6 Escolhendo o melhor link

Configurando os anúncios mais específicos:

GX-R1#conf terminal GX-R1(config)#ip prefix-list LAB-1-3-1-ANUNCIAR-AS-100 permit X.0.0.0/9GX-R1(config)#ip prefix-list LAB-1-3-1-ANUNCIAR-AS-100 permit X.128.0.0/9!--- adiciona 2 prefixos /9 dentro da lista ”ANUNCIAR-AS-100”

GX-R1(config)#ip prefix-list LAB-1-3-1-ANUNCIAR-AS-200 permit X.0.0.0/8 !--- adiciona o classe A inteiro dentro da lista ”ANUNCIAR-AS-100”GX-R1(config)#router bgp X!--- adiciona 2 prefixos /9 dentro da lista ”ANUNCIAR-AS-100”GX-R1(config-router)#network X.0.0.0 mask 255.128.0.0GX-R1(config-router)#network X.128.0.0 mask 255.128.0.0!--- além do anuncio local do classe A, inserimos mais 2 prefixos /9 a serem!--- a serem anunciados pelo router

GX-R1(config-router)#neighbor 200.X.1.1 prefix-list LAB-1-3-1-ANUNCIAR-AS-200 out !--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list LAB-1-3-1-ANUNCIAR-AS-100 out !--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados GX-R1(config-router)#end

GX-R1#clear ip bgp * softLAB 1-3-1

Page 113: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

113

2.6 Escolhendo o melhor link

Verificando anúncios para o AS 200:

Agora para o AS 100:

Estamos anunciando apenas um dos blocos /9 para o AS 100, por que?

Gx-R1#sh ip bgp neighbors 200.x.1.1 advertised-routes BGP table version is 13, local router ID is 2.2.2.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> x.0.0.0 0.0.0.0 0 32768 iGx-R1#

Gx-R1#sh ip bgp neighbors 100.x.1.1 advertised-routes

Network Next Hop Metric LocPrf Weight Path*> x.128.0.0/9 0.0.0.0 0 32768 i

LAB 1-3-1

Page 114: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

114

2.6 Escolhendo o melhor link

Apenas um prefixo pertencente ao meu classe A está na FIB:

O comando ”longer-prefixes” mostraria rotas para qualquer sub-rede dentro do bloco /8 pesquisado, porém temos o primeiro /9 diretamente conectado à f0/0 e um /32 na Loopback0.

Gx-R1#sh ip route x.0.0.0 longer-prefixes ...

Gateway of last resort is not set

x.0.0.0/8 is variably subnetted, 2 subnets, 2 masksC x.x.x.x/32 is directly connected, Loopback0C x.128.0.0/9 is directly connected, FastEthernet0/0

LAB 1-3-1

Page 115: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

115

2.6 Escolhendo o melhor link

Precisamos primeiramente garantir que as redes que quero anunciar estejam em minha FIB:

Agora que tenho os 2 blocos /9 em minha FIB vamos verificar novamente os anúncios para o AS 100...

Gx-R1#conf tGx-R1(config)#ip route x.0.0.0 255.128.0.0 null0!--- faremos apenas para o primeiro /9 já que o segundo está OKGx-R1(config)#endGx-R1#Gx-R1#sh ip route x.0.0.0 longer-prefixes ...Gateway of last resort is not set

x.0.0.0/8 is variably subnetted, 3 subnets, 2 masksC x.x.x.x/32 is directly connected, Loopback0S x.0.0.0/9 is directly connected, Null0C x.128.0.0/9 is directly connected, FastEthernet0/0

LAB 1-3-1

Page 116: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

116

2.6 Escolhendo o melhor link

Agora que tenho os 2 blocos /9 em minha FIB vamos verificar novamente os anúncios para o AS 100...

Agora estamos fazendo corretamente o anúncio dos dois blocos /9 para o AS 100.

Gx-R1#sh ip bgp neighbors 100.x.1.1 advertised-routes BGP table version is 11, local router ID is 2.2.2.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> x.0.0.0/9 0.0.0.0 0 32768 i*> x.128.0.0/9 0.0.0.0 0 32768 iGx-R1#

LAB 1-3-1

Page 117: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

117

2.6 Escolhendo o melhor link

Vamos novamente entrar no looking glass e verificar as rotas para classe A do grupo:

Dessa forma, a rota em vermelho nunca é usada, pois existem dois blocos mais específicos, fazendo com que o LG sempre alcance os AS's dos grupos através do AS 100.

AS-123-R1>sh ip bgp X.0.0.0/8 longer-prefixes BGP table version is 30, local router ID is 123.123.123.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0/9 123.55.2.2 0 55 111 100 X i*> X.0.0.0 123.222.2.2 0 222 200 X i*> X.128.0.0/9 123.55.2.2 0 55 111 100 X iAS-123-R1>

LAB 1-3-1

Page 118: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

118

2.6 Escolhendo o melhor link

Verificando caminho percorrido com o comando traceroute:

No início forçamos o upload pelo AS 100, e agora também o download pelo AS 100.

AS-123-R1>traceroute X.128.0.1

Type escape sequence to abort.Tracing the route to X.128.0.1

1 123.55.2.2 20 msec 24 msec 12 msec 2 55.55.1.2 [AS 55] 32 msec 32 msec 44 msec 3 55.111.2.2 [AS 55] 20 msec 36 msec 32 msec 4 111.111.1.2 [AS 111] 40 msec 56 msec 36 msec 5 111.100.10.2 [AS 111] 88 msec 28 msec 56 msec 6 100.100.1.2 [AS 100] 76 msec 52 msec 76 msec 7 100.2.1.2 [AS 100] 64 msec 56 msec 60 msec 8 X.128.0.2 [AS X] 60 msec 60 msec 80 msecAS-123-R1>

LAB 1-3-1

Page 119: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

119

2.6 Escolhendo o melhor link

Agora vamos voltar ao normal e remover o Weight 10 para todas as rotas recebidas do AS 100

Vamos verificar como ficaram as rotas BGP...

GX-R1#configure terminalGX-R1(config)#router bgp XGX-R1(config-router)#no neighbor 100.X.1.1 weight 10GX-R1(config-router)#end!--- agora vamos efetuar um clear na sessão BGP

GX-R1#clear ip bgp 100.X.1.1

LAB 1-3-1

Page 120: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

120

PERGUNTAS?PERGUNTAS?

2.6

Page 121: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

121

Balanceando os Links

2.7

Page 122: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

122

2.7-Balanceando os links

Vamos agora considerar uma situação de necessidade de utilizar os dois links de maneira balanceada.

Dividiremos cada metade do /8 para cada AS.

Anunciaremos o primeiro /9 para o AS 100 e o segundo /9 para o AS 200 fazendo com que o nosso tráfego inbound seja divido em 50% para cada link.

A lógica é a mesma, o que faremos diferente do lab anterior é um detalhe para o fail-over.

Page 123: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

123

2.7-Balanceando os links

Vamos entrar no looking glass e ver o resultado:

AS-123-R1>sh ip bgp X.0.0.0/8 longer-prefixes ... Network Next Hop Metric LocPrf Weight Path*> X.0.0.0/9 123.55.1.2 0 55 111 100 X i* X.0.0.0 123.55.1.2 0 55 111 100 X i*> 123.222.1.2 0 222 200 X i*> X.128.0.0/9 123.222.1.2 0 222 200 X iAS-123-R1>

Agora testar o caminho para os 2 blocos /9.

LAB 1-4-1

Page 124: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

124

2.7-Balanceando os links

Vamos criar duas novas prefix-lists e adiciona-las como filtro de SAÍDA para cada AS de trânsito:

GX-R1#conf terminal GX-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-100 permit X.0.0.0/8GX-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-100 permit X.0.0.0/9!--- adiciona 2 prefixos /9 dentro da lista ”ANUNCIAR-AS-100”

GX-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-200 permit X.0.0.0/8 GX-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-200 permit X.128.0.0/9 !--- adiciona o classe A inteiro dentro da lista ”ANUNCIAR-AS-100”GX-R1(config)#router bgp X!--- adiciona 2 prefixos /9 dentro da lista ”ANUNCIAR-AS-100”

GX-R1(config-router)#neighbor 200.X.1.1 prefix-list LAB-1-4-1-ANUNCIAR-AS-200 out !--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list LAB-1-4-1-ANUNCIAR-AS-100 out !--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados GX-R1(config-router)#end

GX-R1#clear ip bgp * soft

LAB 1-4-1

Page 125: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

125

2.7-Balanceando os links

AS-123-R1>traceroute X.X.X.X

Type escape sequence to abort.Tracing the route to X.X.X.1

1 123.55.2.2 8 msec 16 msec 16 msec 2 55.55.1.2 [AS 55] 44 msec 12 msec 16 msec 3 55.111.2.2 [AS 55] 24 msec 32 msec 32 msec 4 111.111.1.2 [AS 111] 48 msec 28 msec 48 msec 5 111.100.10.2 [AS 111] 48 msec 48 msec 56 msec 6 100.100.1.2 [AS 100] 60 msec 88 msec 112 msecAS-123-R1>

Primeiro /9 (Loopback do router):

Caminho 55,111,100

LAB 1-4-1

Page 126: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

126

2.7-Balanceando os links

Segundo /9 (ip do laptop):

Caminho 222,200

AS-123-R1#traceroute X.128.0.1

Type escape sequence to abort.Tracing the route to X.128.0.1

1 123.222.2.2 24 msec 4 msec 32 msec 2 222.222.1.2 [AS 222] 40 msec 8 msec 16 msec 3 222.200.10.2 [AS 222] 32 msec 24 msec 16 msec 4 200.200.1.2 [AS 200] 56 msec 4 msec 28 msec 5 200.2.1.2 [AS 200] 92 msec 20 msec 40 msec 8 X.128.0.1 [AS 2] 64 msec 47 msec 33 msecAS-123-R1#

LAB 1-4-1

Page 127: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

127

2.7-Balanceando os links

Simulação de problemas nos CE's do AS 100...

Todos verificam a mudança!

Simulação de problemas nos CPE's do AS 200...

Todos verificam a mudança!

LAB 1-4-2

Page 128: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

128

2.7-Balanceando os links

OBS: Para um balanceamento assimétrico mudaríamos os anúncios, quebrando para blocos cada vez mais específicos

Nunca esquecer de que o balanceamento baseado em anúncios específicos depende da distribuição dos IPs dentro do meu AS.

LAB 1-4-2

Page 129: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

129

Implementando Alta

Disponibilidade com VRRP

2.8

Page 130: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

130

2.8- Implementando Alta Disponibilidade com VRRP

O cenário permanece o mesmo, porém com um router “identico” como backup.

A ideia é que todos os dois links continuem 100% operacional mesmo que o router principal fique totalmente fora.

LAB 1-5-1

Page 131: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

131

Antes de configurar o router BACKUP, vamos NOVAMENTE anunciar apenas um bloco /8 para cada operadora:

Criando as prefix-lists:

GX-R1(config)#router bgp X

GX-R1(config-router)#neighbor 200.X.1.1 prefix-list MEUS-BLOCOS out!---mudar o filtro na saída do AS 200

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out !--- mudar o filtro na saída do AS 100

GX-R1(config-router)#end

GX-R1#clear ip bgp *

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 132: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

132

O segundo router responde pelo IP X.128.0.253

Verifiquem a conectividade IP e em caso positivo abram uma sessão telnet da mesma forma que fizemos com GX-R1:

ALUNO@notebook# telnet X.128.0.253

Trying X.128.0.253...

Connected to X.128.0.253.

Escape character is '^]'.

User Access Verification

Password: A senha de acesso também é 123

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 133: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

133

Estamos agora no modo ”usuário”:

GX-R2>

A senha de enable mudou:

G1-R2>enable

Password: gXr2

GX-R2#

Todos os outros passos são semelhantes...

GX-R2#terminal monitor

GX-R2#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

GX-R2(config)#

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 134: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

134

Precisamos aplicar as MESMAS configurações, com exceção dos endereços de neighbor:

!-- ATENÇÂO as configurações são em Gx-R2

!-- observem a mudança no IP de neighbor

GX-R2(config)# router bgp X

GX-R2(config-router)#

network x.0.0.0 mask 255.0.0.0

no auto-summary

neighbor 100.X.2.1 remote-as 100

neighbor 100.X.2.1 description eBGP com as 100

neighbor 200.X.2.1 remote-as 200

neighbor 200.X.2.1 description eBGP com as 200LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 135: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

135

Criando as prefix-lists:

GX-R2(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8!--- adiciona o bloco do AS do grupo na lista ”MEUS-BLOCOS”

GX-R2(config)#ip route X.0.0.0 255.0.0.0 null 0

GX-R2(config)#router bgp X

GX-R2(config-router)#neighbor 200.X.2.1 prefix-list MEUS-BLOCOS out!---aplicar o mesmo filtro na saída do AS 200

GX-R2(config-router)#neighbor 100.X.2.1 prefix-list MEUS-BLOCOS out !--- aplicar o mesmo filtro na saída do AS 100

GX-R2(config-router)#end

GX-R2#clear ip bgp *

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 136: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

136

Verificando o status das sessões BGP recém-criadas:

GX-R2#sh ip bgp summary

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

100.X.2.1 4 100 192 170 9 0 0 00:00:48 7

200.X.2.1 4 200 191 181 9 0 0 00:00:51 7

O número de PfxRcd vai ser maior a medida que os alunos estabeleceram suas conexões.

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 137: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

137

Verificando as rotas recebidas após o filtro de saída:

GX-R2>sh ip bgp neighbors 100.X.2.1 advertised-route BGP table version is 24, local router ID is X.X.X.XStatus codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

GX-R2>sh ip bgp neighbors 200.X.2.1 advertised-routes

BGP table version is 24, local router ID is X.X.X.XStatus codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 138: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

138

O próximo passo é a criação da interface virtual, mas o que é VRRP afinal?

Virtual Router Redundancy Protocol cria uma interface, um MAC e um ip virtual, e todos os routers do grupo VRRP conhecem essas informaçes. No momento em que o router “master” fica fora, o primeiro candidato levanta imediatamente o IP virtual, de maneira que os hosts da rede não percebem essa comutação, e ao mesmo tempo não tem problemas com ARP, já que o MAC não muda.

LAB 1-5-1

2.8- Implementando Alta Disponibilidade com VRRP

Page 139: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

139

O próximo passo é a criação da interface virtual, mas o que é VRRP afinal?

2.8- Implementando Alta Disponibilidade com VRRP

Vários roteadores podem fazer parte de uma mesma VRRP. Para definir quem é o router master e quem assume nas situações de falha, alteramos o valor de priority na configuração do grupo VRRP.

Vamos à segunda parte do LAB...

LAB 1-5-2

Page 140: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

140

Vamos configurar uma VRRP na interface lan e garantir que GX-R1 seja o router master:

2.8- Implementando Alta Disponibilidade com VRRP

GX-R1#conf tGX-R1(config)#interface fastEthernet 0/0GX-R1(config-if)#vrrp X ip X.128.0.252GX-R1(config-if)#vrrp X priority 2 GX-R1(config-if)#vrrp X timers advertise 1GX-R1(config-if)#vrrp X preempt delay minimum 160GX-R1(config-if)#endGX-R1#debug vrrp state VRRP State debugging is onGX-R1#wr

GX-R2#conf tGX-R2(config)#interface fastEthernet 0/0GX-R2(config-if)#vrrp X ip X.128.0.252GX-R2(config-if)#vrrp X priority 1 GX-R2(config-if)#vrrp X timers learnGX-R2(config-if)#vrrp X preempt delay minimum 160GX-R2(config-if)#endGX-R2#debug vrrp state VRRP State debugging is onGX-R2#wr

LAB 1-5-2

Page 141: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

141

Vamos verificar o status...

2.8- Implementando Alta Disponibilidade com VRRP

GX-R1#sh vrrp brief Interface Grp Pri Time Own Pre State Master addr Group addrFa0/0 X 2 3992 Y Master X.128.0.254 X.128.0.252 GX-R1#

GX-R2#sh vrrp brief Interface Grp Pri Time Own Pre State Master addr Group addrFa0/0 X 1 3992 Y Backup X.128.0.254 X.128.0.252 GX-R2#

LAB 1-5-2

Page 142: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

142

Agora simularemos uma falha em GX-R1

2.8- Implementando Alta Disponibilidade com VRRP

Notem que há um tempo médio de 4 minutos até que a comutação aconteça para o router backup

Por que todo esse tempo?

X

LAB 1-5-2

Page 143: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

143

Quando o router R1 fica fora, os CPE's das operadoras passam algum tempo “pensando” que ele ainda está UP

2.8- BGP Timers

Cada router envia uma mensagem “keep alive” a cada 60 segundos (por padrão)

Quando um “keep alive” atrasa, o CPE da operadora ativa uma contagem chamada “hold time” (padrão 180 segundos)

Se até o final do “hold time” não chegar um “keep alive” o CPE da operadora finaliza a sessão BGP com R1.

Imediatamente o CPE percebe que há uma outra opção disponível para a rede X.0.0.0/8 e instala em sua FIB

Vamos alterar os valores de “keep alive” e “hold time” para 5 e 15 segundos respectivamente...

X

LAB 1-5-2

Page 144: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

144

Vamos alterar os timers padrão para diminuir o downtime

2.8- BGP Timers

GX-R1(config)#router bgp XGX-R1(config-router)#neighbor 100.X.1.1 timers 5 15GX-R1(config-router)#neighbor 200.X.1.1 timers 5 15!--- muda o tempo de keep alive para 5 segundos !--- e o hold time para 15 segundosGX-R1(config-router)#endGX-R1#clear ip bgp *

GX-R2(config)#router bgp XGX-R2(config-router)#neighbor 100.X.2.1 timers 5 15GX-R2(config-router)#neighbor 200.X.2.1 timers 5 15!--- muda o tempo de keep alive para 5 segundos !--- e o hold time para 15 segundosGX-R2(config-router)#endGX-R2#clear ip bgp *

LAB 1-5-2

Page 145: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

145

Vamos testar novamente...

2.8- BGP Timers

X

O tempo paralização diminuiu de cerca de 3 minutos para 15 segundos

É importante lembrar que nesse lab utilizamos interfaces seriais, e o “bgp fast-external-fallover” vem habilitado por padrão e faz o BGP automaticamente finalizar a sessão quando detecta uma interface em estado “down”.

Esse recurso foi desabilitado no intuito de simular situações reais já qua a maioria dos links atuais são “metroethernet”

LAB 1-5-2

Page 146: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

146

PERGUNTAS?PERGUNTAS?

2.8

Page 147: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

147

3.0 Peering e Troca de

Tráfego3. Peering e Troca de tráfego

• 3.1 Peering x Trânsito• 3.2 Entendendo o funcionamento de um PIX• 3.3 Formulários de adesão• 3.4 Diferenças entre acordo bilateral e multilateral• 3.5 Participantes locais e remotos• 3.6 Entendendo o conceito de Lan2Lan• 3.7 ATM-Tratando as rotas recebidas• 3.8 ATM-Anunciando corretamente• 3.9 O looking glass do PTT Metro• 3.10 Aplicações de um acordo bilateral• 3.11 Comprando e vendendo trânsito no PTT

Page 148: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

148

3.1

Peering x Trânsito

Page 149: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

149

3.1 Peering x Trânsito

Em primeiro lugar devem ser separados os conceitos de peering e trânsito.

Quando dois AS's tem uma quantidade de demanda comum, acaba saindo mais barato o peering.

Exemplo, eu sou AS A, e tenho uma demanda de 10Mbs de download de um certo conteúdo hospedado no AS B.

Para resolver isso, contrato um link de 10Mbs da operadora B e pago R$ 100,00 por cada mega, num total de R$ 1.000,00.

Page 150: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

150

3.1 Peering x Trânsito

Porem, a operadora B também tem uma demanda de 10Mbs de conteúdo hospedado no meu AS A.

Isso dá para operadora B uma conta semelhante de R$ 1.000,00 mensais.

No final do mês, ficaríamos empatados no custo, e o melhor a se fazer é estabelecer um link direto de 10Mbs sem que um cobre do outro.

Há outras vantagens técnicas como menor caminho BGP e menor latência.

Page 151: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

151

LAB: Observem o cenário...

3.1 Peering x Trânsito

Page 152: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

152

LAB: Estabelecer peering entre grupos com os seguintes Ips:AS IP AS IP

1 1.2.1.1/30 x 2 1.2.1.2/30

3 3.4.1.1/30 x 4 3.4.1.2/30

5 5.6.1.1/30 x 6 5.6.1.2/30

7 7.8.1.1/30 x 8 7.8.1.2/30

9 9.10.1.1/30 x 10 9.10.1.2/30

11 11.12.1.1/30 x 12 11.12.1.2/30

13 13.14.1.1/30 x 14 13.14.1.2/30

15 15.16.1.1/30 x 16 15.16.1.2/30

17 17.18.1.1/30 x 18 17.18.1.2/30

19 19.20.1.1/30 x 20 19.20.1.2/30

21 21.22.1.1/30 x 22 21.22.1.2/30

23 23.24.1.1/30 x 24 23.24.1.2/30

- - - - -

3.1 Peering x Trânsito

LAB 1-6-1

Page 153: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

153

Realizando as configurações IP (AS ÍMPAR):

GXR1#conf t

GX-R1(config)#interface serial 1/2

GX-R1(config-if)#ip address X.Y.1.1 255.255.255.252

GX-R1(config-if)#no shutdown

GX-R1(config-if)#end

GXR1#ping X.Y.1.2

Onde:

X= AS local

Y= AS remoto

3.1 Peering x Trânsito

LAB 1-6-1

Page 154: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

154

Realizando as configurações IP (AS PAR):

GXR1#conf t

GX-R1(config)#interface serial 1/2

GX-R1(config-if)#ip address Y.X.1.2 255.255.255.252

GX-R1(config-if)#no shutdown

GX-R1(config-if)#end

GXR1#ping Y.X.1.1

Onde:

X= AS local

Y= AS remoto

3.1 Peering x Trânsito

LAB 1-6-1

Page 155: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

155

Configurando BGP (AS ÍMPAR): Onde:

X= AS localY= AS remoto

GX-R1#conf tGX-R1(config)#GX-R1(config)#router bgp XGX-R1(config-router)#neighbor X.Y.1.2 remote-as YGX-R1(config-router)#neighbor X.Y.1.2 weight 20!--- priorizar todas as rotas recebidas pelo peering com weight 20GX-R1(config-router)#neighbor X.Y.1.2 prefix-list MEUS-BLOCOS out!--- filtrar anúncios de saída para esse peering na respectiva prefix-listGX-R1(config-router)#exitGX-R1(config)#endGX-R1#clear ip bgp *

3.1 Peering x Trânsito

LAB 1-6-1

Page 156: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

156

Configurando BGP (AS PAR): Onde:

X= AS localY= AS remoto

GX-R1#conf tGX-R1(config)#GX-R1(config)#router bgp XGX-R1(config-router)#neighbor Y.X.1.1 remote-as YGX-R1(config-router)#neighbor Y.X.1.1 weight 20!--- priorizar todas as rotas recebidas pelo peering com weight 20GX-R1(config-router)#neighbor Y.X.1.1 prefix-list MEUS-BLOCOS out!--- filtrar anúncios de saída para esse peering na respectiva prefix-listGX-R1(config-router)#exitGX-R1(config)#endGX-R1#clear ip bgp *

3.1 Peering x Trânsito

LAB 1-6-1

Page 157: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

157

Verificando os anúncios para o novo peering:

O Next Hop 0.0.0.0 e o weight 32768 indicam que as redes foram originadas localmente ou seja, no comando: router(config-router) network x.x.x.x mask x.x.x.x

GX-R1#sh ip bgp neighbors X.X.X.X advertised-routes ... Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i!-- x.x.x.x é o endereço remoto do seu peering

3.1 Peering x Trânsito

LAB 1-6-1

Page 158: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

158

Verificando as redes recebidas do meu novo peering(utilizando o exemplo para o peering entre AS 1 e 2):

Onde:1= AS local2= AS remoto

G1-R1#sh ip bgp regexp ^Y$!--- essa consulta retorna apenas rotas que contenham o AS Y no path!--- e nada maisBGP table version is 29, local router ID is 1.1.1.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> Y.0.0.0 X.Y.1.2 0 20 Y i

3.1 Peering x Trânsito

LAB 1-6-1

Page 159: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

159

Testando um traceroute para Y.128.0.1 ...

A partir de agora está havendo uma troca de tráfego entre os 2 AS's.

O que faz dessa configuração um peering e não um trânsito?

*Ao caírem os links do AS200 e AS100 apenas as redes do peering continuariam funcionando, e isso é o que descaracteriza um trânsito.

3.1 Peering x Trânsito

LAB 1-6-1

Page 160: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

160

Vamos simular uma falha nos AS's de trânsito e verificar a conectividade entre os 2 AS's que fazem peering...

3.1 Peering x Trânsito

XX

LAB 1-6-1

Page 161: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

161

Entendendo o Funcionamento

de Um PIX do PTTMetro

3.2

Page 162: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

162

3.2 Entendendo o Funcionamento de Um PIX do PTTMetro

Para quem ainda não assistiu:

http://youtu.be/imL3Cc8mC2Y

Page 163: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

163

Entendendo a necessidade de peerings entre centenas de ASs do Brasil, o NIC.br organizou diversos pontos de troca.

Seu funcionamento consiste basicamente em 1 switch, 2 route-servers e um router Looking Glass (outros maiores como SP possuem dezenas de switchs em vários PIXes).

3.2 Entendendo o Funcionamento de Um PIX do PTTMetro

Page 164: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

164

Todos os participantes compartilham um mesmo bloco /24 ou /22 (no caso do PTT-SP), cada participante tem um IP, e todos pingam entre si.

Estabelecem conexões BGP com os route-servers e o looking glass.

3.2 Entendendo o Funcionamento de Um PIX do PTTMetro

Page 165: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

165

Os Route Servers cumprem um papel fundamental dispensando a necessidade de que todos os participantes façam peering individualmente.

Imaginem centenas de participantes estabelecendo peering (todos com todos).

ROUTESERVER

3.2 Entendendo o Funcionamento de Um PIX do PTTMetro

Page 166: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

166

Formulários de Adesão

3.3

Page 167: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

167

3.3 - Formulários de Adesão

Para se conectar do PTT-SP por exemplo, acesse o endereço: http://sp.ptt.br/adesao.html

Page 168: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

168

Para facilitar há um formulário modelo já preenchido:... Termo de conexão ao PTTMetro...Localidade ........: (Coloque aqui a localidade do PTT que deseja se conectar) Listagem: http://ptt.br/adesao.phpASN ...............: 22548Entidade Nome .....: Registro.brURL ...............: http://registro.br/Endereço ..........: Av. das Nações Unidas 11548, 7° andar 04578-000 - São Paulo - SPNOC email .........: [email protected] ext ......: 22548*NOCTelefone ..........: 11 5509-3510Adm-c nome ........: Frederico A C Nevesemail .............: [email protected] ..........: 11 5509-3511Peering-c nome ....: Oripide Ocilento Filho email .............: [email protected] ..........: 11 5509-3520Comercial Trânsito :email .............:Telefone ..........:URL Política Peering .......: none - Open PolicyBGP Feed para o Looking-glass ...: Sim [x] Nao [ ]Vende trânsitov4 ..: Sim [ ] Não [x]Vende trânsitov6 ..: Sim [ ] Não [x]ConexãoBandwidth .........:Media Ethernet ....: 10BaseTX [ ] 100BaseTX [ ] 10000BaseTX [ ] 1 GigE-SX [X] 1 GigE-LX [ ] 10 GigE-SR [ ] 10 GigE-LR [ ]PIX ...............: Registro.brIPv6 ..............: Sim [x] Nao [ ]...

3.3 - Formulários de Adesão

Page 169: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

169

Diferenças entre Acordo Bilateral

e Multilateral

3.4

Page 170: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

170

3.4 - Diferenças entre Acordos Bilaterais e Multilaterais

Estar no PTT por si só não significa trocar tráfego!

Existem participantes que optaram em não trocar tráfego multilateral (todos com todos).

E esse é um direito do participante...

Page 171: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

171

Acordo de troca Multilateral (ATM) Para trocar tráfego com todos os participantes, além do termo

de conexão ao PTTmetro, é preciso preencher o termo de adesão ao ATM (Acordo de Troca Multilateral).

No acordo multilateral o participante recebe uma vlan+ip e troca tráfego com todos.

Após preenchidos ambos devem ser encaminhados para [email protected]

... Termo de adesão ao Acordo de Troca de Tráfego Multilateral (ATM)Version .........: 2008071000Este termo de adesão trata das informações e compromissos da entidadesolicitante para a participação no acordo de troca de tráfegomultilateral no PTTMetro.Localidade ......: sp.ptt.brASN .............: 22548Entidade Nome ...: Registro.brATM v4 ..........: Sim [x] Não [ ]ATM v6 ..........: Sim [x] Não [ ]...

3.4 - Diferenças entre Acordos Bilaterais e Multilaterais

Page 172: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

172

Acordo de troca Bilateral No acordo bilateral, 2 participantes manifestam interesse e

recebem uma vlan comum, que fica extendida às duas extremidades e, por se tratar de um serviço em layer 2, os IPs ficam à critério desses 2 participantes.

Em outras palavras, o PTTmetro providencia toda estrutura de um ”peering” para ambos.

Os AS's que se conectam ao PTT mas não participam do ATM, em geral vendem trânsito através deacordos bilaterais

3.4 - Diferenças entre Acordos Bilaterais e Multilaterais

Page 173: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

173

Participantes Locais e Remotos

3.5

Page 174: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

174

3.5 - Participantes Locais e Remotos

Para participar é preciso ter conectividade layer2 com o switch do PTT-Metro. Para isso há duas formas:

#1- Conectando-se fisicamente em um dos switches de um dos PIXs atraves de cabo/fibra:

Page 175: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

175

Ou...

2# - Contratando transporte layer2 (lan2lan, clear channel) de algum participante conectado fisicamente.

Não há diferenças no ponto de vista técnico entre as duas modalidades, exceto pelas consequẽncias do aumento de latencia, que é proporcional à distância geográfica.

3.5 - Participantes Locais e Remotos

Page 176: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

176

Entendendo o Conceito de Lan2Lan

3.6

Page 177: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

177

3.6 Entendendo o Conceito de Lan2Lan

Para participar remotamente de um PTT, é necessário que o participante troque informações de nível de enlace, ou seja, além de um IP diretamente conectado, o MAC original deve ser conhecido pelos participantes através de solicitações ARP

Em outras palavras, o participante remoto deve fazer parte do mesmo “domínio de broadcast” que os route servers e demais participantes

Page 178: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

178

3.6 Entendendo o Conceito de Lan2Lan

Um Tunel layer 2 ou “Lan2Lan” na prática não se parece muito com um “tunel”, ele pega o QUADRO ETHERNET original e encapsula no campo de dados do pacote IP

O router destinatário desencapsula, reproduz o QUADRO ETHERNET ORIGINAL e joga na inteface correspondente.

Dessa maneira, todas as informações de “layer 2” chegam ao outro lado, incluindo requisições ARP e broadcasts

Page 179: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

179

ATM-Tratando as Rotas Recebidas

3.7

Page 180: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

180

3.7 - ATM-Tratando as Rotas Recebidas

LAB: Estabelecer sessões BGP com o PTT Route-server e com o PTT Looking Glass:

GX-R1#conf tGX-R1(config)#router bgp XGX-R1(config-router)#no bgp enforce-first-asGX-R1(config-router)#neighbor 187.16.216.253 remote-as 555GX-R1(config-router)#neighbor 187.16.216.253 description PTT-Route_server-1GX-R1(config-router)#neighbor 187.16.216.253 weight 15

!--- o valor 15 de weight deve ser maior do que o aplicado no ”IN” do AS100, !--- porém menor que o aplicado no peering "20” GX-R1(config-router)#neighbor 187.16.216.253 prefix-list MEUS-BLOCOS out!--- vamos anunciar apenas o bloco /8 para o PTT e todos os outros peersGX-R1(config-router)#neighbor 187.16.216.252 remote-as 555GX-R1(config-router)#neighbor 187.16.216.252 description PTT-Looking Glass!--- para o looking glass do PTT enviaremos todas as rotas da FIB, portando nao usaremos

nenhum filtro

LAB 1-7-1

Page 181: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

181

Agora vamos verificar quais rotas recebo do Route Server do PTT

Utilizaremos o router do grupo 25 como exemplo:

Vamos confirmar se todas as 5 sessões estão estabelecidas:

● Peering

● Trânsito AS100

● PTT Looking Glass

● PTT Route Server

● Trânsito AS200

G25-R1#sh ip bgp summary ...Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcdX.Y.1.2 4 Y 442 443 168 0 0 07:16:05 4100.X.1.1 4 100 582 441 168 0 0 07:14:37 35187.16.216.252 4 555 10 44 168 0 0 00:06:02 0187.16.216.253 4 555 14 8 168 0 0 00:02:34 45200.X.1.1 4 200 548 441 168 0 0 07:14:26 34

3.7 - ATM- Tratando as Rotas Recebidas

LAB 1-7-1

Page 182: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

182

Vamos verificar todas as opções para chegar ao AS 123

Continuaremos Utilizando o router do grupo 25 como exemplo:

A rota escolhida para chegar ao AS 123 é pelo PTT.

G25-R1#sh ip bgp 123.123.123.1BGP routing table entry for 123.0.0.0/8, version 160Paths: (3 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: 187.16.216.252 123 (received & used) 187.16.216.123 from 187.16.216.253 (187.16.216.253) Origin IGP, localpref 100, weight 15, valid, external, best

200 222 123 200.25.1.1 from 200.25.1.1 (200.200.4.2) Origin IGP, localpref 100, valid, external

100 111 55 123 100.25.1.1 from 100.25.1.1 (100.100.100.4) Origin IGP, localpref 100, weight 10, valid, external

3.7 - ATM-Tratando as Rotas Recebidas

LAB 1-7-1

Page 183: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

183

Agora vamos entrar no Looking Glass do AS123 e verificar as rotas para o AS do grupo estão aparecendo assim:

A rota escolhida para chegar ao AS do grupo também é pelo PTT.

AS-123-R1>sh ip bgp X.0.0.0/8BGP routing table entry for X.0.0.0/8, version 251Paths: (3 available, best #3, table Default-IP-Routing-Table, not advertised outside local AS) Not advertised to any peer

55 111 100 X 123.55.2.2 from 123.55.2.2 (55.55.55.2) Origin IGP, localpref 100, valid, external

222 200 X 123.222.2.2 from 123.222.2.2 (222.222.222.2) Origin IGP, localpref 100, valid, external

X 187.16.216.X from 187.16.216.253 (187.16.216.253) !--- Essa rota foi recebida do PTT Origin IGP, localpref 100, valid, external, best Community: local-AS

3.7 - ATM-Tratando as Rotas Recebidas

LAB 1-7-1

Page 184: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

184

ATM-Anunciando Corretamente

3.8

Page 185: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

185

3.8- ATM- Anunciando Corretamente

Utilizamos anúncios da maneira mais simples possível, porém, no mundo real, o mais recomendado é anunciar blocos mais específicos para os pontos de troca.

Um dos principais motivos são os participantes indiretos, digamos que o administrador do AS 44 coloca baixa prioridade para rotas recebidas pelo AS 30, ou mesmo que o BGP tenha escolhido sozinho o AS 100 como melhor rota por esta ser mais antiga.

Page 186: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

186

Os anúncios garantem tráfego de download pelo PTT, porém existem outras maneiras de fazer isso, utilizando communities e as path prepend.

3.8- ATM- Anunciando Corretamente

Page 187: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

187

O Looking Glass do PTT Metro

3.9

Page 188: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

188

3.9 - O Looking Glass do PTT Metro

O Looking Glass do PTT-Metro foge um pouco do padrão, quando visualizamos uma rota como ”best” não significa que essa é a rota que está sendo escolhida pelos participantes do PTT.

Ele não envia nenhuma rota, e todos os participantes devem enviar a sua tabela full.

Assim, é uma ferramenta para ajudar a visualizar toda a tabela de roteamento de cada participante.

Page 189: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

189

Digamos que quero verificar a tabela de roteamento do participante do PTT que possui o AS 9.

Esse comando mostraria todas as rotas BGP na FIB do AS 9 (desde que esse esteja enviando sua tabela full para o LG).

GX-R1>telnet 187.16.216.252Trying 187.16.216.252 ... Open

User Access Verification

Password: 123

PTT-LG>show ip bgp regexp ^9_

3.9 - O Looking Glass do PTT Metro

Page 190: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

190

Aplicações de Um Acordo Bilateral

3.10

Page 191: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

191

3.10 Aplicações de Um Acordo Bilateral

Com um acordo bilateral um AS pode vender trânsito para outro AS participante dispensando os custos de ativação (estrutura e equipamentos).

Outra aplicação interessante é uma parceria entre 2 AS's de cidades diferentes para interligar um cliente comum em L2.

Page 192: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

192

LAB acordo bilateral:

● Os grupos escolherão com quem fazer o acordo bilateral e terão uma vlan comum escolhida pelo instrutor.

● O objetivo é semelhante ao LAB do ”peering”, porém, um dos participantes fornecerá trânsito IP para o outro que será apenas cliente.

● Para isso, deve ser estabelecida uma sessão BGP entre os dois, onde o responsável em prover trânsito deverá anunciar a tabela full para o cliente ao mesmo tempo que anuncia os prefixos do cliente para suas duas operadoras AS 100 e AS 200.

3.11 Comprando e vendendo trânsito no PTT

LAB 1-8-1

Page 193: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

193

Após decidido o ID da vlan cada participante deve inserir a tag correspondente na interface f0/1 (interface conectada ao PTT).

Os IPs não importam para o PTT e devem ser combinados entre os dois participantes do acordo bilateral.

XXX é o número (ID) da vlan e Z.Z.Z.Z o endereço IP que o cliente configurou do outro lado

3.11 Comprando e vendendo trânsito no PTT

GX-R1#conf tGX-R1(config)#interface fastEthernet 0/1.XXXGX-R1(config-subif)#encapsulation dot1Q XXXGX-R1(config-subif)#ip address (combinem os endereços IP de cada lado)GX-R1(config-subif)#endGX-R1# ping Z.Z.Z.Z

!--- testem conectividade IP através da vlan antes de iniciar as config BGP

LAB 1-8-1

Page 194: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

194

Configurações BGP no router que será TRÂNSITO:

GX-R1#conf tGX-R1(config)#router bgp XGX-R1(config-router)#neighbor Z.Z.Z.Z remote-as YGX-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral - clienteGX-R1(config-router)#neighbor Z.Z.Z.Z weight 25!--- o valor de weight deve ser maior do todos os outros já que se trata de um cliente de trânsitoGX-R1(config-router)#neighbor Z.Z.Z.Z prefix-list BLOCOS-CLIENTE-AS-Y in!--- dessa vez utilizaremos um filtro de entrada ”in” para não haver risco de receber do cliente !--- prefixos que não sejam dele e meu tráfego de output ir na direção desse clienteGX-R1(config-router)#exit

GX-R1(config)#ip prefix-list BLOCOS-CLIENTE-AS-Y permit Y.0.0.0/8!--- adiciono o classe A do cliente na prefix-list declarada como filtro de entrada

GX-R1(config)#ip prefix-list MEUS-BLOCOS permit Y.0.0.0/8!--- como já utilizamos a prefix-list ”MEUS-BLOCOS” na saída dos AS de trânsito, !--- vamos ”aproveita-la” e apenas adicionar mais um prefixo GX-R1(config-router)#endGX-R1#clear ip bgp *

OBS: onde houver Y substituiremos pelo AS do CLIENTE, e Z.Z.Z.Z pelo IP que foi combinado previamente com o cliente e configurado do outro lado da VLAN

3.11 Comprando e vendendo trânsito no PTT

LAB 1-8-1

Page 195: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

195

Configurações BGP no router CLIENTE:

GX-R1#conf tGX-R1(config)#router bgp XGX-R1(config-router)#neighbor Z.Z.Z.Z remote-as YGX-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral-transito IPGX-R1(config-router)#neighbor Z.Z.Z.Z prefix-list MEUS-BLOCOS out!--- como cliente devemos anunciar da mesma maneira que fizemos com os ASs de trânsito!--- e já que o classe A local já está nessa lista não preciso configurar mais nadaGX-R1(config-router)#endGX-R1#clear ip bgp *

OBS: onde houver Y substituiremos pelo AS que será TRÂNSITO, e Z.Z.Z.Z pelo IP que está configurado do outro lado

3.11 Comprando e vendendo trânsito no PTT

LAB 1-8-1

Page 196: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

196

Testando o LAB:

● DESATIVEM as interfaces s1/0 e s1/1 do AS que foi designado como CLIENTE nesse LAB.

● Se tudo deu certo, os ASs que não participam do PTT (55,100,111,200 e 222) conseguirão alcançar o AS do cliente através do AS que serviu como trânsito.

● O objetivo agora é que AS's que não participam do PTT fiquem acessíveis (trânsito IP)

3.11 Comprando e vendendo trânsito no PTT

LAB 1-8-1

Page 197: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

197

PERGUNTAS?PERGUNTAS?

3.11

Page 198: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

198

Filtros Básicos para um AS de Trânsito

4.0

4. Filtros básicos para um AS de trânsito

• 4.1 eBGP com upstreams e downstreams• 4.2 Configurando filtros de upstreams• 4.3 Configurando filtros de downstreams• 4.4 Entendendo o regexp• 4.5 Enviando/recebendo partial e full-routouting• 4.6 Route-map x prefix-list• 4.7 AS-Path Prepend• 4.8 Engenharia de tráfego I

Page 199: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

199

4.1

eBGP com Upstreams e Downstreams

Page 200: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

200

4.1 – eBGP com Upstreams e Downstreams

Daqui por diante faremos referência à 3 tipos de sessões BGP:

– IBGP (BGP interno): sessões BGP com routers do meu próprio AS.

– eBGP UPSTREAM: sessões BGP com AS's externos que prestam serviço de trânsito IP para meu AS.

– eBGP DOWNSTREAM: sessões BGP com AS's externos aos quais meu AS presta serviço de trânsito IP.

Page 201: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

201

4.1 – eBGP com Upstreams e Downstreams

IBGP

● Sessões entre roteadores que fazem parte do mesmo sistema autônomo

● Geralmente não utilizamos filtros

● Não importa a quantidade de saltos de roteamento, não há incremento de AS-PATH

● O BGP identifica automaticamente sessões iBGP quando o “remote-as” é o mesmo AS declarado em “router bgp X”

Page 202: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

202

4.1 – eBGP com Upstreams e Downstreams

eBGP – com UPSTREAMS

● Geralmente recebemos todas as rotas possíveis

● Os filtros de ENTRADA são do tipo “lista negra”✔ Bloqueio de alguns exceções✔ Prioridade sempre menor que DOWNSTREAMS

● Os filtros de SAÍDA são do tipo “lista branca”✔ Enviar apenas meus prefixos e prefixos de

DOWNSTREAMS

Page 203: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

203

4.1 – eBGP com Upstreams e Downstreams

eBGP – com DOWNSTREAMS

● Recebemos apenas prefixos do cliente e clientes secundários

● Os filtros de ENTRADA são do tipo “lista branca”✔ Maior prioridade possível deve ser aplicada

● Os filtros de SAÍDA são do tipo “lista negra”✔ Enviar todos os prefixos possíveis✔ Anúncio de “parcial routing” apenas quando solicitado

Page 204: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

204

Configurando Filtros de Upstreams

4.2

Page 205: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

205

4.2 - Configurando Filtros de Upstreams

Não podemos anunciar nenhuma rede da qual não queremos receber DOWNLOADS, para isso utilizamos filtros em todas as nossas saídas de UPSTREAM e PTTs.

Porém existem certas precauções que devem ser tomadas nos filtros de entrada de UPSTREAM:

– Não receber meus próprios prefixos;– Não receber BOGONS;– Não receber IPs privados;– Não receber rotas cujo AS PATH contenham

AS(s) privado(s);– Garantir que rotas de UPSTREAMS não

recebam prioridade maior que rotas DOWNSTREAMS;

Page 206: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

206

”Por padrão” o BGP descarta todas as rotas que anunciei e voltaram para mim por algum motivo (multihoming por exemplo).!--- essa regra pode ser modificada utilizando o comando!--- “router(config-router)#neighbor 192.168.2.1 allowas-in”

Quando isso acontece, logo é verificado o meu próprio AS no path e a rota é descartada automaticamente.

Porém é possível que alguém anuncie por "engano", e a única forma de garantir é um filtro baseado em IP (prefix-list).

4.2 - Configurando Filtros de Upstreams

Page 207: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

207

Precisamos configurar alguns filtros padrão que evitam o recebimento de grades de IPs privados, multcast, link local, etc.

Para isso vamos criar uma prefix-list chamada ”NAO-RECEBER” e inserir nela todas as redes indesejadas.

Para facilitar, o Cisco IOS permite especificar intervalos de IPs, isso dispensa o trabalho de inserir cada sub-rede manualmente.

Vamos entender melhor...

4.2 - Configurando Filtros de Upstreams

Page 208: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

208

Antes de criar uma prefix-list precisamos ter em mente que para toda ela há um DENY implícito no final, semelhante à uma ”lista branca”, onde quem estiver na lista será permitido, e todo o resto bloqueado, ex:

Com essa prefix-list na ENTRADA de um protocolo de roteamento qualquer o resultado seria receber apenas 122.36.200.0/24, e qualquer outro prefixo seria descartado.

Lembrem que a última regra de {NEGAR TUDO} jamais aparece, nem mesmo no ”show running-config”.

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 122.36.200.0/24

Gx-R1(config)#ip prefix-list MINHA-LISTA {NEGAR TUDO}

4.2 - Configurando Filtros de Upstreams

Page 209: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

209

O que é o ”seq” ?

● Ao inserir o comando:

● Automaticamente o IOS insere um número de sequência:

● Caso adicionemos mais redes na mesma lista o número de seq é incrementado em 5 automaticamente para cada regra:

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 122.36.200.0/24

Gx-R1#show running-config | begin MINHA-LISTAip prefix-list MINHA-LISTA seq 5 permit 122.36.200.0/24!…

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 44.0.0.0/24Gx-R1(config)#endGx-R1#show running-config | begin MINHA-LISTAip prefix-list MINHA-LISTA seq 5 permit 122.36.200.0/24ip prefix-list MINHA-LISTA seq 10 permit 44.0.0.0/24!...

4.2 - Configurando Filtros de Upstreams

Page 210: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

210

O que é o ”seq” ?

● A razão para o incremento de ”5 em 5” é a possibilidade deinserir uma regra ”no meio” especificando um ”número de seq”:

● A regra recém criada seria processada primeiro do que todas as outras:

● Pouco importa a ordem de processamento quando todas as regras são de ”permit”

● O ”seq” só tem relevância quando há regras de deny e permit na mesma prefix-list e/ou utilizamos ”ranges” com ”le/ge”

Gx-R1(config)#ip prefix-list MINHA-LISTA seq 4 permit 10.0.30.0/24

Gx-R1#show running-config | begin MINHA-LISTAip prefix-list MINHA-LISTA seq 4 permit 10.0.30.0/24ip prefix-list MINHA-LISTA seq 5 permit 122.36.200.0/24ip prefix-list MINHA-LISTA seq 10 permit 44.0.0.0/24!…

4.2 - Configurando Filtros de Upstreams

Page 211: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

211

Ranges de subredes - (le):

● Vamos agora considerar a necessidade de permitir sub-blocos:

● Essa regra permite 192.168.0.0/24, porém não permite 192.168.0.0/25, 192.168.0.128/25, 192.168.0.16/28 ou qualquer outra sub-rede.

● Para incluir sub-redes utilizamos ”le”:

● Com essa mudança, 192.168.0.0/25, 192.168.0.128/25, 192.168.0.16/28 ou qualquer outra sub-rede dentro começando com 192.168.0 seria aceita, exceto redes /30, /31 e /32.

● Para permitir TUDO dentro do /24 incluindo /30, /31 e /32 trocaríamos o le 29 por le 32.

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 192.168.0.0/24

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 192.168.0.0/24 le 29

4.2 - Configurando Filtros de Upstreams

Page 212: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

212

Ranges de subredes - (ge):

● Diferente do le, o ge especifica o tamanho mínimo da máscara, seu uso é mais apropriado em redes maiores.

● O /8 indica os bits que serão ”fixos”.

● Para esse exemplo, qualquer prefixo com os 8 primeiros bits fixos em começando com 192 (11000000) e ainda com máscara igual ou maior que /18 e igual ou menor que /26.

● Caso seja declarada uma máscara /0 (192.0.0.0/0) não importariam os 8 primeiros bits e qualquer prefixo (começando com qualquer coisa) seria aceito desde que sua máscara fosse entre /18 e /26.

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 192.0.0.0/8 ge 18 le 26

4.2 - Configurando Filtros de Upstreams

Page 213: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

213

Ranges de subredes - (ge):

● Quero aceitar qualquer prefixo /24 e descartar todo o resto:

● Quero aceitar TODOS os prefixos dentro de 200.233.16.0/20, menos o primeiro /22:

Gx-R1(config)#ip prefix-list MINHA-LISTA permit 0.0.0.0/0 ge 24 le 24

Gx-R1(config)#ip prefix-list MINHA-LISTA seq 10 deny 200.233.16.0/22Gx-R1(config)#ip prefix-list MINHA-LISTA seq 20 permit 200.233.16.0/20 le 32!--- na vida real ninguem recebe prefixos menores que /24 por BGP, !--- utilizaremos no máximo ”le 24” para qualquer filtro (in – out)

!--- se posteriormente fosse necessário adicionar bloqueio de mais um /22,!--- o bloqueio funcionaria apenas com um seq menor que ”20”

4.2 - Configurando Filtros de Upstreams

Page 214: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

214

Agora que compreendemos o funcionamento, vamos continuar de onde paramos e criar uma prefix-list chamada NAO-RECEBER.

Dentro dela colocaremos todos os prefixos que não desejamos receber.

Por se tratar de uma ”lista negra” não podemos esquecer de inserir uma regra que permita todo o resto no fim da hierarquia.

4.2 - Configurando Filtros de Upstreams

Page 215: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

215

GX-R1(config)#ip prefix-list NAO-RECEBER seq 10 deny X.0.0.0/8 le 32!--- blocos do meu próprio ASGX-R1(config)#ip prefix-list NAO-RECEBER seq 20 deny 10.0.0.0/8 le 32!--- uso privado (neste lab estamos utilizando para grupo 10, favor nao bloquear este)GX-R1(config)#ip prefix-list NAO-RECEBER seq 30 deny 172.16.0.0/12 le 32!--- uso privadoGX-R1(config)#ip prefix-list NAO-RECEBER seq 40 deny 169.254.0.0/16 le 32!--- link-local (APIPA)GX-R1(config)#ip prefix-list NAO-RECEBER seq 50 deny 127.0.0.0/8 le 32!--- loopbacksGX-R-1(config)#ip prefix-list NAO-RECEBER seq 60 deny 192.0.2.0/24 le 32!--- DocumentaçãoGX-R1(config)#ip prefix-list NAO-RECEBER seq 70 deny 192.168.0.0/16 le 32!--- uso privadoGX-R1(config)#ip prefix-list NAO-RECEBER seq 80 deny 224.0.0.0/4 le 32!--- multicastGX-R1(config)#ip prefix-list NAO-RECEBER seq 90 deny 240.0.0.0/4 le 32!--- reservado para uso futuro (para o fim do IPv6?)GX-R1(config)#ip prefix-list NAO-RECEBER seq 500 permit 0.0.0.0/0 le 24!--- Permitir todo o resto e ao mesmo tempo descartar qualquer prefixo!--- mais específico que /24 como /25, /26, /27, etc

Inserindo os prefixos na lista:

4.2 - Configurando Filtros de Upstreams

LAB 1-9-1

Page 216: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

216

Apenas criar a lista NAO-RECEBER de nada vale se a mesma não for declarada como filtro de ENTRADA dos UPSTREAMS, PEERING e PTT.

GX-R1(config)#router bgp XGX-R1(config-router)#neighbor 100.X.1.1 prefix-list NAO-RECEBER inGX-R1(config-router)#neighbor 200.X.1.1 prefix-list NAO-RECEBER inGX-R1(config-router)#neighbor 187.16.216.253 prefix-list NAO-RECEBER inGX-R1(config-router)#neighbor (IP de peering) prefix-list NAO-RECEBER inGX-R1(config-router)#neighbor (acordo bilateral) prefix-list NAO-RECEBER in!--- Nesse caso apenas para quem é CLIENTE no acordo bilateralGX-R1(config-router)#endGX-R1#clear ip bgp *

4.2 - Configurando Filtros de Upstreams

LAB 1-9-1

Page 217: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

217

O AS 123 vai anunciar vários IPs privados, vamos verificar se o bloqueio está acontecendo corretamente:

Existem 2 comando para verificar as rotas recebidas:

Porém, se executarmos o segundo comando receberemos um erro:

router#sh ip bgp neighbors A.B.C.D routes!--- mostra todas as rotas APÓS a validação do “nexthop”!--- e após todos os filtros de input

router#sh ip bgp neighbors A.B.C.D received-routes% Inbound soft reconfiguration not enabled on A.B.C.D

!--- mostra todas as rotas ANTES da validação do “nexthop”!--- e ANTES de passar em todos os filtros de input

router#sh ip prefix-list detail NAO-RECEBER

4.2 - Configurando Filtros de Upstreams

LAB 1-9-1

Page 218: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

218

Desmistificando o ”Soft reconfiguration inbound”:

Para que serve de verdade?

4.2 - Configurando Filtros de Upstreams

Page 219: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

219

HARD reset:

É a maneira menos recomendada de fazer um refresh nas rotas.

A conexão TCP volta para o estado ”idle”.

Há um pequeno intervalo antes da conexão iniciar novamente.

Router#clear ip bgp { * | A.B.C.D | peergroupname }

SOFT reset:

Realiza o route refresh mantendo a sessão ativa .

Pode ser dividido em ”outbound refresh” e ”inbound refresh”.

Router#clear ip bgp { * | A.B.C.D | peergroupname } soft { out | in }

Porém isso ainda não explica a função do ”soft reconfiguration inbound” ...

4.2 - Configurando Filtros de Upstreams

Page 220: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

220

Quando updates são bloqueados pelos filtros de ”input”, esses updates são descartados pelo router, não sendo possível verificar informações sobre essas rotas.

Habilitar o ”soft reconfiguration inbound” para um neighbor reserva uma área em memória para guardar informações de todas as rotas recebidas desse neighbor, tornando possível verificar as rotas que foram descartadas pelos filtros de ”input”.

Habilitar o ”soft reconfiguration inbound” permitirá usar o comando:

GX-R1#sh ip bgp neighbors A.B.C.D received-routes!--- exibe as rotas recebidas de A.B.C.D antes dos filtros de input!--- inclusive rotas com next-hop inválido

4.2 - Configurando Filtros de Upstreams

Page 221: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

221

Vamos habilitar o ”Soft reconfiguration inbound” para todos os neighbors:

GX-R1(config)#router bgp XGX-R1(config-router)#neighbor 100.X.1.1 soft-reconfiguration inboundGX-R1(config-router)#neighbor 200.X.1.1 soft-reconfiguration inboundGX-R1(config-router)#neighbor 187.16.216.253 soft-reconfiguration inboundGX-R1(config-router)#neighbor (IP de peering) soft-reconfiguration inboundGX-R1(config-router)#neighbor (acordo bilateral) soft-reconfiguration inboundGX-R1(config-router)#endGX-R1#clear ip bgp * soft

4.2 - Configurando Filtros de Upstreams

LAB 1-9-2

Page 222: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

222

Agora vamos tentar novamente executar o comando “... received-routes”

Primeiro pelo AS 200:

Depois pelo AS 100:

GX-R1#sh ip bgp neighbors 200.9.1.1 received-routes!--- todas as rotas ANTES do filtro ”NAO-RECEBER”

GX-R1#sh ip bgp neighbors 200.9.1.1 routes!--- todas as rotas APÓS do filtro ”NAO-RECEBER”

GX-R1#sh ip bgp neighbors 100.9.1.1 received-routes!--- todas as rotas ANTES do filtro ”NAO-RECEBER”

GX-R1#sh ip bgp neighbors 100.9.1.1 routes!--- todas as rotas APÓS do filtro ”NAO-RECEBER”

4.2 - Configurando Filtros de Upstreams

LAB 1-9-2

GX-R1#show ip prefix-list detail NAO-RECEBER | exclude count: 0ip prefix-list NAO-RECEBER: count: 9, range entries: 9, sequences: 5 - 45, refcount: 3 seq 15 deny 169.254.0.0/16 le 32 (hit count: 1, refcount: 1) seq 30 deny 192.168.0.0/16 le 32 (hit count: 1, refcount: 1) seq 45 permit 0.0.0.0/0 le 24 (hit count: 15, refcount: 1)

Page 223: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

223

Outros BOGONS

● Existe outro range de IPs que não são privados, mas ainda assim devem ser bloqueados.

● Existem blocos públicos de IPs que ainda não foram designados pelas organizações responsáveis.

● Dessa forma é possível que alguém utilize essas redes com intenções suspeitas.

● Onde conseguir uma lista atualizada?

4.2 - Configurando Filtros de Upstreams

Page 224: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

224

Melhor do que sair à procura de listas é estabelecer um peering com o cymru.

Para solicitar esse peering é preciso entrar em contato com [email protected] com as seguintes informações:

● Número de AS;

● Ip(s) que o cymru fará peering com você;

● Se o equipamento suporta autenticação MD5 para BGP;

● Chave pública GPG/PGP (opcional);

4.2 - Configurando Filtros de Upstreams

Page 225: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

225

Segundo o site a resposta com as informações chega em 2 dias úteis em média

Para mais informações acesse:http://www.team-cymru.org/Services/Bogons/bgp.html

4.2 - Configurando Filtros de Upstreams

Page 226: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

226

Configurando a sessão BGP com Cymru...

GX-R1(config)#router bgp X

GX-R1(config-router)#neighbor x.x.x.x remote-as 65333

GX-R1(config-router)#neighbor x.x.x.x ebgp-multihop 255

GX-R1(config-router)#neighbor x.x.x.x weight 100

GX-R1(config-router)#neighbor x.x.x.x description BOGONS CYMRU

GX-R1(config-router)#neighbor x.x.x.x prefix-list SAIDA-CYMRU out

GX-R1(config-router)#neighbor x.x.x.x route-map FILTRO-CYMRUBOGONS in

GX-R1(config-router)#neighbor x.x.x.x password <senha cymru>

GX-R1(config-router)#exit

4.2 - Configurando Filtros de Upstreams

Page 227: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

227

Adicionando as rotas recebidas em BLACKHOLE:

GX-R1(config)#ip bgp-community new-format!---habilita suporte à communities tipo xxxx:yyyyGX-R1(config)#ip route 192.0.2.1 255.255.255.255 null0!---cria a rota de blackholeGX-R1(config)#ip community-list 10 permit 65333:888!---adiciona a community 65333:888 na comm-list 10GX-R1(config)#route-map FILTRO-CYMRUBOGONS permit 10!---entra as opções do route-map de entradaGX-R1(config-route-map)#match community 10!---declara o conteudo da comm-list 10 para condição de mathGX-R1(config-route-map)#set ip next-hop 192.0.2.1!---para toda rota que fizer a condição mudar o next-hop para blackholeGX-R1(config)#ip prefix-list SAIDA-CYMRU seq 5 deny 0.0.0.0/0 le 32!---garantir que nada será anunciado para o cymru

4.2 - Configurando Filtros de Upstreams

Page 228: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

228

Configurando Filtros de Downstreams

4.3

Page 229: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

229

4.3 - Configurando Filtros de Downstreams

A primeira coisa e se levar em conta é a prioridade maior para os prefixos recebidos do meu downstream.

Ao mesmo tempo, não podemos correr o risco de receber um full-routing desse cliente por algum erro dele, caso isso aconteça, todo meu upload passa a subir por esse cliente.

Page 230: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

230

LAB: O router R2 agora será um cliente de trânsito (downstream) com as seguintes informações:

Cliente de trânsito:

● AS: 100X

● Bloco CIDR: 187.X.0.0/22

● IP de WAN: X.X.100.2

● Interface serial 1/3

4.3 - Configurando Filtros de Downstreams

LAB 1-10-1

Page 231: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

231

Como já usamos os pesos (weight) 10 15 e 20 utilizaremos 30 para downstreams.GX-R1(config-router)#neighbor X.X.100.2 remote-as 100XGX-R1(config-router)#neighbor X.X.100.2 weight 30GX-R1(config-router)#neighbor X.X.100.2 prefix-list BLOCOS-AS-100X inGX-R1(config-router)#neighbor X.X.100.2 default-originate!--- filtro de ENTRADA para o DOWNSTREAM AS 100X + envio de rota padraoGX-R1(config-router)#neighbor 100.X.1.1 prefix-list ANUNCIAR-AS-100 out!--- filtro de SAIDA para o UPSTREAM AS 100GX-R1(config-router)#neighbor 200.X.1.1 prefix-list ANUNCIAR-AS-200 out!--- filtro de SAIDA para o UPSTREAM AS 200GX-R1(config-router)#neighbor 187.16.216.253 prefix-list ANUNCIAR-PTT out!--- filtro de SAIDA para o PTTGX-R1(config-router)#exitGX-R1(config)#ip prefix-list BLOCOS-AS-100X permit 187.X.0.0/22 le 24!--- como declaramos a prefix-list BLOCOS-AS-100X na entrada do DOWNSTREAM!--- vamosadicionar os blocos CIDR do DOWNSTREAM nessa listaGX-R1(config)#ip prefix-list ANUNCIAR-AS-100 permit 187.X.0.0/22 le 24GX-R1(config)#ip prefix-list ANUNCIAR-AS-100 permit X.0.0.0/8!--- adicionar os blcos CIDR do DOWNSTREAM e também os blocos do AS!--- na saída do UPSTREAM AS 100GX-R1(config)#ip prefix-list ANUNCIAR-AS-200 permit 187.X.0.0/22 le 24GX-R1(config)#ip prefix-list ANUNCIAR-AS-200 permit X.0.0.0/8!--- adicionar os blcos CIDR do DOWNSTREAM e também os blocos do AS!--- na saída do UPSTREAM AS 200GX-R1(config)#ip prefix-list ANUNCIAR-PTT permit 187.X.0.0/22 le 24GX-R1(config)#ip prefix-list ANUNCIAR-PTT permit X.0.0.0/8!--- adicionar os blcos CIDR do DOWNSTREAM e também os blocos do AS!--- na saída para o PTTGX-R1(config)#endGX-R1#clear ip bgp * out

4.3 - Configurando Filtros de Downstreams

LAB 1-10-1

Page 232: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

232

Como já usamos os pesos (weight) 10 15 e 20 utilizaremos 30 para downstreams.

GX-R2#configure terminalGX-R2(config)#router bgp 100XGX-R2(config-router)#neighbor X.X.100.1 remote-as XGX-R2(config-router)#network 187.X.0.0 mask 255.255.252.0GX-R2(config-router)#exitGX-R2(config)#iinterface loopback 1GX-R2(config-if)#ip address 187.X.0.1 255.255.252.0GX-R2(config-if)#endGX-R2#clear ip bgp * out

4.3 - Configurando Filtros de Downstreams

LAB 1-10-1

Page 233: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

233

Vamos verificar no looking glass os anúncios dos downstreams...

SUCESSO??

Notem que no estágio em que chegamos, utilizar “prefix-lists” está se tornando dificil de escalar e “debugar” problemas, pois com uma determinada quantidade de dowstreams, simplesmente não conseguimos identificar a quem percentem os blocos de IP.

Discutiremos posteriormente modelos mais fáceis de escalar com “route-map”

4.3 - Configurando Filtros de Downstreams

LAB 1-10-1

Page 234: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

234

Entendendo o ”BGP REGEXP”

4.4

Page 235: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

235

4.4 - Entendendo o “BGP REGEXP”

Quando temos muitos clientes de trânsito é preciso estabelecer padrões para que os administradores sejam capazes de entender as configurações.

Além de evitar ao máximo a quantidade excessiva de linhas de configuração.

Por exemplo:

Há um "range" de números de AS que são de uso privado semelhantes aos IPs 192.168.x.x . Esse intervalo vai de 64512 até 65535, e não devemos receber anúncios que contenham algum desses AS's no path.

Page 236: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

236

Imagine ter que configurar uma linha de deny para cada AS privado.

Seria um tanto complicado!

Felizmente com expressões regulares ao invés de milhares,

resolvo esse problema com apenas 2, (ou uma talvez).

Router(config)#ip as-path access-list 1 deny 64512Router(config)#ip as-path access-list 1 deny 64513Router(config)#ip as-path access-list 1 deny 64514......Router(config)#ip as-path access-list 1 deny 65534Router(config)#ip as-path access-list 1 deny 65535Router(config)#ip as-path access-list 1 permit .*

4.4 - Entendendo o “BGP REGEXP”

Page 237: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

237

4.4 - Entendendo o “BGP REGEXP”

“_” - Underline

✗ Substitui uma lista de expressões, que pode ser uma vírgula (,), chave esquerda ({), chave direita (}), o início da seqüência de entrada (^), o fim da seqüência de entrada ($), ou um espaço.

✗ Escrever _444_ pode ser equivalente às seguintes combinações:

✗ ^444$

✗ ^444espaço

✗ espaço444

✗ {444,

✗ ,444,

✗ {444}

✗ ,444,

Para praticar segue um link interessante:

http://tools.lymas.com.br/regexp_br.php

Page 238: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

238

Antes vamos entender a função dos principais caracteres nas expressões regulares:

✗ "1" Um número isolado satisfaz a condição para qualquer expressão que contenha esse número.

✗ exemplo1: 1 "a condição de match é qualquer AS no Path (podem haver vários AS's) que contenha o número 1 em qualquer parte, em pelo menos um dos AS's.

Satisfaz: ”99199”, "123 432", "999 888 777 123 998".

Não satisfaz: "355 3344 22334", "466", etc.

✗ exemplo2: _1 "a condição de match é qualquer AS no Path (podem haver vários AS's) que contenha o número 1 no ínicio de pelo menos um dos AS's e que essa ocorrência não seja a primeira”.

Satisfaz: "891 12333 3445 9999", "555 123 432", "1111 2222 4444".

Não satisfaz: "4333 21123", "4661" "21111 912222", etc.

✗ exemplo3: _1_ "a condição de match é qualquer AS no Path (podem haver vários AS's) que contenha o número 1 sozinho em pelo menos um dos AS's e essa ocorrência pode ser a primeira e/ou a última.

✗ Satisfaz: "2333 1 3445 9999", "33 1", "433 4444 1 433", “1”

Não satisfaz: "333 222 555 12".

4.4 - Entendendo o “BGP REGEXP”

Page 239: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

239

4.4 - Entendendo o “BGP REGEXP”

✗ ”.” Satisfaz a condição para qualquer número no lugar do ponto ✗ exemplo: _4.5_ "a condição de match é qualquer AS PATH que contenha um AS de 3 dígitos onde 4 seja

o primeiro e 5 seja o último com qualquer número no meio e que contenha ou nao outros AS's (antes e depois)

Satisfaz: "12 415 43", "2 425 3", "435" , "321 456 445 345"

Não satisfaz: "315", "123 4115", etc

✗ Exemplo: 4.5 "a condição de match é qualquer número de 3 ou mais dígitos que tenha 4 e 5 em qualquer parte do AS PATH e com um dígito qualquer entre eles

Satisfaz: "23415", "43425", "435 3333", "445", "45587", "321 44459 345"

Não satisfaz: 315, 416, etc

Page 240: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

240

4.4 - Entendendo o “BGP REGEXP”

✗ ”$” Satisfaz a condição para o tudo que o que for terminado com o caracter (ou expressão) ao lado esquerdo de "$"

✗ exemplo1: 12$ "a condição de match é qualquer AS PATH em que os dois últimos dígitos sejam 1 e 2 respectivamente"

Satisfaz: ”4912”, "65012", "12312", "11112", "9932 9976 64912", "28135 17379 54312" ...

Não satisfaz: 13, 22, 129, 55413, 58752 …

✗ exemplo2: _12$ "a condição de math é qualquer AS PATH em que último AS seja 12"

Satisfaz: "12", "2335 12", "312 12", "111 12"

Não satisfaz: "444 112", "22", "12 229", "999 12 1111"

✗ exemplo3: 1.2$ "a condição de match é qualquer AS PATH em que seus últimos 3 dígitos do último AS sejam: 1, qualquer coisa e 2 respectivamente"

Satisfaz: "123 45666 33 112", "444 122", "132", "1111 132", "444 65192", "60192"

Não satisfaz: "2333 222", “123”, “112 912”

Page 241: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

241

4.4 - Entendendo o “BGP REGEXP”

✗ ”^” Satisfaz a condição para caracteres que comecem com o caracter (ou exprssão) após o ^

✗ exemplo1: ^1 "a condição de match é qualquer AS PATH que tenha o dígito 1 no início do primeiro AS do PATH

satisfaz: "1111 9999 55443", "12345 6776", 12222, 19999

não satisfaz: 21111, 31211, 2, 3, 43111

✗ exemplo2: ^1.4 "a condição de match é qualquer AS PATH em que os 3 primeiros dígitos do primeiro as sejam: 1, qualquer coisa e 4 respectivamente

Satisfaz: "124 4321", "12444", "1449", "19455 12333", "10466 55443 9900"

Não satisfaz: 195, 2124, 22444, 9104

✗ exemplo3: ^1..8$ "a condição de match é um AS PATH contento apenas um AS de 4 dígitos, onde o primeiro dígito é 1, o segundo e o terceiro qualquer coisa e o quarto e último seja 8 respectivamente

Satisfaz: ”1008”, ”1248”, ”1118”, ”1228”, ”1998”, ”1888”

Não satisfaz: 10008, "1008 1008", "14448"

Page 242: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

242

4.4 - Entendendo o “BGP REGEXP”

”*” Satisfaz a condição para qualquer caractere à esquerda do "*", inclusive nenhum, por isso é preciso utilizar o caracter um espaço "_" branco em conjunto, pois sem espaço a expressão perde o sentido, por exemplo, 1* satisfaria condição para qualquer coisa, e o padrão intuitivo para "qualquer coisa/tudo" é ".*"

✗ exemplo1: 1_* "a condição de match é qualquer coisa que contenha o dígito 1 em qualquer parte do AS"

satisfaz: "43431 9999 777 9999 8888(infinito...)”,” … 99 9991 345 666 654 5556...”

não satisfaz: 8872, "9987 2332", etc

✗ Exemplo2: .* "a condição de math é qualquer AS PATH de qualquer tamanho, com qualquer combinação"

Satisfaz: TUDO

Não satisfaz: NADA

Page 243: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

243

4.4 - Entendendo o “BGP REGEXP”

”\” Este caracter é usado quando os caracteres de condição também são caracteres de expressão regular, por exemplo, se precisássemos de uma expressão para dinheiro, onde a condição fosse "R$ 10,00" até "R$ 10,99", teríamos um grande problema, já que a expressão necessária é "R$_10,..$" Notem que o "$" precisa aparacer como "condição" ao mesmo tempo que é um caracter de expressão regular. Sendo assim, não funcionaria. O caracter "\" é usado para declarar que o próximo caracter deverá ser interpretado como "condição", ao invés de sua função normal. Assim, a expressão corretá ficaria "R\$_10,..$"

”Felizmente” não utilizaremos esse caracter para BGP

Page 244: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

244

4.4 - Entendendo o “BGP REGEXP”

✗ ”[ ]” Satifaz a condição para qualquer um dos caracters dentro dos colchetes, mas apenas UM deles. Há a possibilidade de utilizar intervalos entre os colchetes seguidos de hífem "-"

✗ Dentro dos colchetes o caracter "^" tem função de negação, O intervalo funciona da mesma forma para as negações.

✗ exemplo1: ^9[249]5$ "a condição é um AS que contenha qualquer combinação de 3 dígitos sendo o primeiro 9, o terceiro 5 e o do meio 2, 4 ou 9

Satisfaz: ”925”, ”945”, e ”995”

Não satisfaz: 915, 955, 965, etc

✗ exemplo2: ^9[5-7]5$ "mesma lógica do exemplo 1, porém o dígito do meio pode ser de 5 à 7"

Satisfaz: 955, 965 e 975

✗ exemplo3: ^9[^28]5$ "a condição de match é a mesma lógica dos exemplos 1 e 2 porém o digito do meio não poderá ser 2 ou 8

Satistaz: todas as possibilidades de um ”9.5” "menos" 925 e 985.

✗ exemplo4: ^9[^5-8]5$ "a condição de match segue a mesma lógica dos exemplos 2 e 3 porém o dígito do meio não pode estar no intervalo entre 5 e 8 (5,6,7 ou 8)

Satisfaz: todas as possibilidades "menos" 955, 965, 975 e 985

Page 245: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

245

4.4 - Entendendo o “BGP REGEXP”

✗ ”|” O PIPE divide dois ou mais caracters em uma condiço "ou".

✗ exemplo1: 3(4|9)3 satisfaz: 343 ou 393 apenas mesmo comportamento de “3[49]3”

✗ exemplo2: ^5([0-3]|9)3$ satisfaz: 503, 513, 523, 533 e 593

PS ( ) coloca uma expressão em evidência, sem eles o exemplo 2 aceitaria 5333333333333333333353333333333333333333333435465769733...

Page 246: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

246

4.4 - Entendendo o “BGP REGEXP”

✗ ”+” Satisfaz a condição para uma(pelo menos) ou mais ocorrências do caracter (ou expressão) anterior em qualquer parte

✗ exemplo1: ^([^ ]+)$ satisfaz: qualquer ASPATH que contenha apenas 1 AS

Aplicação prática: Filtrar para meu cliente apenas rotas que tenham um AS no path e nada mais

✗ “?” Satisfaz a condição para uma ou nenhuma ou uma ocorrencia do caracter (ou expressão) anterior

✗ exemplo1: ^([^ ]+)?$ satisfaz: qualquer rota que tenha no máximo um AS no PATH ou NENHUM

Aplicação prática: Filtrar para meu cliente apenas rotas que tenham um AS no path e também rotas que não contenham NENHUM AS no PATH (rotas originadas localmente)

✗ ”{ }” especifica um número ou um intervalo de repetições para um caracter (ou expressão) antecedente

✗ exemplo1: ^2{4}$ satisfaz: 2222 apenas

✗ exemplo2: ^2{4,6}$ satisfaz: 2222, 22222 e 222222

✗ exemplo3: ^1[0-3]{1,2}$ satisfaz: 100, 13, 10, 132, 12, 130

nao satisfaz: 14, 1031, 15, 1033

Page 247: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

247

4.4 - Entendendo o “BGP REGEXP”

Agora vamos raciocinar um pouco e utilizar as expressões que aprendemos para bloquear o range dos AS's 64512 até 65535 utilizando o menor número possível de regras...

LAB 1-4-2

LAB 1-11-1

Page 248: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

248

4.4 - Entendendo o “BGP REGEXP”

LAB:O AS 123 vai gerar rotas com AS's privados, aplicar filtros de input para bloquear essas rotas:

GX-R1(config)#ip as-path access-list 1 permit _(645(0.|10|11)_?)_!--- aceita de 64501 a 64511GX-R1(config)#ip as-path access-list 1 deny _6(4[5-9]..|5..._?)_!--- rejeita qualquer coisa de 64500 à 64999 e de 65001 à 65999!--- obs, não há AS maior que 65535GX-R1(config)#ip as-path access-list 1 permit .*!--- aceita todo o resto

GX-R1(config)#router bgp X!--- Vamos adicionar o mesmo prefix-list na entrada do AS 100GX-R1(config-router)#neighbor 100.X.1.1 filter-list 1 inGX-R1(config-router)#neighbor 200.X.1.1 filter-list 1 in

OBS: As expressões acima podem ser simplificadas ainda mais

LAB 1-11-1

Page 249: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

249

4.4 - Entendendo o “BGP REGEXP”

Existem infinitas aplicações, por exemplo, descubro que o AS 12345 está com lentidão, crio políticas que diminuem a prioridade de qualquer prefixo anunciado por esse AS

router(config)#ip as-path access-list 20 permit _12345_!--- cria a ACL 20 e diz que qualquer AS PATH contendo 12345 está nela

router(config)#route-map UPSTREAM-1 permit 1 !--- Cria um route-map no topo da hierarquiarouter(config-route-map)#set local-preference 90!--- especifica a ação "mudar o local pref para 90"router(config-route-map)#match as-path 20!--- especifica quem irá receber a ação "set local pref 90"router(config-route-map)#exitrouter(config)#route-map UPSTREAM-1 permit 2 !--- cria um route-map ”em branco”que aceita todo o resto sem modificaçõesrouter(config-route-map)#exit

LAB 1-11-1

Page 250: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

250

4.4 - Entendendo o “BGP REGEXP”

Precisamos nesse caso fazer o mesmo para todos os UPSTREAMS

router(config)#route-map UPSTREAM-2 permit 1 !--- Cria um route-map no topo da hierarquiarouter(config-route-map)#set local-preference 90!--- especifica a ação "mudar o local pref para 90"router(config-route-map)#match as-path 20!--- especifica quem irá receber a ação "set local pref 90"router(config-route-map)#exitrouter(config)#route-map UPSTREAM-2 permit 2 !--- cria um route-map ”em branco”que aceita todo o resto sem modificaçõesrouter(config-route-map)#exit

LAB 1-11-1

Page 251: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

251

4.4 - Entendendo o “BGP REGEXP”

As expressões regulares não servem apenas para filtrar prefixos, mas também para encontrar certas rotas entre as centenas de milhares de uma tabela full

Por exemplo:

Quero saber quais rotas na minha RIB foram originadas pelo AS 6762 (TELECOM ITALIA SPARKLE S.p.A.)

BGPD-ALOG-SP# sh ip bgp regexp _6762$... Network Next Hop Metric LocPrf Weight Path*> 2.16.70.0/23 201.20.36.158 0 16397 6762 i*> 2.16.140.0/23 201.20.36.158 0 16397 6762 i*> 2.16.146.0/23 201.20.36.158 0 16397 6762 i...

Page 252: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

252

4.4 - Entendendo o “BGP REGEXP”

Exemplo 2:

Quais rotas foram recebidas pela Intelig através do peering com Embratel?

Exemplo 3:

Quais ASs estão diretamente conectados (sem prepend) com o AS 4230 (EMBRATEL)?

BGPD-ALOG-SP# sh ip bgp regexp _17379 4230_... Network Next Hop Metric LocPrf Weight Path*> 186.205.244.0/22 201.20.36.158 0 16397 17379 4230 28573 i

BGPD-ALOG-SP# sh ip bgp regexp _4230 ([0-9]+)$… Network Next Hop Metric LocPrf Weight Path*> 23.61.118.0/23 201.20.36.158 0 16397 17379 4230 28573 i*> 23.61.120.0/22 201.20.36.158 0 16397 17379 4230 28573 i...

Page 253: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

253

4.4 - Entendendo o “BGP REGEXP”

Quais ASs estão diretamente conectados com meus upstreams ou downstreams?

BGPD-ALOG-SP# sh ip bgp regexp ^([0-9]+_{0,1}){1,2}$ Network Next Hop Metric LocPrf Weight Path...*> 216.72.166.0 201.20.36.157 0 16397 6505 i*> 216.239.32.0/19 201.20.36.158 0 16397 15169 i...

Page 254: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

254

Enviando e Recebendo “Partial” e “Full-Routing”

4.5

Page 255: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

255

Enviando parcial para o meu DOWNSTREAM

● O cliente deseja receber rotas do meu AS e meus outros DOWNSTREAMS

A lógica é mesma, vamos utilizar a as-path acl "10".

GX-R1(config-router)#neighbor X.X.100.2 filter-list 10 out

GX-R1(config)#ip as-path access-list 10 permit ^([^ ]+)?$

!--- nesse exemplo enviaremos apenas rotas com no máximo 1 AS no AS-PATH

!--- inclusive rotas com 0 AS's no path, ou seja, originadas localmente

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

LAB 1-12-1

Page 256: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

256

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Vamos ver se funcionou...

GX-R1#sh ip bgp neighbors X.X.100.2 advertised-routes

LAB 1-12-1

Page 257: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

257

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Vamos ver se funcionou...

GX-R1#sh ip bgp neighbors X.X.100.2 advertised-routes

LAB 1-12-1

Page 258: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

258

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Para aumentar para até 2 AS's eu coloco mais uma...

router(config)# ip as-path access-list 1 permit ^([0-9]+ [0-9+)$

router(config)# ip as-path access-list 1 permit ^([0-9]+)$

router(config)# ip as-path access-list 1 permit ^$

Adicionar 3 regras seja um problema, mas é um problema se eu quiser "visualizar" em um comando só, nesse caso fica um tanto tosco dar 3 comandos diferentes. Felizmente há a opção de facilitar com o PIPE...

router#sh ip bgp regexp ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$

Dessa forma consigo ver tudo e ao mesmo tempo criar uma regra que "vale por 3"

(...continua)

Page 259: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

259

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Porém ainda posso simplificar mais...

de ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$

para ^(([0-9]+ [0-9]+)|([0-9]+)|())$

Evidentemente ainda dá para melhorar, trocando a expressão "qualquer

número" [0-9]+" por "qualquer coisa q nao seja em branco" "[^ ]", logo:

de ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$

para ^(([^ ]+ [^ ]+)|([^ ]+)|())$

(...continua)

Page 260: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

260

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Porém ainda posso simplificar mais...

de ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$

para ^(([0-9]+ [0-9]+)|([0-9]+)|())$

Evidentemente ainda dá para melhorar, trocando a expressão "qualquer

número" [0-9]+" por "qualquer coisa q nao seja em branco" "[^ ]", logo:

de ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$

para ^(([^ ]+ [^ ]+)|([^ ]+)|())$

(...continua)

Page 261: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

261

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Mesmo ficando pouco intuitivo, tivemos uma boa redução na quantidade de caracteres e linhas... (apenas 1)

router(config)#ip as-path access-list 1 permit ^(([^ ]+ [^ ]+)|([^ ]+)|())$

Agora imagine a dificuldade de escalar em demandas de 3 ou 4 AS's

para 3 => ^(([^ ]+)|([^ ]+ [^ ]+)|([^ ]+ [^ ]+ [^ ]+)|())$

para 4 => ^(([^ ]+)|([^ ]+ [^ ]+)|([^ ]+ [^ ]+ [^ ])|([^ ]+ [^ ]+ [^ ]+ [^]+)|())$

Essa expressão para "4" é impossível de digitar com pressa ;-)

(...continua)

Page 262: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

262

4.5 – Enviando e Recebendo “Partial” e “Full-routing”

Então as chaves ajudam a eliminar as repetições inserindo um intervalo de repetições dentro das chaves {}...

Consigo diminuir essa expressão de:

^(([^ ]+)|([^ ]+ [^ ]+)|([^ ]+ [^ ]+ [^ ])|([^ ]+ [^ ]+ [^ ]+ [^ ]+)|())$

para:

^([^ ]+_{0,1}){0,4}$

Ou seja, a palavra ([^ ]+_{0,1}) à esquerda de {0,4} pode se repetir 0 vezes, 1

vez, 2 vezes, 3 vezes ou 4 vezes.

Infelizmente, nas versões de IOS que otilizamos nesse curso as chaves simplesmente não funcionam

PS: No Quagga funciona 100%.

Page 263: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

263

Route-Map x Prefix-List

4.6

Page 264: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

264

4.6 – Route-Map X Prefix-List

Políticas de filtro baseadas em ROUTE-MAP:

● Seq number: { 0 … 65535 }● A ordem que esse route-map vai ser processado na hierarquia,

seguindo a mesma lógica dos ”seq” da prefix-list.

router(config)#route-map FILTROS-DE-ENTRADA permit 10router(config-route-map)#match ip address prefix-list MUDAR-METRIC router(config-route-map)#set metric 50

Page 265: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

265

Políticas de filtro baseadas em ROUTE-MAP:

● Condições: match ip address prefix-list MUDAR-METRIC ● Para receber a ação ”permit” e as modificações opcionais (set

metric 50) o prefixo precisaria estar contido na prefix list ”MUDAR-METRIC”

● OBS: é possível estabelecer mais de uma condição, por exemplo:match ip address prefix-list MUDAR-METRIC match as-path 10match community 60

● Mas nesse caso é preciso que todas as condições sejam atendidas, caso contrário, o route-map é ignorado e é processado o próximo route-map na sequência

router(config)#route-map FILTROS-DE-ENTRADA permit 10router(config-route-map)#match ip address prefix-list MUDAR-METRIC router(config-route-map)#set metric 50

4.6 – Route-Map X Prefix-List

Page 266: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

266

Políticas de filtro baseadas em ROUTE-MAP:

● Modificações: set metric 50● Ao atender 100% das condições podem ser aplicadas

modificações opcionais nas rotas

● OBS: Também é possível realizar mais de uma modificação, por exemplo:

● set local-preference 120set weight 40set community 123:321

router(config)#route-map FILTROS-DE-ENTRADA permit 10router(config-route-map)#match ip address prefix-list MUDAR-METRIC router(config-route-map)#set metric 50

4.6 – Route-Map X Prefix-List

Page 267: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

267

Políticas de filtro baseadas em ROUTE-MAP:

● Route-map sem condições declaradas:● Nesses casos TODAS as rotas receberão à ação {permit | deny}

e qualquer modificação opcional, que nesse exemplo foi alterar o local preference para 200.

router(config)#route-map FILTROS-DE-ENTRADA permit 10router(config-route-map)#set local-preference 200

4.6 – Route-Map X Prefix-List

Page 268: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

268

Políticas de filtro baseadas em ROUTE-MAP:

● Route-map sem condições declaradas:● Caso hajam outros route-maps abaixo (números maiores de

seq) de um route-map sem condições declaradas, esses jamais serão processados e serão totalmente inúteis.

router#sh running-config | begin TESTEroute-map TESTE permit 1 set weight 10!route-map TESTE permit 2 match ip address BLOCOS-CLIENTE-1 set metric 10 set local-preference 350!route-map TESTE permit 3 match as-path 20 set local-preference 400!

4.6 – Route-Map X Prefix-List

Page 269: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

269

Políticas de filtro baseadas em ROUTE-MAP:

● Quando um ”PERMIT” se transforma em ”DENY”

● Ao combinar route-map e prefix-lists, entendam o ”permit” da prefix list como um ”faz parte da lista” e não como um ”aceitar” propriamente dito, pois a ação de ”aceitar” vai depender do que for declarado na ”ação” do route-map.

● Se é um route-map com ação DENY, tudo que tiver como permit na prefix list será bloqueado, por exemplo:

● Nesse caso o prefixo 192.168.2.0/25 será bloqueado, enquanto 192.168.2.128/25 será permitido, porém inutilizado por causa da regra de cima

! ip prefix-list A seq 5 permit 192.168.2.0/25ip prefix-list A seq 10 deny 192.168.2.128/25! route-map TESTE deny 1 match ip address prefix-list A! route-map TESTE permit 2!

4.6 – Route-Map X Prefix-List

Page 270: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

270

AS-Path Prepend

4.7

Page 271: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

271

4.7 - AS-Path Prepend

Para manipular o download pra os prefixos do meu próprio AS eu posso facilmente anunciar prefixos mais ou menos específicos.

Mas como AS de trânsito não tenho como pedir aos meus clientes que modifiquem seus anúncios caso eu queira usar um link específico.

O AS PATH prepend adiciona números extras de AS no AS PATH das rotas anunciadas para um determinado neighbor.

Page 272: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

272

4.7 - AS-Path Prepend

Exemplo1:

✔ Inserindo prepends do MEU AS na saída

(Router-E1)router bgp 65000 no synchronization bgp log-neighbor-changes network 10.7.1.0 mask 255.255.255.0 neighbor 10.0.1.2 remote-as 64800 neighbor 10.0.1.6 remote-as 64800 neighbor 10.0.1.6 route-map prepend out!route-map prepend permit 10 set as-path prepend 65000 65000 65000

(Router-R2)R2#show ip bgpBGP table version is 3, local router ID is 10.2.0.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path*>i10.7.1.0/24 10.0.1.1 0 100 0 65000 i* 10.0.1.5 0 0 65000 65000 65000 65000 i

http://wiki.nil.com/AS-path_prepending_(technical_details)Fonte:

Page 273: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

273

4.7 - AS-Path Prepend

Exemplo2:

✔ Inserindo prepends do AS REMOTO na entrada

(Router-R1)router bgp 64800 no synchronization bgp log-neighbor-changes neighbor 10.0.1.1 remote-as 65000 neighbor 10.0.1.1 route-map prependIn in neighbor 10.2.0.2 remote-as 64800!route-map prependIn permit 10 set as-path prepend last-as 2

(Router-R1)R1#show ip bgpBGP table version is 2, local router ID is 10.0.0.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> 10.7.1.0/24 10.0.1.1 0 0 65000 65000 65000 i

http://wiki.nil.com/AS-path_prepending_(technical_details)Fonte:

Page 274: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

274

Engenharia de Tráfego I

4.8

Page 275: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

275

4.8 – Engenharia de Tráfego I

LAB: Todos os grupos configurar Upstreams + Dowmstreams de acordo com os seguintes requisitos:

✔ Apenas o DOWNLOAD do CLIENTE (AS100X) deverá chegar pelo AS 100, de forma que o DOWNLOAD do AS LOCAL continuará chegando pelo AS 200.

AS-55AS-222

AS-111

AS-200AS-100

AS-100X

DOWNLOAD CLIENTE:

DOWNLOAD AS LOCAL:

AS-123

AS-X

LAB 1-13-1

Page 276: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

276

Configurando:

GX-R1(config-router)#no neighbor 200.X.1.1 prefix-list ANUNCIAR-AS-200 out !--- desconfigura a prefix list ANUNCIAR-AS-200 do filtro de saida do AS 200GX-R1(config-router)#neighbor 200.X.1.1 route-map AS-200-OUT out !--- configura o route-map AS-200-OUT como filtro de saída para o AS 200GX-R1(config-router)#exitGX-R1(config)#route-map AS-200-OUT permit 10 !--- entra no modo de configuração do route-map seq 1GX-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-100X!--- declara a condição para receber ”permit” + a modificação opcional prepend 4 vezesGX-R1(config-route-map)#set as-path prepend X X!--- insere mais 4 vezes o AS local no AS PATHGX-R1(config)#route-map AS-200-OUT permit 20 !--- entra no modo de configuração do route-map seq 2GX-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS!--- declara a condição para receber ”permit”, não haverão modificaçõs de prepend para!--- os blocos do AS. Caso ainda não tenha sido criada, é preciso criar a prefix-list MEUS-BLOCOS!--- e adicionar os prefixo do AS dentro dela

4.8 – Engenharia de Tráfego I

LAB 1-13-1

Page 277: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

277

PERGUNTAS?PERGUNTAS?

4.8

Page 278: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

278

5.0

Roteamento dentro do AS (iBGP)

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.

Podem estar disponíveis autorizações adicionais ao âmbito desta licença em [email protected].

Page 279: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

279

5.0

Roteamento dentro do AS (iBGP)5. Roteamento dentro do AS (iBGP)

• 5.1 Implementando múltiplas saídas para clientes de trânsito• 5.2 Update-source• 5.3 Next-hop-self• 5.4 BGP Synchronization• 5.5 Route-reflector• 5.6 Peer groups• 5.7 Local Preference x Weight no iBGP• 5.8 Engenharia de Tráfego II

Page 280: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

280

Implementando Múltiplas Saídas para Clientes de

Trânsito

5.1

Page 281: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

281

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

Conforme discutido anteriormente, o BGP é um protocolo desenvolvido para troca de rotas entre AS's distintos.

Deve ser evitado dentro do AS, a menos que as extremidades precisem trocar rotas de AS's externos.

Em outras palavras, se houver realmente a necessidade de entregar para um DOWNSTREAM rotas recebidas de um UPSTREAM.

No exemplo abaixo não há necessidade de injetar rotas externas dentro do AS:

Page 282: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

282

Injetar rotas externas se faz necessário apenas quando essas precisam ”atravessar” o AS.

Em outras palavras, se houver realmente a necessidade de entregar para um DOWNSTREAM rotas recebidas de um UPSTREAM.

No exemplo as rotas recebidas do AS 20 e 30 precisam chegar ao AS 50 e vice-versa.

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

Page 283: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

283

Alguns pontos importantes:

1. Um protocolo de roteamento IGP precisa garantir conectividade IP entre TODOS os routers do AS.

2. Mas se não houver múltiplos caminhos, não há necessidade de IGP, apenas rotas estáticas.

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

Page 284: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

284

Em nosso LAB há múltiplos caminhos, e todos os routers (exceto AS's externos) já estão configurados com OSPF:

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

Page 285: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

285

Nos próximos LABs os alunos se juntarão em grupos de 3.

Alunos da mesma bancada farão parte do mesmo grupo, de maneira que os grupos 1,2,3 serão o GRUPO 1 – AS 1

Grupos 4, 5 e 6 serão GRUPO 2 – AS 2

Grupos 7, 8 e 9 serão GRUPO 3 – AS 3

Grupos 10, 11 e 12 serão GRUPO 4 – AS 4

Grupos 13, 14 e 15 serão GRUPO 5 – AS 5

Grupos 16, 17 e 18 serão GRUPO 6 – AS 6

Grupos 19, 20 e 21 serão GRUPO 7 – AS 7

Grupos 22, 23 e 24 serão GRUPO 8 – AS 8

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 286: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

286

O router R3 (router central do AS) responde pelo IP X.X.200.1/24.

Cada membro do grupo vai configurar um IP da mesma rede em seu laptop, exemplo sugerido laptop1 X.X.200.2/24, laptop2 X.X.200.3/24 e laptop3 X.X.200.4/24.

Testar conectividade IP com R3 e a partir dele acessar todos os outros routers via telnet.

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 287: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

287

LAB: Considerando que as cidades onde ficam R4 e R5 atendem clientes de trânsito (DOWNSTREAMS), e as cidades onde ficam R1 e R2 tem saída de trânsito IP (UPSTREAMS), precisaremos que R4 e R5 recebam e enviem rotas para o AS 100 (através de R1), e para o AS 200 através de R2.

Vamos estabelecer sessões eBGP entre os clientes de trânsito AS 14X com R4 e AS 15X com R5.

NOTA:

!--- No intuito de facilitar a visualização das rotas por parte dos alunos, em !--- todos os LABS seguintes não trabalharemos com anúncios mais !--- específicos que /8, (com excessão dos anúncios ao PTT no lab !--- correspondente

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 288: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

288

Configurando eBGP com o downstream: AS 14X em R4:

● LADO DA OPERADORAAS-X-R4#conf t AS-X-R4(config)#router bgp XAS-X-R4(config-router)#bgp router-id X.0.0.4!--- nesse LAB vamos configurar um Router-ID para facilitar a visualização das rotasAS-X-R4(config-router)#synchronization AS-X-R4(config-router)#neighbor X.14X.4.2 remote-as 14XAS-X-R4(config-router)#neighbor X.14X.4.2 description eBGP-downstream-AS-14XAS-X-R4(config-router)#neighbor X.14X.4.2 soft-reconfiguration inbound AS-X-R4(config-router)#neighbor X.14X.4.2 prefix-list BLOCOS-AS-14X in!--- declara o filtro de entrada para rotas recebidas desse DOWNSTREAMAS-X-R4(config-router)#exitAS-X-R4(config)#ip prefix-list BLOCOS-AS-14X permit 14X.0.0.0/8!--- adiciona os blocos CIDR do DOWNSTREAM nesa prefix-list que foi!--- declarada nas configurações BGP

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 289: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

289

Configurando eBGP com o downstream: AS 14X em R4:

● LADO DO CLIENTEAS-14X-R1#conf t AS-14X-R1(config)#router bgp 14XAS-14X-R1(config-router)#bgp router-id 14X.1.0.1AS-14X-R1(config-router)#no synchronization AS-14X-R1(config-router)#network 14X.0.0.0 mask 255.0.0.0AS-14X-R1(config-router)#neighbor X.14X.4.1 remote-as XAS-14X-R1(config-router)#neighbor X.14X.4.1 description eBGP-upstream-AS-XAS-14X-R1(config-router)#neighbor X.14X.4.1 soft-reconfiguration inbound AS-14X-R1(config-router)#neighbor X.14X.4.1 prefix-list MEUS-BLOCOS outAS-14X-R1(config-router)#exitAS-14X-R1(config)#ip prefix-list MEUS-BLOCOS permit 14X.0.0.0/8AS-14X-R1(config)#interface loopback 0AS-14X-R1(config-if)#ip address 14X.1.0.1 255.255.255.0AS-14X-R1(config-if)#exitAS-14X-R1(config)#ip route 14X.0.0.0 255.0.0.0 null 0AS-14X-R1(config)#endAS-14X-R1#clear ip bgp *

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 290: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

290

Configurando eBGP com o downstream: AS 15X em R5:

● LADO DA OPERADORAAS-X-R5#conf t AS-X-R5(config)#router bgp XAS-X-R5(config-router)#bgp router-id X.0.0.5!--- nesse LAB vamos configurar um Router-ID para facilitar a visualização das rotasAS-X-R5(config-router)#synchronization AS-X-R5(config-router)#neighbor X.15X.5.2 remote-as 15XAS-X-R5(config-router)#neighbor X.15X.5.2 description eBGP-downstream-AS-15XAS-X-R5(config-router)#neighbor X.15X.5.2 soft-reconfiguration inbound AS-X-R5(config-router)#neighbor X.15X.5.2 prefix-list BLOCOS-AS-15X in!--- declara o filtro de entrada para rotas recebidas desse DOWNSTREAMAS-X-R5(config-router)#exitAS-X-R5(config)#ip prefix-list BLOCOS-AS-15X permit 15X.0.0.0/8!--- adiciona os blocos CIDR do DOWNSTREAM nesa prefix-list que foi!--- declarada nas configurações BGP

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 291: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

291

Configurando eBGP com o downstream: AS 15X em R5:

● LADO DO CLIENTEAS-15X-R1#conf t AS-15X-R1(config)#router bgp 15XAS-15X-R1(config-router)#bgp router-id 15X.1.0.1AS-15X-R1(config-router)#no synchronization AS-15X-R1(config-router)#network 15X.0.0.0 mask 255.0.0.0AS-15X-R1(config-router)#neighbor X.15X.5.1 remote-as XAS-15X-R1(config-router)#neighbor X.15X.5.1 description eBGP-upstream-AS-XAS-15X-R1(config-router)#neighbor X.15X.5.1 soft-reconfiguration inbound AS-15X-R1(config-router)#neighbor X.15X.5.1 prefix-list MEUS-BLOCOS outAS-15X-R1(config-router)#exitAS-15X-R1(config)#ip prefix-list MEUS-BLOCOS permit 15X.0.0.0/8AS-15X-R1(config)#interface loopback 0AS-15X-R1(config-if)#ip address 15X.1.0.1 255.255.255.0AS-15X-R1(config-if)#exitAS-15X-R1(config)#ip route 15X.0.0.0 255.0.0.0 null 0AS-15X-R1(config)#endAS-15X-R1#clear ip bgp *

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 292: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

292

Vamos também configurar as sessões eBGP com os UPSTREAMS.

● Primeiro eBGP entre R1 e AS 100:

AS-X-R1#conf tAS-X-R1(config)#router bgp XAS-X-R1(config-router)#network X.0.0.0AS-X-R1(config-router)#auto-summary AS-X-R1(config-router)#synchronization AS-X-R1(config-router)#neighbor 100.X.1.1 remote-as 100AS-X-R1(config-router)#neighbor 100.X.1.1 soft-reconfiguration inboundAS-X-R1(config-router)#neighbor 100.X.1.1 route-map ANUNCIAR-AS-100 out!--- vamos utilizar dessa vez filtros de saida baseados em route-map + prefix-listAS-X-R1(config-router)#exit!--- volta para o modo de configuração globalAS-X-R1(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8!--- cria a prefix-list MEUS-BLOCOS e adiciona os blocos do grupo nessa listaAS-X-R1(config)#ip prefix-list BLOCOS-AS-14X permit 14X.0.0.0/8AS-X-R1(config)#ip prefix-list BLOCOS-AS-15X permit 15X.0.0.0/8!--- em seguida uma prefix list para cada DOWNSTREAM com seus respectivos blocos contidos(continua...)

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 293: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

293

Vamos também configurar as sessões eBGP com os UPSTREAMS.

● Primeiro eBGP entre R1 e AS 100:

(...continuação)AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 10!--- cria um route-map de ação permit sequencia 10AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS!--- configura a condição para receber a ação permit, que nesse caso é fazer parte da!--- lista “MEUS-BLOCOS”AS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 20 !--- cria um route-map de ação permit sequencia 20AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14X!--- configura a condição para receber a ação permit, fazer parte da lista “BLOCOS-AS-14x”AS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 30 !--- cria um route-map de ação permit sequencia 30AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15X!--- configura a condição para receber a ação permit, fazer parte da lista “BLOCOS-AS-15x”AS-X-R1(config-route-map)#endAS-X-R1#clear ip bgp * soft

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 294: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

294

Vamos também configurar as sessões eBGP com os UPSTREAMS

● Em seguida eBGP entre R2 e AS 200:

AS-X-R2#conf tAS-X-R2(config)#router bgp XAS-X-R2(config-router)#network X.0.0.0AS-X-R2(config-router)#auto-summaryAS-X-R2(config-router)#synchronization AS-X-R2(config-router)#neighbor 200.X.2.1 remote-as 200AS-X-R2(config-router)#neighbor 200.X.2.1 soft-reconfiguration inboundAS-X-R2(config-router)#neighbor 200.X.2.1 route-map ANUNCIAR-AS-200 out!--- vamos utilizar também filtros de saida baseados em route-map + prefix-listAS-X-R2(config-router)#exit!--- volta para o modo de configuração globalAS-X-R2(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8!--- cria a prefix-list MEUS-BLOCOS e adiciona os blocos do grupo nessa listaAS-X-R2(config)#ip prefix-list BLOCOS-AS-14X permit 14X.0.0.0/8AS-X-R2(config)#ip prefix-list BLOCOS-AS-15X permit 15X.0.0.0/8!--- em seguida uma prefix list para cada DOWNSTREAM com seus respectivos blocos contidos(continua...)

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 295: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

295

Vamos também configurar as sessões eBGP com os UPSTREAMS

● Em seguida eBGP entre R2 e AS 200:

(...continuação)AS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 10!--- cria um route-map de ação permit sequencia 10AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOS!--- configura a condição para receber a ação permit, que nesse caso é fazer parte da!--- lista “MEUS-BLOCOS”AS-X-R2(config-route-map)#exitAS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 20 !--- cria um route-map de ação permit sequencia 20AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-14X!--- configura a condição para receber a ação permit, fazer parte da lista “BLOCOS-AS-14x”AS-X-R2(config-route-map)#exitAS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 30 !--- cria um route-map de ação permit sequencia 30AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-15X!--- configura a condição para receber a ação permit, fazer parte da lista “BLOCOS-AS-15x”AS-X-R2(config-route-map)#endAS-X-R2#clear ip bgp * soft

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 296: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

296

Configurando iBGP entre R4 e R1:

Configurando iBGP entre R4 e R2:

AS-X-R4#conf t AS-X-R4(config)#router bgp XAS-X-R4(config-router)#neighbor X.0.0.1 remote-as XAS-X-R4(config-router)#neighbor X.0.0.1 description iBGP Router 1

AS-X-R4#conf t

AS-X-R4(config)#router bgp X

AS-X-R4(config-router)#neighbor X.0.0.2 remote-as XAS-X-R4(config-router)#neighbor X.0.0.2 description iBGP Router 2

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 297: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

297

Configurando iBGP entre R1 e R4:

Configurando iBGP entre R1 e R5:

AS-X-R1#conf t AS-X-R1(config)#router bgp XAS-X-R1(config-router)#bgp router-id X.0.0.1AS-X-R1(config-router)#neighbor X.0.0.4 remote-as XAS-X-R1(config-router)#neighbor X.0.0.4 description iBGP Router 4

AS-X-R1#conf t AS-X-R1(config)#router bgp XAS-X-R1(config-router)#neighbor X.0.0.5 remote-as XAS-X-R1(config-router)#neighbor X.0.0.5 description iBGP Router 5

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 298: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

298

Configurando iBGP entre R5 e R1:

Configurando iBGP entre R5 e R2:

AS-X-R5#conf t AS-X-R5(config)#router bgp XAS-X-R5(config-router)#neighbor X.0.0.1 remote-as XAS-X-R5(config-router)#neighbor X.0.0.1 description iBGP Router 1

AS-X-R5#conf t AS-X-R5(config)#router bgp XAS-X-R5(config-router)#neighbor X.0.0.2 remote-as XAS-X-R5(config-router)#neighbor X.0.0.2 description iBGP Router 2

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 299: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

299

Configurando iBGP entre R2 e R4:

Configurando iBGP entre R2 e R5

AS-X-R2#conf t AS-X-R2(config)#router bgp XAS-X-R2(config-router)#bgp router-id X.0.0.2AS-X-R2(config-router)#neighbor X.0.0.4 remote-as XAS-X-R2(config-router)#neighbor X.0.0.4 description iBGP Router 4

AS-X-R2#conf t AS-X-R2(config)#router bgp XAS-X-R2(config-router)#neighbor X.0.0.5 remote-as XAS-X-R2(config-router)#neighbor X.0.0.5 description iBGP Router 5

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

LAB 2-1-1

Page 300: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

300

As sessões iBGP subiram?

– Provavelmente não!

– Por que razão?

5.1 - Implementando Múltiplas Saídas para Clientes de Trânsito

Page 301: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

301

PERGUNTAS?PERGUNTAS?

5.1

Page 302: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

302

Update-Source

5.2

Page 303: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

303

Como decidimos estabelecer as sessões utilizando os IPs de loopback dos routers internos, nos deparamos com um problema de conexão TCP.

5.2 - Update-source

Page 304: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

304

A menos que especifiquemos o contrário, o IP de origem de todo pacote é o IP da interface que saiu.

Em outras palavras, se a melhor rota para alcançar R4 é pela serial 1/1, o IP de origem será o IP dessa interface.

5.2 - Update-source

Page 305: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

305

Vejamos:

Nesse caso, quando o pacote "syn" chegar ao router R1 (X.0.0.1) para solicitar o início da sessão BGP, o seu IP de origem desse pacote será X.X.4.2, e já que R1 foi configurado para estabelecer BGP com X.0.0.4 (R4) ele naturalmente rejeita essa conexão.

AS-X-R4#sh ip route X.0.0.1Routing entry for X.0.0.1/32 Known via "ospf 1", distance 110, metric 129, type intra area Last update from X.X.4.1 on Serial1/0, 07:43:20 ago Routing Descriptor Blocks: * X.X.4.1, from X.0.0.1, 07:43:20 ago, via Serial1/0 Route metric is 129, traffic share count is 1

5.2 - Update-source

Page 306: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

306

Analisando o BGP debug:

07:42:42: BGP: X.0.0.1 open active, delay 7672ms07:42:50: BGP: X.0.0.1 open active, local address X.X.4.207:42:50: BGP: X.0.0.1 open failed: Connection refused by remote host

5.2 - Update-source

Page 307: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

307

Para resolver esse problema precisamos dizer ao meu router R4 que utilize o IP X.0.0.4 para estabelecer a conexão TCP-179 com R1:

AS-X-R4(config)#router bgp XAS-X-R4(config-router)#neighbor X.0.0.1 update-source loopback 0AS-X-R4(config-router)#neighbor X.0.0.2 update-source loopback 0!--- loopback 0 é a interface que possui o IP X.0.0.4 no R4!--- mas também podemos declarar um IP ao invés de uma interface

5.2 - Update-source

LAB 2-1-2

Page 308: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

308

Analisando novamente o debug após a mudança no updade source:

07:48:50: BGP: X.0.0.1 open active, local address X.0.0.407:48:50: BGP: X.0.0.1 went from Active to OpenSent07:48:50: BGP: X.0.0.1 sending OPEN, version 4, my as: X07:48:50: BGP: X.0.0.1 rcv message type 1, length (excl. header) 2607:48:50: BGP: X.0.0.1 rcv OPEN, version 407:48:50: BGP: X.0.0.1 rcv OPEN w/ OPTION parameter len: 1607:48:50: BGP: X.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 607:48:50: BGP: X.0.0.1 OPEN has CAPABILITY code: 1, length 407:48:50: BGP: X.0.0.1 OPEN has MP_EXT CAP for afi/safi: 1/107:48:50: BGP: X.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 207:48:50: BGP: X.0.0.1 OPEN has CAPABILITY code: 128, length 007:48:50: BGP: X.0.0.1 OPEN has ROUTE-REFRESH capability(old) for all address-families07:48:50: BGP: X.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 207:48:50: BGP: X.0.0.1 OPEN has CAPABILITY code: 2, length 007:48:50: BGP: X.0.0.1 OPEN has ROUTE-REFRESH capability(new) for all address-families07:48:50: BGP: X.0.0.1 went from OpenSent to OpenConfirm07:48:50: BGP: X.0.0.1 went from OpenConfirm to Established07:48:50: %BGP-5-ADJCHANGE: neighbor X.0.0.1 Up

5.2 - Update-source

LAB 2-1-2

Page 309: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

309

… fazer a mesma mudança em R5:

AS-X-R5(config)#router bgp XAS-X-R5(config-router)#neighbor X.0.0.1 update-source loopback 0AS-X-R5(config-router)#neighbor X.0.0.2 update-source loopback 0!--- loopback 0 é a interface que possui o IP X.0.0.5 no R5

07:48:50: %BGP-5-ADJCHANGE: neighbor X.0.0.1 Up

5.2 - Update-source

LAB 2-1-2

Page 310: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

310

Por que não foi necessário realizar a mesma configuração em R1?

✔ Por que o R1 responde (com a mensagem type 1) utilizando o IP destino que R4 inseriu no pacote de "OPEN" (X.0.0.1).

Na prática é preciso que apenas um dos dois routers altere o "update-source", porém é recomendável alterar nos dois, pois isso pode fazer com que a sessão estabeleça alguns segundos mais rápido numa eventual queda.

5.2 - Update-source

Page 311: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

311

Ajustando o update-source nas sessões R1<->R4 e R1<->R5

Ajustando o update-source nas sessões R2<->R4 e R2->R5

AS-X-R1#conf tAS-X-R1(config)#router bgp XAS-X-R1(config-router)#neighbor X.0.0.4 update-source loopback 0AS-X-R1(config-router)#neighbor X.0.0.5 update-source loopback 0

AS-X-R2#conf tAS-X-R2(config)#router bgp XAS-X-R2(config-router)#neighbor X.0.0.4 update-source loopback 0AS-X-R2(config-router)#neighbor X.0.0.5 update-source loopback 0

5.2 - Update-source

LAB 2-1-2

Page 312: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

312

Estabelecidas as sessões iBGP e eBGP, vamos aos "novos" problemas:

Notem que não estamos anunciando as redes recebidas pelos meus DOWNSTREAMS, mas apenas o classe A do AS local.

– Por que?

AS-X-R1#sh ip bgp neighbors 100.X.1.1 advertised-routes ... Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

AS-X-R2#sh ip bgp neighbors 200.X.2.1 advertised-routes ... Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i

5.3 – Next-hop-self

LAB 2-1-3

Page 313: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

313

O primeiro critério para o protocolo BGP anunciar algum prefixo é que esse prefixo esteja válido na FIB.

O prefixo "X.0.0.0" está com o caractere ">", o que demonstra que esse prefixo está de fato na FIB (best).

Porém não é o que acontece com os prefixos recebidos dos DOWNSTREAMS.

Os prefixos 14X.0.0.0 e 15X.0.0.0 estão na RIB, mas não na FIB.

Por que esses prefixos não estão na FIB?

AS-X-R1#sh ip bgp... Network Next Hop Metric LocPrf Weight Path *> X.0.0.0 0.0.0.0 0 32768 i* i14X.0.0.0 X.11X.4.2 0 100 0 14X i* i15X.0.0.0 X.12X.5.2 0 100 0 15X i...

5.3 – Next-hop-self

LAB 2-1-3

Page 314: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

314

Vamos verificar detalhadamente o status de um desses prefixos em R1...

Um problema é perceptível sem muito trabalho: "X.14X.4.2 (inaccessible)"

Para que esse prefixo seja válido na FIB é necessário que o "next-hop" correspondente também seja válido, o que não ocorre.

Mas esse é apenas um dos problemas perceptíveis na saída do último comando.

AS-X-R1#sh ip bgp 14X.0.0.0BGP routing table entry for 14X.0.0.0/8, version 0Paths: (1 available, no best path) Not advertised to any peer 14X X.14X.4.2 (inaccessible) from X.0.0.4 (X.0.0.4) Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

5.3 – Next-hop-self

LAB 2-1-3

Page 315: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

315

Resolvendo o primeiro problema:

Não é recomendável que as interfaces externas do AS participem do IGP (OSPF), portanto vamos para outra solução.

Vamos então utilizar o comando BGP "next-hop-self" que altera o next-hop para o IP de neighbor.

AS-X-R1#conf tAS-X-R1(config)#router bgp XAS-X-R1(config-router)#neighbor X.0.0.4 next-hop-self AS-X-R1(config-router)#neighbor X.0.0.5 next-hop-self

AS-X-R2#conf tAS-X-R2(config)#router bgp XAS-X-R2(config-router)#neighbor X.0.0.4 next-hop-self AS-X-R2(config-router)#neighbor X.0.0.5 next-hop-self

5.3 – Next-hop-self

LAB 2-1-2

Page 316: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

316

Continuando em R4 e R5...

Vamos agora verificar as mudanças...

AS-X-R4#conf tAS-X-R4(config)#router bgp XAS-X-R4(config-router)#neighbor X.0.0.1 next-hop-self AS-X-R4(config-router)#neighbor X.0.0.2 next-hop-self

AS-X-R5#conf tAS-X-R5(config)#router bgp XAS-X-R5(config-router)#neighbor X.0.0.1 next-hop-self AS-X-R5(config-router)#neighbor X.0.0.2 next-hop-self

5.3 – Next-hop-self

LAB 2-1-3

Page 317: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

317

Vamos detalhar novamente um dos prefixos em R1:

Notem que o next-hop não se encontra mais inacessível, porém a rota mostra uma outra mensagem: "NOT SYNCRONIZED".

Isso acontece com rotas aprendidas por iBGP, uma vez que por padrão o protocolo exige a sincronização da rota antes de anunciá-la aos AS's externos.

Nas versões e caixas mais novas o ”syncronize” vem desabilitado.

AS-X-R1#sh ip bgp 14X.0.0.0BGP routing table entry for 14X.0.0.0/8, version 0Paths: (1 available, no best path) Not advertised to any peer 14X X.0.0.5 (metric 129) from X.0.0.5 (X.0.0.5) Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

5.4 - BGP Synchronization

LAB 2-1-4

Page 318: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

318

Resolvendo o problema de maneira "duvidosa" em R1 e R2...

AS-X-R1#conf t AS-X-R1(config)#router bgp XAS-X-R1(config-router)#no synchronization AS-X-R1(config-router)#endAS-X-R1#clear ip bgp *

AS-X-R2#conf t AS-X-R2(config)#router bgp XAS-X-R2(config-router)#no synchronization AS-X-R2(config-router)#endAS-X-R2#clear ip bgp *

5.4 - BGP Synchronization

LAB 2-1-4

Page 319: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

319

Continuando em R4 e R5...

AS-X-R4#conf t AS-X-R4(config)#router bgp XAS-X-R4(config-router)#no synchronization AS-X-R4(config-router)#endAS-X-R4#clear ip bgp *

AS-X-R5#conf t AS-X-R5(config)#router bgp XAS-X-R5(config-router)#no synchronization AS-X-R1(config-router)#endAS-X-R5#clear ip bgp *

5.4 - BGP Synchronization

LAB 2-1-4

Page 320: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

320

Conferindo as mudanças em R1 e demais:

Verificando o caractere ">" podemos ter certeza dessa vez as rotas foram para FIB.

AS-X-R1#sh ip bgp ... Network Next Hop Metric LocPrf Weight Path*> X.0.0.0 0.0.0.0 0 32768 i*> 100.0.0.0 100.X.1.1 0 0 100 i*>i14X.0.0.0 X.0.0.4 0 100 0 146 i*>i15X.0.0.0 X.0.0.5 0 100 0 156 i

5.4 - BGP Synchronization

LAB 2-1-4

Page 321: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

321

Vamos agora ter certeza que os prefixos do meus DOWNSTREAMS estão sendo anunciados aos UPSTREAMS:

Bingo!! Estamos anunciando os prefixos de DOWNSTREAMS para o AS 100.

O mesmo vale para R2, R4 e R5, é só conferir.

AS-X-R1#sh ip bgp 14X.0.0.0BGP routing table entry for 14X.0.0.0/8, version 16Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: 100.X.1.1 11X X.0.0.4 (metric 129) from X.0.0.4 (X.0.0.4) Origin IGP, metric 0, localpref 100, valid, internal, best

5.4 - BGP Synchronization

LAB 2-1-4

Page 322: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

322

Agora entrem no Looking Glass (nesse LAB o IP mudou para 99.99.99.1) e testem a conectividade IP para os AS's clientes 14X e 14X,

CONCLUSÕES: Se o "syncronization" existe, precisamos compreender sua função antes de desabilitá-lo.

telnet 99.99.99.1...

!--executem traceroute para os IPs dos seus respectivos downstreams

AS-99-R1>traceroute 14X.1.0.1

Type escape sequence to abort.Tracing the route to 14X.1.0.1

1 99.100.1.2 12 msec 16 msec 4 msec 2 100.X.1.2 [AS 100] 60 msec 28 msec 36 msec 3 * * * 4 * * * 5 * * *

5.4 - BGP Synchronization

LAB 2-1-4

Page 323: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

323

Entendendo o "syncronization"...

Uma proteção natural que o BGP implementa é exigir a sincronização de uma rota aprendida por iBGP antes de inseri-la na FIB.

Quando um router recebe um prefixo de origem "internal" através de iBGP esse não tem como saber se os routers intermediários também conhecem rota para esse prefixo.

Vamos entender melhor...

5.4 - BGP Synchronization

Page 324: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

324

Entendendo o ”syncronization”...

R4 estabelece um iBGP diretamente com R1 e anuncia os prefixos recebidos do AS 14X. O problema é que AS-X-R1 não tem como saber se R3 conhece rota para os prefixos do AS 14X.

O syncronization é um mecanismo de proteção que evita loops de roteamento, vamos entender melhor o que aconteceu no LAB.

5.4 - BGP Synchronization

Page 325: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

325

AS 14X anuncia seus prefixos para R4...

5.4 - BGP Synchronization

Page 326: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

326

AS R4 anuncia para R1...

5.4 - BGP Synchronization

Page 327: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

327

AS R1 anuncia para o UPSTREAM AS 100...

5.4 - BGP Synchronization

Page 328: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

328

AS 100 anuncia para o AS 99...

5.4 - BGP Synchronization

Page 329: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

329

Caminho dos pacotes: Entram no AS 100...

5.4 - BGP Synchronization

Page 330: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

330

Caminho dos pacotes: em seguida no AS por R1...

5.4 - BGP Synchronization

Page 331: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

331

Caminho dos pacotes: agora complica um pouco, R1 conhece rota para 11X.0.0.0/8 através do next-hop X.0.0.4 (R4), e esse next-hop é alcançável via R3 (X.X.1.2).

5.4 - BGP Synchronization

Page 332: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

332

Caminho dos pacotes: ”Ninguém avisou para R3” qualquer coisa sobre um tal AS 11X, o que ele faz com um pacote cujo destino não conhece? (rota padrão) O pacote é devolvido para R1.

5.4 - BGP Synchronization

Page 333: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

333

Caminho dos pacotes: Mas R1 consulta novamente sua FIB, e ”tem certeza” que o pacote deve mesmo ser entregue para R3...

5.4 - BGP Synchronization

Page 334: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

334

Caminho dos pacotes: E o loop se repete até o fim do TTL do pacote...

5.4 - BGP Synchronization

Page 335: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

335

Por isso precisamos ter certeza antes de "desabilitar" o syncronization.

Veremos 3 maneiras de resolver esse problema, a primeira delas é com o syncronization HABILITADO e redistribuindo rotas BGP através do IGP (OSPF nesse caso);

A segunda maneira é desabilitando o syncronization e estabelecendo FULL-MESH entre todos os routers do AS;

A terceira (e melhor) é utilizando MPLS (sem BGP) nos routers do backbone (nesse LAB apenas R3) e que encaminham rotas aprendidas via BGP através de Labels.Veremos essa no capítulo 8.1 (BGP através da nuvem MPLS);

Vamos à primeira!

5.4 - BGP Synchronization

Page 336: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

336

Distribuindo as rotas BGP através do meu IGP:

!--- primeiro vamos habilitar novamente o syncronizationAS-X-R1#conf tAS-X-R1(config)#router bgp XAS-X-R1(config-router)#synchronization AS-X-R1(config-router)#exit!--- agora entrar na configuração do OSPFAS-X-R1(config)#router ospf 1AS-X-R1(config-router)#redistribute bgp X!--- habilita a distribuição por OSPF de rotas aprendias por BGP% Only classful networks will be redistributedAS-X-R1(config-router)#endAS-X-R1#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R1#!--- vamos repetir o mesmo processo para R2, R4 e R5

5.4 - BGP Synchronization

LAB 2-1-5

Page 337: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

337

Distribuindo as rotas BGP através do meu IGP:

!--- primeiro vamos habilitar novamente o syncronizationAS-X-R2#conf tAS-X-R2(config)#router bgp XAS-X-R2(config-router)#synchronization AS-X-R2(config-router)#exit!--- agora entrar na configuração do OSPFAS-X-R2(config)#router ospf 1AS-X-R2(config-router)#redistribute bgp X!--- habilita a distribuição por OSPF de rotas aprendias por BGP% Only classful networks will be redistributedAS-X-R2(config-router)#endAS-X-R2#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R2#

5.4 - BGP Synchronization

LAB 2-1-5

Page 338: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

338

Distribuindo as rotas BGP através do meu IGP:

!--- primeiro vamos habilitar novamente o syncronizationAS-X-R4#conf tAS-X-R4(config)#router bgp XAS-X-R4(config-router)#synchronization AS-X-R4(config-router)#exit!--- agora entrar na configuração do OSPFAS-X-R4(config)#router ospf 1AS-X-R4(config-router)#redistribute bgp X!--- habilita a distribuição por OSPF de rotas aprendias por BGP% Only classful networks will be redistributedAS-X-R4(config-router)#endAS-X-R4#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R4#

5.4 - BGP Synchronization

LAB 2-1-5

Page 339: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

339

Distribuindo as rotas BGP através do meu IGP:

!--- primeiro vamos habilitar novamente o syncronizationAS-X-R5#conf tAS-X-R5(config)#router bgp XAS-X-R5(config-router)#synchronization AS-X-R5(config-router)#exit!--- agora entrar na configuração do OSPFAS-X-R5(config)#router ospf 1AS-X-R5(config-router)#redistribute bgp X!--- habilita a distribuição por OSPF de rotas aprendias por BGP% Only classful networks will be redistributedAS-X-R5(config-router)#endAS-X-R5#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R5#

5.4 - BGP Synchronization

LAB 2-1-5

Page 340: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

340

Agora vamos verificar em R1 as rotas recebidas do AS-14X via R4:

Agora podemos ver pelo ">" que a rota para 14X.0.0.0 está na FIB.

Outro detalhe é o "i" à esquerda identifica a rota como "internal".

AS-X-R1#sh ip bgp

Network Next Hop Metric LocPrf Weight Path… *> 99.0.0.0 100.X.1.1 0 100 99 i*> 100.0.0.0 100.X.1.1 0 0 100 i*r>i14X.0.0.0 X.0.0.4 0 100 0 14X i*r>i15X.0.0.0 X.0.0.5 0 100 0 15X i*> 200.0.0.0 100.X.1.1 0 100 99 200 i...

5.4 - BGP Synchronization

LAB 2-1-5

Page 341: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

341

Detalhando os prefixos do meu DOWNSTREAM:

Temos agora uma rota SINCRONIZADA, VÁLIDA, e ANUNCIADA para 100.X.1.1 (AS 100).

AS-X-R1#sh ip bgp 14X.0.0.0BGP routing table entry for 14X.0.0.0/8, version 5Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: 100.X.1.1 11X X.0.0.4 (metric 129) from X.0.0.4 (X.0.0.4) Origin IGP, metric 0, localpref 100, valid, internal, synchronized, best

5.4 - BGP Synchronization

LAB 2-1-5

Page 342: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

342

Segunda maneira é desabilitando o syncronization, porém alterando os BGP peers.

Vamos refazer as configurações BGP estabelecendo R4<->R3 e R3<->R1.

Dessa forma R3 vai conhecer a rota para os DOWSTREAMS e UPSTREAMS.

5.4 - BGP Synchronization

Page 343: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

343

Mas antes vamos desconfigurar a redistribuição de prefixos via OSPF em R1, R2, R4 e R5...

AS-X-R1#conf tAS-X-R1(config)#router ospf 1AS-X-R1(config-router)#no redistribute bgp XAS-X-R1(config-router)#endAS-X-R1#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R1#!--- vamos repetir o mesmo processo para R2, R4 e R5

5.4 - BGP Synchronization

LAB 2-1-6

Page 344: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

344

R2

AS-X-R2#conf tAS-X-R2(config)#router ospf 1AS-X-R2(config-router)#no redistribute bgp XAS-X-R2(config-router)#endAS-X-R2#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R2#

5.4 - BGP Synchronization

LAB 2-1-6

Page 345: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

345

R4

AS-X-R4#conf tAS-X-R4(config)#router ospf 1AS-X-R4(config-router)#no redistribute bgp XAS-X-R4(config-router)#endAS-X-R4#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R4#

5.4 - BGP Synchronization

LAB 2-1-6

Page 346: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

346

R5

AS-X-R5#conf tAS-X-R5(config)#router ospf 1AS-X-R5(config-router)#no redistribute bgp XAS-X-R5(config-router)#endAS-X-R5#clear ip ospf process !--- reinicia o processo OSPFReset ALL OSPF processes? [no]: yesAS-X-R5#

5.4 - BGP Synchronization

LAB 2-1-6

Page 347: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

347

Vamos alterar o esquema das sessões removendo todas as sessões iBGP...

AS-X-R1(config)#router bgp XAS-X-R1(config-router)#no syncronizationAS-X-R1(config-router)#no neighbor X.0.0.4AS-X-R1(config-router)#no neighbor X.0.0.5!--- R1AS-X-R2(config)#router bgp XAS-X-R2(config-router)#no syncronizationAS-X-R2(config-router)#no neighbor X.0.0.4AS-X-R2(config-router)#no neighbor X.0.0.5!--- R2AS-X-R4(config)#router bgp XAS-X-R4(config-router)#no syncronizationAS-X-R4(config-router)#no neighbor X.0.0.1AS-X-R4(config-router)#no neighbor X.0.0.2!--- R4AS-X-R5(config)#router bgp XAS-X-R5(config-router)#no syncronizationAS-X-R5(config-router)#no neighbor X.0.0.1AS-X-R5(config-router)#no neighbor X.0.0.2

5.4 - BGP Synchronization

LAB 2-1-6

Page 348: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

348

Restabelecendo as sessões BGP em R1

● Em seguida iBGP entre R1 e R3:

AS-X-R1#conf tAS-X-R1(config)#router bgp XAS-X-R1(config-router)#neighbor X.0.0.3 remote-as XAS-X-R1(config-router)#neighbor X.0.0.3 description iBGP R3AS-X-R1(config-router)#neighbor X.0.0.3 next-hop-self AS-X-R1(config-router)#neighbor X.0.0.3 update-source loopback 0AS-X-R1(config-router)#neighbor X.0.0.3 soft-reconfiguration inbound AS-X-R1(config-router)#exit!--- não vamos utilizar nenhum filtro de in-out para a sessão com R3

5.4 - BGP Synchronization

LAB 2-1-6

Page 349: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

349

Reestabelecendo as sessões BGP em R1

● Em seguida iBGP entre R2 e R3:

AS-X-R2#conf tAS-X-R2(config)#router bgp XAS-X-R2(config-router)#neighbor X.0.0.3 remote-as XAS-X-R2(config-router)#neighbor X.0.0.3 description iBGP R3AS-X-R2(config-router)#neighbor X.0.0.3 next-hop-self AS-X-R2(config-router)#neighbor X.0.0.3 update-source loopback 0AS-X-R2(config-router)#neighbor X.0.0.3 soft-reconfiguration inbound AS-X-R2(config-router)#exit!--- não vamos utilizar nenhum filtro de in-out

5.4 - BGP Synchronization

LAB 2-1-6

Page 350: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

350

Configurando iBGP com R3

AS-X-R4#conf tAS-X-R4(config)#router bgp XAS-X-R4(config-router)#neighbor X.0.0.3 remote-as XAS-X-R4(config-router)#neighbor X.0.0.3 description iBGP R3AS-X-R4(config-router)#neighbor X.0.0.3 next-hop-self AS-X-R4(config-router)#neighbor X.0.0.3 update-source loopback 0AS-X-R4(config-router)#neighbor X.0.0.3 soft-reconfiguration inbound AS-X-R4(config-router)#exit

5.4 - BGP Synchronization

LAB 2-1-6

Page 351: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

351

Configurando iBGP com R3

AS-X-R5#conf tAS-X-R5(config)#router bgp XAS-X-R5(config-router)#neighbor X.0.0.3 remote-as XAS-X-R5(config-router)#neighbor X.0.0.3 description iBGP R3AS-X-R5(config-router)#neighbor X.0.0.3 next-hop-self AS-X-R5(config-router)#neighbor X.0.0.3 update-source loopback 0AS-X-R5(config-router)#neighbor X.0.0.3 soft-reconfiguration inbound AS-X-R5(config-router)#exit

5.4 - BGP Synchronization

LAB 2-1-6

Page 352: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

352

Restabelecendo as sessões iBGP em R3:

AS-X-R3(config)#router bgp XAS-X-R3(config-router)#no synchronization AS-X-R3(config-router)#network X.0.0.0AS-X-R3(config-router)#bgp router-id X.0.0.3AS-X-R3(config-router)#auto-summary!--- iBGP com R1AS-X-R3(config-router)#neighbor X.0.0.1 remote-as XAS-X-R3(config-router)#neighbor X.0.0.1 description iBGP R1AS-X-R3(config-router)#neighbor X.0.0.1 update-source loopback 0AS-X-R3(config-router)#neighbor X.0.0.1 soft-reconfiguration inbound !--- iBGP com R2AS-X-R3(config-router)#neighbor X.0.0.2 remote-as XAS-X-R3(config-router)#neighbor X.0.0.2 description iBGP R2AS-X-R3(config-router)#neighbor X.0.0.2 update-source loopback 0AS-X-R3(config-router)#neighbor X.0.0.2 soft-reconfiguration inbound !--- iBGP com R4AS-X-R3(config-router)#neighbor X.0.0.4 remote-as XAS-X-R3(config-router)#neighbor X.0.0.4 description iBGP R4AS-X-R3(config-router)#neighbor X.0.0.4 update-source loopback 0AS-X-R3(config-router)#neighbor X.0.0.4 soft-reconfiguration inbound !--- iBGP com R5AS-X-R3(config-router)#neighbor X.0.0.5 remote-as XAS-X-R3(config-router)#neighbor X.0.0.5 description iBGP R5AS-X-R3(config-router)#neighbor X.0.0.5 update-source loopback 0AS-X-R3(config-router)#neighbor X.0.0.5 soft-reconfiguration inbound

5.4 - BGP Synchronization

LAB 2-1-6

Page 353: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

353

Verificando as mudanças começando por R1

Ainda não temos a rota anunciada pelo DOWNSTRASM AS 14X na FIB de R1, isso porque R3 não está anunciando!

Por que isso acontece?

AS-X-R1#sh ip bgp BGP table version is 2, local router ID is X.0.0.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*>iX.0.0.0 X.0.0.3 0 100 0 i*> 100.0.0.0 100.X.1.1 0 0 100 i*> 99.0.0.0 100.X.1.1 0 0 100 99 i...

5.4 - BGP Synchronization

LAB 2-1-6

Page 354: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

354

BGP e o SPLIT HORIZON

Desde o tempo do RIP, os protocolos do tipo vetor de distância sabem que não há sentido em propagar uma rota para a mesma interface de onde aprendeu, e com o BGP é parecido.

No iBGP é indispensável* que haja fullmesh de sessões BGP (todos estabelecendo com todos) e sendo assim, um router não anuncia por iBGP uma rota que foi aprendida também por iBGP, pois entende que aquele router que me enviou a rota já está enviando diretamente para todos os routers do iBGP.

*há um mecanismo que dispensa essa necessidade

5.4 - BGP Synchronization

Page 355: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

355

Em resumo, um router não anuncia para outro router do mesmo AS qualquer coisa que tenha aprendido também via iBGP.

Ou seja, R3 não vai anunciar para R1 as rotas aprendidas de R4.

5.4 - BGP Synchronization

Page 356: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

356

Route-Reflector

5.5

Page 357: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

357

5.5 - Route-Reflector

Em tese, de acordo com as regras do split horizon deveríamos estabelecer as seguintes sessões BGP (full mesh):

R1<->R2, R1<->R3, R1<->R4, R1<->R5

R2<->R3, R2<->R4, R1<->R5

R3<->R4, R3<->R5

R4<->R5

Total=10

O route-reflector basicamente dispensa a necessidade de iBGP full-mesh, pois remove a restrição no repasse de rotas iBGP para outro neighbor iBGP.

É altamente recomendado quando o número de routers é maior que 5:*evita um número muito grande de sessões iBGP

Page 358: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

358

Nessa topologia de rede em particular, podemos optar por 3

modelos:

1- R1 como Route-Reflector estabelecendo com R2, R3, R4 e R5 (4 sessões).

✗ Pontos críticos de falha: falha em R3 e/ou R1 e/ou link R3<->R1 = 3.

5.5 - Route-Reflector

Page 359: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

359

5.5 - Route-Reflector

2- R2 como Route-Reflector estabelecendo com R1, R3, R4 e R5 (4 sessões).

✗ Pontos críticos de falha: falha em R3 e/ou R2 e/ou link R3<->R2 = 3.

Page 360: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

360

3- R3 como Route-Reflector estabelecendo com R1, R2, R4 e R5 (4 sessões).

✗ Pontos críticos de falha: falha em R3= 1.

5.5 - Route-Reflector

Page 361: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

361

Obviamente já optamos pela opção número 3

● Vamos acrescentar apenas a opção RR:

AS-X-R3#conf tAS-X-R3(config)#router bgp XAS-X-R3(config-router)#neighbor X.0.0.1 route-reflector-client!--- iBGP com R1AS-X-R3(config-router)#neighbor X.0.0.2 route-reflector-client!--- iBGP com R2AS-X-R3(config-router)#neighbor X.0.0.4 route-reflector-client!--- iBGP com R4AS-X-R3(config-router)#neighbor X.0.0.5 route-reflector-client!--- iBGP com R5

5.5 - Route-Reflector

LAB 2-1-7

Page 362: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

362

É importante deixar claro que diferentemente do que o nome possa sugerir, "Route-reflector" não significa "refletir a rota" e preservar o next-hop original, isso é uma característica do próprio iBGP. Route-Reflector significa anunciar via iBGP rotas aprendidas também por iBGP.

5.5 - Route-Reflector

Page 363: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

363

5.6

Peer Groups

Page 364: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

364

5.6 - Peer Groups

Em nossa topologia, ficamos diante de uma situação:

R3 possui vários neighbors com configurações semelhantes, exigindo configurações repetitivas e sujeitas à erros.

O recurso "peer-group" me permite realizar um padrão para os neighbors semelhantes diminuindo drasticamente a quantidade de linhas de configuração e "show run".

Page 365: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

365

Vamos praticar reconfigurando R3 com peer-groups:

!--- Primeiro vamos resetar as config de BGPAS-X-R3#conf tAS-X-R3(config)#no router bgp X!--- depois as configurações básicasAS-X-R3(config)#router bgp XAS-X-R3(config-router)#no synchronization AS-X-R3(config-router)#auto-summary AS-X-R3(config-router)#bgp router-id X.0.0.3AS-X-R3(config-router)#network X.0.0.0!--- Vamos declarar um peer-group chamado IBGPAS-X-R3(config-router)#neighbor IBGP peer-group AS-X-R3(config-router)#neighbor IBGP remote-as XAS-X-R3(config-router)#neighbor IBGP update-source loopback 0AS-X-R3(config-router)#neighbor IBGP soft-reconfiguration inbound AS-X-R3(config-router)#neighbor IBGP route-reflector-client !--- Vamos adicionar os neighbors que fazem parte desse grupoAS-X-R3(config-router)#neighbor X.0.0.1 peer-group IBGPAS-X-R3(config-router)#neighbor X.0.0.2 peer-group IBGPAS-X-R3(config-router)#neighbor X.0.0.4 peer-group IBGPAS-X-R3(config-router)#neighbor X.0.0.5 peer-group IBGP

5.6 - Peer Groups

LAB 2-1-8

Page 366: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

366

Com peer-group fica muito mais simples adicionar remover configurações de neighbors para todo o grupo em apenas um comando, por exemplo:

Todas as sessões BGP dentro do peer-group passariam pelos mesmos filtros de entrada e de saída

!--- apenas exemplo, não efetue essa configuraçãorouter(config-router)#neighbor IBGP prefix-list FILTRO-GERAL-DE-ENTRADA inrouter(config-router)#neighbor IBGP prefix-list FILTRO-GERAL-DE-SAIDA out!--- apenas exemplo, não efetue essa configuração

!--- A mesma simplicidade acontece na hora de um "clear" (route refresh)AS-X-R3#clear ip bgp peer-group IBGP soft!--- mas vale lembrar que nada impede que seja efetuado um clear individualAS-X-R3#clear ip bgp X.0.0.1 out

5.6 - Peer Groups

Page 367: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

367

Finalizando o LAB:

Acessar o Looking Glass e verificar se esse alcança o AS do grupo e todos os seus respectivos DOWNSTREAMS

telnet 99.99.99.1 ...

5.6 - Peer Groups

LAB 2-1-8

Page 368: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

368

Local Preference x Weight no iBGP

5.7

Page 369: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

369

5.7 - Local Preference x Weight no iBGP

Características:

Weight:

✔ Proprietário Cisco (embora implementado por Mikrotik, Quagga, OpenBGPD)

✔ Primeiro critério na escolha de rotas (maior weight)

✔ Não é considerado um atributo e seu valor pode ser de 0 a 65535

✔ Os valores de weight não são transitivos (mesmo dentro do AS)

Local Preference:

✔ Conhecido em todas as implementações de BGP

✔ Segundo critério depois do weight (maior local pref)

✔ Seu valor padrão é 100 e pode variar de 0 a 4294967295

✔ Os valores alterados são propagados por todo o iBGP

Page 370: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

370

Como vimos nos labs anteriores, posso atribuir um valor de weight 10 no comando "neighbor x.x.x.x weight 10" para todas as rotas recebidas, ou manualmente apenas para determinados prefixos utilizando o route-map. Vamos alterar o weight apenas de um determinado prefixo (99.0.0.0/8) e todos os seus sub-prefixos

AS-X-R1#conf tAS-X-R1(config)#ip prefix-list BLOCOS-AS-99 permit 99.0.0.0/8 le 24!--- adiciona o classe A e sub-redes 99.0.0.0 na prefix-list BLOCOS-AS-99AS-X-R1(config)#router bgp XAS-X-R1(config-router)#neighbor 100.X.1.1 route-map AS-100-IN in !--- declara o route-map AS-100-IN para filtrar anuncios de input do AS 100AS-X-R1(config-router)#exitAS-X-R1(config)#route-map AS-100-IN permit 10AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-99AS-X-R1(config-route-map)#set weight 10!--- estabelece os prefixos da lista BLOCOS-AS-99 como condição para receber a ação permir!--- e a modificação opcional que atribui um valor 10 de weightAS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map AS-100-IN permit 999!--- não podemos esquecer de adicionar um route-map ”vazio” no final (numero alto), caso contrário!--- os prefixos do AS 99 reeceberiam a ação desejada, porém nenhum outro prefixo seria aceitoAS-X-R1(config-route-map)#endAS-X-R1#clear ip bgp 100.X.1.1 soft

5.7 - Local Preference x Weight no iBGP

LAB 2-1-9

Page 371: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

371

AS-X-R1#sh ip bgp ... Network Next Hop Metric LocPrf Weight Path

*> 99.0.0.0 100.X.1.1 0 10 100 99 i*> 100.0.0.0 100.X.1.1 0 0 100 i*> 200.0.0.0 100.X.1.1 0 0 100 99 200 i...

Conferindo a modificação:

Apenas o prefixo 99.0.0.0 recebeu weight 10

Verifiquem a mesma rota em R2, R3,R4 ou R5 o valor de weight será 0, já que esse não é propagado através do iBGP

5.7 - Local Preference x Weight no iBGP

LAB 2-1-9

Page 372: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

372

Já com o local preference é diferente, o valor que configurarmos em R1 permanecerá o mesmo em todos os routers do AS que receberem esse prefixo através de iBGP

✗ OBS: Caso algum router aplique route-map que altere o local preference do prefixo 99.0.0.0 ou de todos os prefixos recebidos, esse valor é substituído pelo atual

5.7 - Local Preference x Weight no iBGP

Page 373: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

373

A maneira mais indicada de priorizar rotas dentro do iBGP é utilizando o local preference

O weight deve ser usado apenas em casos muito específicos onde não haja a intenção de que os outros routers do AS escolham essa mesma rota

5.7 - Local Preference x Weight no iBGP

Page 374: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

374

LAB:

utilizando os recursos vistos no curso vamos configurar os routers do AS de maneira que atenda todos os seguintes requisitos:

✔ Todo o tráfego outbound (upload) deve utilizar o link do AS 100, exceto com destino ao AS 200 (200.0.0.0/8) e seus DOWNSTREAMS

✔ Simulando que o link do AS 100 está sobrecarregado, o tráfego inbound (download) do DOWNSTREAM AS 15X (apenas) deve chegar pelo AS 200 quando a origem for o AS 99 (internet)

Apenas R2 deve alcançar o AS 99 (99.0.0.0/8) através do link com o AS 200

• 5.8 Engenharia de Tráfego II

LAB 2-1-9

Page 375: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

375

Solução em R1

router bgp X no synchronization bgp log-neighbor-changes network X.0.0.0 neighbor X.0.0.3 remote-as 4 neighbor X.0.0.3 update-source Loopback0 neighbor X.0.0.3 next-hop-self neighbor X.0.0.3 soft-reconfiguration inbound neighbor 100.X.1.1 remote-as 100 neighbor 100.X.1.1 soft-reconfiguration inbound neighbor 100.X.1.1 route-map AS-100-IN in neighbor 100.X.1.1 route-map ANUNCIAR-AS-100 out auto-summary!ip prefix-list BLOCOS-AS-14X seq 5 permit 14X.0.0.0/8!prefix-list BLOCOS-AS-15X seq 5 permit 15X.0.0.0/8!prefix-list BLOCOS-AS-99 seq 5 permit 99.0.0.0/8 le 32!ip prefix-list MEUS-BLOCOS seq 5 permit X.0.0.0/8!route-map AS-100-IN permit 10 match ip address prefix-list BLOCOS-AS-99 set local-preference 110 set weight 10!route-map AS-100-IN permit 999 set local-preference 110!route-map ANUNCIAR-AS-100 permit 10 match ip address prefix-list MEUS-BLOCOS!route-map ANUNCIAR-AS-100 permit 20 match ip address prefix-list BLOCOS-AS-14X!route-map ANUNCIAR-AS-100 permit 30 match ip address prefix-list BLOCOS-AS-15X set as-path prepend 4!

• 5.8 “CHEATS”

Solução em R2

router bgp X no synchronization bgp log-neighbor-changes network X.0.0.0 neighbor X.0.0.3 remote-as X neighbor X.0.0.3 update-source Loopback0 neighbor X.0.0.3 next-hop-self neighbor X.0.0.3 soft-reconfiguration inbound neighbor 200.X.2.1 remote-as 200 neighbor 200.X.2.1 soft-reconfiguration inbound neighbor 200.X.2.1 weight 10 neighbor 200.X.2.1 route-map AS-200-IN in auto-summary!ip prefix-list BLOCOS-AS-200 seq 5 permit 200.0.0.0/8 le 32!route-map AS-200-IN permit 10 match ip address prefix-list BLOCOS-AS-200 set local-preference 120!route-map AS-200-IN permit 999 set local-preference 100!

LAB 2-1-9

Page 376: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

376

PERGUNTAS?PERGUNTAS?

5.8

Page 377: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

377

BGP Communities

6.0

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.

Podem estar disponíveis autorizações adicionais ao âmbito desta licença em [email protected].

Page 378: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

378

BGP Communities

6.0

6. BGP Communities

• 6.1 Communities Padrão• 6.2 Communities Numéricas• 6.3 Identificando e tratando rotas de peers específicos• 6.4 Manipulando trâsito (nacional/internacional) com communities• 6.5 Engenharia de Tráfego III

Page 379: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

379

6.1

Communities Padrão

Page 380: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

380

6.1 – Communities Padrão

Communities são atributos que são preservados em anúncios entre AS's externos e internos.

São um tipo de carimbo inserido nos updates em forma de string.

Uma community é um atributo opcional, e sendo assim nada obriga que os fabricantes implementem no BGP de suas caixas, ou mesmo que um AS replique para seus peers o mesmo valor de community recebido por um de seus clientes.

Page 381: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

381

Os modelos mais novos suportam o "novo formato" usualmente utilizado como ASN:comunity, por exemplo: 28135:110.

Porém há algumas communities padronizadas pela RFC 1997 e são padrão nos routers Cisco:

– INTERNET – NO-EXPORT – NO-ADVERTISE – LOCAL-AS – NO-ADVERTISE-SUBCONFED

6.1 – Communities Padrão

Page 382: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

382

NO-EXPORT por padrão faz o router receptor exportar o prefixo para neighbors iBGP, mas não para eBGP. É útil quando faço anúncios mais específicos para a operadora A e menos específicos para operadora B. Normalmente, a operadora B precisaria passar pela operadora A para chegar ao prefixo "específico" mesmo estabelecendo BGP diretamente com meu AS.

Enviando o mesmo bloco específico, com a community NO-EXPORT à operadora A, essa passaria a me alcançar diretamente, ao mesmo tempo que não exportaria esses prefixos.

6.1 – Communities Padrão

Page 383: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

383

NO-ADVERTISE por padrão faz o router receptor não exportar esse prefixo para nenhum neighbor, seja ele eBGP ou iBGP.

6.1 – Communities Padrão

Page 384: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

384

NO-ADVERTISE-SUBCONFED usada para evitar que o prefixo seja exportado para AS's confederados.

6.1 – Communities Padrão

Page 385: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

385

LOCAL-AS usada para evitar que os prefixos marcados sejam exportados para fora do AS ou confederação, geralmente usado em filtros de entrada.

6.1 – Communities Padrão

Page 386: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

386

INTERNET na prática é a community padrão para anúncios externos, é o mesmo que não haver nenhuma.

6.1 – Communities Padrão

Page 387: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

387

LAB 1: Antes de começar remover todas as configurações do laboratório anterior

6.1 – Communities Padrão

R1

conf t! no route-map AS-100-IN permit 10 ! route-map AS-100-IN permit 999no set local-preference 110! ! route-map ANUNCIAR-AS-100 permit 30no set as-path prepend 4!

R2

conf t! no route-map AS-200-IN permit 10! route-map AS-200-IN permit 999 set local-preference 100!

Page 388: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

388

Antes de iniciar os LABs desse capítulo é obrigatório habilitar suporte ao envio de commuinities em TODOS os neighbors.

Em seguida habilitar o formato novo formato xxx:yyy para o tratamento de communities:

router(config)#router bgp Xrouter(config-router)#neighbor A.B.C.D send-community both router(config-router)#exit

6.1 – Communities Padrão

LAB2-1-10

Page 389: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

389

LAB 1: Anunciar os prefixos de um dos AS's clientes com a community NO-EXPORT para dentro do AS do grupo:

Verifiquem nos routers R1 e R2 se os prefixos marcados como "NO-EXPORT" estão sendo anunciados para os AS's 100 e 200.

AS-14X-R1#conf tAS-14X-R1(config)#router bgp 14XAS-14X-R1(config-router)#neighbor X.14X.4.1 send-community both AS-14X-R1(config-router)#neighbor X.14X.4.1 route-map AS-X-OUT out AS-14X-R1(config-router)#exit

As-14X-R1(config)#ip bgp-community new-format AS-14X-R1(config)#route-map AS-X-OUT permit 10AS-14X-R1(config-route-map)#set community no-export

6.1 – Communities Padrão

LAB2-1-10

Page 390: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

390

LAB 2 opcional: verificar a diferença enviando a community NO-ADVERTISE.

6.1 – Communities Padrão

LAB2-1-11

Page 391: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

391

LAB 3 :

✔ Utilizar communities PADRÃO e fazer com que o DOWNLOAD dos AS's 14X e 15X cheguem pelo link do AS 200 quando a origem for o AS 99 (internet).

✔ Os routers do AS 100 deverão alcançar os DOWNSTREAMS do grupo pelo link direto sem ter que ”dar a volta” pelo AS 99.

6.1 – Communities Padrão

LAB2-1-11

Page 392: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

392

Communities Numéricas

6.2

Page 393: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

393

6.2 - Communities Numéricas

É muito pequena a quantidade de communities padrão, podemos fazer pouquíssimas coisas com elas.

Porém há uma grande quantidade communities numéricas que podem ser utilizadas.

Page 394: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

394

6.2 - Communities Numéricas

É importante saber que essas communities numéricas por padrão não influenciam em nada no tratamento das rotas.

É preciso uma configuração prévia ação para cada community.

Page 395: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

395

Também não há nenhum padrão para essas ações (pelo menos nenhum padrão RFC).

Entretanto muitos AS's implementaram padrões extremamente criativos e funcionais.

6.2 - Communities Numéricas

Page 396: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

396

O conhecimento desses padrões é uma ferramenta chave para resolver rapidamente incidentes do dia a dia.

Vamos ver nos próximos slides uma série de communities numéricas adotadas por algumas operadoras.

Mas antes vamos habilitar o suporte ao novo formato...

6.2 - Communities Numéricas

router#conf trouter(config)#ip bgp-community new-format

Page 397: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

397

Identificando e Tratando Rotas de Peers Específicos

6.3

Page 398: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

398

6.3 - Identificando e Tratando Rotas de Peers Específicos

Quando utilizamos o comando:

Estamos substituindo todas as communities que haviam nesse prefixo.

Muitas vezes, é interessante adicionar mais de uma community em "pontos diferentes".

Ex: Recebo prefixos dos meus downstreams e quero inserir uma community 123:123 para controle interno, utilizando o meio convencional, eu acabaria substituindo uma eventual community que meu cliente utilizou para interagir com um outro AS externo.

O que fazer?

Router(config-route-map)#set community xxx:xxx

Page 399: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

399

Com o comando "additive" qualquer community existente é preservada:

✗ OBS: Digitar o comando "set community" tem efeito "cumulativo" exemplo: se digitarmos a seguinte sequência de comandos:

AS-X-R4(config-route-map)#set community 123:123 additive

router#conf trouter(config)#route-map teste permit 10router(config-route-map)#set community 123:123router(config-route-map)#exitrouter(config)#route-map teste permit 10router(config-route-map)#set community 111:222router(config-route-map)#set community 333:214router(config-route-map)#endrouter#router#conf trouter(config)#route-map teste permit 10router(config-route-map)#set community 555:82

6.3 - Identificando e Tratando Rotas de Peers Específicos

Page 400: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

400

Todas as communities digitadas serão ACUMULADAS:

Lembrem que o "additive" não tem a ver com esse fato, mas sim com fazer com que as communities inseridas com "additive" sejam "somadas" às communities que já estavam taggeadas no(s) prefixo(s).

router#sh running-config | begin route-map testeroute-map teste permit 10 set community 111:222 123:123 333:214 555:82!...

6.3 - Identificando e Tratando Rotas de Peers Específicos

Page 401: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

401

Sem o comando "additive", qualquer community existente é substituída.

Sempre utilizem ”additive” na hora de colocar communities em rotas recebidas de DOWNSTREAMS.

6.3 - Identificando e Tratando Rotas de Peers Específicos

Page 402: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

402

LAB – Implementando políticas anúncio baseadas em Community-list

✔ Estabelecer uma community (X:20) numérica para identificar que o prefixo foi recebido de um cliente de trânsito:

✔ Aplicar um “set community X:20” nos filtros de entrada de todos os clientes

✔ Mudar os filtros da saida de UPSTREAMS para filtros baseados apenas em community

6.3 - Identificando e Tratando Rotas de Peers Específicos

Page 403: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

403

Inserindo a community X:20 para todasas rotas recebidas do cliente 1 em R4

AS-X-R4#conf t AS-X-R4(config)#router bgp XAS-X-R4(config-router)#no neighbor X.14X.4.2 prefix-list BLOCOS-AS-14X in!--- Desconfigura o filtro de entrada baseado em prefix-listAS-X-R4(config-router)#neighbor X.14X.4.2 route-map AS-14X-IN in!--- Configura um filtro de entrada baseado em route-mapAS-X-R4(config-router)#exitAS-X-R4(config)#route-map AS-14X-INAS-X-R4(config-route-map)#match ip address prefix-list BLOCOS-AS-14XAS-X-R4(config-route-map)#set community X:20AS-X-R4(config-route-map)#endAS-X-R4#clear ip bgp *

6.3 - Identificando e Tratando Rotas de Peers Específicos

LAB2-1-12

Page 404: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

404

Inserindo a community X:20 para todasas rotas recebidas do cliente 2 em R5

AS-X-R5#conf t AS-X-R5(config)#router bgp XAS-X-R5(config-router)#no neighbor X.15X.5.2 prefix-list BLOCOS-AS-15X in!--- Desconfigura o filtro de entrada baseado em prefix-listAS-X-R5(config-router)#neighbor X.15X.5.2 route-map AS-15X-IN in!--- Configura um filtro de entrada baseado em route-mapAS-X-R5(config-router)#exitAS-X-R5(config)#route-map AS-15X-INAS-X-R5(config-route-map)#match ip address prefix-list BLOCOS-AS-15XAS-X-R5(config-route-map)#set community X:20AS-X-R5(config-route-map)#endAS-X-R5#clear ip bgp *

6.3 - Identificando e Tratando Rotas de Peers Específicos

LAB2-1-12

Page 405: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

405

Agora observem a configuração atual dos filtros de saída de R1

AS-X-R5#conf t AS-X-R5(config)#ip community-list standard CLIENTES permit X:20!--- Cria uma community-list e adiciona a community X:20 nessa listaAS-X-R5(config)#route-map ANUNCIAR-AS-100 permit 15AS-X-R5(config-route-map)#match community CLIENTESAS-X-R5(config-route-map)#exitAS-X-R5(config)#no route-map ANUNCIAR-AS-100 permit 20AS-X-R5(config)#no route-map ANUNCIAR-AS-100 permit 30!-- apaga os route-maps antigos que faziam match em prefix-listAS-X-R5#clear ip bgp *

6.3 - Identificando e Tratando Rotas de Peers Específicos

LAB2-1-12

AS-X-R1#sh running-config | begin ANUNCIAR-AS-100route-map ANUNCIAR-AS-100 permit 10 match ip address prefix-list MEUS-BLOCOS!route-map ANUNCIAR-AS-100 permit 20 match ip address prefix-list BLOCOS-AS-14X!route-map ANUNCIAR-AS-100 permit 30 match ip address prefix-list BLOCOS-AS-15X!

Temos além do route-map “permit 10” (que permite anúncio dos prefixos “locais”) mais dois, que permitem o anúncio de cada um dos clientes.

Após a marcação da community em R4 e R5, é possível fazer um route-map para anunciar todos os prefixos de clientes de transito que foram anteriormente marcados com X:20

*Com apenas 2 route-maps anunciarmos todos os clientes, mesmo que fossem dezenas

Page 406: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

406

Manipulando Trânsito (Nacional/Internacional) com

Communities

6.4

Page 407: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

407

Brasil Telecom8167:90 Set Local Preference 908167:100 Set Local Preference 1008167:110 Set Local Preference 110* (default é Local Preference 200)

8167:3xy controle de anúncios

x: ação { 0 = não anuncia, 1,2,3 = insere x prepends)y: peerings { 0=demais peerings, 1=internacionais, 2=Embratel,3=Intelig, 4=Telemar, 5=Telefônica }(exemplo: 312 = muda para 1 prepend o anúncio para a Embratel)

* (default é anunciar sem prepends para todos os peerings)

8167:555 => não exporta fora da Brasil Telecom.8167:557 => não anuncia para sites internacionais.

8167:666 => serão injetados no BlackHole da Brasil Telecom.8167:777 => somente anuncia para clientes da Brasil Telecom.

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Page 408: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

408

Embratel

4230:120 - Local Preference - marcar a rota como localpreference 1204230:10000 - Blackhole - bloqueia todo o tráfego para a rede/endereco4230:10002 - Blackhole - filtra o tráfego internacional nos provedores que proveem alguma especie de blackhole.4230:10004 - Blackhole - filtra nos roteadores da Embratel nos EUA otrafego destinado a rede/endereco anunciado

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Page 409: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

409

GVT

Aonde, AS, deve ser o seu AS, exemplo: 1234:1

OBS: Quem tem AS de 32 bits não precisa se preocupar. Segundo a GVT o número da esquerda pode ser qualquer coisa, o que importa é o que vem na direita.

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Bloqueia anuncio Internacional AS:1

Bloqueia anuncio Nacional AS:2

Bloqueia anuncio Clientes GVT AS:3

Bloqueia anuncio Peering AS:4

Bloqueia anuncio PTT AS:6

Page 410: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

410

Global Crossing

3549:100 - set local preference 1003549:200 - set local preference 2003549:275 - set local preference 2753549:300 - set local preference 3003549:350 - set local preference 350

3549:600 - Deny inter-continental export of tagged prefix [iBGP].3549:666 - Deny inter-as export of tagged prefix (carry on AS 3549 only) [eBGP]

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Page 411: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

411

Uma série de communities complexas possibilitam o tratamento do prepend para cada um dos peers da GLBX 3549:8... ASN Peer No Export Prepend+1 Prepend+2 Prepend+3

209 Qwest 8010 8011 8012 8013701 MCI 8030 8031 8032 80331239 Sprint 8060 8061 8062 80631299 TeliaSonera 8250 8251 8252 82531668 AOL 8070 8071 8072 80732497 JPNIC 8080 8081 8082 80832516 KDDI 8100 8101 8102 81032914 NTT Verio 8120 8121 8122 81233257 Tiscali 8240 8241 8242 82433300 InfoNet Europe 8130 8131 8132 81333303 Swisscom 8140 8141 8142 81433320 T-Systems/DTAG 8150 8151 8152 81533356 Level 3 8160 8161 8162 81633561 Savvis 8170 8171 8172 81734134 ChinaNet 8230 8231 8232 82335511 OpenTransit 8190 8191 8192 81936461 AboveNet 8200 8201 8202 82036453 Teleglobe 8210 8211 8212 82137018 AT&T (US) 8220 8221 8222 82237738 Telemar 8290 8291 8292 8293

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Page 412: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

412

Um cliente com o AS 4111 envia um prefixo com a community "3549:8011 3549:8033 3549:8190".

O prefixo com essa marca será anunciado da seguinte forma para os peers GLBX:

➔Qwest (AS 209) receberá o prefixo com o AS PATH: "3549 3549 4111"

➔MCI (AS 701) receberá o prefixo com o AS PATH: "3549 3549 3549 3549 4111"

➔OpenTransit (AS 5511) não receberá o prefixo

➔todos os outros receberão o prefixo normalmente: "3549 4111"

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Page 413: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

413

Intelig

17379:23004 - Community NO-EXPORT-INTERNACIONAL - Não anuncia para peersInternacionais.17379:23005 - Community NO-EXPORT-NACIONAL - Não anuncia para peersNacionais.No-export ? A rota não será anunciada para nenhum peer eBGP da Intelig.17379:60 = set local-preference 6017379:70 = set local-preference 7017379:80 = set local-preference 8017379:90 = set local-preference 90

Todo anuncio feito, sem a aplicação de communities tem por default ovalor 100 de local Preference.

6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

Page 414: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

414

Engenharia de Tráfego III

6.5

Page 415: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

415

LAB 2-1-13: Considerando as políticas de community para o AS 200:

200:70 = set local-preference 70

200:80 = set local-preference 80

200:90 = set local-preference 90

200:110 = set local-preference 110

A partir dos AS's clientes, utilizar as communities 200:xxx para alterar o local preference dentro do AS 200, em seguida observar que quando o mesmo é forçado a mudar o local preference para menos de 100, automaticamente começa a ”dar a volta” pelo AS 99, pois acaba escolhendo rotas do AS 99 (local preference 100 padrão).

6.5 - Engenharia de Tráfego III

LAB2-1-13

Page 416: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

416

Solução:

AS-14X-R1#conf tAS-14X-R1(config)#route-map AS-X-OUT permit 10AS-14X-R1(config-route-map)#set community none!--- remove o ”set community” do lab anteriorAS-14X-R1(config-route-map)#set community 200:90AS-14X-R1(config-route-map)#endAS-14X-R1#clear ip bgp * soft

AS-15X-R1#conf tAS-15X-R1(config)#route-map AS-X-OUT permit 10AS-15X-R1(config-route-map)#set community noneAS-15X-R1(config-route-map)#set community 200:70!--- remove o ”set community” do lab anteriorAS-15X-R1(config-route-map)#endAS-15X-R1#clear ip bgp * soft

6.5 - Engenharia de Tráfego III

LAB2-1-13

Page 417: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

417

LAB 2-1-14: De acordo com as políticas do AS 100 abaixo, utilize as communities apropriadas (100:xxxx) para fazer todas as ações:

✔ Fazer com que o grupo 9 alcance o AS 14X pelo AS 200;

✔ Fazer com que o grupo 1 alcance o AS 15X pelo AS 200;

✔ Fazer com que o AS 99 alcance os dois (14X e 15X) pelo AS 200;

ASN Peer Nao Anuncia Prepend +1 Prepend +2 Prepend +3 1 Grupo1 1010 1011 1012 1013 2 Grupo2 1020 1021 1022 1023 3 Grupo3 1030 1031 1032 1033 4 Grupo4 1040 1041 1042 1043 5 Grupo5 1050 1051 1052 1053 6 Grupo6 1060 1061 1062 1063 7 Grupo7 1070 1071 1072 1073 8 Grupo8 1080 1081 1082 1083 9 Grupo9 1090 1091 1092 1093 99 Internacional 9910 9911 9912 9913

6.5 - Engenharia de Tráfego III

LAB2-1-14

Page 418: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

418

Solução Lab 2:!--- apagando o route map do lab anteriorAS-14X-R1(config)#no route-map AS-X-OUT

AS-14X-R1#conf tAS-14X-R1(config)#route-map AS-X-OUT permit 10AS-14X-R1(config-route-map)#set community 100:1090 100:9912AS-14X-R1(config-route-map)#endAS-14X-R1#clear ip bgp * soft

!--- apagando o RM do lab anteriorAS-15X-R1(config)#no route-map AS-X-OUT

AS-15X-R1#conf tAS-15X-R1(config)#route-map AS-X-OUT permit 10AS-15X-R1(config-route-map)#set community 100:1010 100:9912AS-15X-R1(config-route-map)#endAS-15X-R1#clear ip bgp * soft

6.5 - Engenharia de Tráfego III

LAB2-1-13

Page 419: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

419

LAB 2-1-15:

Grupos de ASN par:

Utilizar as communities da tabela para fazer o AS 100 anunciar os prefixos dos dois clientes com prepend 3 para os ASN's ímpares e prepend 2 para o AS 99 e anunciar normalmente para todo o resto.

Grupos de ASN ímpar:

Utilizar as communities da tabela para fazer o AS 100 anunciar os prefixos dos dois clientes com prepend 3 para os ASN's pares e prepend 2 para o AS 99 e anunciar normalmente para todo o resto.

6.5 - Engenharia de Tráfego III

LAB2-1-15

Page 420: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

420

Solução Lab 2-1-15: (AS Ímpar)

!--- apagando o RM do lab anteriorAS-14X-R1(config)#no route-map AS-X-OUT

AS-14X-R1#conf tAS-14X-R1(config)#route-map AS-X-OUT permit 10AS-14X-R1(config-route-map)#set community 100:9912 100:1023 100:1043 100:1063 100:1083AS-14X-R1(config-route-map)#endAS-14X-R1#clear ip bgp * soft

!--- apagando o RM do lab anteriorAS-15X-R1(config)#no route-map AS-X-OUT

AS-15X-R1#conf tAS-15X-R1(config)#route-map AS-X-OUT permit 10AS-15X-R1(config-route-map)#set community 100:9912 100:1023 100:1043 100:1063 100:1083AS-15X-R1(config-route-map)#endAS-15X-R1#clear ip bgp * soft

6.5 - Engenharia de Tráfego III

LAB2-1-15

Page 421: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

421

Solução Lab 2-1-15: (AS Par)

!--- apagando o RM do lab anteriorAS-14X-R1(config)#no route-map AS-X-OUT

AS-14X-R1#conf tAS-14X-R1(config)#route-map AS-X-OUT permit 10AS-14X-R1(config-route-map)#set community 100:9912 100:1013 100:1033 100:1053 100:1073 100:1093AS-14X-R1(config-route-map)#endAS-14X-R1#clear ip bgp * soft

!--- apagando o RM do lab anteriorAS-15X-R1(config)#no route-map AS-X-OUT

AS-15X-R1#conf tAS-15X-R1(config)#route-map AS-X-OUT permit 10AS-15X-R1(config-route-map)#set community 100:9912 100:1013 100:1033 100:1053 100:1073 100:1093AS-15X-R1(config-route-map)#endAS-15X-R1#clear ip bgp * soft

6.5 - Engenharia de Tráfego III

LAB2-1-15

Page 422: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

422

PERGUNTAS?PERGUNTAS?

6.5

Page 423: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

423

7.0

Filtros Avançados para Um AS de Trânsito

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.

Podem estar disponíveis autorizações adicionais ao âmbito desta licença em [email protected].

Page 424: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

424

7.0Filtros Avançados para Um AS de Trânsito7. Filtros avançados para um AS de trânsito

• 7.1 Manipulando rotas de múltiplos PTTs• 7.2 DOWNSTREAMS com multihoming• 7.3 AS de trânsito no PTT – parte I• 7.4 Configurando um trasporte Lan2lan com xconnect/L2TP• 7.5 AS de trânsito no PTT – parte II

Page 425: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

425

7.1

Manipulando Rotas com Múltiplos PTTs

Page 426: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

426

7.1 – Manipulando Rotas com Múltiplos Ptts

Em alguns casos clientes de trânsito solicitam o recebimento apenas de rotas do PTT-SP, por exemplo.

Como filtrar e enviar um anúncio assim?

Page 427: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

427

7.1 – Manipulando Rotas com Múltiplos Ptts

Uma maneira simples é marcar uma community específica para rotas recebidas:

Esse comando adiciona a community 28135:1111 e preserva todas que existirem.

router-SP#conf trouter-SP(config)#route-map PTT-SAOPAULO-IN permit 1router-SP(config-route-map)#set community 28135:1111 additive...

Page 428: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

428

Se meu AS participa de mais de um PTT posso filtrar rotas de ambos e exportar para o meu cliente:

Dado o cenário, vamos ver quais seriam os filtros que enviariam para o cliente apenas rotas recebidas do PTT-Campina Grande e PTT-São Paulo:

router-CampinaGrande#conf trouter-CampinaGrande(config)#route-map PTT-CAMPINAGRANDE-IN permit 1router-CampinaGrande(config-route-map)#set community 28135:2222 additive

Router(config)#ip community-list 70 permit 28135:1111Router(config)#ip community-list 70 permit 28135:2222!router(config)#route-map CLIENTE-OUT permit 10router(config-route-map)#match community 70

7.1 – Manipulando Rotas com Múltiplos Ptts

Page 429: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

429

Downstreams comDownstreams com Multihoming Multihoming

7.2

Page 430: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

430

7.2 – Downtreams com Multihoming

Os filtros baseados apenas em prefixos nos trazem um problema:

Como AS de trânsito, geralmente temos vários peers, e caso um dos nossos clientes também tenha outros peers, um filtro baseado unicamente em prefixos pode acabar fazendo o meu AS exportar prefixos errados.

Por exemplo, sou o AS 100, meu cliente é o AS 20, que por sua vez compra trânsito com o AS 200.

Page 431: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

431

Caso o AS 20 anunciasse um bloco específico para cada AS (100 e 200), essa seria minha FIB:

Percebam que por ser válido na FIB, o prefixo 20.0.8.0/21 seria exportado para todos os peers externos (menos para o AS 200 de onde "aprendemos") começando pelo AS 100.

router# sh ip bgp 20.0.0.0/20 longer-prefixes ... Network Next Hop Metric LocPrf Weight Path*>i20.0.8.0/21 200.100.1.1 0 200 20 i*>i20.0.0.0/21 100.20.1.2 300 10 20 i*>i20.0.0.0/20 100.20.1.2 300 10 20 i* 200.100.1.1 0 200 20 i...

7.2 – Downtreams com Multihoming

Page 432: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

432

Precisamos adicionar mais uma condição de match além do prefix list com expressões regulares.

Esse é o route-map padrão que já conhecemos:

router(config)#ip prefix-list BLOCOS-AS-20-ACL33 permit 20.0.0.0/8 le 24

router(config)#route-map ANUNCIAR-AS-XXX permit 10router(config-route-map)#match ip address prefix-list BLOCOS-AS-20-ACL33

!--- Adicionamos a seguinte acl:router(config)#ip as-path access-list 33 permit ^20(_20)*$!--- apenas se a rota tiver sido ORIGINADA pelo AS 20

!--- voltamos no mesmo route-maprouter(config)#route-map ANUNCIAR-AS-XXX permit 10!--- e adicionamos a condiçãorouter(config-route-map)#match as-path 33

7.2 – Downtreams com Multihoming

Page 433: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

433

A nomenclatura da prefix-list com final (ACL-33) é para facilitar, pois

indica o número da ACL de as-path correspondente ao cliente.

Nos routers Cisco não há possibilidade de nomear uma ACL de as-path, podemos apenas utilizar apenas um número.

Para quem usa Quagga é possível atribuir um nome para a ACL de as-path e community lists o que deixa tudo ainda mais fácil:

router-quagga(config)#ip prefix-list BLOCOS-AS-20 permit 20.0.0.0/8 le 24router-quagga(config)#ip as-path access-list PATH-AS-20 permit ^(20|(20_{0,1}){1,8})$!--- Essa expressão limita em no máximo 8 ocorrências ...OU...router-quagga(config)#ip as-path access-list PATH-AS-20 permit ^20(_20)*$!--- Essa expressão não limita a quantidade de prepends

router-quagga(config)#route-map ANUNCIAR-AS-XXX permit 10router-quagga(config-route-map)#match ip address prefix-list BLOCOS-AS-20router-quagga(config-route-map)#match as-path PATH-AS-20

7.2 – Downtreams com Multihoming

Page 434: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

434

7.3

AS de Trânsito no PTTparte I

Page 435: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

435

7.3 - AS de Trânsito no PTT – parte I

Vamos iniciar estabelecendo as sessões BGP de R1 com o PTT-RS1 e PTT-LG, em seguida repetir o processo nos DOWNSTREAMS AS-14X-R1 e AS-15X-R1.

AS-X-R1

AS-X-R1#conf tAS-X-R1(config)#router bgp X!--- como os 2 neighbors terão as mesmas configurações, criaremos um peer-groupAS-X-R1(config-router)#no bgp enforce-first-asAS-X-R1(config-router)#neighbor PTT peer-group AS-X-R1(config-router)#neighbor PTT remote-as 555AS-X-R1(config-router)#neighbor PTT soft-reconfiguration inbound AS-X-R1(config-router)#neighbor PTT route-map PTT-IN in AS-X-R1(config-router)#neighbor PTT route-map PTT-OUT out AS-X-R1(config-router)#neighbor PTT send-community both !--- não precisamos repetir as configurações e apena declarar o peer-group para os dois neighborsAS-X-R1(config-router)#neighbor 187.16.216.253 peer-group PTTAS-X-R1(config-router)#neighbor 187.16.216.253 description PTT RS 1!--- ptt-rs1AS-X-R1(config-router)#neighbor 187.16.216.254 peer-group PTTAS-X-R1(config-router)#neighbor 187.16.216.254 description PTT RS 2!--- ptt-rs2AS-X-R1(config-router)#neighbor 187.16.216.252 remote-as 555AS-X-R1(config-router)#neighbor 187.16.216.252 description LG do PTT!--- o Looking Glass do PTT não fará parte do peer-group pois não defverá receber nenhum filtro in-out!--- continua no próximo slide...

LAB 2-3-1

Page 436: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

436

...BGP com PTT...

AS-X-R1

!--- continuando...!--- vamos declarar em networks os prefixos mais específicosAS-X-R1(config-router)#network X.0.0.0 mask 255.128.0.0AS-X-R1(config-router)#network X.128.0.0 mask 255.128.0.0AS-X-R1(config-router)#exitAS-X-R1(config)#ip route X.0.0.0 255.128.0.0 null 0AS-X-R1(config)#ip route X.128.0.0 255.128.0.0 null 0!--- depois garantimos os dois blocos específicos (/9) na FIBAS-X-R1(config)#endAS-X-R1#clear ip bgp peer-group PTT out

!--- OBS: há um pequeno BUG no laboratório, onde o IP do PTT !---já está levantado na interface errada f0/1, para isso entre na interface e remova o IPAS-X-R1(config)#interface fastEthernet 0/1AS-X-R1(config-if)#no ip addressAS-X-R1(config-if)#exit!--- Em seguida levante o IP de participante na interface corretaAS-X-R1(config)#interface fastEthernet 0/0AS-X-R1(config-if)#ip address 187.16.216.X 255.255.255.0 AS-X-R1(config-if)#no shutdown

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 437: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

437

Configurando as políticas de route-map

AS-X-R1

!--- ATENÇÃO TODAS AS PREFIX-LIST ABAIXO JÁ FORAM CRIADAS NOS LABS ANTERIORES!--- ESTÃO AQUI APENAS PARA LEMBRAR O SEU CONTEÚDO!--- AS-X-R1(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8!--- AS-X-R1(config)#ip prefix-list BLOCOS-AS-14X permit 14X.0.0.0/8!--- AS-X-R1(config)#ip prefix-list BLOCOS-AS-15X permit 15X.0.0.0/8!--- CASO ESTAS NÃO ESTEJAM PRESENTES CONFIGUREM NOVAMENTE!--- apenas os filtros baseados em ASPATH ainda não foram criadosAS-X-R1(config)#ip as-path access-list 10 permit ^$AS-X-R1(config)#ip as-path access-list 20 permit ^14X(_14X)*$AS-X-R1(config)#ip as-path access-list 30 permit ^15X(_15X)*$!--- em seguida o primeiro o route-map que trata os filtros de input para redes recebidas do PTTAS-X-R1(config)#route-map PTT-IN permit 10AS-X-R1(config-route-map)#set local-preference 110!--- o local preference 110 fará com que todas os routers do AS prefiram as rotas recebidas pelo PTT!--- em seguida vamos aos route-maps responsáveis pelo output (anúncios) para o PTT(continua...)

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 438: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

438

Configurando as políticas de route-map para o PTT

AS-X-R1

(...continuação)AS-X-R1(config)#route-map PTT-OUT permit 10AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOSAS-X-R1(config-route-map)#match as-path 10!--- libera os blocos do AS local XAS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map PTT-OUT permit 20AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14XAS-X-R1(config-route-map)#match as-path 20!--- libera os blocos do DOWNSTREAM 1AS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map PTT-OUT permit 30AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15XAS-X-R1(config-route-map)#match as-path 30!--- libera os blocos do DOWNSTREAM 2(continua...)

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 439: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

439

Configurando as políticas de route-map para o AS 100

AS-X-R1

(...continuação)AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 10AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOSAS-X-R1(config-route-map)#match as-path 10!--- libera os blocos do AS local XAS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 20AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14XAS-X-R1(config-route-map)#match as-path 20!--- libera os blocos do DOWNSTREAM 1AS-X-R1(config-route-map)#exitAS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 30AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15XAS-X-R1(config-route-map)#match as-path 30!--- libera os blocos do DOWNSTREAM 2AS-X-R1(config-route-map)#endAS-X-R1#clear ip bgp * soft

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 440: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

440

Configurando as políticas de route-map para o AS 200(não esquecer que agora vamos para R2)

AS-X-R2

!--- apenas os filtros baseados em ASPATH ainda não foram criadosAS-X-R2(config)#ip as-path access-list 10 permit ^$AS-X-R2(config)#ip as-path access-list 20 permit ^14X(_14X)*$AS-X-R2(config)#ip as-path access-list 30 permit ^15X(_15X)*$AS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 10AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOSAS-X-R2(config-route-map)#match as-path 10!--- libera os blocos do AS local XAS-X-R2(config-route-map)#exitAS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 20AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-14XAS-X-R2(config-route-map)#match as-path 20!--- libera os blocos do DOWNSTREAM 1AS-X-R2(config-route-map)#exitAS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 30AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-15XAS-X-R2(config-route-map)#match as-path 30!--- libera os blocos do DOWNSTREAM 2AS-X-R2(config-route-map)#endAS-X-R2#clear ip bgp * soft

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 441: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

441

Todos esses route-maps podem deixar a configuração um pouco maior, porém vai permitir que os ”donos dos AS's” sejam facilmente identificados no ”show run” além de tornar muito fácil de escalar.

Imagine um dos clientes de trânsito AS 14X passar a prover trânsito IP para outro AS:

ASN 88 CIDR 88.0.0.0/8

Com apenas 2 comandos o AS 88 está liberado nos filtros de Saída:

AS-X-R1(config)#ip prefix-list BLOCOS-AS-14X permit 88.0.0.0/8AS-X-R1(config)#ip as-path access-list 20 permit ^(14X ?)+( 88)+$

AS-X-R1#show running-config | begin BLOCOS-AS-14Xip prefix-list BLOCOS-AS-11x seq 5 permit 14X.0.0.0/8ip prefix-list BLOCOS-AS-11x seq 10 permit 88.0.0.0/8!

7.3 - AS de Trânsito no PTT – parte I

Page 442: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

442

PS: nos LABs anteriores já configuramos as mesmas políticas para o output do AS 100, vamos apenas conferir:

Como podemos ver na saida do comando, as políticas de output com o AS 100 já estão configuradas.

O mesmo resultado deve aparecer em R2

AS-X-R1#show running-config | begin ANUNCIAR-AS-100route-map ANUNCIAR-AS-100 permit 10 match ip address prefix-list MEUS-BLOCOS match as-path 10!route-map ANUNCIAR-AS-100 permit 20 match ip address prefix-list BLOCOS-AS-14X match as-path 20!route-map ANUNCIAR-AS-100 permit 30 match ip address prefix-list BLOCOS-AS-15X match as-path 30!

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 443: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

443

A configuração nos DOWNSTREAMS é muito mais simples:

AS-14X-R1

AS-14X-R1#conf tAS-14X-R1(config)#ip as-path access-list 1 permit ^$AS-14X-R1(config)#ip route 14X.128.0.0 255.128.0.0 null 0AS-14X-R1(config)#ip route 14X.0.0.0 255.128.0.0 null 0AS-14X-R1(config)#router bgp 14XAS-14X-R1(config-router)#no bgp enforce-first-asAS-14X-R1(config-router)#network 14X.0.0.0 mask 255.128.0.0AS-14X-R1(config-router)#network 14X.128.0.0 mask 255.128.0.0AS-14X-R1(config-router)#neighbor PTT peer-group AS-14X-R1(config-router)#neighbor PTT remote-as 555AS-14X-R1(config-router)#neighbor PTT soft-reconfiguration inbound AS-14X-R1(config-router)#neighbor PTT filter-list 1 out AS-14X-R1(config-router)#neighbor PTT weight 50AS-14X-R1(config-router)#neighbor PTT send-community both AS-14X-R1(config-router)#neighbor 187.16.216.253 peer-group PTTAS-14X-R1(config-router)#neighbor 187.16.216.253 description PTT RS 1AS-14X-R1(config-router)#neighbor 187.16.216.254 peer-group PTTAS-14X-R1(config-router)#neighbor 187.16.216.254 description PTT RS 2AS-14X-R1(config-router)#neighbor 187.16.216.252 remote-as 555AS-14X-R1(config-router)#neighbor 187.16.216.252 description LG do PTTAS-14X-R1(config-router)#end

!--- NOTA é preciso levantar o IP de participante na interface !--- conectada ao PTT, que nesse caso é a f0/0 que esta conectada !--- na porta LAN2LAN de AS-1-R4AS-14X-R1(config)#interface fastEthernet 0/0AS-14X-R1(config-if)#ip address 187.16.216.14X 255.255.255.0 AS-14X-R1(config-if)#no shutdown

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 444: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

444

Seguimos a mesma lógica para o segundo DOWNSTREAM

AS-15X-R1

AS-15X-R1#conf tAS-15X-R1(config)#ip as-path access-list 1 permit ^$AS-15X-R1(config)#ip route 15X.128.0.0 255.128.0.0 null 0AS-15X-R1(config)#ip route 15X.0.0.0 255.128.0.0 null 0AS-15X-R1(config)#router bgp 15XAS-15X-R1(config-router)#no bgp enforce-first-asAS-15X-R1(config-router)#network 15X.0.0.0 mask 255.128.0.0AS-15X-R1(config-router)#network 15X.128.0.0 mask 255.128.0.0AS-15X-R1(config-router)#neighbor PTT peer-group AS-15X-R1(config-router)#neighbor PTT remote-as 555AS-15X-R1(config-router)#neighbor PTT soft-reconfiguration inbound AS-15X-R1(config-router)#neighbor PTT filter-list 1 out AS-15X-R1(config-router)#neighbor PTT weight 50AS-15X-R1(config-router)#neighbor PTT send-community both AS-15X-R1(config-router)#neighbor 187.16.216.253 peer-group PTTAS-15X-R1(config-router)#neighbor 187.16.216.253 description PTT RS 1AS-15X-R1(config-router)#neighbor 187.16.216.254 peer-group PTTAS-15X-R1(config-router)#neighbor 187.16.216.254 description PTT RS 2AS-15X-R1(config-router)#neighbor 187.16.216.252 remote-as 555AS-15X-R1(config-router)#neighbor 187.16.216.252 description LG do PTTAS-15X-R1(config-router)#end

!--- NOTA é preciso levantar o IP de participante na interface !--- conectada ao PTT, que nesse caso é a f0/0 que esta conectada !--- diretamente ao PTTAS-15X-R1(config)#interface fastEthernet 0/0AS-15X-R1(config-if)#ip address 187.16.216.15X 255.255.255.0 AS-15X-R1(config-if)#no shutdown

7.3 - AS de Trânsito no PTT – parte I

LAB 2-3-1

Page 445: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

445

As sessões BGP do DOWNSTREMS 14X com o PTT não estabeleceu!

O que faltou?

Os testes de ping com o Route-Server tem resposta?

7.3 - AS de Trânsito no PTT – parte I

Page 446: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

446

Configurando um Transporte Lan2Lan com xconnect/L2TP

7.4

Page 447: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

447

7.4 – Configurando um Transporte Lan2Lan com xconnect/L2TP

AS-X-R4(config)#l2tp-class transporte-l2AS-X-R4(config-l2tp-class)#cookie size 4AS-X-R4(config-l2tp-class)#exit!--- Declaramos uma class e demos o nome de “transporte-l2”AS-X-R4(config)#pseudowire-class transporte-l2AS-X-R4(config-pw-class)#encapsulation l2tpv3AS-X-R4 (config-pw-class)#protocol noneAS-X-R4 (config-pw-class)#ip local interface Loopback0!--- Na configuração da class escolhemos o tipo de tunelamento que em nosso caso será l2tp versão 3. AS-X-R4 (config-pw-class)#exit

AS-X-R4(config)#interface f0/0AS-X-R4(config)#no shutAS-X-R4(config-if)#xconnect X.0.0.1 14X encapsulation l2tpv3 manual pw-class transporte-l2AS-X-R4(config-if-xconn)#l2tp id 1 1AS-X-R4(config-if-xconn)#l2tp cookie local 4 1AS-X-R4(config-if-xconn)# l2tp cookie remote 4 1

LAB 2-4-1

Page 448: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

448

7.4 – Configurando um Transporte Lan2Lan com xconnect/L2TP

AS-X-R1(config)#l2tp-class transporte-l2AS-X-R1(config-l2tp-class)#cookie size 4AS-X-R1(config-l2tp-class)#exit!--- Declaramos uma class e demos o nome de “transporte-l2”AS-X-R1(config)#pseudowire-class transporte-l2AS-X-R1(config-pw-class)#encapsulation l2tpv3AS-X-R1 (config-pw-class)#protocol noneAS-X-R1 (config-pw-class)#ip local interface Loopback0!--- Na configuração da class escolhemos o tipo de tunelamento que em nosso caso será l2tp versão 3. AS-X-R1 (config-pw-class)#exit

AS-X-R1(config)#interface f2/0AS-X-R1(config)#no shutAS-X-R1(config-if)#xconnect X.0.0.4 14X encapsulation l2tpv3 manual pw-class transporte-l2AS-X-R1(config-if-xconn)#l2tp id 1 1AS-X-R1(config-if-xconn)#l2tp cookie local 4 1AS-X-R1(config-if-xconn)# l2tp cookie remote 4 1

LAB 2-4-1

Page 449: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

449

7.4 – Configurando um Transporte Lan2Lan com xconnect/L2TP

AS-X-R1#sh l2tun %No active L2F tunnelsL2TP Tunnel and Session Information Total tunnels 0 sessions 1LocID RemID TunID Username, Intf/ State Last Chg Uniq ID Vcid, Circuit 1 1 0 14X, Fa2/0 est 00:00:24 1

AS-X-R4#sh l2tun %No active L2F tunnelsL2TP Tunnel and Session Information Total tunnels 0 sessions 1LocID RemID TunID Username, Intf/ State Last Chg Uniq ID Vcid, Circuit 1 1 0 14X, Fa0/0 est 00:00:43 1

LAB 2-4-1

Page 450: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

450

Vamos entrar no AS-100-R1 (100.100.100.1) e fazer um traceroute para os DOWNSTREAMS do grupo.

Notem que ao entrar no AS do GRUPO, os pacotes são encaminhados para o PTT, e não chegam ao DOWNSTREAM pelo link de trânsito.

Mesmo com um local preference maior, os prefixos que os AS's 14X e AS 15X anunciam para PTT são mais específicos do que os que anunciam para o trânsito, isso obriga o router R1 a mandar os pacotes pelo PTT (download dos DOWNSTREAMS).

7.5 - AS de Trânsito no PTT – parte II

Page 451: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

451

Isso é um problema sério!

O cliente pode tirar proveito disso e causar prejuízos ”desviando” trânsito IP, obrigando AS local a ”trocar” o trânsito IP por ”nada”.

Uma troca de tráfego onde apenas um tem vantagem...

7.5 - AS de Trânsito no PTT – parte II

Page 452: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

452

Inserimos o AS de cada cliente de trânsito nessa lista.

Vale lembrar que em certos casos, os filtros precisariam ser mais específicos, fazendo um route-map de deny para cada cliente, combinando uma prefix-list + as-path access-list

AS-X-R1#conf tAS-X-R1(config)#ip as-path access-list 55 permit _14X_AS-X-R1(config)#ip as-path access-list 55 permit _15X_AS-X-R1(config)#route-map PTT-IN deny 5AS-X-R1(config-route-map)#match as-path 55

Para resolver isso, precisamos utilizar uma expressão regular proibindo R1 de receber qualquer anúncio de participantes que também sejam clientes de trânsito do AS:

7.5 - AS de Trânsito no PTT – parte II

LAB 2-4-2

Page 453: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

453

Vamos efetuar novamente o traceroute partindo de AS-110-R1...

7.5 - AS de Trânsito no PTT – parte II

Page 454: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

454

PERGUNTAS?PERGUNTAS?

7.5

Page 455: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

455

8.0

Multiprotocol Label Switching (MPLS)

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.

Podem estar disponíveis autorizações adicionais ao âmbito desta licença em [email protected].

Page 456: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

456

8.0Multiprotocol Label

Switching (MPLS)8. Multiprotocol Label Switching

• 8.1 BGP através da nuvem MPLS• 8.2 AtoM - Any Transport Over MPLS• 8.3 Implementando serviço VPN-L3 (VPN-Multiponto)

Page 457: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

457

BGP Através da Nuvem MPLS BGP Através da Nuvem MPLS

(BGP Multiprotocol)(BGP Multiprotocol)

8.1

Page 458: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

458

8.1 – BGP através da nuvem MPLS

AS-X-R3(config)#no router bgp XAS-X-R3(config)#interface serial 1/0AS-X-R3(config-if)#mpls label protocol bothAS-X-R3(config-if)#mpls ipAS-X-R3(config-if)#mpls mtu 1508AS-X-R3(config-if)#*Mar 1 00:13:29.699: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/0 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.exitAS-X-R3(config-if)#exit!--- Configurando LDP com R1AS-X-R3(config)#interface serial 1/1AS-X-R3(config-if)#mpls label protocol bothAS-X-R3(config-if)#mpls ipAS-X-R3(config-if)#mpls mtu 1508AS-X-R3(config-if)#*Mar 1 00:15:09.647: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/1 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R3(config-if)#exit!--- Configurando LDP com R2(...)

LAB 2-5-1

Page 459: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

459

8.1 – BGP através da nuvem MPLS

(...)AS-X-R3(config)#interface serial 1/2AS-X-R3(config-if)#mpls label protocol bothAS-X-R3(config-if)#mpls ipAS-X-R3(config-if)#mpls mtu 1508AS-X-R3(config-if)#*Mar 1 00:16:28.235: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/2 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R3(config-if)#exit!--- Configurando LDP com R3AS-X-R3(config)#interface serial 1/3AS-X-R3(config-if)#mpls label protocol bothAS-X-R3(config-if)#mpls ipAS-X-R3(config-if)#mpls mtu 1508AS-X-R3(config-if)#*Mar 1 00:17:09.295: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/3 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R3(config-if)#exit!--- Configurando LDP com R4

LAB 2-5-1

Page 460: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

460

8.1 – BGP através da nuvem MPLS

AS-X-R1(config)#interface serial 1/1AS-X-R1(config-if)#mpls ipAS-X-R1(config-if)#*Mar 1 00:18:23.703: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UPAS-X-R1(config-if)#mpls mtu 1508AS-X-R1(config-if)#*Mar 1 00:18:29.391: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/1 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R1(config-if)#exit!--- Configurando LDP com R3

LAB 2-5-1

Page 461: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

461

8.1 – BGP através da nuvem MPLS

AS-X-R2(config)#interface serial 1/1AS-X-R2(config-if)#mpls ipAS-X-R2(config-if)#*Mar 1 00:21:55.943: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UPAS-X-R2(config-if)#mpls mtu 1508AS-X-R2(config-if)#*Mar 1 00:22:08.259: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/1 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R2(config-if)#exit!--- Configurando LDP com R3

LAB 2-5-1

Page 462: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

462

8.1 – BGP através da nuvem MPLS

AS-X-R4(config)#interface serial 1/0AS-X-R4(config-if)#mpls ip*Mar 1 00:25:20.579: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UPAS-X-R4(config-if)#AS-X-R4(config-if)#mpls mtu 1508AS-X-R4(config-if)#*Mar 1 00:25:44.683: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/0 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R4(config-if)#exit!--- Configurando LDP com R3AS-X-R4(config)#interface serial 1/2AS-X-R4(config-if)#mpls ipAS-X-R4(config-if)#exit!--- Configurando LDP com R5

LAB 2-5-1

Page 463: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

463

8.1 – BGP através da nuvem MPLS

AS-X-R5(config)#interface serial 1/0AS-X-R5(config-if)#mpls ipAS-X-R5(config-if)#*Mar 1 00:29:54.579: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UPAS-X-R5(config-if)#mpls mtu 1508AS-X-R5(config-if)#*Mar 1 00:30:20.999: %TFIB-3-MPLS_MTU_SET: Setting mpls mtu to 1508 on Serial1/0 which is higher than the interface mtu 1500 . This could lead to packet forwarding problems including packet drops.AS-X-R5(config-if)#exit!--- Configurando LDP com R3AS-X-R5(config)#interface serial 1/2AS-X-R5(config-if)#mpls ipAS-X-R5(config-if)#*Mar 1 00:30:59.891: %LDP-5-NBRCHG: LDP Neighbor X.0.0.4:0 (2) is UPAS-X-R5(config-if)#exit!--- Configurando LDP com R4

LAB 2-5-1

Page 464: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

464

Configurando iBGP entre R1-R2, R1-R4 e R1-R5:

AS-X-R1#conf t AS-X-R1(config)#router bgp XAS-X-R1(config-router)#neighbor X.0.0.2 remote-as XAS-X-R1(config-router)#neighbor X.0.0.2 update-source loopback 0AS-X-R1(config-router)#neighbor X.0.0.2 next-hop-selfAS-X-R1(config-router)#neighbor X.0.0.2 route-reflector-client!--- Configurando iBGP padrão com R2AS-X-R1(config-router)#neighbor X.0.0.4 remote-as XAS-X-R1(config-router)#neighbor X.0.0.4 update-source loopback 0AS-X-R1(config-router)#neighbor X.0.0.4 next-hop-selfAS-X-R1(config-router)#neighbor X.0.0.4 route-reflector-client!--- Configurando iBGP padrão com R4AS-X-R1(config-router)#neighbor X.0.0.5 remote-as XAS-X-R1(config-router)#neighbor X.0.0.5 update-source loopback 0AS-X-R1(config-router)#neighbor X.0.0.5 next-hop-selfAS-X-R1(config-router)#neighbor X.0.0.5 route-reflector-client!--- Configurando iBGP padrão com R5(...)

8.1 – BGP através da nuvem MPLS

LAB 2-1-1

Page 465: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

465

Configurando Multiprotocol BGP entre R1-R2, R1-R4 e R1-R5:

(...)AS-X-R1(config-router)#address-family vpnv4!--- Entra no address family VPNv4AS-X-R1(config-router-af)#neighbor X.0.0.2 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R1(config-router-af)#neighbor X.0.0.2 send-community both !--- Habilida o envio de communities padrão e também do tipo estendidaAS-X-R1(config-router-af)#neighbor X.0.0.4 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R1(config-router-af)#neighbor X.0.0.4 send-community both !--- Habilida o envio de communities padrão e também do tipo estendidaAS-X-R1(config-router-af)#neighbor X.0.0.5 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R1(config-router-af)#neighbor X.0.0.5 send-community both !--- Habilida o envio de communities padrão e também do tipo estendida

8.1 – BGP através da nuvem MPLS

LAB 2-1-1

Page 466: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

466

Configurando iBGP entre R2-R1, R2-R4 e R2-R5:

AS-X-R2#conf t AS-X-R2(config)#router bgp XAS-X-R2(config-router)#neighbor X.0.0.1 remote-as XAS-X-R2(config-router)#neighbor X.0.0.1 update-source loopback 0AS-X-R2(config-router)#neighbor X.0.0.1 next-hop-selfAS-X-R2(config-router)#neighbor X.0.0.1 route-reflector-client!--- Configurando iBGP padrão com R2AS-X-R2(config-router)#neighbor X.0.0.4 remote-as XAS-X-R2(config-router)#neighbor X.0.0.4 update-source loopback 0AS-X-R2(config-router)#neighbor X.0.0.4 next-hop-selfAS-X-R2(config-router)#neighbor X.0.0.4 route-reflector-client!--- Configurando iBGP padrão com R4AS-X-R2(config-router)#neighbor X.0.0.5 remote-as XAS-X-R2(config-router)#neighbor X.0.0.5 update-source loopback 0AS-X-R2(config-router)#neighbor X.0.0.5 next-hop-selfAS-X-R2(config-router)#neighbor X.0.0.5 route-reflector-client!--- Configurando iBGP padrão com R5(...)

8.1 – BGP através da nuvem MPLS

LAB 2-1-1

Page 467: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

467

Configurando Multiprotocol BGP entre R2-R1, R2-R4 e R2-R5:

(...)AS-X-R2(config-router)#address-family vpnv4!--- Entra no address family VPNv4AS-X-R2(config-router-af)#neighbor X.0.0.1 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R2(config-router-af)#neighbor X.0.0.1 send-community both !--- Habilida o envio de communities padrão e também do tipo estendidaAS-X-R2(config-router-af)#neighbor X.0.0.4 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R2(config-router-af)#neighbor X.0.0.4 send-community both !--- Habilida o envio de communities padrão e também do tipo estendidaAS-X-R2(config-router-af)#neighbor X.0.0.5 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R2(config-router-af)#neighbor X.0.0.5 send-community both !--- Habilida o envio de communities padrão e também do tipo estendida

8.1 – BGP através da nuvem MPLS

LAB 2-5-10

Page 468: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

468

Configurando iBGP entre R4-R1 e R4-R2

AS-X-R4#conf t AS-X-R4(config)#router bgp XAS-X-R4(config-router)#neighbor X.0.0.1 remote-as XAS-X-R4(config-router)#neighbor X.0.0.1 update-source loopback 0AS-X-R4(config-router)#neighbor X.0.0.1 next-hop-self!--- Configurando iBGP padrão com R1AS-X-R4(config-router)#neighbor X.0.0.2 remote-as XAS-X-R4(config-router)#neighbor X.0.0.2 update-source loopback 0AS-X-R4(config-router)#neighbor X.0.0.2 next-hop-self!--- Configurando iBGP padrão com R2(...)

8.1 – BGP através da nuvem MPLS

LAB 2-1-1

Page 469: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

469

Configurando Multiprotocol BGP entre R4-R1 R4-R2:

(...)AS-X-R4(config-router)#address-family vpnv4!--- Entra no address family VPNv4AS-X-R4(config-router-af)#neighbor X.0.0.1 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R4(config-router-af)#neighbor X.0.0.1 send-community both !--- Habilida o envio de communities padrão e também do tipo estendidaAS-X-R4(config-router-af)#neighbor X.0.0.2 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R4(config-router-af)#neighbor X.0.0.2 send-community both !--- Habilida o envio de communities padrão e também do tipo estendida

8.1 – BGP através da nuvem MPLS

LAB 2-5-10

Page 470: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

470

Configurando iBGP entre R5-R1 e R5-R2

AS-X-R5#conf t AS-X-R5(config)#router bgp XAS-X-R5(config-router)#neighbor X.0.0.1 remote-as XAS-X-R5(config-router)#neighbor X.0.0.1 update-source loopback 0AS-X-R5(config-router)#neighbor X.0.0.1 next-hop-self!--- Configurando iBGP padrão com R1AS-X-R5(config-router)#neighbor X.0.0.2 remote-as XAS-X-R5(config-router)#neighbor X.0.0.2 update-source loopback 0AS-X-R5(config-router)#neighbor X.0.0.2 next-hop-self!--- Configurando iBGP padrão com R2(...)

8.1 – BGP através da nuvem MPLS

LAB 2-1-1

Page 471: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

471

Configurando Multiprotocol BGP entre R5-R1 R5-R2:

(...)AS-X-R5(config-router)#address-family vpnv4!--- Entra no address family VPNv4AS-X-R5(config-router-af)#neighbor X.0.0.1 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R5(config-router-af)#neighbor X.0.0.1 send-community both !--- Habilida o envio de communities padrão e também do tipo estendidaAS-X-R5(config-router-af)#neighbor X.0.0.2 activate !--- Adiciona esse neighbor ao modo VPNv4AS-X-R5(config-router-af)#neighbor X.0.0.2 send-community both !--- Habilida o envio de communities padrão e também do tipo estendida

8.1 – BGP através da nuvem MPLS

LAB 2-5-10

Page 472: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

472

Testando...

AS-14X-R1#traceroute 99.99.99.1 source 14X.1.0.1

Type escape sequence to abort.Tracing the route to 99.99.99.1

1 X.14X.4.1 [AS 1] 4 msec 4 msec 4 msec 2 X.X.4.1 [AS 1] [MPLS: Label 16 Exp 0] 12 msec 8 msec 8 msec 3 X.X.1.1 [AS 1] 8 msec 8 msec 8 msec 4 100.X.1.1 [AS 100] 8 msec 20 msec 12 msec 5 99.100.1.1 [AS 99] 8 msec * 24 msecAS-14X-R1#

8.1 – BGP através da nuvem MPLS

LAB 2-5-10

AS-X-R3#sh ip bgp % BGP not active

Page 473: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

473

PERGUNTAS?PERGUNTAS?

8.1

Page 474: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

474

8.2 AtoM - Any Transport Over MPLS

LAB 2-5-10

Cenário:

Page 475: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

475

AToM AToM Any Trasnport Over MPLS Any Trasnport Over MPLS

8.2

Page 476: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

476

8.2 AtoM - Any Transport Over MPLS

LAB 2-5-10

AS-X-R1(config)#pseudowire-class VPN-AS141R2-TO-AS151R2 AS-X-R1(config-pw-class)#encapsulation mplsAS-X-R1(config-pw-class)#exit AS-X-R1(config)#interface fastEthernet 0/1AS-X-R1(config-if)#no shutdownAS-X-R1(config-if)#no ip addressAS-X-R1(config-if)#xconnect X.0.0.2 999 pw-class VPN-AS141R2-TO-AS151R2AS-X-R1(config-if-xconn)#end

Page 477: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

477

8.2 AtoM - Any Transport Over MPLS

LAB 2-5-10

AS-X-R2(config)#pseudowire-class VPN-AS141R2-TO-AS151R2AS-X-R2(config-pw-class)#encapsulation mpls AS-X-R2(config-pw-class)#exitAS-X-R2(config)#interface fastEthernet 0/1AS-X-R2(config-if)#no shutdown AS-X-R2(config-if)#no ip address AS-X-R2(config-if)#xconnect X.0.0.1 999 pw-class VPN-AS141R2-TO-AS151R2AS-X-R2(config-if-xconn)#end

AS-X-R2#show xconnect all Legend: XC ST=Xconnect State, S1=Segment1 State, S2=Segment2 StateUP=Up, DN=Down, AD=Admin Down, IA=Inactive, NH=No HardwareXC ST Segment 1 S1 Segment 2 S2------+---------------------------------+--+---------------------------------+--UP ac Fa0/1(Ethernet) UP mpls X.0.0.1:999 UPAS-X-R2#

Page 478: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

478

8.2 AtoM - Any Transport Over MPLS

LAB 2-5-10

AS-14X-R2#conf tAS-14X-R2(config)#interface fastEthernet 0/0AS-14X-R2(config-if)#no shutAS-14X-R2(config-if)#ip address 172.16.0.1 255.255.255.0AS-14X-R2(config-if)#exitAS-14X-R2(config)#

Page 479: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

479

8.2 AtoM - Any Transport Over MPLS

LAB 2-5-10

AS-15X-R2#conf tAS-15X-R2(config)#interface fastEthernet 0/0AS-15X-R2(config-if)#no shutAS-15X-R2(config-if)#ip address 172.16.0.2 255.255.255.0AS-15X-R2(config-if)#endAS-15X-R2#pingAS-15X-R2#ping 172.16.0.1

Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 172.16.0.1, timeout is 2 seconds:.!!!!Success rate is 80 percent (4/5), round-trip min/avg/max = 4/15/24 msAS-15X-R2#

Page 480: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

480

8.2 AtoM - Any Transport Over MPLS

LAB 2-5-10

AS-14X-R2>show interfaces fastEthernet 0/0 | include address is Hardware is Gt96k FE, address is c20c.0c08.0000 (bia c20c.0c08.0000) Internet address is 172.16.0.1/24

AS-14X-R2>show ip arp Protocol Address Age (min) Hardware Addr Type InterfaceInternet 172.16.0.1 - c20c.0c08.0000 ARPA FastEthernet0/0Internet 172.16.0.2 2 c20e.0c08.0000 ARPA FastEthernet0/0______________________________________________________________

AS-15X-R2#show interfaces fastEthernet 0/0 | include address is Hardware is Gt96k FE, address is c20e.0c08.0000 (bia c20e.0c08.0000) Internet address is 172.16.0.2/24

AS-15X-R2#show ip arp Protocol Address Age (min) Hardware Addr Type InterfaceInternet 172.16.0.1 3 c20c.0c08.0000 ARPA FastEthernet0/0Internet 172.16.0.2 - c20e.0c08.0000 ARPA FastEthernet0/0

Page 481: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

481

PERGUNTAS?PERGUNTAS?

8.2

Page 482: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

482

Implementando serviço Implementando serviço VPN-Layer 3 VPN-Layer 3 (MPLS-VPN)(MPLS-VPN)

8.3

Page 483: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

483

8.3 Implementando serviço VPN-L3

LAB 2-5-10

Novamente o mesmo cenário

Page 484: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

484

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R1#conf tAS-X-R1(config)#ip vrf vpn-as14XAS-X-R1(config-vrf)#rd X:14X AS-X-R1(config-vrf)#route-target export X:14XAS-X-R1(config-vrf)#route-target import X:14XAS-X-R1(config-vrf)#exitAS-X-R1(config)#interface serial 1/2AS-X-R1(config-if)#no shutdown AS-X-R1(config-if)#ip vrf forwarding vpn-as14XAS-X-R1(config-if)#ip address X.14X.2.1 255.255.255.252AS-X-R1(config-if)#endAS-X-R1#ping vrf vpn-as14X X.14X.2.2

Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to X.14X.2.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 msAS-X-R1#

Page 485: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

485

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R1#conf tAS-X-R1(config)#router bgp XAS-X-R1(config-router)#address-family ipv4 vrf vpn-as14XAS-X-R1(config-router-af)#redistribute connected AS-X-R1(config-router-af)#neighbor X.14X.2.2 remote-as 6514XAS-X-R1(config-router-af)#neighbor X.14X.2.2 activate AS-X-R1(config-router-af)#no synchronization AS-X-R1(config-router-af)#end

Page 486: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

486

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R2#conf tAS-X-R2(config)#ip vrf vpn-as15XAS-X-R2(config-vrf)#rd X:15XAS-X-R2(config-vrf)#route-target export X:15XAS-X-R2(config-vrf)#route-target import X:15XAS-X-R2(config-vrf)#exitAS-X-R2(config)#interface serial 1/2AS-X-R2(config-if)#no shutAS-X-R2(config-if)#ip vrf forwarding vpn-as15XAS-X-R2(config-if)#ip address X.15X.2.1 255.255.255.252AS-X-R2(config-if)#endAS-X-R2#ping vrf vpn-as15X X.15X.2.2

Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to X.15X.2.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 msAS-X-R2#

Page 487: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

487

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R2#conf tAS-X-R2(config)#router bgp XAS-X-R2(config-router)#address-family ipv4 vrf vpn-as15XAS-X-R2(config-router-af)#redistribute connected AS-X-R2(config-router-af)#neighbor X.15X.2.2 remote-as 6515X AS-X-R2(config-router-af)#neighbor X.15X.2.2 activate AS-X-R2(config-router-af)#no synchronization AS-X-R2(config-router-af)#end

Page 488: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

488

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-14X-R2#conf tAS-14X-R2(config)#router bgp 6514XAS-14X-R2(config-router)#network 192.168.0.0 mask 255.255.255.0AS-14X-R2(config-router)#neighbor X.14X.2.1 remote-as XAS-14X-R2(config-router)#exitAS-14X-R2(config)#interface loopback 1AS-14X-R2(config-if)#ip address 192.168.0.1 255.255.255.0AS-14X-R2(config-if)#endAS-14X-R2#

Page 489: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

489

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-15X-R2#conf tAS-15X-R2(config)#router bgp 6515XAS-15X-R2(config-router)#network 192.168.0.0 mask 255.255.255.0AS-15X-R2(config-router)#neighbor X.15X.2.1 remote-as XAS-15X-R2(config-router)#exitAS-15X-R2(config)#interface loopback 1AS-15X-R2(config-if)#ip address 192.168.0.1 255.255.255.0AS-15X-R2(config-if)#endAS-15X-R2#

Page 490: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

490

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R4#conf tAS-X-R4(config)#ip vrf vpn-as14XAS-X-R4(config-vrf)#rd X:14XAS-X-R4(config-vrf)#route-target export X:14XAS-X-R4(config-vrf)#route-target import X:14XAS-X-R4(config-vrf)#exitAS-X-R4(config)#interface serial 1/1AS-X-R4(config-if)#no shutdown AS-X-R4(config-if)#ip vrf forwarding vpn-as14X% Interface Serial1/1 IP address X.14X.4.1 removed due to enabling VRF vpn-as14XAS-X-R4(config-if)#ip address X.14X.4.1 255.255.255.252AS-X-R4(config-if)#endAS-X-R4#ping vrf vpn-as14X X.14X.4.2

Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to X.14X.4.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/12 ms

Page 491: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

491

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R4#conf tAS-X-R4(config)#router bgp XAS-X-R4(config-router)#address-family ipv4 vrf vpn-as14XAS-X-R4(config-router-af)#redistribute connected AS-X-R4(config-router-af)#neighbor X.14X.4.2 remote-as 6414XAS-X-R4(config-router-af)#neighbor X.14X.4.2 activate AS-X-R4(config-router-af)#no synchronization AS-X-R4(config-router-af)#endAS-X-R4#

Page 492: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

492

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-14X-R1(config)#no router bgp 14XAS-14X-R1(config)#router bgp 6414XAS-14X-R1(config-router)#network 172.16.0.0 mask 255.255.255.0AS-14X-R1(config-router)#neighbor X.14X.4.1 remote-as XAS-14X-R1(config-router)#exitAS-14X-R1(config)#interface loopback 1AS-14X-R1(config-if)#ip address 172.16.0.1 255.255.255.0AS-14X-R1(config-if)#end

Page 493: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

493

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-14X-R1#sh ip bgp BGP table version is 6, local router ID is 14X.1.0.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.14X.2.0/30 X.14X.4.1 0 X ?r> X.14X.4.0/30 X.14X.4.1 0 0 X ?*> 172.16.0.0/24 0.0.0.0 0 32768 i*> 192.168.0.0 X.14X.4.1 0 X 6514X i

Page 494: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

494

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-14X-R1#traceroute 192.168.0.1

Type escape sequence to abort.Tracing the route to 192.168.0.1

1 X.14X.4.1 8 msec 4 msec 4 msec 2 X.X.4.1 [MPLS: Labels 16/28 Exp 0] 16 msec 12 msec 12 msec 3 X.14X.2.1 [AS 1] [MPLS: Label 28 Exp 0] 16 msec 12 msec 12 msec 4 X.14X.2.2 [AS 1] 8 msec * 20 msec

Page 495: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

495

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R5#conf tAS-X-R5(config)#ip vrf vpn-as15XAS-X-R5(config-vrf)#rd X:15XAS-X-R5(config-vrf)#route-target export X:15XAS-X-R5(config-vrf)#route-target import X:15X AS-X-R5(config-vrf)#exitAS-X-R5(config)#interface serial 1/1AS-X-R5(config-if)#no shutdown AS-X-R5(config-if)#ip vrf forwarding vpn-as15XAS-X-R5(config-if)#ip address X.15X.5.1 255.255.255.252AS-X-R5(config-if)#endAS-X-R5#ping vrf vpn-as15X X.15X.5.2

Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to X.15X.5.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms

Page 496: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

496

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R5#conf tAS-X-R5(config)#router bgp XAS-X-R5(config-router)#address-family ipv4 vrf vpn-as15XAS-X-R5(config-router-af)#redistribute connectedAS-X-R5(config-router-af)#neighbor X.15X.5.2 remote-as 6415XAS-X-R5(config-router-af)#neighbor X.15X.5.2 activate AS-X-R5(config-router-af)#no synchronization AS-X-R5(config-router-af)#end

Page 497: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

497

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-15X-R1(config)#no router bgp 15XAS-15X-R1(config)#router bgp 6415XAS-15X-R1(config-router)#network 172.16.0.0 mask 255.255.255.0AS-15X-R1(config-router)#neighbor X.15X.5.1 remote-as XAS-15X-R1(config-router)#exitAS-15X-R1(config)#interface loopback 1AS-15X-R1(config-if)#ip address 172.16.0.1 255.255.255.0AS-15X-R1(config-if)#endAS-15X-R1#

Page 498: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

498

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-15X-R1#sh ip bgp BGP table version is 6, local router ID is 15X.1.0.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path*> X.15X.2.0/30 X.15X.5.1 0 X ?r> X.15X.5.0/30 X.15X.5.1 0 0 X ?*> 172.16.0.0/24 0.0.0.0 0 32768 i*> 192.168.0.0 X.15X.5.1 0 X 6515X i

Page 499: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

499

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-15X-R1#traceroute 192.168.0.1

Type escape sequence to abort.Tracing the route to 192.168.0.1

1 X.15X.5.1 4 msec 4 msec 4 msec 2 X.X.5.1 [MPLS: Labels 17/27 Exp 0] 8 msec 12 msec 16 msec 3 X.15X.2.1 [AS 1] [MPLS: Label 27 Exp 0] 12 msec 12 msec 8 msec 4 X.15X.2.2 [AS 1] 16 msec * 12 msecAS-15X-R1#

Page 500: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

500

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R1#sh ip bgp vpnv4 vrf vpn-as14XBGP table version is 10, local router ID is X.0.0.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight PathRoute Distinguisher: 1:141 (default for vrf vpn-as141)*> X.14X.2.0/30 0.0.0.0 0 32768 ?*>iX.14X.4.0/30 X.0.0.4 0 100 0 ?*>i172.16.0.0/24 X.0.0.4 0 100 0 6414X i*> 192.168.0.0 X.14X.2.2 0 0 6514X i

Page 501: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

501

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R1#sh ip bgp vpnv4 vrf vpn-as14X 172.16.0.0BGP routing table entry for X:14X:172.16.0.0/24, version 10Paths: (1 available, best #1, table vpn-as14X) Advertised to update-groups: 2 6414X X.0.0.4 (metric 129) from X.0.0.4 (X.0.0.4) Origin IGP, metric 0, localpref 100, valid, internal, best Extended Community: RT:X:14X mpls labels in/out nolabel/25AS-X-R1#

Page 502: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

502

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R1#show mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Pop tag X.X.2.0/30 0 Se1/1 point2point 17 Pop tag X.0.0.3/32 0 Se1/1 point2point 18 17 X.0.0.2/32 0 Se1/1 point2point 19 Pop tag X.X.4.0/30 0 Se1/1 point2point 20 18 X.0.0.5/32 0 Se1/1 point2point 21 Pop tag X.X.5.0/30 0 Se1/1 point2point 22 19 X.0.0.4/32 0 Se1/1 point2point 23 20 X.X.100.0/30 0 Se1/1 point2point 24 Pop tag X.X.200.0/24 0 Se1/1 point2point 25 l2ckt(999) 104473 none point2point 26 Aggregate X.14X.2.0/30[V] 520 28 Untagged 192.168.0.0/24[V] 1768 Se1/2 point2point AS-X-R1#

Page 503: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

503

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R2#sh ip bgp vpnv4 vrf vpn-as15X BGP table version is 13, local router ID is X.0.0.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight PathRoute Distinguisher: X:15X (default for vrf vpn-as151)*> X.15X.2.0/30 0.0.0.0 0 32768 ?*>iX.15X.5.0/30 X.0.0.5 0 100 0 ?*>i172.16.0.0/24 X.0.0.5 0 100 0 6415X i*> 192.168.0.0 X.15X.2.2 0 0 6515X i

Page 504: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

504

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R2#sh ip bgp vpnv4 vrf vpn-as15X 172.16.0.0BGP routing table entry for X:15X:172.16.0.0/24, version 9Paths: (1 available, best #1, table vpn-as15X) Advertised to update-groups: 1 6415X X.0.0.5 (metric 129) from X.0.0.5 (X.0.0.5) Origin IGP, metric 0, localpref 100, valid, internal, best Extended Community: RT:X:15X mpls labels in/out nolabel/24AS-X-R2#

Page 505: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

505

8.3 Implementando serviço VPN-L3

LAB 2-5-10

AS-X-R2#show mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 16 X.0.0.1/32 0 Se1/1 point2point 17 Pop tag X.X.1.0/30 0 Se1/1 point2point 18 Pop tag X.0.0.3/32 0 Se1/1 point2point 19 Pop tag X.X.4.0/30 0 Se1/1 point2point 20 18 X.0.0.5/32 0 Se1/1 point2point 21 Pop tag X.X.5.0/30 0 Se1/1 point2point 22 19 X.0.0.4/32 0 Se1/1 point2point 23 20 X.X.100.0/30 0 Se1/1 point2point 24 Pop tag X.X.200.0/24 0 Se1/1 point2point 25 l2ckt(999) 107714 none point2point 26 Aggregate X.15X.2.0/30[V] 0 28 Untagged 192.168.0.0/24[V] 0 Se1/2 point2point AS-X-R2#

Page 506: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

506

PERGUNTAS?PERGUNTAS?

8.3

Page 507: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

507

MATERIALEXTRA

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.

Podem estar disponíveis autorizações adicionais ao âmbito desta licença em [email protected].

Page 508: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

508

9.0

Mecanismos de Path Control

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.

Podem estar disponíveis autorizações adicionais ao âmbito desta licença em [email protected].

Page 509: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

509

9.0Mecanismos de Path

Control8. Mecanismos de Path Control

• 8.1 PBR – Policy Based Routing• 8.2 IP SLA Tool

Agradecimentos especiais para Roberto Mendonça, autor dos dois próximos sub-capítulos

Page 510: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

510

Mecanismos de Path Control Path Control são mecanismos que mudam o

encaminhamentopadrão de um pacote através de uma rede.

Não se trata de QoS ou Engenharia de Tráfego.

Trata-se de uma coleção de ferramentas ou conjunto decomandos que são ativados para manipular a tabela deencaminhamento de um protocolo de roteamento ou bypass oencaminhamento padrão de um pacote.

Esta manipulação de informações de roteamento pode serrequerida para obter melhor desempenho.

9.1 PBR – Policy Based Routing

Page 511: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

511

Alguns Tópicos para Implementar Path Control

– PBR – Policy-Based Routing;

– IP SLA Tool (Service Level Agreements)

9.1 PBR – Policy Based Routing

Page 512: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

512

Para entender PBR, primeiro precisamos revisitar o conceito de roteamento padrão:

✔ 1.Quando um pacote chega à uma interface de um router, este examina o endereço de destino do pacote contra a sua tabela de roteamento.

✔ 2. Se a rede destino for conhecida pelo router (ou seja, constar na tabela), o pacote é encaminhado para a interface de saída indicada.

✔ 3. Se a rede destino não for conhecida e existir uma rota default, o pacote é encaminhado para a interface de saída apontada por ela.

✔ 4. Se nenhum dos dois casos acima ocorrer, o router descarta o pacote.

9.1 PBR – Policy Based Routing

Page 513: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

513

Policy-based routing quebra o processo default de roteamento, permitindo que pacotes sejam roteados baseados em políticas pré-definidas e não apenas no endereço de destino.

Para isso, ROUTE-MAPs são usados, especificando condições que devem ser examinadas e para onde os pacotes devem ser encaminhados caso estas condições sejam verificadas.

9.1 PBR – Policy Based Routing

Page 514: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

514

Um exemplo genérico de aplicação de PBRs pode ser visto na figura abaixo:

9.1 PBR – Policy Based Routing

Page 515: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

515

Para implementar o cenário ilustrado anteriormente, apenas três passos são necessários:

1. Defina um route-map e a política que identificará o pacote (MATCH);

2. Defina para onde o pacote deve ir, caso um MATCH ocorra (SET);

3. Aplique o route-map na interface para análise dos pacotes à medida que entram (IN).

9.1 PBR – Policy Based Routing

Page 516: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

516

Ao criar um route-map para ser usado com PBR, existem algumas opções de MATCH à escolher, por exemplo:

– Match ip address (utiliza listas de acesso para checagem)

– Match lenght (utiliza um intervalo mínimo e máximo do tamanho do pacote, em bytes)

9.1 PBR – Policy Based Routing

Page 517: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

517

E temos algumas opções de SET à escolher:

– Set ip next-hop (especifica o IP de next-hop para o pacote – deve ser uma subrede diretamente conectada);

– Set ip default next-hop (o mesmo acima, porém, o roteador tentará antes o roteamento convencional, mas não usa rota default);

– Set interface (especifica a interface de saída do pacote);

– Set default interface (mesmo acima, porém, o roteador tentará antes o roteamento convencional, mas não usa rota default).

9.1 PBR – Policy Based Routing

Page 518: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

518

Exemplo padrão:

9.1 PBR – Policy Based Routing

Page 519: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

519

PBR para que pacotes originados pelo PC2 sigam via R3:

9.1 PBR – Policy Based Routing

PBR Aplicada para origem 10.1.1.2

Page 520: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

520

Configurações:

9.1 PBR – Policy Based Routing

R1(config)#interface F0/0R1(config-if)#ip policy route-map PC2-via-R3R1(config-if)#exitR1(config)#route-map PC2-via-R3 permit 10R1(config-route-map)#match ip address 101R1(config-route-map)#set ip next-hop 10.1.14.4R1(config-route-map)#exitR1(config-if)#access-list 101 permit ip host 10.1.1.2 10.1.3.0 0.0.0.255

Page 521: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

521

PERGUNTAS?PERGUNTAS?

9.1

Page 522: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

522

IP SLA Tool

– O oferecimento de serviços gerenciados vêm se consolidando como uma tendência já há algum tempo, e alguns fabricantes disponibilizam algumas ferramentas que podem nos ajudar a melhorar uma rede e nos alertar de eventuais problemas, assim que estes aparecerem.

– Em um mundo em que soluções de IP Telephony e vídeoconferência IP vêm se tornando parte do dia-a-dia das empresas, a ferramenta IOS IP SLA pode ser uma poderosa aliada.

9.2 IP SLA Tool

Page 523: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

523

O IP SLA é um recurso presente em algumas versões do IOS da Cisco, que permite o gerenciamento proativo das condições da rede monitorada.

Basicamente, gera-se um tráfego específico de um dispositivo (transmitter) com destino a outro (responder), que responde a este tráfego e medições são realizadas no decorrer do processo.

Esta ferramenta torna muito mais simples tarefas como verificação do correto funcionamento das políticas de QoS, e também permite certificarmos-nos que estamos cumprindo os acordos de “uptime” assinados com o cliente, por exemplo.

9.2 IP SLA Tool

Page 524: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

524

Para habilitar o IP SLA, é necessário configurar ao menos 2 elementos: O “transmitter” e o “responder”.

A configuração do responder é bastante simples (uma linha de comando, apenas). Ao iniciar a operação, o transmitter envia mensagens de controle ao responder.

Estas mensagens de controle informam ao responder qual porta lógica (TCP ou UDP) deve ser usada para as requisições do transmitter. A ativação do serviço “responder” pode nem ser necessária, se o elemento que irá responder às solicitações do transmitter já estiver aguardando dados nas portas a serem testadas (ex. o serviço HTTP já está ativado no router que agirá como responder, e este é o serviço que queremos “medir”).

9.2 IP SLA Tool

Page 525: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

525

Este recurso funciona muito bem em diversas topologias, incluindo topologias “hub & spoke” (estrela). Neste caso, normalmente, você teria o HUB como responder, e os spokes como transmitters.

Uma vez que o serviço SLA esteja devidamente configurado no transmissor, sua operação precisa ser agendada.

As estatísticas apenas serão coletadas quando a configuração estiver operacional. As atividades de geração de tráfego e coleta podem ser agendadas para iniciar de imediato, ou em uma data / hora pré-determinadas. Podem ainda ser iniciadas sob certas condições específicas.

9.2 IP SLA Tool

Page 526: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

526

Exemplo:

Aqui temos OSPF single-area ativado nesta rede, para garantir conectividade fim-a-fim. Vamos ativar o IP SLA neste cenário para monitorar um determinado serviço que roda na porta UDP 1234, de R1 para a interface Loopback0 de R3. Vamos começar ativando o IP SLA no responder (R3) :

9.2 IP SLA Tool

R3#conf tR3(config)#ip sla {monitor} responder

Page 527: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

527

Verificando:

9.2 IP SLA Tool

R3#show ip sla responderIP SLAs Responder is: EnabledNumber of Control Message received: 0 Number os errors:0Recent Sources:Recent error sources:

Page 528: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

528

Configurando R1 como “transmiter”:

Vamos agora configurar o R1 como transmitter, gerando o tráfego que determinamos para a loopback de R3 (responder) :

Aqui, criamos uma operação com o ID 1 que gerará um pacote com destino à porta UDP 1234 ao IP 150.1.3.3 (L0 do responder), à cada 30 segundos.

9.2 IP SLA Tool

R1(config)#ip sla {monitor} 1R1(config-ip-sla)#{type} udp-echo 150.1.3.3 1234R1(config-ip-sla-udp)#frequency 30

Page 529: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

529

Configurando R1 como “transmiter”:

Vamos iniciar a operação de imediato:

9.2 IP SLA Tool

R1(config)#ip sla {monitor} schedule 1 life forever start-time now

Page 530: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

530

Vamos observar como estão as coisas em R1, nosso transmitter:

9.2 IP SLA Tool

R1#show ip sla {monitor} configuration 1IP SLAs, Infrastructure Engine-II.Entry number: 1Owner:Tag:Type of operation to perform: udp-echoTarget address/Source address: 150.1.3.3/0.0.0.0Target port/Source port: 1234/0Request size (ARR data portion): 16Operation timeout (milliseconds): 5000Operation frequency (seconds): 30 (not considered if randomly scheduled)Next Scheduled Start Time: Start Time already passedThreshold (milliseconds): 5000Distribution Statistics:[...]

Page 531: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

531

Vamos observar como está do lado do responder (R3):

9.2 IP SLA Tool

R3#show ip sla responderIP SLAs Responder is: EnabledNumber of control message received: 9 Number of errors: 0Recent sources:192.168.12.1 [13:36:17.971 UTC Mon Jun 26 2011]192.168.12.1 [13:35:47.971 UTC Mon Jun 26 2011]192.168.12.1 [13:35:17.959 UTC Mon Jun 26 2011]192.168.12.1 [13:34:47.951 UTC Mon Jun 26 2011]192.168.12.1 [13:34:17.999 UTC Mon Jun 26 2011]Recent error sources:

Page 532: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

532

Agora, vamos associar uma ação ao resultado do IP SLA... Por exemplo, uma rota estática que apenas existe se as condições do IP SLA forem atendidas...!!

9.2 IP SLA Tool

R1#conf tR1(config)#track 1 rtr 1 stateR1(config-track)#exitR1(config)#ip route 123.123.123.0 255.255.255.0 192.168.12.2 track 1

R1#sh ip route static123.0.0.0/24 is subnetted, 1 subnetsS 123.123.123.0 [1/0] via 192.168.12.2

R1(config)#ip sla {monitor} 1R1(config-ip-sla)#{type} udp-echo 123.123.123.3 1234R1(config-ip-sla-udp)#frequency 30

Page 533: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

533

Como nosso SLA falhou, a rota recém-criada deve sumir da tabela, já que estava associada à condição do nosso SLA (track 1 rtr 1):

9.2 IP SLA Tool

R3(config)#int l0R3(config-if)#shutdownR3(config-if)#*Jul 28 00:14:11.219: %LINK-5-CHANGED: Interface Loopback0,changed state to administratively down*Jul 28 00:14:12.219: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to down

R1#*Jul 28 00:15:41.671: %TRACKING-5-STATE: 1 rtr 1 state Up->DownR1#sh ip sla statistics 1Round Trip Time (RTT) for Index 1Latest RTT: NoConnection/Busy/TimeoutLatest operation start time: *00:15:23.031 UTC Mon Jul 28 2008Latest operation return code: No connectionNumber of successes: 9Number of failures: 1Operation time to live: ForeverR1#sh ip route 123.123.123.0% Network not in table

Page 534: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

534

É possível associar um PBR a uma condição testada pelo IP SLA Tool, também.

Eis um exemplo:

Enquanto o estado do objeto estiver UP, o PBR funcionará conforme configurado. Se o objeto em teste mudar de estado (down), a cláusula “SET” não será executada.

9.2 IP SLA Tool

set ip next-hop 10.1.14.4 !--- PBR normal, como vimos anteriormente.

set ip next-hop verify-availability 10.1.14.4 1 track 1!--- Aqui, usamos o parâmetro “verify availability” e associamos o teste para o objeto “1”.

Page 535: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

535

PERGUNTAS?PERGUNTAS?

9.2

Page 536: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

536

MUITO OBRIGADO!!MUITO OBRIGADO!!

Page 537: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

537

100% desse material foi elaborado utilizando software livre, e é livre para ser copiado e distribuído desde que gratuitamente.

Está é a versão 2.2 *beta3

Para reportar erros ou solicitar a versão mais recente entre em contado por email: [email protected]

Autor: Rinaldo Vaz

Posfácio

Page 538: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

538

CHANGELOG versão 2.2 *beta3 – 3.0:

26/03/2013

● Correções

Cap 1

1.1 Initrodução: Inseridas informações sobre o MRAI mais informações e figuras sobre os tipos de mensagem BGP 1.1 - Inseridas distâncias administrativas padrão Juniper

Cap 5

Corrigidos alguns sub-títulos fora de ordem

Errata

(...)

Page 539: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

539

CHANGELOG versão 2.2 *beta3 – 3.0:

26/03/2013

● Correções

(...)

Pequenas correções enviadas pelo Leonardo Fell

Slide 17: palavra "implementatos" ("..implementatos por todos os fabricantes, e quando sim, podem ser..")

Slide 27: palavra "endendido" no segundo tópico ("O “X” deve ser endendido como o AS do aluno..")

Slide 32: plural "os anúncio" na primeira frase Slide 36: palavra "provilegiado" e "sesão" no final do slide Slide 94 : palavra "analizar" na última frase ("Vamos analizar...") Slide 102: palavra "Analizando" na primeira frase Slide 143: Palavra "Endendendo" no tópico 3.6 Slide 168: palavra "trânvito" na última frase Slide 174: palavra "infornações" na última frase ("Dessa maneira, todas

as infornações...") Slide 192: palavra "acessívels" na última frase Slide 303: palavra "Analizando" na primeira frase

Errata

Page 540: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

540

CHANGELOG versão 2.2 *beta3 – 3.0:

26/03/2013

(...)

– Laboratórios:

● Cenário 2

Cap 6.3 - Novo laboratório adicionado - "Implementando políticas anúncio baseadas em Community-list"

● Outras mudanças✔ Número total de slides aumentou de 539 para 555

✔ Mudança no layout

✔ Mais figuras explicativas

Errata

Page 541: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

541

CHANGELOG versão 2.2 *beta2 – 2.2 *beta3:

20/12/2012

● Correções Cap 7.3

✔ Inserida linha com o comando “no bgp enforce-fist-as” na configuração do BGP com o PTT em R1, e nos routers dos AS's 14X e 15X

✔ Inserida linha de comando da rota estática do primeiro /9 apontando para “Null 0” , o que impossibilitava os routers dos AS's 14X e 15X de anunciar essa rede para o PTT

● Cap 7.5

✔ Corrigida a ação da as-path access-list 55, onde deny era para ser permit, e permit era para ser deny

● Cap 8.1

✔ Corrigida a quinta linha na configuração de R5 onde o IP de neighbor era X.0.0.2, o correto é X.0.0.X

● Cap 8.3

✔ Corrigida a décima linha na configuração de R2, onde o IP a ser configurado é X.15X.2.1 e não X.15X.2.2

Errata

Page 542: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

542

CHANGELOG versão 2.2 *beta – 2.2 *beta2:

14/12/2012

● Correções✗ Laboratórios:

Cenário 1

✔ Corrigida configuração padrão que mantinha a interface f0/0 desativada● Cap 7.0

✔ Mudança no indice. Removido PBR que virou um novo capítulo

– Mais conteúdo● Cap 5.8

✔ Inserido a sessão “cheats” com as respostas do LAB “Desafio” ✔ Inseridos comandos para remover as config do LAB “Desafio” ✔ Número total de slides de 539 para 544

Errata

Page 543: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

543

CHANGELOG versão 2.1 – 2.2 *beta:

10/12/2012

● Correções✗ Laboratórios:

Cenário 1

✔ Corrigida configuração padrão que mantinha a interface f0/0 desativada

– Mais conteúdo● Inserido um novo capítulo: Multiprotocol Label Switching (MPLS)

● Subcapítulos:

✔ 8.1 BGP através da nuvem MPLS✔ 8.2 AtoM - Any Transport Over MPLS✔ 8.3 Implementando serviço VPN-L3 (VPN-Multiponto)

● 6.4 – Manipulando Trânsito (Nacional/Internacional) com Communities

✔ Inserida a relação das communities da GVT

(...)

Errata

Page 544: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

544

CHANGELOG versão 2.1 – 2.2 *beta:

10/12/2012

(...)

– Laboratórios:

● Cenário 2

– Novo modelo de roteadores para todos o cenário 2 – Cisco 3725

– 2 roteadores a mais para o Lab MPLS VPN-L3, passando de 7 para o total de 9 roteadoras para cada grupo

● Outras mudanças✔ Número total de slides aumentou de 485 para 539

✔ Pequenas correções nas confgurações

✔ Mais figuras explicativas

✔ Capítulo 8 (Mecanismos de Path Control) movido para capítulo 9

Errata

Page 545: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

545

CHANGELOG versão 2.0 – 2.1:

05/10/2012

● Mudança no layout✔ Cores, fontes e gráficos melhorados

● Correções✗ Capítulo 4

✗ 4.4 - Expressões regulares

✔ Corrigidas algumas expressões✔ Conteúdo ampliado com mais exemplos prático

● Mais conteúdo✗ 4.7 - AS-Path Prepend

✔ Adicionados mais slides com figuras e exemplos de configuração de prepend de saída

✗ Adicionado um novo slide com exemplo de prepend de entrada

(...)

Errata

Page 546: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

546

CHANGELOG versão 2.0 – 2.1:

05/10/2012

(...)✔ Inserido um novo capítulo: Mecanismos de Path Control

● Subcapítulos:

– PBR – policy Based Routing

– IP SLA Tool

● Outras mudanças✔ Número total de slides aumentou de 434 para 485

✔ Pequenas correções nas confgurações

✔ Foram adicinadas mais figuras

✔ Novos slides com configurações que deveriam ser desfeitas antes de iniciar o próximo laboratório

Errata

Page 547: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

547

CHANGELOG versão 1.1 – 2.0:

26/07/2012

● Mudança no layout✔ Cores, fontes e gráficos melhorados

● Novos sub-capítulos✗ Engenharia de tráfego, Alta Disponibilidade, Transporte L2, e outros

● Diversas outras correções✗ Explicações mais claras

✗ Inseridas mais linhas de comentários explicativos

✗ Melhoradas algumas expressões regulares

✗ Incluídas figuras dos cenários

✗ E muitas outras melhorias

✗ Total de slides aumentados de 363 para 434

Errata

Page 548: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

548

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 2.6 Slide de abertura do sub-capítulo:✔ corrigido slide 2.6 trocado pelo 2.7

● 2.7 Corrigido erro de digitação:✗ erro: "...último /10..."

✔ correção: "... último /9..."

● 3.1 saída do comando "sh ip bgp neighbors (peering) advertise-routes": ✗ corrigidos 2 prefixos que apareciam errados como /10,

✔ o correto são 3 prefixos, um /8 e dois /9

● 3.1 saída do comando "sh ip bgp regexp ^2$": ✗ corrigidos 2 prefixos que apareciam errados como /10,

✔ o correto são 3 prefixos, um /8 e dois /9

Errata

Page 549: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

549

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 2.6 Slide de abertura do sub-capítulo:✔ corrigido slide 2.6 trocado pelo 2.7

● 2.7 Corrigido erro de digitação:✗ erro: "...último /10..."

✔ correção: "... último /9..."

● 3.1 saída do comando "sh ip bgp neighbors (peering) advertise-routes": ✗ corrigidos 2 prefixos que apareciam errados como /10,

✔ o correto são 3 prefixos, um /8 e dois /9

● 3.1 saída do comando "sh ip bgp regexp ^2$": ✗ corrigidos 2 prefixos que apareciam errados como /10,

✔ o correto são 3 prefixos, um /8 e dois /9

Errata

Page 550: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

550

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 3.5 Descrição de participante remoto no PTT:✔ a explicação ficou mais clara com relação às consequências da latência mais alta

● 4.2 Precauções para filtros de UPSTREAMS:✗ Erro: "... Garantir que rotas de DOWNSTREAMS não recebam prioridade maior..."

✔ Correção: "...Garantir que rotas de UPSTREAMS nao recebam prioridade maior que rotas DOWNSTREAMS..."

● 4.2 Utilização do (ge) e (le), corrigido erro de digitação:✗ Erro: "... aceitar qualquer prefixo /25 e descartar..."

✔ Correção: "... aceitar qualquer prefixo /24 e descartar..."

Page 551: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

551

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 4.2 adicionando prefixos na lista "NAO-RECEBER", corrigidos acões de permit erradas:

● Erro: ...seq 70 permit...

● ...seq 80 permit...

● ...seq 90 permit...

● Correção: ...seq 70 deny...

● ...seq 80 deny...

● ...seq 90 deny...

● 4.6 expressão regular de parcial, modificada para apenas uma linha, e adicionado um terceiro exemplo para parcial de 3 AS's no path:

✔ nova expressão: ^([0-9]+|[0-9]+ [0-9]+)$

Page 552: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

552

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 4.8 Mudança de título: ✗ Anterior: Manipulando downstream com route-map e prepend

✔ Atual: Manipulando trânsito dos downstreams com prepend

● 6.1 e 6.2 Sub-capítulo sobre expressões regulares:✔ Movidos de 6.1/6.2 para 4.4/4.5 , 4.4 mudou para 4.6, 4.5 para 4.7, 4.6 para 4.8 e 4.7 para 4.9

● 5.1 Diagrama do cenário 5: Corrigido terceiro octeto da rede dos laptops✗ Erro: x.x.100.0/24

✔ Correção: x.x.200.0/24

Page 553: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

553

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 5.1 Diagrama do cenário 5: ✔ a partir da versão 1.2 Serão modificados número dos AS's clientes de 11x e 12x para 14x e 15x (para o

grupo 7 ocorria um erro ao utilizar o IP 127.0.0.1)

● 5.1 configurações iBGP, corrigido IP errado na configuração de R1 com R5✗ Erro:"...neighbor X.0.0.2 remote-as X"

"...neighbor X.0.0.2 description iBGP Router 2

✔ Correção: "...neighbor X.0.0.5 remote-as X"

"...neighbor X.0.0.5 description iBGP Router 5

Page 554: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

554

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 5.1 configuração eBGP com AS 200 (segunda rodada), corrigido endereço incorreto de neighbor:

✗ erro: "...neighbor 200.X.1.1 remote-as 100"

”...neighbor 200.X.1.1 soft-reconfiguration inbound"

"...neighbor 200.X.1.1 route-map ANUNCIAR-AS-200 out"

✔ correção: "...neighbor 200.X.2.1 remote-as 200"

"...neighbor 200.X.2.1 soft-reconfiguration inbound"

"...neighbor 200.X.2.1 route-map ANUNCIAR-AS-200 out"

● 5.1 Configuração iBGP entre R2 > R3, corrigido número da loopback faltando

✗ erro: "...neighbor X.0.0.3 update-source loopback "

✔ correção: "...neighbor X.0.0.3 update-source loopback 0"

Page 555: Apostila-completa Curso Bgp Design v3dot0

v3.0 | autor: Rinaldo Vaz | [email protected]

555

CHANGELOG versão 1.0 – 1.1:

23/04/2012

● 5.1 Configuração iBGP entre R3>todos✗ erro: alguns IPs errados

✔ correção: corrigidos IPs corretos para R1, R2, R4 e R5

● 6.1 LAB 2, communities padrão ✔ Incluida uma explicação mais clara dos objetivos do LAB

7.3 Corrigida expressão regular de permitir saida apenas de prefixos originados ”diretamente” do downstream:

✗ erro: ”_20$”

● forma correta: ”(20_|20$)”

● Adicionadas mais imagens para facilitar a visualização das configurações