Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

BGP Design com Roteadores 
Cisco
 Instrutor: Rinaldo Vaz
 Analista de Redes
 Responsável técnico pelo AS 28135
Versão do material: 2.2 *beta3
Última publicação: 20/12/2012
1.0
✔ Esse material foi utilizado no curso de Belo Horizonte nos dias 10,11,12,13 e 14 de dezembro de 2012
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 2
Visão Geral sobre BGP
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 rinaldopvaz@gmail.com.
Versão do material: 2.2 *beta3
Última publicação: 20/12/2012
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
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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!
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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 0
Estática 1
eBGP 20
EIGRP (Interno) 90
IGRP 100
OSPF 110
ISIS 115
RIP 120
EGP 140
EIGRP (Externo) 170
iBGP 200
BGP Local 200
Desconhecido 255
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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 é
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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 e as atualizações adicionais 
incrementais são enviadas em seguida;
3. Atualizações adicionais são enviadas imediatamente através de 
mensagens de update; (padrão)
4. Utiliza por padrão a porta TCP 179;
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 7
1.1 Introdução
 Mensagens BGP: 
1. 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 
essas mensagens, cada router envia a primeira mensagem de keep alive e a sessão é 
estabelecida.
2. 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 
3. 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.
4. 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 8
 Requisitos para se tornar um 
Sistema Autônomo
1.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 9
 1.2 - Requisitos para se tornar um sistema 
autônomo
 http://registro.br/provedor/numeracao/regras.html
 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.
http://registro.br/provedor/numeracao/regras.html
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 10
Preenchendo o Formulário do 
registro.br
1.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 11
 1.3 - Preenchendo o Formulário do registro.br
 Há um formulário simples que pode ser baixado no 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
http://registro.br/provedor/numeracao/pedido-form.txt
http://registro.br/provedor/numeracao/pedido-ajuda.txt
http://registro.br/provedor/numeracao/faq.html
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 12
 
Quando utilizar
 IGP e EGP
1.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 13
 1.4 - Quando utilizar IGP e EGP
 O BGP foi desenvolvido para troca de rotas entre Sistemas Autônomos 
distintos, sendo assim, 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:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 14
 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 
operadoras de trânsito.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 15
 
Atributos BGP
1.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 16
 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 17
 1.5 - Atributos BGP
 Opcional transitivo (Optional transitive): Não precisam ser 
implementatos 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 18
 1.5 - Atributos BGP
 Uma boa descrição pode ser encontrada no livro “CCNP BSCI - 
Official Exam Certification Guide, 4th edition” de Brent Steward:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 19
 
Entendendo o Processo de 
Escolha de Rotas
1.6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 20
 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 hajaum prefixo mais específico esse sempre será preferido 
independentemente dos seus atributos "mais favoráveis".
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 21
 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).
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 22
 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 23
PERGUNTAS?PERGUNTAS?
1.6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 24
2.0
Primeiros Passos
para Aparecer na Internet
2. 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
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 25
Configurando BGP com apenas 
um link
2.1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 26
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 27
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 endendido como o AS do aluno (1 até 24).
LAB 1-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 28
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 29
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 30
 O primeiro passo na configuração BGP é adicionar um neighbor 
(peer):
GX-R1(config)# router bgp X
GX-R1(config-router)#
neighbor 100.X.1.1 remote-as 100
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)
2.1-Configurando BGP com apenas um link
LAB 1-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 31
 Verificando o status da sessão BGP recém-criada:
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
2.1-Configurando BGP com apenas um link
LAB 1-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 32
 Verificando os anúncio 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 33
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 34
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 35
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 36
 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 BGP
GX-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 router
GX-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 networks
GX-R1(config-router)#end
!--- volta ao modo provilegiado
GX-R1# clear ip bgp 100.X.1.1
!---reinicia a sesão BGP
LAB 1-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 37
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 38
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 39
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 40
PERGUNTAS?PERGUNTAS?
2.1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 41
Analisando as rotas recebidas
2.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 42
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...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 43
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 44
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 45
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 46
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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
 InQ = 0
 OutQ = 0
 Updates na fila de entrada e de saída.
2.2-Analisando as rotas recebidas
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 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
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 51
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 52
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 53
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 54
 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 tipoNOTIFICATION 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 55
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 56
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 57
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 58
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 59
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 60
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 61
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 62
 Vamos detalhar uma rota em específico:
GX-R1#sh ip bgp 123.0.0.0
...
Flag: 0x208
 ...
2.2-Analisando as rotas recebidas
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 63
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 64
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 65
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 66
PERGUNTAS?PERGUNTAS?
2.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 67
Configurando BGP com 2 links
(MULTIHOMING)(MULTIHOMING)
2.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 68
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 69
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com70
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 Neigbor
neighbor 200.X.1.1 remote-as 200 
neighbor 200.X.1.1 description eBGP com as 200
LAB 1-2-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 71
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 72
 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.1
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
*> 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 73
 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.1
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
*> 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 74
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 75
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 76
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 77
 Verificando as rotas recebidas após o filtro de saída 
● Agora o router anuncia para os UPSTREAMS apenas o necessário 
que é oprefixo /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.9
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
GX-R1>sh ip bgp neighbors 200.X.1.1 advertised-routes 
BGP table version is 24, local router ID is 9.9.9.9
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
2.3 Configurando BGP com 2 links
LAB 1-2-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 78
PERGUNTAS?PERGUNTAS?
2.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 79
Utilizando um Looking 
Glass
2.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 80
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
http://lg.he.net/
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 81
2.4 Utilizando um Looking Glass
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 82
2.4 Utilizando um Looking Glass
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 83
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 84
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.1
BGP routing table entry for 123.0.0.0/8, version 7
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 85
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.1
Type 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 86
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.1
BGP routing table entry for X.0.0.0/8, version 45
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 87
PERGUNTAS?PERGUNTAS?
2.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 88
Fail-Over 
Automático
2.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 89
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 monitor
5d06h: %BGP-5-ADJCHANGE: neighbor 200.X.1.1 Down ...
LAB 1-2-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 90
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 -n
traceroute 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 91
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.1
BGP routing table entry for 123.0.0.0/8, version 16
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 92
2.5 Fail-Over automático
 Vamos verificar no ponto de vista do Looking Glass:
ALUNO@notebook:~$ telnet 123.123.123.1
Trying 123.123.123.1...
Connected to 123.123.123.1.
Escape character is '^]'.
User Access Verification
Password: 123
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 93
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.1
BGP routing table entry for 1.0.0.0/8, version 49
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 94
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 analizar...
ALUNO@notebook:~$ traceroute 200.200.200.10 -n
traceroute 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 ms
10 222.222.1.2 161.596 ms 176.097 ms 183.647 ms
11 222.200.10.2 154.398 ms 122.534 ms 101.285 ms
LAB 1-2-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 95
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.10
BGP routing table entry for 200.0.0.0/8, version 20
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 96
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.10
Trying 200.200.200.10
Connected to 200.200.200.10
Escape character is '^]'.
AS-200-R10>sh ip bgp X.0.0.0
BGP routing table entry for X.0.0.0/8, version 77
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 97
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 98
PERGUNTAS?PERGUNTAS?
2.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 99
Escolhendo o 
Melhor Link
2.6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 100
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...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 101
2.6 Escolhendo o melhor link
 Alterando o atributo Weight:
 Vamos verificar como ficaram as rotas BGP...
GX-R1#configure terminal
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor 100.X.1.1 weight 10
GX-R1(config-router)#end
!--- agora vamos efetuar um clear na sessão BGP
GX-R1#clear ip bgp 100.X.1.1
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 102
2.6 Escolhendo o melhor link
 Analizando 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.1
BGP routing table entry for 123.0.0.0/8, version 35
Paths: (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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 103
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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 104
2.6 Escolhendo o melhor link
 Ping extendido:
GX-R1#ping
Protocol [ip]:
Target IP address: 123.123.123.1
Repeat count [5]: 2
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: X.128.0.254
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]: record
Number 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.1
Packet 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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 105
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 ms
GX-R1#
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 106
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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 107
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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 108
2.6 Escolhendo o melhor link
 Configurando os anúncios mais específicos:
GX-R1#confterminal 
GX-R1(config)#ip prefix-list LAB-1-2-1-ANUNCIAR-AS-100 permit X.0.0.0/9
GX-R1(config)#ip prefix-list LAB-1-2-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-2-1-ANUNCIAR-AS-200 seq 10 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.0
GX-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-2-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-2-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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 109
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.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
Gx-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-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 110
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 masks
C x.x.x.x/32 is directly connected, Loopback0
C x.128.0.0/9 is directly connected, FastEthernet0/0
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 111
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 t
Gx-R1(config)#ip route x.0.0.0 255.128.0.0 null0
!--- faremos apenas para o primeiro /9 já que o segundo está OK
Gx-R1(config)#end
Gx-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 masks
C x.x.x.x/32 is directly connected, Loopback0
S x.0.0.0/9 is directly connected, Null0
C x.128.0.0/9 is directly connected, FastEthernet0/0
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 112
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.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/9 0.0.0.0 0 32768 i
*> x.128.0.0/9 0.0.0.0 0 32768 i
Gx-R1#
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 113
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.1
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/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 i
AS-123-R1>
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 114
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 msec
AS-123-R1>
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 115
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 terminal
GX-R1(config)#router bgp X
GX-R1(config-router)#no neighbor 100.X.1.1 weight 10
GX-R1(config-router)#end
!--- agora vamos efetuar um clear na sessão BGP
GX-R1#clear ip bgp 100.X.1.1
LAB 1-2-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 116
PERGUNTAS?PERGUNTAS?
2.6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 117
Balanceando os 
Links
2.7
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 118
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 119
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-2-2-ANUNCIAR-AS-100 permit X.0.0.0/8
GX-R1(config)#ip prefix-list LAB-1-2-2-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-2-2-ANUNCIAR-AS-200 permit X.0.0.0/8 
GX-R1(config)#ip prefix-list LAB-1-2-2-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-2-2-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-2-2-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-2-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 120
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 i
AS-123-R1>
 Agora testar o caminho para os 2 blocos /9.
LAB 1-2-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 121
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 msec
AS-123-R1>
 Primeiro /9 (Loopback do router):
 Caminho 55,111,100
LAB 1-2-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 122
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 msec
AS-123-R1#
LAB 1-2-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 123
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-2-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 124
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 125
Implementando 
Alta 
Disponibilidade 
com VRRP
2.8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 126
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-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 127
2.8- Implementando Alta Disponibilidade
 com VRRP
 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-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 128
2.8- Implementando Alta Disponibilidade
 com VRRP
 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-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 129
 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)#
2.8- Implementando Alta Disponibilidade
 com VRRP
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 130
2.8- Implementando Alta Disponibilidade
 com VRRP
 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
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 200
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 131
 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)#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 *
2.8- Implementando Alta Disponibilidade
 com VRRP
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 132
 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.
2.8- Implementando Alta Disponibilidade
 com VRRP
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 133
 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.X
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
GX-R2>sh ip bgp neighbors 200.X.2.1 advertised-routes 
BGP table version is 24, local router ID is X.X.X.X
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
2.8- Implementando Alta Disponibilidade
 com VRRP
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 134
 O próximo passo é a criação da interface virtual, mas o que é VRRP 
afinal?
2.8- Implementando Alta Disponibilidade
 com VRRP
 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 135
 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 ao lab...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 136
 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 t
GX-R1(config)#interface fastEthernet 0/0
GX-R1(config-if)#vrrp X ip X.128.0.252
GX-R1(config-if)#vrrp X priority 2 
GX-R1(config-if)#vrrpX timers advertise 1
GX-R1(config-if)#vrrp X preempt delay minimum 120
GX-R1(config-if)#end
GX-R1#debug vrrp state 
VRRP State debugging is on
GX-R1#wr
GX-R2#conf t
GX-R2(config)#interface fastEthernet 0/0
GX-R2(config-if)#vrrp X ip X.128.0.252
GX-R2(config-if)#vrrp X priority 1 
GX-R2(config-if)#vrrp X timers learn
GX-R2(config-if)#vrrp X preempt delay minimum 120
GX-R2(config-if)#end
GX-R2#debug vrrp state 
VRRP State debugging is on
GX-R2#wr
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 137
 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 addr
Fa0/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 addr
Fa0/0 X 1 3992 Y Backup X.128.0.254 X.128.0.252 
GX-R2#
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 138
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 139
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 140
 Vamos alterar os timers padrão para diminuir o downtime
2.8- BGP Timers
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor 100.X.1.1 timers 5 15
GX-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 segundos
GX-R1(config-router)#end
GX-R1#clear ip bgp *
GX-R2(config)#router bgp X
GX-R2(config-router)#neighbor 100.X.2.1 timers 5 15
GX-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 segundos
GX-R2(config-router)#end
GX-R2#clear ip bgp *
LAB 1-2-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 141
 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”
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 142
PERGUNTAS?PERGUNTAS?
2.8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 143
3.0 
Peering e Troca de Tráfego
3. 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 Endendendo 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 
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 144
3.1
Peering x Trânsito
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 145
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 146
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 147
 LAB: Observem o cenário...
3.1 Peering x Trânsito
LAB 1-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 148
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 149
 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-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 150
 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-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 151
 Configurando BGP (AS ÍMPAR):
 Onde:
X= AS local
Y= AS remoto
GX-R1#conf t
GX-R1(config)#
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor X.Y.1.2 remote-as Y
GX-R1(config-router)#neighbor X.Y.1.2 weight 20
!--- priorizar todas as rotas recebidas pelo peering com weight 20
GX-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-list
GX-R1(config-router)#exit
GX-R1(config)#end
GX-R1#clear ip bgp *
3.1 Peering x Trânsito
LAB 1-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 152
 Configurando BGP (AS PAR):
 Onde:
X= AS local
Y= AS remoto
GX-R1#conf t
GX-R1(config)#
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor Y.X.1.1 remote-as Y
GX-R1(config-router)#neighbor Y.X.1.1 weight 20
!--- priorizar todas as rotas recebidas pelo peering com weight 20
GX-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-list
GX-R1(config-router)#exit
GX-R1(config)#end
GX-R1#clear ip bgp *
3.1 Peering x Trânsito
LAB 1-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 153
 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 localmenteou 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-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 154
 Verificando as redes recebidas do meu novo peering
(utilizando o exemplo para o peering entre AS 1 e 2):
 Onde:
1= AS local
2= AS remoto
G1-R1#sh ip bgp regexp ^Y$
!--- essa consulta retorna apenas rotas que contenham o AS Y no path
!--- e nada mais
BGP table version is 29, local router ID is 1.1.1.1
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
*> Y.0.0.0 X.Y.1.2 0 20 Y i
3.1 Peering x Trânsito
LAB 1-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 155
 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-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 156
 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
LAB 1-3-1
XX
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 157
Entendendo o Funcionamento 
de Um PIX do PTTMetro
3.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 158
3.2 Entendendo o Funcionamento de Um PIX do 
PTTMetro
 Para quem ainda não assistiu:
http://youtu.be/imL3Cc8mC2Y
http://youtu.be/imL3Cc8mC2Y
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 159
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 160
 Todos os participantes compartilham um mesmo bloco /24, 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 161
 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).
ROUTE
SERVER
3.2 Entendendo o Funcionamento de Um PIX do 
PTTMetro
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 162
Formulários de Adesão
3.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 163
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
http://sp.ptt.br/adesao.html
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 164
 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.php
ASN ...............: 22548
Entidade Nome .....: Registro.br
URL ...............: http://registro.br/
Endereço ..........: Av. das Nações Unidas 11548, 7° andar 04578-000 - São Paulo - SP
NOC email .........: noc@registro.br
INOC-DBA ext ......: 22548*NOC
Telefone ..........: 11 5509-3510
Adm-c nome ........: Frederico A C Neves
email .............: fneves@registro.br
Telefone ..........: 11 5509-3511
Peering-c nome ....: Oripide Ocilento Filho 
email .............: oripide@nic.br
Telefone ..........: 11 5509-3520
Comercial Trânsito :
email .............:
Telefone ..........:
URL Política
 Peering .......: none - Open Policy
BGP Feed para o
 Looking-glass ...: Sim [x] Nao [ ]
Vende trânsitov4 ..: Sim [ ] Não [x]
Vende trânsitov6 ..: Sim [ ] Não [x]
Conexão
Bandwidth .........:
Media Ethernet ....: 10BaseTX [ ] 100BaseTX [ ] 10000BaseTX [ ]
 1 GigE-SX [X] 1 GigE-LX [ ] 10 GigE-SR [ ] 10 GigE-LR [ ]
PIX ...............: Registro.br
IPv6 ..............: Sim [x] Nao [ ]
...
3.3 - Formulários de Adesão
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 165
Diferenças entre Acordo Bilateral
e Multilateral 
3.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 166
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...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 167
 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 join@ptt.br
...
 Termo de adesão ao Acordo de Troca de Tráfego Multilateral (ATM)
Version .........: 2008071000
Este termo de adesão trata das informações e compromissos da entidade
solicitante para a participação no acordo de troca de tráfego
multilateral no PTTMetro.
Localidade ......: sp.ptt.br
ASN .............: 22548
Entidade Nome ...: Registro.br
ATM v4 ..........: Sim [x] Não [ ]
ATM v6 ..........: Sim [x] Não [ ]
...
3.4 - Diferenças entre Acordos Bilaterais e 
Multilaterais
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 168
 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ânsivo através de
acordos bilaterais
3.4 - Diferenças entre Acordos Bilaterais e 
Multilaterais
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 169
Participantes Locais e Remotos
3.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 170
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:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 171
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 172
Entendendo o Conceito de 
Lan2Lan
3.6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 173
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
v2.2 *beta3 | Autor: Rinaldo Vaz |rinaldopvaz@gmail.com 174
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 infornações de “layer 2” chegam ao outro lado, 
incluindo requisições ARP e broadcasts
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 175
ATM-Tratando as Rotas 
Recebidas
3.7
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 176
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 t
GX-R1(config)#router bgp X
GX-R1(config-router)#no bgp enforce-first-as
GX-R1(config-router)#neighbor 187.16.216.253 remote-as 555
GX-R1(config-router)#neighbor 187.16.216.253 description PTT-Route_server-1
GX-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 peers
GX-R1(config-router)#neighbor 187.16.216.252 remote-as 555
GX-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-3-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 177
 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/PfxRcd
X.Y.1.2 4 Y 442 443 168 0 0 07:16:05 4
100.X.1.1 4 100 582 441 168 0 0 07:14:37 35
187.16.216.252 4 555 10 44 168 0 0 00:06:02 0
187.16.216.253 4 555 14 8 168 0 0 00:02:34 45
200.X.1.1 4 200 548 441 168 0 0 07:14:26 34
3.7 - ATM- Tratando as Rotas Recebidas
LAB 1-3-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 178
 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.1
BGP routing table entry for 123.0.0.0/8, version 160
Paths: (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-3-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 179
 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/8
BGP routing table entry for X.0.0.0/8, version 251
Paths: (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-3-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 180
ATM-Anunciando Corretamente
3.8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 181
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 182
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 183
O Looking Glass do PTT Metro
3.9
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 184
 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 185
 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.252
Trying 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 186
Aplicações de Um Acordo 
Bilateral
3.10
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 187
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. 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 188
 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-3-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 189
 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.
GX-R1#conf t
GX-R1(config)#interface fastEthernet 0/1.XXX
GX-R1(config-subif)#encapsulation dot1Q XXX
GX-R1(config-subif)#ip address (combinem os endereços IP de cada lado)
GX-R1(config-subif)#end
GX-R1# ping Z.Z.Z.Z
!--- testem conectividade IP através da vlan antes de iniciar as configBGP
 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 
LAB 1-3-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 190
 Configurações BGP no router que será TRÂNSITO:
GX-R1#conf t
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
GX-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral - cliente
GX-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ânsito
GX-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 cliente
GX-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)#end
GX-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-3-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 191
 Configurações BGP no router CLIENTE:
GX-R1#conf t
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
GX-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral-transito IP
GX-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 nada
GX-R1(config-router)#end
GX-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-3-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 192
 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ívels (trânsito IP)
3.11 Comprando e vendendo trânsito no PTT 
LAB 1-3-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 193
PERGUNTAS?PERGUNTAS?
3.11
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 194
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 195
4.1
eBGP com Upstreams e 
Downstreams
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 196
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 197
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”
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 198
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 199
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 200
Configurando Filtros de 
Upstreams
4.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 201
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;
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 202
 ”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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 203
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 204
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 205
 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-LISTA
ip 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/24
Gx-R1(config)#end
Gx-R1#show running-config | beginMINHA-LISTA
ip prefix-list MINHA-LISTA seq 5 permit 122.36.200.0/24
ip prefix-list MINHA-LISTA seq 10 permit 44.0.0.0/24
!
...
4.2 - Configurando Filtros de Upstreams
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 206
 O que é o ”seq” ?
● A razão para o incremento de ”5 em 5” é a possibilidade de
inserir 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-LISTA
ip prefix-list MINHA-LISTA seq 4 permit 10.0.30.0/24
ip prefix-list MINHA-LISTA seq 5 permit 122.36.200.0/24
ip prefix-list MINHA-LISTA seq 10 permit 44.0.0.0/24
!
…
4.2 - Configurando Filtros de Upstreams
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 207
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 208
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 209
 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/22
Gx-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 210
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 211
GX-R1(config)#ip prefix-list NAO-RECEBER seq 10 deny X.0.0.0/8 le 32
!--- blocos do meu próprio AS
GX-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 privado
GX-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
!--- loopbacks
GX-R-1(config)#ip prefix-list NAO-RECEBER seq 60 deny 192.0.2.0/24 le 32
!--- Documentação
GX-R1(config)#ip prefix-list NAO-RECEBER seq 70 deny 192.168.0.0/16 le 32
!--- uso privado
GX-R1(config)#ip prefix-list NAO-RECEBER seq 80 deny 224.0.0.0/4 le 32
!--- multicast
GX-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-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 212
 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 X
GX-R1(config-router)#neighbor 100.X.1.1 prefix-list NAO-RECEBER in
GX-R1(config-router)#neighbor 200.X.1.1 prefix-list NAO-RECEBER in
GX-R1(config-router)#neighbor 187.16.216.253 prefix-list NAO-RECEBER in
GX-R1(config-router)#neighbor (IP de peering) prefix-list NAO-RECEBER in
GX-R1(config-router)#neighbor (acordo bilateral) prefix-list NAO-RECEBER in
!--- Nesse caso apenas para quem é CLIENTE no acordo bilateral
GX-R1(config-router)#end
GX-R1#clear ip bgp *
4.2 - Configurando Filtros de Upstreams
LAB 1-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 213
 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-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 214
 Desmistificando o ”Soft reconfiguration inbound”:
 Para que serve de verdade?
4.2 - Configurando Filtros de Upstreams
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 215
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 216
 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
v2.2 *beta3 | Autor: Rinaldo Vaz| rinaldopvaz@gmail.com 217
 Vamos habilitar o ”Soft reconfiguration inbound” para todos os neighbors:
GX-R1(config)#router bgp X
GX-R1(config-router)#neighbor 100.X.1.1 soft-reconfiguration inbound
GX-R1(config-router)#neighbor 200.X.1.1 soft-reconfiguration inbound
GX-R1(config-router)#neighbor 187.16.216.253 soft-reconfiguration inbound
GX-R1(config-router)#neighbor (IP de peering) soft-reconfiguration inbound
GX-R1(config-router)#neighbor (acordo bilateral) soft-reconfiguration inbound
GX-R1(config-router)#end
GX-R1#clear ip bgp * soft
4.2 - Configurando Filtros de Upstreams
LAB 1-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 218
 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-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 219
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 220
 Melhor do que sair à procura de listas é estabelecer um peering com o cymru.
 Para solicitar esse peering é preciso entrar em contato com bogonrs@cymru.com 
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 221
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 222
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 223
 Adicionando as rotas recebidas em BLACKHOLE:
GX-R1(config)#ip bgp-community new-format
!---habilita suporte à communities tipo xxxx:yyyy
GX-R1(config)#ip route 192.0.2.1 255.255.255.255 null0
!---cria a rota de blackhole
GX-R1(config)#ip community-list 10 permit 65333:888
!---adiciona a community 65333:888 na comm-list 10
GX-R1(config)#route-map FILTRO-CYMRUBOGONS permit 10
!---entra as opções do route-map de entrada
GX-R1(config-route-map)#match community 10
!---declara o conteudo da comm-list 10 para condição de math
GX-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 blackhole
GX-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 224
Configurando Filtros de 
Downstreams
4.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 225
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 226
 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-4-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 227
 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 100X
GX-R1(config-router)#neighbor X.X.100.2 weight 30
GX-R1(config-router)#neighbor X.X.100.2 prefix-list BLOCOS-AS-100X in
GX-R1(config-router)#neighbor X.X.100.2 neighbor X.X.100.2 default-originate
!--- filtro de ENTRADA para o DOWNSTREAM AS 100X + envio de rota padrao
GX-R1(config-router)#neighbor 100.X.1.1 prefix-list ANUNCIAR-AS-100 out
!--- filtro de SAIDA para o UPSTREAM AS 100
GX-R1(config-router)#neighbor 200.X.1.1 prefix-list ANUNCIAR-AS-200 out
!--- filtro de SAIDA para o UPSTREAM AS 200
GX-R1(config-router)#neighbor 187.16.216.253 prefix-list ANUNCIAR-PTT out
!--- filtro de SAIDA para o PTT
GX-R1(config-router)#exit
GX-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 lista
GX-R1(config)#ip prefix-list ANUNCIAR-AS-100 permit 187.X.0.0/22 le 24
GX-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 100
GX-R1(config)#ip prefix-list ANUNCIAR-AS-200 permit 187.X.0.0/22 le 24
GX-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 200
GX-R1(config)#ip prefix-list ANUNCIAR-PTT permit 187.X.0.0/22 le 24
GX-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 PTT
GX-R1(config)#end
GX-R1#clear ip bgp * out
4.3 - Configurando Filtros de Downstreams
LAB 1-4-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 228
 Configurando a sessão BGP com o UPSTREAM em R2
GX-R2(config)#no router bgp X
!--- Primeiro é preciso remover as configurações de BGP que utilizavam o as X
GX-R2(router)#router bgp 100X
GX-R2(config-router)#no auto-summary
GX-R2(config-router)#network 187.X.0.0 mask 255.255.252.0 
GX-R2(config-router)#neighbor X.X.100.1 remote-as X
!--- Configurando o BGP com UPSTREAM
GX-R2(config-router)#exit
GX-R2(config)#interface loopback 0
GX-R2(config-if)#ip address 187.X.0.1 255.255.252.0
GX-R2(config-if)#end
!--- configura um IP na loopback para que haja a ocorrência na FIB
GX-R2#clear ip bgp *
4.3 - Configurando Filtros de Downstreams
LAB 1-4-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 229
 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-4-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 230
Entendendo o 
”BGP REGEXP”
4.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 231
4.4 - Entendendo o “BGP REGEXP”
 Quando temos muitos clientes de trânsito é preciso estabelecer padrões 
paraque 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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 232
 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 64512
Router(config)#ip as-path access-list 1 deny 64513
Router(config)#ip as-path access-list 1 deny 64514
...
...
Router(config)#ip as-path access-list 1 deny 65534
Router(config)#ip as-path access-list 1 deny 65535
Router(config)#ip as-path access-list 1 permit .*
4.4 - Entendendo o “BGP REGEXP”
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 233
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
http://tools.lymas.com.br/regexp_br.php
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 234
 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”
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 235
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 236
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”
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 237
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"
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 238
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 239
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,01" 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 240
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 mesmaló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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 241
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...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 242
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 243
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 244
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 64511
GX-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 65535
GX-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 100
GX-R1(config-router)#neighbor 100.X.1.1 filter-list 1 in
GX-R1(config-router)#neighbor 200.X.1.1 filter-list 1 in
OBS: As expressões acima podem ser simplificadas ainda mais
LAB 1-4-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 245
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 hierarquia
router(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)#exit
router(config)#route-map UPSTREAM-1 permit 2 
!--- cria um route-map ”em branco”que aceita todo o resto sem modificações
router(config-route-map)#exit
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 246
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 hierarquia
router(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)#exit
router(config)#route-map UPSTREAM-2 permit 2 
!--- cria um route-map ”em branco”que aceita todo o resto sem modificações
router(config-route-map)#exit
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 247
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
...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 248
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
...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 249
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
...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 250
Enviando e Recebendo 
“Partial” e “Full-Routing”
4.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 251
 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-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 252
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-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 253
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-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 254
4.5 – Enviando e Recebendo “Partial” e “Full-
routing”
 As chaves ajudam a diminuir o as repetições de certas "palavras", por 
exemplo:
 Para enviar um parcial routing para um cliente eu poderia utilizar as 
seguintes expressões:
– Enviar rotas com 1 AS no path: (essa é fácil):
router(config)# ip as-pathaccess-list 1 permit ^([0-9]+)$
 Essa expressão é incompleta, pois não anunciaria prefixos originados no 
meu próprio AS (que não tem nenhum AS no PATH), e preciso então 
fazer mais uma me deixando com 2 regras no total...
router(config)# ip as-path access-list 1 permit ^([0-9]+)$
router(config)# ip as-path access-list 1 permit ^$
(...continua)
LAB 1-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 255
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)
LAB 1-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 256
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)
LAB 1-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 257
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)
LAB 1-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 258
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)
LAB 1-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 259
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%.
LAB 1-4-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 260
Route-Map x Prefix-List
4.6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 261
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 10
router(config-route-map)#match ip address prefix-list MUDAR-METRIC 
router(config-route-map)#set metric 50
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 262
 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 10
match 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 10
router(config-route-map)#match ip address prefix-list MUDAR-METRIC 
router(config-route-map)#set metric 50
4.6 – Route-Map X Prefix-List
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 263
 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 120
set weight 40
set community 123:321
router(config)#route-map FILTROS-DE-ENTRADA permit 10
router(config-route-map)#match ip address prefix-list MUDAR-METRIC 
router(config-route-map)#set metric 50
4.6 – Route-Map X Prefix-List
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 264
 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 10
router(config-route-map)#set local-preference 200
4.6 – Route-Map X Prefix-List
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 265
 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 TESTE
route-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 266
 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/24 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/25
ip 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 267
AS-Path Prepend
4.7
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 268
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 269
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
 neighbor10.0.1.6 route-map prepend out
!
route-map prepend permit 10
 set as-path prepend 65000 65000 65000
(Router-R2)
R2#show ip bgp
BGP table version is 3, local router ID is 10.2.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 Network Next Hop Metric LocPrf Weight Path
*>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:
http://wiki.nil.com/AS-path_prepending_(technical_details)
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 270
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 bgp
BGP table version is 2, local router ID is 10.0.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 Network Next Hop Metric LocPrf Weight Path
*> 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:
http://wiki.nil.com/AS-path_prepending_(technical_details)
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 271
Engenharia de Tráfego 
I
4.8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 272
4.8 – Engenharia de Tráfego I
 LAB: Todos os grupos configurar Upstreams + Dowmstreams de 
acordo com os seguintes requisitos:
LAB 1-4-4
✔ 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-55
AS-222
AS-111
AS-200AS-100
AS-100X
DOWNLOAD CLIENTE:
DOWNLOAD AS LOCAL: 
AS-123
AS-X
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 273
 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 200
GX-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 200
GX-R1(config-router)#exit
GX-R1(config)#route-map AS-200-OUT permit 1 
!--- entra no modo de configuração do route-map seq 1
GX-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 vezes
GX-R1(config-route-map)#set as-path prepend X X
!--- insere mais 4 vezes o AS local no AS PATH
GX-R1(config)#route-map AS-200-OUT permit 2 
!--- entra no modo de configuração do route-map seq 2
GX-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-4-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 274
PERGUNTAS?PERGUNTAS?
4.8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 275
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 276
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 277
Implementando Múltiplas Saídas 
para Clientes de Trânsito
5.1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 278
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:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 279
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 280
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 281
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 282
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 283
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 284
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 285
 Configurando eBGP com o 
downstream: AS 14X em R4:
● LADO DA OPERADORA
AS-X-R4#conf t 
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#bgp router-id X.0.0.4
!--- nesse LAB vamos configurar um Router-IDpara facilitar a visualização das rotas
AS-X-R4(config-router)#synchronization 
AS-X-R4(config-router)#neighbor X.14X.4.2 remote-as 14X
AS-X-R4(config-router)#neighbor X.14X.4.2 description eBGP-downstream-AS-14X
AS-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 DOWNSTREAM
AS-X-R4(config-router)#exit
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 286
 Configurando eBGP com o 
downstream: AS 14X em R4:
● LADO DO CLIENTE
AS-14X-R1#conf t 
AS-14X-R1(config)#router bgp 14X
AS-14X-R1(config-router)#bgp router-id 14X.1.0.1
AS-14X-R1(config-router)#no synchronization 
AS-14X-R1(config-router)#network 14X.0.0.0 mask 255.0.0.0
AS-14X-R1(config-router)#neighbor X.14X.4.1 remote-as X
AS-14X-R1(config-router)#neighbor X.14X.4.1 description eBGP-upstream-AS-X
AS-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 out
AS-14X-R1(config-router)#exit
AS-14X-R1(config)#ip prefix-list MEUS-BLOCOS permit 14X.0.0.0/8
AS-14X-R1(config)#interface loopback 0
AS-14X-R1(config-if)#ip address 14X.1.0.1 255.255.255.0
AS-14X-R1(config-if)#exit
AS-14X-R1(config)#ip route 14X.0.0.0 255.0.0.0 null 0
AS-14X-R1(config)#end
AS-14X-R1#clear ip bgp *
5.1 - Implementando Múltiplas Saídas 
para Clientes de Trânsito
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 287
 Configurando eBGP com o 
downstream: AS 15X em R5:
● LADO DA OPERADORA
AS-X-R5#conf t 
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#bgp router-id X.0.0.5
!--- nesse LAB vamos configurar um Router-ID para facilitar a visualização das rotas
AS-X-R5(config-router)#synchronization 
AS-X-R5(config-router)#neighbor X.15X.5.2 remote-as 15X
AS-X-R5(config-router)#neighbor X.15X.5.2 description eBGP-downstream-AS-15X
AS-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 DOWNSTREAM
AS-X-R5(config-router)#exit
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 288
 Configurando eBGP com o 
downstream: AS 15X em R5:
● LADO DO CLIENTE
AS-15X-R1#conf t 
AS-15X-R1(config)#router bgp 15X
AS-15X-R1(config-router)#bgp router-id 15X.1.0.1
AS-15X-R1(config-router)#no synchronization 
AS-15X-R1(config-router)#network 15X.0.0.0 mask 255.0.0.0
AS-15X-R1(config-router)#neighbor X.15X.5.1 remote-as X
AS-15X-R1(config-router)#neighbor X.15X.5.1 description eBGP-upstream-AS-X
AS-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 out
AS-15X-R1(config-router)#exit
AS-15X-R1(config)#ip prefix-list MEUS-BLOCOS permit 15X.0.0.0/8
AS-15X-R1(config)#interface loopback 0
AS-15X-R1(config-if)#ip address 15X.1.0.1 255.255.255.0
AS-15X-R1(config-if)#exit
AS-15X-R1(config)#ip route 15X.0.0.0 255.0.0.0 null 0
AS-15X-R1(config)#end
AS-15X-R1#clear ip bgp *
5.1 - Implementando Múltiplas Saídas 
para Clientes de Trânsito
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 289
 Vamos também configurar as sessões eBGP com os UPSTREAMS.
● Primeiro eBGP entre R1 e AS 100:
AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#network X.0.0.0
AS-X-R1(config-router)#auto-summary 
AS-X-R1(config-router)#synchronization 
AS-X-R1(config-router)#neighbor 100.X.1.1 remote-as 100
AS-X-R1(config-router)#neighbor 100.X.1.1 soft-reconfiguration inbound
AS-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-list
AS-X-R1(config-router)#exit
!--- volta para o modo de configuração global
AS-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 lista
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
!--- em seguida uma prefix list para cada DOWNSTREAM com seus respectivos blocos contidos
(continua...)
5.3 – Next-hop-self
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 290
 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 10
AS-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)#exit
AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 20 
!--- cria um route-map de ação permit sequencia 20
AS-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)#exit
AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 30 
!--- cria um route-map de ação permit sequencia 30
AS-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)#end
AS-X-R1#clear ip bgp * soft 
5.3 – Next-hop-self
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 291
 Vamos também configurar as sessões eBGP com os UPSTREAMS
● Em seguida eBGP entre R2 e AS 200:
AS-X-R2#conf t
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#network X.0.0.0
AS-X-R2(config-router)#auto-summary
AS-X-R2(config-router)#synchronization 
AS-X-R2(config-router)#neighbor 200.X.2.1 remote-as 200
AS-X-R2(config-router)#neighbor 200.X.2.1 soft-reconfiguration inbound
AS-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-list
AS-X-R2(config-router)#exit
!--- volta para o modo de configuração global
AS-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 lista
AS-X-R2(config)#ip prefix-list BLOCOS-AS-14X permit 14X.0.0.0/8
AS-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.3 – Next-hop-self
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 292
 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 10
AS-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)#exit
AS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 20 
!--- cria um route-map de ação permit sequencia 20
AS-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)#exit
AS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 30 
!--- cria um route-map de ação permit sequencia 30
AS-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)#end
AS-X-R2#clear ip bgp * soft 
5.3 – Next-hop-self
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 293
 Configurando iBGP entre R4 e R1:
 Configurando iBGP entre R4 e R2:
AS-X-R4#conf t 
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#neighbor X.0.0.1 remote-as X
AS-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 X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 294
 Configurando iBGP entre R1 e R4:
 Configurando iBGP entre R1 e R5:
AS-X-R1#conf t 
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#bgp router-id X.0.0.1
AS-X-R1(config-router)#neighbor X.0.0.4 remote-as X
AS-X-R1(config-router)#neighbor X.0.0.4 description iBGP Router 4
AS-X-R1#conf t 
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor X.0.0.5 remote-as X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 295
 Configurando iBGP entre R5 e R1:
 Configurando iBGP entre R5 e R2:
AS-X-R5#conf t 
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#neighbor X.0.0.1 remote-as X
AS-X-R5(config-router)#neighbor X.0.0.1 description iBGP Router 1
AS-X-R5#conf t 
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#neighbor X.0.0.2 remote-as X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 296
 Configurando iBGP entre R2 e R4:
 Configurando iBGP entre R2 e R5
AS-X-R2#conf t 
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#bgp router-id X.0.0.2
AS-X-R2(config-router)#neighbor X.0.0.4 remote-as X
AS-X-R2(config-router)#neighbor X.0.0.4 description iBGP Router 4
AS-X-R2#conf t 
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#neighbor X.0.0.5 remote-as X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 297
 As sessões iBGP subiram? 
– Provavelmente não!
– Por que razão?
5.1 - Implementando Múltiplas Saídas 
para Clientes de Trânsito
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 298
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 299
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 300
 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.1
Routing 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 301
 Analisando o BGP debug:
07:42:42: BGP: X.0.0.1 open active, delay 7672ms
07:42:50: BGP: X.0.0.1 open active, local address X.X.4.2
07:42:50: BGP: X.0.0.1 open failed: Connection refused by remote host
 5.2 - Update-source
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 302
 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 X
AS-X-R4(config-router)#neighbor X.0.0.1 update-source loopback 0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 303
 Analizando 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.4
07:48:50: BGP: X.0.0.1 went from Active to OpenSent
07:48:50: BGP: X.0.0.1 sending OPEN, version 4, my as: X
07:48:50: BGP: X.0.0.1 rcv message type 1, length (excl. header) 26
07:48:50: BGP: X.0.0.1 rcv OPEN, version 4
07:48:50: BGP: X.0.0.1 rcv OPEN w/ OPTION parameter len: 16
07:48:50: BGP: X.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 6
07:48:50: BGP: X.0.0.1 OPEN has CAPABILITY code: 1, length 4
07:48:50: BGP: X.0.0.1 OPEN has MP_EXT CAP for afi/safi: 1/1
07:48:50: BGP: X.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 2
07:48:50: BGP: X.0.0.1 OPEN has CAPABILITY code: 128, length 0
07:48:50: BGP: X.0.0.1 OPEN has ROUTE-REFRESH capability(old) for all address-families
07:48:50: BGP: X.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 2
07:48:50: BGP: X.0.0.1 OPEN has CAPABILITY code: 2, length 0
07:48:50: BGP: X.0.0.1 OPEN has ROUTE-REFRESH capability(new) for all address-families
07:48:50: BGP: X.0.0.1 went from OpenSent to OpenConfirm
07:48:50: BGP: X.0.0.1 went from OpenConfirm to Established
07:48:50: %BGP-5-ADJCHANGE: neighbor X.0.0.1 Up 
 5.2 - Update-source
LAB 2-1-2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 304
 … fazer a mesma mudança em R5:
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#neighbor X.0.0.1 update-source loopback 0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 305
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 306
 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 t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor X.0.0.4 update-source loopback 0
AS-X-R1(config-router)#neighbor X.0.0.5 update-source loopback 0
AS-X-R2#conf t
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#neighbor X.0.0.4 update-source loopback 0
AS-X-R2(config-router)#neighbor X.0.0.5 update-source loopback 0
 5.2 - Update-source
LAB 2-1-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 307
 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
v2.2 *beta3 | Autor: Rinaldo Vaz| rinaldopvaz@gmail.com 308
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 309
 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.0
BGP routing table entry for 14X.0.0.0/8, version 0
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 310
 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 t
AS-X-R1(config)#router bgp X
AS-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 t
AS-X-R2(config)#router bgp X
AS-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-3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 311
 Continuando em R4 e R5...
 Vamos agora verificar as mudanças...
AS-X-R4#conf t
AS-X-R4(config)#router bgp X
AS-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 t
AS-X-R5(config)#router bgp X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 312
 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.0
BGP routing table entry for 14X.0.0.0/8, version 0
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 313
 Resolvendo o problema de maneira "duvidosa" em R1 e R2...
AS-X-R1#conf t 
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no synchronization 
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
AS-X-R2#conf t 
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#no synchronization 
AS-X-R2(config-router)#end
AS-X-R2#clear ip bgp *
5.4 - BGP Synchronization
LAB 2-1-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 314
 Continuando em R4 e R5...
AS-X-R4#conf t 
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#no synchronization 
AS-X-R4(config-router)#end
AS-X-R4#clear ip bgp *
AS-X-R5#conf t 
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#no synchronization 
AS-X-R1(config-router)#end
AS-X-R5#clear ip bgp *
5.4 - BGP Synchronization
LAB 2-1-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 315
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 316
 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.0
BGP routing table entry for 14X.0.0.0/8, version 16
Paths: (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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 317
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 318
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 319
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 320
 AS 14X anuncia seus prefixos para R4...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 321
 AS R4 anuncia para R1...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 322
 AS R1 anuncia para o UPSTREAM AS 100...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 323
 AS 100 anuncia para o AS 99...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 324
 Caminho dos pacotes: Entram no AS 100...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 325
 Caminho dos pacotes: em seguida no AS por R1...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 326
 Caminho dos pacotes: agora complica um pouco, R1 conhece rota 
para 11X.0.0.0/8 através donext-hop X.0.0.4 (R4), e esse next-hop 
é alcançável via R3 (X.X.1.2).
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 327
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 328
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 329
 Caminho dos pacotes: E o loop se repete até o fim do TTL do 
pacote...
5.4 - BGP Synchronization
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 330
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 331
 Distribuindo as rotas BGP através do meu IGP:
!--- primeiro vamos habilitar novamente o syncronization
AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#synchronization 
AS-X-R1(config-router)#exit
!--- agora entrar na configuração do OSPF
AS-X-R1(config)#router ospf 1
AS-X-R1(config-router)#redistribute bgp X
!--- habilita a distribuição por OSPF de rotas aprendias por BGP
% Only classful networks will be redistributed
AS-X-R1(config-router)#end
AS-X-R1#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R1#
!--- vamos repetir o mesmo processo para R2, R4 e R5
5.4 - BGP Synchronization
LAB 2-1-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 332
 Distribuindo as rotas BGP através do meu IGP:
!--- primeiro vamos habilitar novamente o syncronization
AS-X-R2#conf t
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#synchronization 
AS-X-R2(config-router)#exit
!--- agora entrar na configuração do OSPF
AS-X-R2(config)#router ospf 1
AS-X-R2(config-router)#redistribute bgp X
!--- habilita a distribuição por OSPF de rotas aprendias por BGP
% Only classful networks will be redistributed
AS-X-R2(config-router)#end
AS-X-R2#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R2#
5.4 - BGP Synchronization
LAB 2-1-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 333
 Distribuindo as rotas BGP através do meu IGP:
!--- primeiro vamos habilitar novamente o syncronization
AS-X-R4#conf t
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#synchronization 
AS-X-R4(config-router)#exit
!--- agora entrar na configuração do OSPF
AS-X-R4(config)#router ospf 1
AS-X-R4(config-router)#redistribute bgp X
!--- habilita a distribuição por OSPF de rotas aprendias por BGP
% Only classful networks will be redistributed
AS-X-R4(config-router)#end
AS-X-R4#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R4#
5.4 - BGP Synchronization
LAB 2-1-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 334
 Distribuindo as rotas BGP através do meu IGP:
!--- primeiro vamos habilitar novamente o syncronization
AS-X-R5#conf t
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#synchronization 
AS-X-R5(config-router)#exit
!--- agora entrar na configuração do OSPF
AS-X-R5(config)#router ospf 1
AS-X-R5(config-router)#redistribute bgp X
!--- habilita a distribuição por OSPF de rotas aprendias por BGP
% Only classful networks will be redistributed
AS-X-R5(config-router)#end
AS-X-R5#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R5#
5.4 - BGP Synchronization
LAB 2-1-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 335
 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-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 336
 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.0
BGP routing table entry for 14X.0.0.0/8, version 5
Paths: (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-4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 337
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 338
 Mas antes vamos desconfigurar a redistribuição de prefixos via 
OSPF em R1, R2, R4 e R5...
AS-X-R1#conf t
AS-X-R1(config)#router ospf 1
AS-X-R1(config-router)#no redistribute bgp X
AS-X-R1(config-router)#end
AS-X-R1#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R1#
!--- vamos repetir o mesmo processo para R2, R4 e R5
5.4 - BGP Synchronization
LAB 2-1-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 339
 R2
AS-X-R2#conf t
AS-X-R2(config)#router ospf 1
AS-X-R2(config-router)#no redistribute bgp X
AS-X-R2(config-router)#end
AS-X-R2#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R2#
5.4 - BGP Synchronization
LAB 2-1-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 340
 R4
AS-X-R4#conf t
AS-X-R4(config)#router ospf 1
AS-X-R4(config-router)#no redistribute bgp X
AS-X-R4(config-router)#end
AS-X-R4#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R4#
5.4 - BGP Synchronization
LAB 2-1-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 341
 R5
AS-X-R5#conf t
AS-X-R5(config)#router ospf 1
AS-X-R5(config-router)#no redistribute bgp X
AS-X-R5(config-router)#end
AS-X-R5#clear ip ospf process 
!--- reinicia o processo OSPF
Reset ALL OSPF processes? [no]: yes
AS-X-R5#
5.4 - BGP Synchronization
LAB 2-1-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 342
 Vamos alterar o esquema das sessões removendo todas as sessões 
iBGP... AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no syncronization
AS-X-R1(config-router)#no neighbor X.0.0.4
AS-X-R1(config-router)#no neighbor X.0.0.5
!--- R1
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#no syncronization
AS-X-R2(config-router)#no neighbor X.0.0.4
AS-X-R2(config-router)#no neighbor X.0.0.5
!--- R2
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#no syncronization
AS-X-R4(config-router)#no neighbor X.0.0.1
AS-X-R4(config-router)#no neighbor X.0.0.2
!--- R4
AS-X-R5(config)#routerbgp X
AS-X-R5(config-router)#no syncronization
AS-X-R5(config-router)#no neighbor X.0.0.1
AS-X-R5(config-router)#no neighbor X.0.0.2
5.4 - BGP Synchronization
LAB 2-1-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 343
 Restabelecendo as sessões BGP em R1
● Em seguida iBGP entre R1 e R3:
AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor X.0.0.3 remote-as X
AS-X-R1(config-router)#neighbor X.0.0.3 description iBGP R3
AS-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 0
AS-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-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 344
 Reestabelecendo as sessões BGP em R1
● Em seguida iBGP entre R2 e R3:
AS-X-R2#conf t
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#neighbor X.0.0.3 remote-as X
AS-X-R2(config-router)#neighbor X.0.0.3 description iBGP R3
AS-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 0
AS-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-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 345
 Configurando iBGP com R3
AS-X-R4#conf t
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#neighbor X.0.0.3 remote-as X
AS-X-R4(config-router)#neighbor X.0.0.3 description iBGP R3
AS-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 0
AS-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-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 346
 Configurando iBGP com R3
AS-X-R5#conf t
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#neighbor X.0.0.3 remote-as X
AS-X-R5(config-router)#neighbor X.0.0.3 description iBGP R3
AS-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 0
AS-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-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 347
 Restabelecendo as sessões iBGP em R3:
AS-X-R3(config)#router bgp X
AS-X-R3(config-router)#no synchronization 
AS-X-R3(config-router)#network X.0.0.0
AS-X-R3(config-router)#bgp router-id X.0.0.3
AS-X-R3(config-router)#auto-summary
!--- iBGP com R1
AS-X-R3(config-router)#neighbor X.0.0.1 remote-as X
AS-X-R3(config-router)#neighbor X.0.0.1 description iBGP R1
AS-X-R3(config-router)#neighbor X.0.0.1 update-source loopback 0
AS-X-R3(config-router)#neighbor X.0.0.1 soft-reconfiguration inbound 
!--- iBGP com R2
AS-X-R3(config-router)#neighbor X.0.0.2 remote-as X
AS-X-R3(config-router)#neighbor X.0.0.2 description iBGP R2
AS-X-R3(config-router)#neighbor X.0.0.2 update-source loopback 0
AS-X-R3(config-router)#neighbor X.0.0.2 soft-reconfiguration inbound 
!--- iBGP com R4
AS-X-R3(config-router)#neighbor X.0.0.4 remote-as X
AS-X-R3(config-router)#neighbor X.0.0.4 description iBGP R4
AS-X-R3(config-router)#neighbor X.0.0.4 update-source loopback 0
AS-X-R3(config-router)#neighbor X.0.0.4 soft-reconfiguration inbound 
!--- iBGP com R5
AS-X-R3(config-router)#neighbor X.0.0.5 remote-as X
AS-X-R3(config-router)#neighbor X.0.0.5 description iBGP R5
AS-X-R3(config-router)#neighbor X.0.0.5 update-source loopback 0
AS-X-R3(config-router)#neighbor X.0.0.5 soft-reconfiguration inbound 
5.4 - BGP Synchronization
LAB 2-1-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 348
 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.1
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
*>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-5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 349
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 350
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 351
Route-Reflector
5.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 352
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 353
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 354
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 355
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 356
 Obviamente já optamos pela opção número 3
● Vamos acrescentar apenas a opção RR:
AS-X-R3#conf t
AS-X-R3(config)#router bgp X
AS-X-R3(config-router)#neighbor X.0.0.1 route-reflector-client
!--- iBGP com R1
AS-X-R3(config-router)#neighbor X.0.0.2 route-reflector-client
!--- iBGP com R2
AS-X-R3(config-router)#neighbor X.0.0.4 route-reflector-client
!--- iBGP com R4
AS-X-R3(config-router)#neighbor X.0.0.5 route-reflector-client
!--- iBGP com R5
5.5 - Route-Reflector
LAB 2-1-6
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 357
 É 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 358
5.6
Peer Groups
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 359
5.6 - Peer Groups 
 Em nossa topologia, ficamos diante de uma situação:
 R3 possui váriosneighbors 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".
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 360
 Vamos praticar reconfigurando R3 com peer-groups:
!--- Primeiro vamos resetar as config de BGP
AS-X-R3#conf t
AS-X-R3(config)#no router bgp X
!--- depois as configurações básicas
AS-X-R3(config)#router bgp X
AS-X-R3(config-router)#no synchronization 
AS-X-R3(config-router)#auto-summary 
AS-X-R3(config-router)#bgp router-id X.0.0.3
AS-X-R3(config-router)#network X.0.0.0
!--- Vamos declarar um peer-group chamado IBGP
AS-X-R3(config-router)#neighbor IBGP peer-group 
AS-X-R3(config-router)#neighbor IBGP remote-as X
AS-X-R3(config-router)#neighbor IBGP update-source loopback 0
AS-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 grupo
AS-X-R3(config-router)#neighbor X.0.0.1 peer-group IBGP
AS-X-R3(config-router)#neighbor X.0.0.2 peer-group IBGP
AS-X-R3(config-router)#neighbor X.0.0.4 peer-group IBGP
AS-X-R3(config-router)#neighbor X.0.0.5 peer-group IBGP
5.6 - Peer Groups 
LAB 2-1-7
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 361
 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ção
router(config-router)#neighbor IBGP prefix-list FILTRO-GERAL-DE-ENTRADA in
router(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 individual
AS-X-R3#clear ip bgp X.0.0.1 out
5.6 - Peer Groups 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 362
 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-7
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 363
Local Preference x Weight no 
iBGP
5.7
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 364
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 365
 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 t
AS-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-99
AS-X-R1(config)#router bgp X
AS-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 100
AS-X-R1(config-router)#exit
AS-X-R1(config)#route-map AS-100-IN permit 10
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-99
AS-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 weight
AS-X-R1(config-route-map)#exit
AS-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 aceito
AS-X-R1(config-route-map)#end
AS-X-R1#clear ip bgp 100.X.1.1 soft
5.7 - Local Preference x Weight no iBGP
LAB 2-1-8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 366
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-8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 367
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 368
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 369
 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 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 através do link com o AS 200
• 5.8 Engenharia de Tráfego II
LAB 2-1-9
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 370
 Solução em R1
router bgp 4
 no synchronization
 bgp log-neighbor-changes
 network 4.0.0.0
 neighbor 4.0.0.3 remote-as 4
 neighbor 4.0.0.3 update-source Loopback0
 neighbor 4.0.0.3 next-hop-self
 neighbor 4.0.0.3 soft-reconfiguration inbound
 neighbor 100.4.1.1 remote-as 100
 neighbor 100.4.1.1 soft-reconfiguration inbound
 neighbor 100.4.1.1 route-map AS-100-IN in
 neighbor 100.4.1.1 route-map ANUNCIAR-AS-100 out
 auto-summary
!
ip prefix-list BLOCOS-AS-144 seq 5 permit 144.0.0.0/8
!
prefix-list BLOCOS-AS-154 seq 5 permit 154.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 4.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-144
!
route-map ANUNCIAR-AS-100 permit 30
 match ip address prefix-list BLOCOS-AS-154
 set as-path prepend 4
!
• 5.8 “CHEATS”
LAB 2-1-9
 Solução em R2
router bgp 4
 no synchronization
 bgp log-neighbor-changes
 network 4.0.0.0
 neighbor 4.0.0.3 remote-as 4
 neighbor 4.0.0.3 update-source Loopback0
 neighbor 4.0.0.3 next-hop-self
 neighbor4.0.0.3 soft-reconfiguration inbound
 neighbor 200.4.2.1 remote-as 200
 neighbor 200.4.2.1 soft-reconfiguration inbound
 neighbor 200.4.2.1 weight 10
 neighbor 200.4.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
!
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 371
PERGUNTAS?PERGUNTAS?
5.8
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 372
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 373
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 374
6.1
Communities Padrão
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 375
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 376
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 377
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 378
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 379
 NO-ADVERTISE-SUBCONFED usada para evitar que o prefixo seja 
exportado para AS's confederados.
6.1 – Communities Padrão
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 380
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 381
 INTERNET na prática é a community padrão para anúncios 
externos, é o mesmo que não haver nenhuma.
6.1 – Communities Padrão
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 382
 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 999
no set local-preference 110
! 
! 
route-map ANUNCIAR-AS-100 permit 30
no 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
! 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 383
 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 t
AS-14X-R1(config)#router bgp 14X
AS-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 10
AS-14X-R1(config-route-map)#set community no-export 
6.1 – Communities Padrão
LAB 2-1-10
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 384
 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 X
router(config-router)#neighbor A.B.C.D send-community both 
router(config-router)#exit
6.1 – Communities Padrão
LAB 2-1-10
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 385
 LAB 2 opcional: verificar a diferença enviando a community NO-
ADVERTISE.
6.1 – Communities Padrão
LAB 2-1-11LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 386
 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
LAB 2-1-12
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 387
Communities Numéricas
6.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 388
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 389
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 390
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 391
 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 t
router(config)#ip bgp-community new-format 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 392
Identificando e Tratando Rotas 
de Peers Específicos
6.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 393
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?
AS-14X-R1(config-route-map)#set community xxx:xxx
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com394
 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 t
router(config)#route-map teste permit 10
router(config-route-map)#set community 123:123
router(config-route-map)#exit
router(config)#route-map teste permit 10
router(config-route-map)#set community 111:222
router(config-route-map)#set community 333:214
router(config-route-map)#end
router#
router#conf t
router(config)#route-map teste permit 10
router(config-route-map)#set community 555:82
6.3 - Identificando e Tratando Rotas de Peers 
Específicos
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 395
 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 teste
route-map teste permit 10
 set community 111:222 123:123 333:214 555:82
!
...
6.3 - Identificando e Tratando Rotas de Peers 
Específicos
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 396
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 397
Manipulando Trânsito 
(Nacional/Internacional) com 
Communities
6.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 398
 Brasil Telecom
8167:90 Set Local Preference 90
8167:100 Set Local Preference 100
8167: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 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 399
 Embratel
4230:120 - Local Preference - marcar a rota como localpreference 120
4230:10000 - Blackhole - bloqueia todo o tráfego para a rede/endereco
4230: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 o
trafego destinado a rede/endereco anunciado
6.4 – Manipulando Trânsito 
(Nacional/Internacional) com Communities 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 400
 GVT
Aonde, AS, deve ser o seu AS, exemplo: 1234:1
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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 401
 Global Crossing
3549:100 - set local preference 100
3549:200 - set local preference 200
3549:275 - set local preference 275
3549:300 - set local preference 300
3549: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 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 402
 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 8013
701 MCI 8030 8031 8032 8033
1239 Sprint 8060 8061 8062 8063
1299 TeliaSonera 8250 8251 8252 8253
1668 AOL 8070 8071 8072 8073
2497 JPNIC 8080 8081 8082 8083
2516 KDDI 8100 8101 8102 8103
2914 NTT Verio 8120 8121 8122 8123
3257 Tiscali 8240 8241 8242 8243
3300 InfoNet Europe 8130 8131 8132 8133
3303 Swisscom 8140 8141 8142 8143
3320 T-Systems/DTAG 8150 8151 8152 8153
3356 Level 3 8160 8161 8162 8163
3561 Savvis 8170 8171 8172 8173
4134 ChinaNet 8230 8231 8232 8233
5511 OpenTransit 8190 8191 8192 8193
6461 AboveNet 8200 8201 8202 8203
6453 Teleglobe 8210 8211 8212 8213
7018 AT&T (US) 8220 8221 8222 8223
7738 Telemar 8290 8291 8292 8293
6.4 – Manipulando Trânsito 
(Nacional/Internacional) com Communities 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 403
 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 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 404
 Intelig
17379:23004 - Community NO-EXPORT-INTERNACIONAL - Não anuncia para peers
Internacionais.
17379:23005 - Community NO-EXPORT-NACIONAL - Não anuncia para peers
Nacionais.
No-export ? A rota não será anunciada para nenhum peer eBGP da Intelig.
17379:60 = set local-preference 60
17379:70 = set local-preference 70
17379:80 = set local-preference 80
17379:90 = set local-preference 90
Todo anuncio feito, sem a aplicação de communities tem por default o
valor 100 de local Preference.
6.4 – Manipulando Trânsito 
(Nacional/Internacional) com Communities 
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 405
Engenharia de Tráfego III
6.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 406
 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
LAB 2-1-13
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 407
 Solução:
AS-14X-R1#conf t
AS-14X-R1(config)#route-map AS-X-OUT permit 10
AS-14X-R1(config-route-map)#set community none
!--- remove o ”set community” do lab anterior
AS-14X-R1(config-route-map)#set community 200:90
AS-14X-R1(config-route-map)#end
AS-14X-R1#clear ip bgp * soft 
AS-15X-R1#conf t
AS-15X-R1(config)#route-map AS-X-OUT permit 10
AS-15X-R1(config-route-map)#set community none
AS-15X-R1(config-route-map)#set community 200:70
!--- remove o ”set community” do lab anterior
AS-15X-R1(config-route-map)#end
AS-15X-R1#clear ip bgp * soft 
6.5 - Engenharia de Tráfego III
LAB 2-1-13
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com408
 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
LAB 2-1-14
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 409
 Solução Lab 2:
!--- apagando o route map do lab anterior
AS-14X-R1(config)#no route-map AS-X-OUT
AS-14X-R1#conf t
AS-14X-R1(config)#route-map AS-X-OUT permit 10
AS-14X-R1(config-route-map)#set community 100:1090 100:9912
AS-14X-R1(config-route-map)#end
AS-14X-R1#clear ip bgp * soft 
!--- apagando o RM do lab anterior
AS-15X-R1(config)#no route-map AS-X-OUT
AS-15X-R1#conf t
AS-15X-R1(config)#route-map AS-X-OUT permit 10
AS-15X-R1(config-route-map)#set community 100:1010 100:9912
AS-15X-R1(config-route-map)#end
AS-15X-R1#clear ip bgp * soft 
6.5 - Engenharia de Tráfego III
LAB 2-1-14
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 410
 LAB 2-1-15:
Grupos de ASN par:
Utilizar as communities da tabela para fazer o AS 100 anunciar seu 
prefixo 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 seu 
prefixo 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
LAB 2-1-15
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 411
 Solução Lab 2-1-15: (AS Ímpar)
!--- apagando o RM do lab anterior
AS-14X-R1(config)#no route-map AS-X-OUT
AS-14X-R1#conf t
AS-14X-R1(config)#route-map AS-X-OUT permit 10
AS-14X-R1(config-route-map)#set community 100:9912 100:1023 100:1043 100:1063 
100:1083
AS-14X-R1(config-route-map)#end
AS-14X-R1#clear ip bgp * soft 
!--- apagando o RM do lab anterior
AS-15X-R1(config)#no route-map AS-X-OUT
AS-15X-R1#conf t
AS-15X-R1(config)#route-map AS-X-OUT permit 10
AS-15X-R1(config-route-map)#set community 100:9912 100:1023 100:1043 100:1063 
100:1083
AS-15X-R1(config-route-map)#end
AS-15X-R1#clear ip bgp * soft 
6.5 - Engenharia de Tráfego III
LAB 2-1-15
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 412
 Solução Lab 2-1-15: (AS Par)
!--- apagando o RM do lab anterior
AS-14X-R1(config)#no route-map AS-X-OUT
AS-14X-R1#conf t
AS-14X-R1(config)#route-map AS-X-OUT permit 10
AS-14X-R1(config-route-map)#set community 100:9912 100:1013 100:1033 100:1053 
100:1073 100:1093
AS-14X-R1(config-route-map)#end
AS-14X-R1#clear ip bgp * soft 
!--- apagando o RM do lab anterior
AS-15X-R1(config)#no route-map AS-X-OUT
AS-15X-R1#conf t
AS-15X-R1(config)#route-map AS-X-OUT permit 10
AS-15X-R1(config-route-map)#set community 100:9912 100:1013 100:1033 100:1053 
100:1073 100:1093
AS-15X-R1(config-route-map)#end
AS-15X-R1#clear ip bgp * soft 
6.5 - Engenharia de Tráfego III
LAB 2-1-15
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 413
PERGUNTAS?PERGUNTAS?
6.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 414
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 415
7.0
Filtros Avançados 
para Um AS de Trânsito
7. 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 416
7.1
Manipulando Rotas com 
Múltiplos PTTs
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 417
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?
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 418
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 t
router-SP(config)#route-map PTT-SAOPAULO-IN permit 1
router-SP(config-route-map)#set community 28135:1111 additive
...
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 419
 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 t
router-CampinaGrande(config)#route-map PTT-CAMPINAGRANDE-IN permit 1
router-CampinaGrande(config-route-map)#set community 28135:2222 additive
Router(config)#ip community-list 70 permit 28135:1111
Router(config)#ip community-list 70 permit 28135:2222
!
router(config)#route-map CLIENTE-OUT permit 10
router(config-route-map)#match community 70 
7.1 – Manipulando Rotas com Múltiplos Ptts
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 420
Downstreams comDownstreams com
 Multihoming Multihoming
7.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 421
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.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 422
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 423
 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 10
router(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 AS20
!--- voltamos no mesmo route-map
router(config)#route-map ANUNCIAR-AS-XXX permit 10
!--- e adicionamos a condição
router(config-route-map)#match as-path 33
7.2 – Downtreams com Multihoming
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 424
 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 24
router-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 10
router-quagga(config-route-map)#match ip address prefix-list BLOCOS-AS-20
router-quagga(config-route-map)#match as-path PATH-AS-20
7.2 – Downtreams com Multihoming
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 425
7.3
AS de Trânsito no PTT
parte I
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 426
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 t
AS-X-R1(config)#router bgp X
!--- como os 2 neighbors terão as mesmas configurações, criaremos um peer-group
AS-X-R1(config-router)#no bgp enforce-first-as
AS-X-R1(config-router)#neighbor PTT peer-group 
AS-X-R1(config-router)#neighbor PTT remote-as 555
AS-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 neighbors
AS-X-R1(config-router)#neighbor 187.16.216.253 peer-group PTT
AS-X-R1(config-router)#neighbor 187.16.216.253 description PTT RS 1
!--- ptt-rs1
AS-X-R1(config-router)#neighbor 187.16.216.254 peer-group PTT
AS-X-R1(config-router)#neighbor 187.16.216.254 description PTT RS 2
!--- ptt-rs2
AS-X-R1(config-router)#neighbor 187.16.216.252 remote-as 555
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 427
 ...BGP com PTT...
 AS-X-R1
!--- continuando...
!--- vamos declarar em networks os prefixos mais específicos
AS-X-R1(config-router)#network X.0.0.0 mask 255.128.0.0
AS-X-R1(config-router)#network X.128.0.0 mask 255.128.0.0
AS-X-R1(config-router)#exit
AS-X-R1(config)#ip route X.0.0.0 255.128.0.0 null 0
AS-X-R1(config)#ip route X.128.0.0 255.128.0.0 null 0
!--- depois garantimos os dois blocos específicos (/9) na FIB
AS-X-R1(config)#end
AS-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 IP
AS-X-R1(config)#interface fastEthernet 0/1
AS-X-R1(config-if)#no ip address
AS-X-R1(config-if)#exit
!--- Em seguida levante o IP de participante na interface correta
AS-X-R1(config)#interface fastEthernet 0/0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 428
 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 criados
AS-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 PTT
AS-X-R1(config)#route-map PTT-IN permit 10
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 429
 Configurando as políticas de route-map para o PTT
 AS-X-R1
(...continuação)
AS-X-R1(config)#route-map PTT-OUT permit 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R1(config-route-map)#match as-path 10
!--- libera os blocos do AS local X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map PTT-OUT permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14X
AS-X-R1(config-route-map)#match as-path 20
!--- libera os blocos do DOWNSTREAM 1
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map PTT-OUT permit 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 430
 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 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R1(config-route-map)#match as-path 10
!--- libera os blocos do AS local X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14X
AS-X-R1(config-route-map)#match as-path 20
!--- libera os blocos do DOWNSTREAM 1
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15X
AS-X-R1(config-route-map)#match as-path 30
!--- libera os blocos do DOWNSTREAM 2
AS-X-R1(config-route-map)#end
AS-X-R1#clear ip bgp * soft
7.3 - AS de Trânsito no PTT – parte I
LAB 2-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 431
 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 criados
AS-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 10
AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R2(config-route-map)#match as-path 10
!--- libera os blocos do AS local X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map ANUNCIAR-AS-200 permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14X
AS-X-R1(config-route-map)#match as-path 20
!--- libera os blocos do DOWNSTREAM 1
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map ANUNCIAR-AS-200 permit 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15X
AS-X-R1(config-route-map)#match as-path 30
!--- libera os blocos do DOWNSTREAM 2
AS-X-R1(config-route-map)#end
AS-X-R1#clear ip bgp * soft
7.3 - AS de Trânsito no PTT – parte I
LAB 2-3-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 432
 Todos esses route-maps podem deixara 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/8
AS-X-R1(config)#ip as-path access-list 20 permit ^(14X ?)+( 88)+$
AS-X-R1#show running-config | begin BLOCOS-AS-14X
ip prefix-list BLOCOS-AS-11x seq 5 permit 14X.0.0.0/8
ip prefix-list BLOCOS-AS-11x seq 10 permit 88.0.0.0/8
!
7.3 - AS de Trânsito no PTT – parte I
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 433
 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-100
route-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 434
 A configuração nos DOWNSTREAMS é muito mais simples:
 AS-14X-R1
AS-14X-R1#conf t
AS-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 0
AS-14X-R1(config)#ip route 14X.0.0.0 255.128.0.0 null 0
AS-14X-R1(config)#router bgp 14X
AS-14X-R1(config-router)#no bgp enforce-first-as
AS-14X-R1(config-router)#network 14X.0.0.0 mask 255.128.0.0
AS-14X-R1(config-router)#network 14X.128.0.0 mask 255.128.0.0
AS-14X-R1(config-router)#neighbor PTT peer-group 
AS-14X-R1(config-router)#neighbor PTT remote-as 555
AS-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 50
AS-14X-R1(config-router)#neighbor PTT send-community both 
AS-14X-R1(config-router)#neighbor 187.16.216.253 peer-group PTT
AS-14X-R1(config-router)#neighbor 187.16.216.253 description PTT RS 1
AS-14X-R1(config-router)#neighbor 187.16.216.254 peer-group PTT
AS-14X-R1(config-router)#neighbor 187.16.216.254 description PTT RS 2
AS-14X-R1(config-router)#neighbor 187.16.216.252 remote-as 555
AS-14X-R1(config-router)#neighbor 187.16.216.252 description LG do PTT
AS-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-R4
AS-14X-R1(config)#interface fastEthernet 0/0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 435
 Seguimos a mesma lógica para o segundo DOWNSTREAM
 AS-15X-R1
AS-15X-R1#conf t
AS-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 0
AS-15X-R1(config)#ip route 15X.0.0.0 255.128.0.0 null 0
AS-15X-R1(config)#router bgp 15X
AS-15X-R1(config-router)#no bgp enforce-first-as
AS-15X-R1(config-router)#network 15X.0.0.0 mask 255.128.0.0
AS-15X-R1(config-router)#network 15X.128.0.0 mask 255.128.0.0
AS-15X-R1(config-router)#neighbor PTT peer-group 
AS-15X-R1(config-router)#neighbor PTT remote-as 555
AS-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 50
AS-15X-R1(config-router)#neighbor PTT send-community both 
AS-15X-R1(config-router)#neighbor 187.16.216.253 peer-group PTT
AS-15X-R1(config-router)#neighbor 187.16.216.253 description PTT RS 1
AS-15X-R1(config-router)#neighbor 187.16.216.254 peer-group PTT
AS-15X-R1(config-router)#neighbor 187.16.216.254 description PTT RS 2
AS-15X-R1(config-router)#neighbor 187.16.216.252 remote-as 555
AS-15X-R1(config-router)#neighbor 187.16.216.252 description LG do PTT
AS-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 PTT
AS-15X-R1(config)#interface fastEthernet 0/0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 436
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 437
Configurando um Transporte 
Lan2Lan com xconnect/L2TP
7.4
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 438
7.4 – Configurando um Transporte 
Lan2Lan com xconnect/L2TP
AS-X-R4(config)#l2tp-class transporte-l2
AS-X-R4(config-l2tp-class)#cookie size 4
AS-X-R4(config-l2tp-class)#exit
!--- Declaramos uma class e demos o nome de “transporte-l2”
AS-X-R4(config)#pseudowire-class transporte-l2
AS-X-R4(config-pw-class)#encapsulation l2tpv3
AS-X-R4 (config-pw-class)#protocol none
AS-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/0
AS-X-R4(config)#no shut
AS-X-R4(config-if)#xconnect X.0.0.1 14X encapsulation l2tpv3 manual pw-class transporte-l2
AS-X-R4(config-if-xconn)#l2tp id 1 1
AS-X-R4(config-if-xconn)#l2tp cookie local 4 1
AS-X-R4(config-if-xconn)# l2tp cookie remote 4 1
LAB 2-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 439
7.4 – Configurando um Transporte 
Lan2Lan com xconnect/L2TP
AS-X-R1(config)#l2tp-class transporte-l2
AS-X-R1(config-l2tp-class)#cookie size 4
AS-X-R1(config-l2tp-class)#exit
!--- Declaramos uma class e demos o nome de “transporte-l2”
AS-X-R1(config)#pseudowire-class transporte-l2
AS-X-R1(config-pw-class)#encapsulation l2tpv3
AS-X-R1 (config-pw-class)#protocol none
AS-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/0
AS-X-R1(config)#no shut
AS-X-R1(config-if)#xconnect X.0.0.4 14X encapsulation l2tpv3 manual pw-class transporte-l2
AS-X-R1(config-if-xconn)#l2tp id 1 1
AS-X-R1(config-if-xconn)#l2tp cookie local 4 1
AS-X-R1(config-if-xconn)# l2tp cookie remote 4 1
LAB 2-4-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 440
7.4 – Configurando um Transporte 
Lan2Lan com xconnect/L2TP
AS-X-R1#sh l2tun 
%No active L2F tunnels
L2TP Tunnel and Session Information Total tunnels 0 sessions 1
LocID 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 tunnels
L2TP Tunnel and Session Information Total tunnels 0 sessions 1
LocID 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 441
 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 prefixosque 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 442
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 443
 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 t
AS-X-R1(config)#ip as-path access-list 55 seq 1 permit _14X_
AS-X-R1(config)#ip as-path access-list 55 seq 2 permit _15X_
AS-X-R1(config)#ip as-path access-list 55 seq 99 permit .*
AS-X-R1(config)#route-map PTT-IN deny 5
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 444
 Vamos efetuar novamente o traceroute partindo de AS-110-R1...
7.5 - AS de Trânsito no PTT – parte II
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 445
PERGUNTAS?PERGUNTAS?
7.5
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 446
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 447
8.0
Multiprotocol 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)
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 448
BGP Através da Nuvem MPLS BGP Através da Nuvem MPLS 
(BGP Multiprotocol)(BGP Multiprotocol)
8.1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 449
8.1 – BGP através da nuvem MPLS
AS-X-R3(config)#no router bgp X
AS-X-R3(config)#interface serial 1/0
AS-X-R3(config-if)#mpls label protocol both
AS-X-R3(config-if)#mpls ip
AS-X-R3(config-if)#mpls mtu 1508
AS-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.exit
AS-X-R3(config-if)#exit
!--- Configurando LDP com R1
AS-X-R3(config)#interface serial 1/1
AS-X-R3(config-if)#mpls label protocol both
AS-X-R3(config-if)#mpls ip
AS-X-R3(config-if)#mpls mtu 1508
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 450
8.1 – BGP através da nuvem MPLS
(...)
AS-X-R3(config)#interface serial 1/2
AS-X-R3(config-if)#mpls label protocol both
AS-X-R3(config-if)#mpls ip
AS-X-R3(config-if)#mpls mtu 1508
AS-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 R3
AS-X-R3(config)#interface serial 1/3
AS-X-R3(config-if)#mpls label protocol both
AS-X-R3(config-if)#mpls ip
AS-X-R3(config-if)#mpls mtu 1508
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 451
8.1 – BGP através da nuvem MPLS
AS-X-R1(config)#interface serial 1/1
AS-X-R1(config-if)#mpls ip
AS-X-R1(config-if)#
*Mar 1 00:18:23.703: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UP
AS-X-R1(config-if)#mpls mtu 1508
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 452
8.1 – BGP através da nuvem MPLS
AS-X-R2(config)#interface serial 1/1
AS-X-R2(config-if)#mpls ip
AS-X-R2(config-if)#
*Mar 1 00:21:55.943: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UP
AS-X-R2(config-if)#mpls mtu 1508
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 453
8.1 – BGP através da nuvem MPLS
AS-X-R4(config)#interface serial 1/0
AS-X-R4(config-if)#mpls ip
*Mar 1 00:25:20.579: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UP
AS-X-R4(config-if)#
AS-X-R4(config-if)#mpls mtu 1508
AS-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 R3
AS-X-R4(config)#interface serial 1/2
AS-X-R4(config-if)#mpls ip
AS-X-R4(config-if)#exit
!--- Configurando LDP com R5
LAB 2-5-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 454
8.1 – BGP através da nuvem MPLS
AS-X-R5(config)#interface serial 1/0
AS-X-R5(config-if)#mpls ip
AS-X-R5(config-if)#
*Mar 1 00:29:54.579: %LDP-5-NBRCHG: LDP Neighbor X.0.0.3:0 (1) is UP
AS-X-R5(config-if)#mpls mtu 1508
AS-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 R3
AS-X-R5(config)#interface serial 1/2
AS-X-R5(config-if)#mpls ip
AS-X-R5(config-if)#
*Mar 1 00:30:59.891: %LDP-5-NBRCHG: LDP Neighbor X.0.0.4:0 (2) is UP
AS-X-R5(config-if)#exit
!--- Configurando LDP com R4
LAB 2-5-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 455
 Configurando iBGP entre R1-R2, R1-R4 e R1-R5:
AS-X-R1#conf t 
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor X.0.0.2 remote-as X
AS-X-R1(config-router)#neighbor X.0.0.2 update-source loopback 0
AS-X-R1(config-router)#neighbor X.0.0.2 next-hop-self
AS-X-R1(config-router)#neighbor X.0.0.2 route-reflector-client
!--- Configurando iBGP padrão com R2
AS-X-R1(config-router)#neighbor X.0.0.4 remote-as X
AS-X-R1(config-router)#neighbor X.0.0.4 update-source loopback 0
AS-X-R1(config-router)#neighbor X.0.0.4 next-hop-self
AS-X-R1(config-router)#neighbor X.0.0.4 route-reflector-client
!--- Configurando iBGP padrão com R4
AS-X-R1(config-router)#neighbor X.0.0.5 remote-as X
AS-X-R1(config-router)#neighbor X.0.0.5 update-source loopback 0
AS-X-R1(config-router)#neighbor X.0.0.5 next-hop-self
AS-X-R1(config-router)#neighbor X.0.0.5 route-reflector-client
!--- Configurando iBGP padrão com R5
(...)
8.1 – BGP atravésda nuvem MPLS
LAB 2-1-1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 456
 Configurando Multiprotocol BGP entre R1-R2, R1-R4 e R1-R5:
(...)
AS-X-R1(config-router)#address-family vpnv4
!--- Entra no address family VPNv4
AS-X-R1(config-router-af)#neighbor X.0.0.2 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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 estendida
AS-X-R1(config-router-af)#neighbor X.0.0.4 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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 estendida
AS-X-R1(config-router-af)#neighbor X.0.0.5 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 457
 Configurando iBGP entre R2-R1, R2-R4 e R2-R5:
AS-X-R2#conf t 
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#neighbor X.0.0.1 remote-as X
AS-X-R2(config-router)#neighbor X.0.0.1 update-source loopback 0
AS-X-R2(config-router)#neighbor X.0.0.1 next-hop-self
AS-X-R2(config-router)#neighbor X.0.0.1 route-reflector-client
!--- Configurando iBGP padrão com R2
AS-X-R2(config-router)#neighbor X.0.0.4 remote-as X
AS-X-R2(config-router)#neighbor X.0.0.4 update-source loopback 0
AS-X-R2(config-router)#neighbor X.0.0.4 next-hop-self
AS-X-R2(config-router)#neighbor X.0.0.4 route-reflector-client
!--- Configurando iBGP padrão com R4
AS-X-R2(config-router)#neighbor X.0.0.5 remote-as X
AS-X-R2(config-router)#neighbor X.0.0.5 update-source loopback 0
AS-X-R2(config-router)#neighbor X.0.0.5 next-hop-self
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 458
 Configurando Multiprotocol BGP entre R2-R1, R2-R4 e R2-R5:
(...)
AS-X-R2(config-router)#address-family vpnv4
!--- Entra no address family VPNv4
AS-X-R2(config-router-af)#neighbor X.0.0.1 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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 estendida
AS-X-R2(config-router-af)#neighbor X.0.0.4 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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 estendida
AS-X-R2(config-router-af)#neighbor X.0.0.5 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 459
 Configurando iBGP entre R4-R1 e R4-R2
AS-X-R4#conf t 
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#neighbor X.0.0.1 remote-as X
AS-X-R4(config-router)#neighbor X.0.0.1 update-source loopback 0
AS-X-R4(config-router)#neighbor X.0.0.1 next-hop-self
!--- Configurando iBGP padrão com R1
AS-X-R4(config-router)#neighbor X.0.0.2 remote-as X
AS-X-R4(config-router)#neighbor X.0.0.2 update-source loopback 0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 460
 Configurando Multiprotocol BGP entre R4-R1 R4-R2:
(...)
AS-X-R4(config-router)#address-family vpnv4
!--- Entra no address family VPNv4
AS-X-R4(config-router-af)#neighbor X.0.0.1 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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 estendida
AS-X-R4(config-router-af)#neighbor X.0.0.2 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 461
 Configurando iBGP entre R5-R1 e R5-R2
AS-X-R5#conf t 
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#neighbor X.0.0.1 remote-as X
AS-X-R5(config-router)#neighbor X.0.0.1 update-source loopback 0
AS-X-R5(config-router)#neighbor X.0.0.1 next-hop-self
!--- Configurando iBGP padrão com R1
AS-X-R5(config-router)#neighbor X.0.0.2 remote-as X
AS-X-R5(config-router)#neighbor X.0.0.2 update-source loopback 0
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 462
 Configurando Multiprotocol BGP entre R5-R1 R5-R2:
(...)
AS-X-R5(config-router)#address-family vpnv4
!--- Entra no address family VPNv4
AS-X-R5(config-router-af)#neighbor X.0.0.1 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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 estendida
AS-X-R5(config-router-af)#neighbor X.0.0.2 activate 
!--- Adiciona esse neighbor ao modo VPNv4
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 463
 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 msec
AS-14X-R1#
8.1 – BGP através da nuvem MPLS
LAB 2-5-10
AS-X-R3#sh ip bgp 
% BGP not active
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 464
PERGUNTAS?PERGUNTAS?
8.1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 465
8.2 AtoM - Any Transport Over MPLS
LAB 2-5-10
Cenário:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 466
AToM AToM 
 Any Trasnport Over MPLS Any Trasnport Over MPLS
8.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 467
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 mpls
AS-X-R1(config-pw-class)#exit 
AS-X-R1(config)#interface fastEthernet 0/1
AS-X-R1(config-if)#no shutdown
AS-X-R1(config-if)#no ip address
AS-X-R1(config-if)#xconnect X.0.0.2 999 pw-class VPN-AS141R2-TO-AS151R2
AS-X-R1(config-if-xconn)#end
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 468
8.2 AtoM - Any Transport Over MPLS
LAB 2-5-10
AS-X-R2(config)#pseudowire-class VPN-AS141R2-TO-AS151R2
AS-X-R2(config-pw-class)#encapsulation mpls 
AS-X-R2(config-pw-class)#exit
AS-X-R2(config)#interface fastEthernet 0/1
AS-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-AS151R2
AS-X-R2(config-if-xconn)#end
AS-X-R2#show xconnect all 
Legend: XC ST=Xconnect State, S1=Segment1 State, S2=Segment2 State
UP=Up, DN=Down, AD=Admin Down, IA=Inactive, NH=No Hardware
XC ST Segment 1 S1 Segment 2 S2
------+---------------------------------+--+---------------------------------+--
UP ac Fa0/1(Ethernet) UP mpls X.0.0.1:999 UP
AS-X-R2#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 469
8.2 AtoM - Any Transport Over MPLS
LAB 2-5-10
AS-14X-R2#conf t
AS-14X-R2(config)#interface fastEthernet 0/0
AS-14X-R2(config-if)#no shut
AS-14X-R2(config-if)#ip address 172.16.0.1 255.255.255.0
AS-14X-R2(config-if)#exitAS-14X-R2(config)#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 470
8.2 AtoM - Any Transport Over MPLS
LAB 2-5-10
AS-15X-R2#conf t
AS-15X-R2(config)#interface fastEthernet 0/0
AS-15X-R2(config-if)#no shut
AS-15X-R2(config-if)#ip address 172.16.0.2 255.255.255.0
AS-15X-R2(config-if)#end
AS-15X-R2#ping
AS-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 ms
AS-15X-R2#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 471
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 Interface
Internet 172.16.0.1 - c20c.0c08.0000 ARPA FastEthernet0/0
Internet 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 Interface
Internet 172.16.0.1 3 c20c.0c08.0000 ARPA FastEthernet0/0
Internet 172.16.0.2 - c20e.0c08.0000 ARPA FastEthernet0/0
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 472
PERGUNTAS?PERGUNTAS?
8.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 473
Implementando serviço Implementando serviço 
VPN-Layer 3 VPN-Layer 3 
(MPLS-VPN)(MPLS-VPN)
8.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 474
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
Novamente o mesmo cenário
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 475
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R1#conf t
AS-X-R1(config)#ip vrf vpn-as14X
AS-X-R1(config-vrf)#rd X:14X 
AS-X-R1(config-vrf)#route-target export X:14X
AS-X-R1(config-vrf)#route-target import X:14X
AS-X-R1(config-vrf)#exit
AS-X-R1(config)#interface serial 1/2
AS-X-R1(config-if)#no shutdown 
AS-X-R1(config-if)#ip vrf forwarding vpn-as14X
AS-X-R1(config-if)#ip address X.14X.2.1 255.255.255.252
AS-X-R1(config-if)#end
AS-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 ms
AS-X-R1#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 476
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#address-family ipv4 vrf vpn-as14X
AS-X-R1(config-router-af)#redistribute connected 
AS-X-R1(config-router-af)#neighbor X.14X.2.2 remote-as 6514X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 477
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R2#conf t
AS-X-R2(config)#ip vrf vpn-as15X
AS-X-R2(config-vrf)#rd X:15X
AS-X-R2(config-vrf)#route-target export X:15X
AS-X-R2(config-vrf)#route-target import X:15X
AS-X-R2(config-vrf)#exit
AS-X-R2(config)#interface serial 1/2
AS-X-R2(config-if)#no shut
AS-X-R2(config-if)#ip vrf forwarding vpn-as15X
AS-X-R2(config-if)#ip address X.15X.2.1 255.255.255.252
AS-X-R2(config-if)#end
AS-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 ms
AS-X-R2#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 478
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R2#conf t
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#address-family ipv4 vrf vpn-as15X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 479
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-14X-R2#conf t
AS-14X-R2(config)#router bgp 6514X
AS-14X-R2(config-router)#network 192.168.0.0 mask 255.255.255.0
AS-14X-R2(config-router)#neighbor X.14X.2.1 remote-as X
AS-14X-R2(config-router)#exit
AS-14X-R2(config)#interface loopback 1
AS-14X-R2(config-if)#ip address 192.168.0.1 255.255.255.0
AS-14X-R2(config-if)#end
AS-14X-R2#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 480
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-15X-R2#conf t
AS-15X-R2(config)#router bgp 6515X
AS-15X-R2(config-router)#network 192.168.0.0 mask 255.255.255.0
AS-15X-R2(config-router)#neighbor X.15X.2.1 remote-as X
AS-15X-R2(config-router)#exit
AS-15X-R2(config)#interface loopback 1
AS-15X-R2(config-if)#ip address 192.168.0.1 255.255.255.0
AS-15X-R2(config-if)#end
AS-15X-R2#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 481
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R4#conf t
AS-X-R4(config)#ip vrf vpn-as14X
AS-X-R4(config-vrf)#rd X:14X
AS-X-R4(config-vrf)#route-target export X:14X
AS-X-R4(config-vrf)#route-target import X:14X
AS-X-R4(config-vrf)#exit
AS-X-R4(config)#interface serial 1/1
AS-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-as14X
AS-X-R4(config-if)#ip address X.14X.4.1 255.255.255.252
AS-X-R4(config-if)#end
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 482
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R4#conf t
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#address-family ipv4 vrf vpn-as14X
AS-X-R4(config-router-af)#redistribute connected 
AS-X-R4(config-router-af)#neighbor X.14X.4.2 remote-as 6414X
AS-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)#end
AS-X-R4#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 483
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-14X-R1(config)#no router bgp 14X
AS-14X-R1(config)#router bgp 6414X
AS-14X-R1(config-router)#network 172.16.0.0 mask 255.255.255.0
AS-14X-R1(config-router)#neighbor X.14X.4.1 remote-as X
AS-14X-R1(config-router)#exit
AS-14X-R1(config)#interface loopback 1
AS-14X-R1(config-if)#ip address 172.16.0.1 255.255.255.0
AS-14X-R1(config-if)#end
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 484
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.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 Network Next Hop Metric LocPrf Weight Path
*> 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 485
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
v2.2 *beta3 | Autor: RinaldoVaz | rinaldopvaz@gmail.com 486
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R5#conf t
AS-X-R5(config)#ip vrf vpn-as15X
AS-X-R5(config-vrf)#rd X:15X
AS-X-R5(config-vrf)#route-target export X:15X
AS-X-R5(config-vrf)#route-target import X:15X 
AS-X-R5(config-vrf)#exit
AS-X-R5(config)#interface serial 1/1
AS-X-R5(config-if)#no shutdown 
AS-X-R5(config-if)#ip vrf forwarding vpn-as15X
AS-X-R5(config-if)#ip address X.15X.5.1 255.255.255.252
AS-X-R5(config-if)#end
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 487
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R5#conf t
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#address-family ipv4 vrf vpn-as15X
AS-X-R5(config-router-af)#redistribute connected
AS-X-R5(config-router-af)#neighbor X.15X.5.2 remote-as 6415X
AS-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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 488
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-15X-R1(config)#no router bgp 15X
AS-15X-R1(config)#router bgp 6415X
AS-15X-R1(config-router)#network 172.16.0.0 mask 255.255.255.0
AS-15X-R1(config-router)#neighbor X.15X.5.1 remote-as X
AS-15X-R1(config-router)#exit
AS-15X-R1(config)#interface loopback 1
AS-15X-R1(config-if)#ip address 172.16.0.1 255.255.255.0
AS-15X-R1(config-if)#end
AS-15X-R1#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 489
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.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 Network Next Hop Metric LocPrf Weight Path
*> 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 490
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 msec
AS-15X-R1#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 491
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R1#sh ip bgp vpnv4 vrf vpn-as14X
BGP table version is 10, local router ID is X.0.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 Network Next Hop Metric LocPrf Weight Path
Route 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 492
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R1#sh ip bgp vpnv4 vrf vpn-as14X 172.16.0.0
BGP routing table entry for X:14X:172.16.0.0/24, version 10
Paths: (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/25
AS-X-R1#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 493
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#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 494
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.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
 Network Next Hop Metric LocPrf Weight Path
Route 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 495
8.3 Implementando serviço VPN-L3 
LAB 2-5-10
AS-X-R2#sh ip bgp vpnv4 vrf vpn-as15X 172.16.0.0
BGP routing table entry for X:15X:172.16.0.0/24, version 9
Paths: (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/24
AS-X-R2#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 496
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#
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 497
PERGUNTAS?PERGUNTAS?
8.3
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 498
MATERIAL
EXTRAO 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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 499
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 rinaldopvaz@gmail.com.
http://creativecommons.org/choose/anid.com.br/cursobgp
http://creativecommons.org/licenses/by/3.0/
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 500
9.0
Mecanismos de Path 
Control
8. 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
http://www.robertomendonca.com.br/
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 501
 Mecanismos de Path Control
 Path Control são mecanismos que mudam o encaminhamento
padrã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 de
comandos que são ativados para manipular a tabela de
encaminhamento de um protocolo de roteamento ou bypass o
encaminhamento padrão de um pacote.
 Esta manipulação de informações de roteamento pode ser
requerida para obter melhor desempenho.
9.1 PBR – Policy Based Routing
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 502
 Alguns Tópicos para Implementar Path Control 
– PBR – Policy-Based Routing;
– IP SLA Tool (Service Level Agreements)
9.1 PBR – Policy Based Routing
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 503
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 504
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 505
 Um exemplo genérico de aplicação de PBRs pode ser visto na figura 
abaixo:
9.1 PBR – Policy Based Routing
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 506
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 507
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 508
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 509
 Exemplo padrão:
9.1 PBR – Policy Based Routing
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 510
 PBR para que pacotes originados pelo PC2 sigam via R3:
9.1 PBR – Policy Based Routing
PBR Aplicada para origem
 10.1.1.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 511
 Configurações:
9.1 PBR – Policy Based Routing
R1(config)#interface F0/0
R1(config-if)#ip policy route-map PC2-via-R3
R1(config-if)#exit
R1(config)#route-map PC2-via-R3 permit 10
R1(config-route-map)#match ip address 101
R1(config-route-map)#set ip next-hop 10.1.14.4
R1(config-route-map)#exit
R1(config-if)#access-list 101 permit ip host 10.1.1.2 10.1.3.0 0.0.0.255
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 512
PERGUNTAS?PERGUNTAS?
9.1
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 513
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 514
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 515
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 516
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 517
 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 t
R3(config)#ip sla {monitor} responder
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 518
 Verificando:
9.2 IP SLA Tool
R3#show ip sla responder
IP SLAs Responder is: Enabled
Number of Control Message received: 0 Number os errors:0
Recent Sources:
Recent error sources:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 519
 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} 1
R1(config-ip-sla)#{type} udp-echo 150.1.3.3 1234
R1(config-ip-sla-udp)#frequency 30
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 520
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 521
 Vamos observar como estão as coisas em R1, nosso transmitter:
9.2 IP SLA Tool
R1#show ip sla {monitor} configuration 1
IP SLAs, Infrastructure Engine-II.
Entry number: 1
Owner:
Tag:
Type of operation to perform: udp-echo
Target address/Source address: 150.1.3.3/0.0.0.0
Target port/Source port: 1234/0
Request size (ARR data portion): 16
Operation timeout (milliseconds): 5000
Operation frequency (seconds): 30 (not considered if randomly scheduled)
Next Scheduled Start Time: Start Time already passed
Threshold (milliseconds): 5000
Distribution Statistics:
[...]
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 522
 Vamos observar como está do lado do responder (R3):
9.2 IP SLA Tool
R3#show ip sla responder
IP SLAs Responder is: Enabled
Number of control message received: 9 Number of errors: 0
Recent 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:
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 523
 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 t
R1(config)#track 1 rtr 1 state
R1(config-track)#exit
R1(config)#ip route 123.123.123.0 255.255.255.0 192.168.12.2 track 1
R1#sh ip route static
123.0.0.0/24 is subnetted, 1 subnets
S 123.123.123.0 [1/0] via 192.168.12.2
R1(config)#ip sla {monitor} 1
R1(config-ip-sla)#{type} udp-echo 123.123.123.3 1234
R1(config-ip-sla-udp)#frequency 30
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 524
 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 l0
R3(config-if)#shutdown
R3(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->Down
R1#sh ip sla statistics 1
Round Trip Time (RTT) for Index 1
Latest RTT: NoConnection/Busy/Timeout
Latest operation start time: *00:15:23.031 UTC Mon Jul 28 2008
Latest operation return code: No connection
Number of successes: 9
Number of failures: 1
Operation time to live: Forever
R1#sh ip route 123.123.123.0
% Network not in table
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 525
 É 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”.
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 526
PERGUNTAS?PERGUNTAS?
9.2
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 527
MUITO OBRIGADO!!MUITO OBRIGADO!!
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 528
 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: rinaldopvaz@gmail.com
 Autor: Rinaldo Vaz
Posfácio
mailto:rinaldopvaz@gmail.com
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 529
 Mudanças previstas na versão 2.2 final
Previsão de lançamento: 4/1/2013
 Mais conteúdo
 Cap 8
✔ Textos explicativos e figuras em todo o capítulo sobre MPLS, que até a 
versão atual 2.2*beta3 só tem os comandos necessários
 Subcapítulo: “Filma eu Galvão”
✔ Contribuições enviadas por alunos que participaram do cursos anteriores
Errata
ATENÇÃO!
TODAS AS VERSÕES ANTERIORES A ESSA SÃO CONSIDERADAS OBSOLETAS
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 530
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 531
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 532
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 533
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 534
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 535
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 536
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 537
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 538
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 539
 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..."
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 540
 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]+)$
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 541
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 542
 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
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 543
 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"
v2.2 *beta3 | Autor: Rinaldo Vaz | rinaldopvaz@gmail.com 544
 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
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73
	Slide 74
	Slide 75
	Slide 76
	Slide 77
	Slide 78
	Slide 79
	Slide 80
	Slide 81
	Slide 82
	Slide 83
	Slide 84
	Slide 85
	Slide 86
	Slide 87
	Slide 88
	Slide 89
	Slide 90
	Slide 91
	Slide 92
	Slide 93
	Slide 94
	Slide 95
	Slide 96
	Slide 97
	Slide 98
	Slide 99
	Slide 100
	Slide 101
	Slide 102
	Slide 103
	Slide 104
	Slide 105
	Slide 106
	Slide 107
	Slide 108
	Slide 109
	Slide 110
	Slide 111
	Slide 112
	Slide 113
	Slide 114
	Slide 115
	Slide 116
	Slide 117
	Slide 118
	Slide 119
	Slide 120
	Slide 121
	Slide 122
	Slide 123
	Slide 124
	Slide 125
	Slide 126
	Slide 127
	Slide 128
	Slide 129
	Slide 130
	Slide 131
	Slide 132
	Slide 133
	Slide 134
	Slide 135
	Slide 136
	Slide 137
	Slide 138
	Slide 139
	Slide 140
	Slide 141
	Slide 142
	Slide 143
	Slide 144
	Slide 145
	Slide 146
	Slide 147
	Slide 148
	Slide 149
	Slide 150
	Slide 151
	Slide152
	Slide 153
	Slide 154
	Slide 155
	Slide 156
	Slide 157
	Slide 158
	Slide 159
	Slide 160
	Slide 161
	Slide 162
	Slide 163
	Slide 164
	Slide 165
	Slide 166
	Slide 167
	Slide 168
	Slide 169
	Slide 170
	Slide 171
	Slide 172
	Slide 173
	Slide 174
	Slide 175
	Slide 176
	Slide 177
	Slide 178
	Slide 179
	Slide 180
	Slide 181
	Slide 182
	Slide 183
	Slide 184
	Slide 185
	Slide 186
	Slide 187
	Slide 188
	Slide 189
	Slide 190
	Slide 191
	Slide 192
	Slide 193
	Slide 194
	Slide 195
	Slide 196
	Slide 197
	Slide 198
	Slide 199
	Slide 200
	Slide 201
	Slide 202
	Slide 203
	Slide 204
	Slide 205
	Slide 206
	Slide 207
	Slide 208
	Slide 209
	Slide 210
	Slide 211
	Slide 212
	Slide 213
	Slide 214
	Slide 215
	Slide 216
	Slide 217
	Slide 218
	Slide 219
	Slide 220
	Slide 221
	Slide 222
	Slide 223
	Slide 224
	Slide 225
	Slide 226
	Slide 227
	Slide 228
	Slide 229
	Slide 230
	Slide 231
	Slide 232
	Slide 233
	Slide 234
	Slide 235
	Slide 236
	Slide 237
	Slide 238
	Slide 239
	Slide 240
	Slide 241
	Slide 242
	Slide 243
	Slide 244
	Slide 245
	Slide 246
	Slide 247
	Slide 248
	Slide 249
	Slide 250
	Slide 251
	Slide 252
	Slide 253
	Slide 254
	Slide 255
	Slide 256
	Slide 257
	Slide 258
	Slide 259
	Slide 260
	Slide 261
	Slide 262
	Slide 263
	Slide 264
	Slide 265
	Slide 266
	Slide 267
	Slide 268
	Slide 269
	Slide 270
	Slide 271
	Slide 272
	Slide 273
	Slide 274
	Slide 275
	Slide 276
	Slide 277
	Slide 278
	Slide 279
	Slide 280
	Slide 281
	Slide 282
	Slide 283
	Slide 284
	Slide 285
	Slide 286
	Slide 287
	Slide 288
	Slide 289
	Slide 290
	Slide 291
	Slide 292
	Slide 293
	Slide 294
	Slide 295
	Slide 296
	Slide 297
	Slide 298
	Slide 299
	Slide 300
	Slide 301
	Slide 302
	Slide 303
	Slide 304
	Slide 305
	Slide 306
	Slide 307
	Slide 308
	Slide 309
	Slide 310
	Slide 311
	Slide 312
	Slide 313
	Slide 314
	Slide 315
	Slide 316
	Slide 317
	Slide 318
	Slide 319
	Slide 320
	Slide 321
	Slide 322
	Slide 323
	Slide 324
	Slide 325
	Slide 326
	Slide 327
	Slide 328
	Slide 329
	Slide 330
	Slide 331
	Slide 332
	Slide 333
	Slide 334
	Slide 335
	Slide 336
	Slide 337
	Slide 338
	Slide 339
	Slide 340
	Slide 341
	Slide 342
	Slide 343
	Slide 344
	Slide 345
	Slide 346
	Slide 347
	Slide 348
	Slide 349
	Slide 350
	Slide 351
	Slide 352
	Slide 353
	Slide 354
	Slide 355
	Slide 356
	Slide 357
	Slide 358
	Slide 359
	Slide 360
	Slide 361
	Slide 362
	Slide 363
	Slide 364
	Slide 365
	Slide 366
	Slide 367
	Slide 368
	Slide 369
	Slide 370
	Slide 371
	Slide 372
	Slide 373
	Slide 374
	Slide 375
	Slide 376
	Slide 377
	Slide 378
	Slide 379
	Slide 380
	Slide 381
	Slide 382
	Slide 383
	Slide 384
	Slide 385
	Slide 386
	Slide 387
	Slide 388
	Slide 389
	Slide 390
	Slide 391
	Slide 392
	Slide 393
	Slide 394
	Slide 395
	Slide 396
	Slide 397
	Slide 398
	Slide 399
	Slide 400
	Slide 401
	Slide 402
	Slide 403
	Slide 404
	Slide 405
	Slide 406
	Slide 407
	Slide 408
	Slide 409
	Slide 410
	Slide 411
	Slide 412
	Slide 413
	Slide 414
	Slide 415
	Slide 416
	Slide 417
	Slide 418
	Slide 419
	Slide 420
	Slide 421
	Slide 422
	Slide 423
	Slide 424
	Slide 425
	Slide 426
	Slide 427
	Slide 428
	Slide 429
	Slide 430
	Slide 431
	Slide 432
	Slide 433
	Slide 434
	Slide 435
	Slide 436
	Slide 437
	Slide 438
	Slide 439
	Slide 440
	Slide 441
	Slide 442
	Slide 443
	Slide 444
	Slide 445
	Slide 446
	Slide 447
	Slide 448
	Slide 449
	Slide 450
	Slide 451
	Slide 452
	Slide 453
	Slide 454
	Slide 455
	Slide 456
	Slide 457
	Slide 458
	Slide 459
	Slide 460
	Slide 461
	Slide 462
	Slide 463
	Slide 464
	Slide 465
	Slide 466
	Slide 467
	Slide 468
	Slide 469
	Slide 470
	Slide 471
	Slide 472
	Slide 473
	Slide 474
	Slide 475
	Slide 476
	Slide 477
	Slide 478
	Slide 479
	Slide 480
	Slide 481
	Slide 482
	Slide 483
	Slide 484
	Slide 485
	Slide 486
	Slide 487
	Slide 488
	Slide 489
	Slide 490
	Slide 491
	Slide 492
	Slide 493
	Slide 494
	Slide 495
	Slide 496
	Slide 497
	Slide 498
	Slide 499
	Slide 500
	Slide 501
	Slide 502
	Slide 503
	Slide 504
	Slide 505
	Slide 506
	Slide 507
	Slide 508
	Slide 509
	Slide 510
	Slide 511
	Slide 512
	Slide 513
	Slide 514
	Slide 515
	Slide 516
	Slide 517
	Slide 518
	Slide 519
	Slide 520
	Slide 521
	Slide 522
	Slide 523
	Slide 524
	Slide 525
	Slide 526
	Slide 527
	Slide 528
	Slide 529
	Slide 530
	Slide 531
	Slide 532
	Slide 533
	Slide 534
	Slide 535
	Slide 536
	Slide 537
	Slide 538
	Slide 539
	Slide 540
	Slide 541
	Slide 542
	Slide 543
	Slide 544

Mais conteúdos dessa disciplina