Você está na página 1de 546

1.

0
Esse material foi utilizado no curso de Florianpolis nos dias

4,5,6,7 e 8 de dezembro de 2012

BGP Design com Roteadores


Cisco

Instrutor: Rinaldo Vaz


Analista de Redes
Responsvel tcnico pelo AS 28135

Verso do material: 3.0


ltima publicao: 3/3/2013
1.0
Viso Geral sobre BGP
1. Viso geral sobre BGP

1.1 Introduo
1.2 Requisitos para se tornar um sistema autnomo
1.3 Preenchendo o formulrio do Registro.br
1.4 Quando utilizar IGP e EGP
1.5 Atributos BGP
1.6 Entendendo o processo de escolha de rotas

Verso do material: 2.2 *beta3 2


ltima publicao: 20/12/2012 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Diferenas entre FIB e RIB:


Fowarding Information Base (FIB)
Quando um router recebe 2 rotas diferentes para o mesmo
prefixo os critrios de escolha de rota so analisados. A
rota que foi considerada melhor de acordo com os critrios
BGP fica na FIB.
(caso no haja uma rota de melhor metrica esttica ou
recebida por outro protocolo de roteamento)
Router Information Base (RIB)
As rotas que no foram consideradas melhores ficaro
guardadas na RIB e sero utilizadas caso a rota principal
fique indisponvel.
O BGP jamais anuncia uma prefixo que no esteja na
FIB! 3
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Distncias administrativas:
Outro ponto importante a distncia administrativa, caso 2
prefixos sejam idnticos, o router analisa essa distncia, a
menor sempre "ganha". Caso sejam iguais, os critrios
particulares do protocolo de roteamento correspondente
sero analisados:

Directamente Conectada 0
Esttica 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
4
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

A verso corrente do BGP a verso 4,


especificada na RFC 1771
o protocolo responsvel por fazer a internet
funcionar da maneira que

5
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Algumas Caractersticas:
1. um protocolo do tipo vetor de caminho
2. As tabelas completas de roteamento so trocadas
entre os dois routers no incio da sesso
3. Atualizaes adicionais so enviadas imediatamente
atravs de mensagens de update *
4. Utiliza por padro a porta TCP 179
*Quando uma nova rota instalada o router avisa imediatamente para seus outros
peers BGP, porm h possibilidade de estabelecer um tempo mnimo (Minimum
Route Advertisement Interval ou MRAI) entre cada rodzio de atualizaes,
forando-o a segurar alguns updates e envia-los de uma s vez em um intervalo
pre-definido. Por exemplo:

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


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

6
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Mensagens BGP:
Open (abertura) - a primeira mensagem enviada por um router que
deseja estabelecer uma sesso com outro, esse por sua vez tambm
envia uma mensagem open. Aps recebidas e checadas*, cada router
envia a primeira mensagem de keep alive e a sesso estabelecida.
*Mensagens de OPEN contm vrias informaes sobre o remetente como verso do BGP configurada, nmero do AS,
routerID, valores de timers configurados entre outros

7
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Mensagens BGP:
Update (atualizao) - dentro dessas mensagens que vo informaes
sobre cada prefixo que est sendo anunciado, uma mensagem de
update tambm pode conter informaes sobre redes que ficaram
indisponveis e devem ser removidas

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

8
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Mensagens BGP:
Notificao (notification message) enviada quando uma condio de
erro detectada; elas so usadas para encerrar uma sesso ativa e
informar a quaisquer roteadores conectados do porque do encerramento
da sesso.
Sempre que um router envia uma mensagem do tipo notification esse
finaliza imediatamente a sesso BGP correspondente

Ex: Ao receber uma mensagem de open com o nmero


de AS diferente do que foi configurado localmente, o
router responde imediatamente com uma mensagem
de notification

9
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.1 Introduo

Mensagens BGP:
Keep-alive (ainda estou aqui) - De tempo em tempo cada router envia
uma mensagem de keep-alive para que o vizinho saiba que h
conectividade IP. Caso o keep-alive atrase, o router comea a contagem
de hold-time e, se nesse perodo no for recebido nenhum keep-alive, a
sesso finalizada. Tanto o tempo de keep-alive como o de hold-time
podem ser configurados para mais ou menos tempo de acordo com o
tipo de link.
Os valores padro so 60 segundos de intervalo para keepalive e 180
segundo de tolerncia (hold time) que podem ser alterados com o
seguinte comando:
!
router bgp 65001
neighbor 192.168.2.1 timers 20 60
!
Com esse comando, o tempos de keepalive e hold time ficariam setados
em 20 e 60 segundos respectivamente

10
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.2

Requisitos para se tornar


um Sistema Autnomo

11
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.2 - Requisitos para se tornar um sistema
autnomo
Uma organizao justifica a designao de
um ASN quando apresenta uma das
seguintes necessidades:
Multi Provedor: Quando a organizao est conectada a dois ou
mais provedores de transito Internet distintos e independentes e
necessita, portanto, fazer uso de protocolos de roteamento
dinmico
Poltica nica de roteamento: Quando a organizao possui uma
poltica de roteamento que distinta daquela aplicada pelo(s)
provedor(es) de transito Internet.

Mais informaes em:


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

12
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.3

Preenchendo o Formulrio do
registro.br

13
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.3 - Preenchendo o Formulrio do
registro.br
H um formulrio simples que pode ser baixado
no seguinte endereo:
http://registro.br/provedor/numeracao/pedido-form.txt

Em caso de dvidas h um arquivo contento


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

Informaes completas em:


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

14
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.4

Quando utilizar
IGP e EGP

15
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.4 - Quando utilizar IGP e EGP

O BGP foi desenvolvido para troca de rotas


entre Sistemas Autnomos distintos
No h nenhum motivo para um provedor de servios utilizar
BGP se esse no possuir um ASN.
A finalidade do BGP permitir que os IPs do Sistema Autnomo
apaream na internet.
Tecnicamente nada impede de utilizar BGP com apenas uma
operadora, porm um requisito para obter um ASN:

16
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.4 - Quando utilizar IGP e EGP

Caso um dos clientes do provedor tambm seja


um Sistema Autnomo indispensvel a
utilizao do BGP com o cliente e operadoras
de trnsito.

17
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.5

Atributos BGP

18
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.5 - Atributos BGP

Conhecidos obrigatrios (Well-known mandatory):


Alm de obrigatrio em todas as implementaes,
precisam estar em todas as mensagens de update
trocadas entre os roteadores via BGP.

Conhecidos discricionrios (Well-known discretionary):


Semelhantes aos obrigatrios, porm no precisam estar
contidos em todas as mensagens de update. Todas as
implementaes precisam suporta-los

19
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.5 - Atributos BGP

Opcional transitivo (Optional transitive):


No precisam ser implementados por todos
os fabricantes, e quando sim, podem ser propagados
para outros neighbors atravs de mensagens de update.

Opcional no-transitivo (Optional non-transitive):


Semelhantes aos citados acima, porm, um router nunca
propaga esses atributos para outro neighbor.

20
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.5 - Atributos BGP

Uma boa descrio pode ser encontrada no livro:


CCNP BSCI - Official Exam Certification Guide,
4th edition de Brent Steward:

21
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.6

Entendendo o Processo de
Escolha de Rotas

22
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.6 - Entendendo o processo de escolha de
rotas

Em primeiro lugar, o BGP apenas analisa os atributos


para "desempatar" duas ou mais rotas para o MESMO
PREFIXO.

Caso haja um prefixo mais especfico esse sempre ser


preferido independentemente dos seus atributos "mais
favorveis".

23
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.6 - Entendendo o processo de escolha de
rotas

Como o BGP escolhe uma rota:


Sempre que houverem duas ou mais opes de rota para prefixos iguais (mesma mscara 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 mtrica multi-exit discriminator (MED).
7. Escolhe a rota recebida por (eBGP) em relao a uma (iBGP).

24
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.6 - Entendendo o processo de escolha de
rotas

Como o BGP escolhe uma rota:


8. Rota com a menor mtrica 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 endereo de neighbor
A anlise segue para o prximo critrio apenas quando h
empate no critrio 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.
25
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
1.6

PERGUNTAS?

26
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 automtico
2.6-Escolhendo o melhor link
2.7-Balanceamento de links
2.8-Implementando alta disponibilidade com VRRP
2.9-BGP Timers

27
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1

Configurando BGP com


apenas um link

28
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link
Antes de comear, vamos entender o cenrio no ponto de
vista geral, onde cada aluno dono de um AS:
CENARIO 1-1

LAB 1-1-1 29
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link
Nesse LAB, cada aluno possui um Cisco 3660 com uma
placa serial modelo NM-4T conectado ao AS 100 na
interface s1/1 e uma fast ethernet conectada ao switch da
sala do curso.
O X deve ser entendido como o AS do aluno (1 at 24).

LAB 1-1-1 30
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

O router de cada grupo responde pelo IP X.128.0.254/9


(onde X o nmero do grupo).
Para acess-lo, configurem nos seus laptops um IP dentro
dessa mesma rede preferencialmente .1 e gateway
padro X.128.0.254.
Verifiquem a conectividade IP e em caso positivo abram
uma sesso telnet com esse equipamento:
ALUNO@notebook# telnet X.128.0.254
Trying X.128.0.254...
Para quem usa windows pode usar o Putty......
Connected to X.128.0.254. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Escape character is '^]'.


User Access Verification

Password: A senha de acesso 123


LAB 1-1-1 31
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Estamos agora no modo usurio:


GX-R1>

Para iniciar as configuraes 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 configurao global:


GX-R1#terminal monitor

GX-R1#configure terminal

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

GX-R1(config)#
LAB 1-1-1 32
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

O primeiro passo na configurao BGP adicionar


um neighbor (peer):

GX-R1(config)# router bgp X


GX-R1(config-router)# neighbor 100.X.1.1 remote-as 100
GX-R1(config-router)# neighbor 100.X.1.1 description eBGP com as 100
!--- Se digitar errado e o sistema aceitar o comando,
!--- digite o mesmo comando com no antes.
!--- Ex: neighbor 100.x.1.1 remote-as 101
!--- no neighbor 100.x.1.1 remote-as 101
!--- no neighbor 100.x.1.1 (remove tudo)

LAB 1-1-1 33
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Verificando o status da sesso BGP recm-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

LAB 1-1-1 34
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Como realizar a mesma configuao


no JunOS e RouterOS

router> configure
router# set routing-options autonomous-system X
router# set protocols bgp group AS100 type external
router# set protocols bgp group AS100 export Interno
router# set protocols bgp group AS100 peer-as 100
router# set protocols bgp group AS100 neighbor 100.X.1.1

[admin@mikrotik] > /routing bgp instance


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

LAB 1-1-1 35
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Verificando os anncios 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 prtica a diferena entre os
comandos com received-routes e apenas routes no
final.

LAB 1-1-1 36
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

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?

LAB 1-1-1 37
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Esse ponto merece uma pausa para analisar algo


importante no Troubleshooting.

Ao executar um traceroute um host verifica a sua tabela de


roteamento, caso no haja ocorrncias os pacotes do
traceroute so encaminhados pela rota padro, no 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?
LAB 1-1-1 38
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

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 no consegue alcanar o destino porque o seu IP


de origem X.128.0.1, rede que no conhecida pelo
looking glass j que ainda no anunciamos nada.

No se trata ento de o laptop no conseguir alcanar


123.123.123.1, na verdade os pings disparados pelo
laptop chegam ao seu destino, porm o destino no sabe
para quem responder.

LAB 1-1-1 39
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

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


grupo:
GX-R1(config)# router bgp X
!--- entra no nodo de configurao 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 privilegiado
GX-R1# clear ip bgp 100.X.1.1
!--- reinicia a sesso BGP

LAB 1-1-1 40
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Auto-Summary:

Quando habilitamos o auto-summary, o BGP vai sumarizar na classe padro (classe A, B ou C)


os prefixos declarados em network ou redistribute

Algumas literaturas afirmam que o auto-summary no funciona com prefixos anunciados via
comando network. possvel que isso ocorra em verses mais antigas do IOS, porm como
podemos ver nesse LAB (IOS 12.4), temos um IP /32 em uma interface loopback, que por sua vez
sumarizado e redistribudo como uma classe A

importante lembrar que esse tipo de sumarizao ocorre apenas para classes PADRO, e muito
dificilmente ser utilizado em produtividade.

LAB 1-1-1 41
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Agora verifico os anncios 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 aparea algo parecido com isso, vamos testar novamente a


conectividade IP com o looking glass a partir do laptop.

LAB 1-1-1 42
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1-Configurando BGP com apenas um link

Sintam-se vontade para entrar no looking glass e executar


testes de PING e TRACEROUTE!

LAB 1-1-1 43
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.1

PERGUNTAS?

44
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2

Analisando as rotas
recebidas

45
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 sesses BGP configuradas


ativas e no ativas.
Nesse laboratrio apenas uma sesso est configurada.
Vamos entender o que cada campo significa...

46
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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).

47
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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
Verso do BGP utilizada nessa sesso.

48
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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).

49
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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.

50
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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
Verso atual da tabela de rotas BGP, sempre que uma nova rota
inserida ou removida o TblVer incrementado.

51
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 sada.

52
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 sesso
foi estabelecida ou que a sesso ficou down, aps 24 horas o
contador muda para 1d00h00m (dias/horas/minutos) aps
uma semana 01w0d00h (semanas/dias/horas).
Antes de uma sesso estabelecer ao menos uma vez o
contador fica em never.
53
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 ateno especial pois ser o mais
frequentemente observado. Indica o estado da conexo BGP.
Nesse caso est contando 3 prefixos, mas existem 5
estados possveis, IDLE, CONECT, ACTIVE, OPENSENT,
OPENCONFIRM e ESTABLISHED, iremos entender melhor
cada um desses estados nos prximos slides.
54
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Entendendo os campos do summary:


State/PfxRcd
IDLE

o estado em que a sesso fica quando interrompida por uma mensagem de notificao ou
interveno do administrador, esse estado, quando se prolonga por muito tempo, aponta
algum possvel problema de conectividade IP ou ainda que o BGP no foi configurado
corretamente do lado remoto.

55
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Entendendo os campos do summary:


State/PfxRcd
ACTIVE
ACTIVE: O BGP tenta estabelecer comunicao com um peer inicializando uma conexo
TCP. Caso esta seja bem sucedida, passa-se ao estado OPENSENT. Se esta tentativa
no for bem sucedida, pelo motivo de expirao do tempo, por exemplo, o estado passa
para CONNECT. Em cada interrupo pelo sistema ou pelo administrador, volta ao estado
IDLE. Geralmente as transies entre o estado de CONNECT e ACTIVE refletem
problemas no nvel TCP.

56
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Entendendo os campos do summary:


State/PfxRcd
CONNECT
Neste estado o BGP aguarda pela conexo TCP, com destino na porta 179. Quando a
conexo estiver estabelecida, ou seja, com o recebimento da mensagem de OPEN,
passa-se ao estado de OPENSENT. Se a conexo nvel de transporte no 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.

57
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 contedo. Caso seja encontrado algum erro como nmero de AS incoerente ao
esperado ou a prpria verso do BGP, envia-se uma mensagem tipo NOTIFICATION e
volta ao estado de IDLE. Caso no 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 nmero AS local e o
nmero AS enviado pelo peer, com o intuito de detectar se uma conexo iBGP (nmeros
de AS iguais) ou eBGP (nmeros de AS diferentes). Em caso de desconexo a nvel TCP,
o estado passa para ACTIVE. Para as demais situaes de erro, como expirao do Hold
Time, envia-se uma mensagem de NOTIFICATION com o cdigo de erro correspondente
e retorna-se ao estado de IDLE. No caso de interveno do administrador ou o prprio
sistema, tambm retorna-se o estado IDLE.

58
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 negociao do peer
finalmente concluda. 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 tambm envia periodicamente,
segundo o tempo negociado, mensagens de KEEPALIVE. No caso da ocorrncia de
eventos como desconexo ou interveno do operador, retorna-se ao estado de IDLE
tambm. Por fim, na ocorrncia de eventos diferentes aos citados, envia-se uma
mensagem NOTIFICATION, retornando ao estado de IDLE.

59
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 desconexo ou interveno do administrador, tambm retorna-se
ao estado de IDLE.

60
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Entendendo os campos do summary:


State/PfxRcd
3

Esse nmero no representa a quantidade de prefixos recebidos de um


neighbor, mas sim a quantidade de prefixos que foram parar na RIB
aps terem passado pelos filtros.
Um State/PfxRcd 0 no significa necessariamente que no estou
recebendo nenhuma rota, por exemplo, pode ser que o next-hop dessas
rotas seja inalcanvel pelo meu router e assim elas no aparecem.
Detalharemos esses casos posteriormente.

61
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

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 no escolhidas (RIB). Como recebemos rotas
de apenas um peer, no h rotas no escolhidas.
62
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota especfica:


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
aparecero uma abaixo da outra.

Entenderemos cada campo a seguir:


63
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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 verso da routing table descrita nos
slides anteriores.

64
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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 critrios do BGP weigh, local_pref, etc.
table Default-IP-Routing-Table significa que as rotas esto na FIB padro.
Mltiplas FIB's so usadas com VRF.

65
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


GX-R1#sh ip bgp 123.0.0.0
...
Flag: 0x208
...

66
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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 no
est sendo anunciada via BGP para nenhum neighbor.
Na verdade qualquer rota nesse laboratrio aparecer
com essa mensagem.
Esse campo ser detalhado posteriormente na sesso AS
de trnsito.

67
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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 anncio para o AS 55 que recebeu,
considerou como melhor rota e exportou para o as 111, depois para o
AS 100, o qual tambm 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.
68
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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(prximo salto)
para esse prefixo, caso o next-hop no esteja contido em uma
rota vlida da FIB, esse jamais ser eleito como BEST.
O segundo IP dessa linha me diz o endereo do neighbor que
me enviou essa rota via BGP.
O IP (X.X.X.X) na verdade o router-ID desse neigbor descrito
acima.

69
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.2

PERGUNTAS?

70
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3

Configurando BGP com 2


links
(MULTIHOMING)

71
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links
Os prximos Laboratrios (1-2-1 e 1-2-2) utilizaro esse
cenrio, e dessa vez, temos link tambm com o AS 200:

LAB 1-2-1 72
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links
Nesse LAB, receberemos mais um link (AS 200) atravs da
interface s1/0:
!-- lembrando que X o nmero do AS do aluno

LAB 1-2-1 73
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Primeiro passo a configurao do prximo 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
!--- prximo Neigbor
neighbor 200.X.1.1 remote-as 200
neighbor 200.X.1.1 description eBGP com as 200

LAB 1-2-1 74
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Verificando o status das sesses BGP recm-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 nmero de PfxRcd vai ser maior a medida que os alunos estabeleceram


suas conexes.

LAB 1-2-1 75
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP


Em 23 dos 24 routers parte da sada 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
LAB 1-2-1 76
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP


Porm em 1 dos 24 routers a sada 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

LAB 1-2-1 77
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP


O que significa essas 2 rotas alternativas desaparecerem at da
RIB?
E o que isso implica na prtica?
* 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

Vamos ver a FIB do felizardo?.


Por enquanto o importante saber que esse router passou a ser
trnsito dos AS's 200 e 222 para alcanar o AS 100,111 e
todos os seus downstreams.
No caso desse router ficar down, outro grupo ficar na mesma
situao... vamos ver quem?
LAB 1-2-1 78
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Evitando se tornar AS de trnsito dos meus UPSTREAMS


Fazer anncios faz do meu router um potencial provedor de
trnsito 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
...

LAB 1-2-1 79
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Implementando filtros de sada em meus upstreams


H vrias 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 sada do AS 200

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out


!--- aplicar o mesmo filtro na sada do AS 100
GX-R1(config-router)#end
GX-R1#clear ip bgp *

LAB 1-2-1 80
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3 Configurando BGP com 2 links

Verificando as rotas recebidas aps o filtro de


sada
Agora o router anuncia para os UPSTREAMS apenas o
necessrio que o prefixo /8 correspondente ao grupo:
GX-R1>sh ip bgp neighbors 100.X.1.1 advertised-routes
BGP table version is 24, local router ID is 9.9.9.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

LAB 1-2-1 81
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.3

PERGUNTAS?

82
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4

Utilizando um
Looking Glass

83
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

Um looking glass nada mais do que um router com acesso


pblico em algum lugar da internet, em sua maioria, a
interface web para facilitar a vida do usurio, 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

84
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

85
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

86
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

Em nosso LAB o Looking glass 123.123.123.1, vamos


primeiramente verificar a conectividade com esse
endereo:
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.

87
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

Qual critrio o meu router (primeiro salto) utilizou para


considerar esse caminho como melhor?
Vamos entender:
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
Notem que em nenhuma das rotas h qualquer valor no
atributo "weight" que o primeiro critrio, em segundo
verificado o "localpref" que nos dois casos est em 100
(empate), o algoritmo de seleo de rotas segue ento
para o prximo "critrio de desempate" (menor AS Path)
onde a rota #2 foi mais feliz.
88
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

#Conectar-se ao looking Glass

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

Os pacotes seguiram o seguinte caminho: AS 222


depois AS 200 e finalmente AS X.

89
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4 Utilizando um Looking Glass

Verifique agora que o mesmo critrio (menor AS


Path) fez o router decidir pelo "mesmo caminho
para alcanar 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

90
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.4

PERGUNTAS?

91
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5

Fail-Over
Automtico

92
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Utilizando a rota alternativa

Vamos simular um problema


tcnico no AS200 deligando
seus CPE's...

GX-R1# terminal monitor


5d06h: %BGP-5-ADJCHANGE: neighbor 200.X.1.1 Down ...

aguardem alguns instantes...


LAB 1-2-2 93
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Agora execute novamente um traceroute a partir do seu laptop:

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:~$

Com o AS 200 down ,os pacotes entram no AS 100, depois no AS


111, e s depois de passar no AS 55 alcanam o destino (looking
glass).

LAB 1-2-2 94
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Agora note que a rota alternativa (mais distante) passou a ser


utilizada e o "melhor caminho" que havia no existe mais,
restando apenas o "pior caminho" que dadas as circunstncias,
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 95
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

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 96
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Verifiquem que o looking glass escolhe o caminho mais


longo para chegar ao notebook do aluno:
*agora a nica rota disponvel
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)
E essa mensagem "advertised to... 123.222.2.2" ? Origin IGP, localpref 100, valid, external, best

Nos slides anteriores era "advertised to 123.55.2.2"


Vamos ver o debug do as 123 aps um clear ip bgp
Mas deixa claro que a(s) rede(s) do(s) aluno(s) esto sendo anunciadas para o as 222, e consequentemente
para o AS 200
Vamos comprovar...

LAB 1-2-2 97
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Partindo do laptop vamos tentar alcanar o AS 200...

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

Agora alcanamos o AS 200 pelo caminho mais longo possvel, AS


100, AS 111, AS 55, AS 123, AS 222 e finalmente AS 200.
Vamos analizar...
LAB 1-2-2 98
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Verifiquem as entradas para a rede em que faz parte o IP do


AS-200-R10:

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

Observe o AS Path, precisamos dar a "volta ao mundo" para


alcanar o AS 200.
Discutiremos solues alternativas nos prximos captulos.
LAB 1-2-2 99
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

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

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

O novo caminho fica bem mais longo, mas no fica fora

LAB 1-2-2 100


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5 Fail-Over automtico

Concluses:

O protocolo BGP trata praticamente sozinho os problemas de


queda nos links.

Porm no tem como entender certas variveis que fazem o link A


ser mais vivel que o link B, ou mesmo quando precisamos somar
2 links.

Em outras palavras, se tenho contratados 100Mbs de trnsito com


o AS 100 e apenas 50 com o AS 200, seria invivel ter o link do AS
200 como principal, e nesse caso precisamos "interferir" na
deciso do protocolo BGP manipulando certos atributos.
101
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.5

PERGUNTAS?

102
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6

Escolhendo o
Melhor Link

103
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Considere quase toda a minha demanda de trnsito vindo sempre


do AS 123 as seguintes situaes:

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

A negociao com o AS 100 me garantiu um preo 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 padro o as 200,
vamos modificar essa escolha...

104
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Alterando o atributo Weight:

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 sesso BGP
GX-R1#clear ip bgp 100.X.1.1

Vamos verificar como ficaram as rotas BGP...

LAB 1-3-1 105


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Analizando a rota para rede do looking glass aps a mudana no


atributo:
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

Acabamos de forar o router a escolher a rota #2, j que o


primeiro critrio o atributo weight, a rota 2# foi escolhida como
melhor mesmo com um as path MAIOR.
LAB 1-3-1 106
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Testando...

Executem um traceroute do seu laptop para 123.123.123.1



...

Caso a mudana no weight tenha sido bem sucedida os pacotes


seguiram a rota pelo AS 100 ao invs do AS 200.

Porm isso resolve apenas "metade" do meu problema


conforme veremos no slide seguinte...

LAB 1-3-1 107


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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-3-1 108
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Ping extendido:
(...continuao...)
(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-3-1 109


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

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


dele:
ALUNO@notebook:~ telnet 123.123.123.1

!--- Efetuem um traceroute para o seu laptop

AS-123-R1>traceroute para X.128.0.1

Como podemos verificar, o AS 123 continua escolhendo a mesma


rota, uma vez que a mudana no atributo weight, teve influncia
apenas no meu UPLOAD, sendo assim, meu download continua
chegando pelo AS 200 (menor AS PATH no ponto de vista do AS
123).
No tenho como pedir que o AS 123 altere os seus atributos,
LAB 1-3-1 preciso convenc-los de outra forma a mudar de rota. 110
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Fazendo anncios mais especficos para o AS 100

Como mencionado anteriormente, os atributos BGP s so


analisados quando h um empate de prefixo, porm quando h um
prefixo MAIS ESPECFICO os atributos so ignorados.

Quais blocos anunciar para cada AS?

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

LAB 1-3-1 111


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Configurando os anncios mais especficos:

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

GX-R1(config)#ip prefix-list LAB-1-3-1-ANUNCIAR-AS-200 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
!--- alm do anuncio local do classe A, inserimos mais 2 prefixos /9 a serem
!--- a serem anunciados pelo router

GX-R1(config-router)#neighbor 200.X.1.1 prefix-list LAB-1-3-1-ANUNCIAR-AS-200 out


!--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list LAB-1-3-1-ANUNCIAR-AS-100 out


!--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados
GX-R1(config-router)#end

GX-R1#clear ip bgp * soft


LAB 1-3-1 112
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Verificando anncios para o AS 200:

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#
Agora para o AS 100:
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

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


que?
LAB 1-3-1 113
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

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

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

O comando longer-prefixes mostraria rotas para qualquer


sub-rede dentro do bloco /8 pesquisado, porm temos o primeiro /
9 diretamente conectado f0/0 e um /32 na Loopback0.
LAB 1-3-1 114
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Precisamos primeiramente garantir que as redes que quero


anunciar estejam em minha FIB:

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

Agora que tenho os 2 blocos /9 em minha FIB vamos verificar


novamente os anncios para o AS 100...

LAB 1-3-1 115


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Agora que tenho os 2 blocos /9 em minha FIB vamos verificar


novamente os anncios 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#

Agora estamos fazendo corretamente o anncio dos dois blocos /9


para o AS 100.

LAB 1-3-1 116


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Vamos novamente entrar no looking glass e verificar as rotas para


classe A do grupo:

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>

Dessa forma, a rota em vermelho nunca usada, pois existem dois


blocos mais especficos, fazendo com que o LG sempre alcance os
AS's dos grupos atravs do AS 100.
LAB 1-3-1 117
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Verificando caminho percorrido com o comando traceroute:

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>

No incio foramos o upload pelo AS 100, e agora tambm o


download pelo AS 100.
LAB 1-3-1 118
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6 Escolhendo o melhor link

Agora vamos voltar ao normal e remover o Weight 10 para todas


as rotas recebidas do AS 100

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 sesso BGP
GX-R1#clear ip bgp 100.X.1.1

Vamos verificar como ficaram as rotas BGP...


LAB 1-3-1 119
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.6

PERGUNTAS?

120
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7

Balanceando os
Links

121
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7-Balanceando os links

Vamos agora considerar uma situao 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 trfego inbound
seja divido em 50% para cada link.

A lgica a mesma, o que faremos diferente do lab anterior


um detalhe para o fail-over.

122
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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-4-1 123


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7-Balanceando os links

Vamos criar duas novas prefix-lists e adiciona-las como filtro


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

GX-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-200 permit X.0.0.0/8


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

GX-R1(config-router)#neighbor 200.X.1.1 prefix-list LAB-1-4-1-ANUNCIAR-AS-200 out


!--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list LAB-1-4-1-ANUNCIAR-AS-100 out


!--- declara que esse anuncios de saida (out) para esse neighbor serao filtrados
GX-R1(config-router)#end

GX-R1#clear ip bgp * soft

LAB 1-4-1 124


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7-Balanceando os links

Primeiro /9 (Loopback do router):


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>

Caminho 55,111,100

LAB 1-4-1 125


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7-Balanceando os links

Segundo /9 (ip do laptop):


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#

Caminho 222,200

LAB 1-4-1 126


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7-Balanceando os links

Simulao de problemas nos CE's do AS 100...


Todos verificam a mudana!

Simulao de problemas nos CPE's do AS 200...


Todos verificam a mudana!

LAB 1-4-2 127


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.7-Balanceando os links

OBS: Para um balanceamento assimtrico mudaramos os


anncios, quebrando para blocos cada vez mais especficos

Nunca esquecer de que o balanceamento baseado em


anncios especficos depende da distribuio dos IPs dentro
do meu AS.

LAB 1-4-2 128


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8

Implementando
Alta
Disponibilidade
com VRRP

129
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP
O cenrio permanece o mesmo, porm com um router
identico como backup.
A ideia que todos os dois links continuem 100%
operacional mesmo que o router principal fique
totalmente fora.

LAB 1-5-1 130


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 sada do AS 200

GX-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out


!--- mudar o filtro na sada do AS 100
GX-R1(config-router)#end
GX-R1#clear ip bgp *

LAB 1-5-1 131


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 sesso 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 tambm 123

LAB 1-5-1 132


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Estamos agora no modo usurio:


GX-R2>

A senha de enable mudou:


G1-R2>enable

Password: gXr2

GX-R2#

Todos os outros passos so semelhantes...


GX-R2#terminal monitor

GX-R2#configure terminal

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

GX-R2(config)#

LAB 1-5-1 133


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Precisamos aplicar as MESMAS configuraes, com exceo


dos endereos de neighbor:
!-- ATENO as configuraes so em Gx-R2
!-- observem a mudana 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-5-1 134
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

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 sada do AS 200

GX-R2(config-router)#neighbor 100.X.2.1 prefix-list MEUS-BLOCOS out


!--- aplicar o mesmo filtro na sada do AS 100
GX-R2(config-router)#end
GX-R2#clear ip bgp *

LAB 1-5-1 135


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Verificando o status das sesses BGP recm-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 nmero de PfxRcd vai ser maior a medida que os alunos estabeleceram


suas conexes.

LAB 1-5-1 136


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Verificando as rotas recebidas aps o filtro de


sada:
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

LAB 1-5-1 137


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

O prximo passo a criao da interface virtual, mas o que


VRRP afinal?
Virtual Router Redundancy Protocol
cria uma interface, um MAC e um
ip virtual, e todos os routers do
grupo VRRP conhecem essas
informaes. No momento em que
o router master fica fora, o
primeiro candidato levanta
imediatamente o IP virtual, de
maneira que os hosts da rede no
percebem essa comutao, e ao
mesmo tempo no tem
problemas com ARP, j que o MAC
no muda.
LAB 1-5-1 138
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

O prximo passo a criao da interface virtual, mas o que


VRRP afinal?
Vrios roteadores podem fazer
parte de uma mesma VRRP. Para
definir quem o router master e
quem assume nas situaes de
falha, alteramos o valor de
priority na configurao do grupo
VRRP.
Vamos segunda parte do LAB...

LAB 1-5-2 139


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Vamos configurar uma VRRP na interface lan e garantir que


GX-R1 seja o router master: 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)#vrrp X 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-5-2 140


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Vamos verificar o
status...
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-5-2 141


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- Implementando Alta Disponibilidade
com VRRP

Agora simularemos uma falha em GX-R1

Notem que h um tempo mdio de 4 minutos at que a comutao


acontea para o router backup

Por que todo esse tempo?

LAB 1-5-2 142


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- BGP Timers

Quando o router R1 fica fora, os CPE's das


operadoras passam algum tempo pensando
que ele ainda est UP Cada router envia uma mensagem keep alive a cada 60 segundos

(por padro)

Quando um keep alive atrasa, o CPE da operadora ativa uma


contagem chamada hold time (padro 180 segundos)


Se at o final do hold time no chegar um keep alive o CPE da
operadora finaliza a sesso BGP com R1.

Imediatamente o CPE percebe que h uma outra opo disponvel


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...

LAB 1-5-2 143


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- BGP Timers

Vamos alterar os timers padro para diminuir o


downtime

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-5-2 144
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8- BGP Timers

Vamos testar novamente...

O tempo paralizao 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 padro e faz o BGP


automaticamente finalizar a sesso quando detecta uma interface em
estado down.

Esse recurso foi desabilitado no intuito de simular situaes reais j


qua a maioria dos links atuais so metroethernet

LAB 1-5-2 145


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
2.8

PERGUNTAS?

146
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.0
Peering e Troca de
Trfego
3. Peering e Troca de trfego

3.1 Peering x Trnsito


3.2 Entendendo o funcionamento de um PIX
3.3 Formulrios de adeso
3.4 Diferenas 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 Aplicaes de um acordo bilateral
3.11 Comprando e vendendo trnsito no PTT

147
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1

Peering x Trnsito

148
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Em primeiro lugar devem ser separados os conceitos de


peering e trnsito.

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 contedo 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.

149
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Porem, a operadora B tambm tem uma demanda de 10Mbs


de contedo hospedado no meu AS A.

Isso d para operadora B uma conta semelhante de R$


1.000,00 mensais.

No final do ms, ficaramos empatados no custo, e o melhor a


se fazer estabelecer um link direto de 10Mbs sem que um
cobre do outro.

H outras vantagens tcnicas como menor caminho BGP e


menor latncia.
150
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

LAB: Observem o cenrio...

151
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

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
- - - - -
LAB 1-6-1 152
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Realizando as configuraes 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

LAB 1-6-1 153


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Realizando as configuraes 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

LAB 1-6-1 154


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

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 anncios de sada para esse peering na respectiva prefix-list
GX-R1(config-router)#exit
GX-R1(config)#end
GX-R1#clear ip bgp *

LAB 1-6-1 155


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

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 anncios de sada para esse peering na respectiva prefix-list
GX-R1(config-router)#exit
GX-R1(config)#end
GX-R1#clear ip bgp *

LAB 1-6-1 156


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Verificando os anncios para o novo peering:

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 endereo remoto do seu peering

O Next Hop 0.0.0.0 e o weight 32768 indicam que as redes foram


originadas localmente ou seja, no comando:
router(config-router) network x.x.x.x mask x.x.x.x

LAB 1-6-1 157


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Verificando as redes recebidas do meu novo peering


(utilizando o exemplo para o peering entre AS 1 e 2):

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

Onde:
1= AS local
2= AS remoto

LAB 1-6-1 158


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Testando um traceroute para Y.128.0.1 ...

A partir de agora est havendo uma troca de trfego entre


os 2 AS's.

O que faz dessa configurao um peering e no um


trnsito?
*Ao carem os links do AS200 e AS100 apenas as redes do
peering continuariam funcionando, e isso o que
descaracteriza um trnsito.
LAB 1-6-1 159
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.1 Peering x Trnsito

Vamos simular uma falha nos AS's de trnsito e verificar a


conectividade entre os 2 AS's que fazem peering...

X X

LAB 1-6-1 160


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.2

Entendendo o
Funcionamento
de Um PIX do PTTMetro

161
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.2 Entendendo o Funcionamento de Um
PIX do PTTMetro
Para quem ainda no assistiu:
http://youtu.be/imL3Cc8mC2Y

162
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.2 Entendendo o Funcionamento de Um
PIX do PTTMetro

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 vrios PIXes).

163
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.2 Entendendo o Funcionamento de Um
PIX do PTTMetro

Todos os participantes compartilham um mesmo bloco /24


ou /22 (no caso do PTT-SP), cada participante tem um IP, e
todos pingam entre si.

Estabelecem conexes BGP com os route-servers e o looking


glass.

164
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.2 Entendendo o Funcionamento de Um
PIX do PTTMetro
Os Route Servers cumprem um papel fundamental
dispensando a necessidade de que todos os participantes
faam peering individualmente.
Imaginem centenas de participantes estabelecendo peering
(todos com todos).

ROUTE
SERVER

165
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.3
Formulrios de Adeso

166
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.3 - Formulrios de Adeso

Para se conectar do PTT-SP por exemplo, acesse o endereo:


http://sp.ptt.br/adesao.html

167
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.3 - Formulrios de Adeso

Para facilitar h um formulrio modelo j preenchido:


...
Termo de conexo 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/
Endereo ..........: Av. das Naes Unidas 11548, 7 andar 04578-000 - So 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 Trnsito :
email .............:
Telefone ..........:
URL Poltica
Peering .......: none - Open Policy
BGP Feed para o
Looking-glass ...: Sim [x] Nao [ ]
Vende trnsitov4 ..: Sim [ ] No [x]
Vende trnsitov6 ..: Sim [ ] No [x]
Conexo
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 [ ]
...

168
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.4
Diferenas entre Acordo
Bilateral
e Multilateral

169
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.4 - Diferenas entre Acordos Bilaterais e
Multilaterais

Estar no PTT por si s no significa trocar trfego!


Existem participantes que optaram em no trocar trfego
multilateral (todos com todos).
E esse um direito do participante...

170
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.4 - Diferenas entre Acordos Bilaterais e
Multilaterais
Acordo de troca Multilateral (ATM)
Para trocar trfego com todos os participantes, alm do termo
de conexo ao PTTmetro, preciso preencher o termo de
adeso ao ATM (Acordo de Troca Multilateral).
No acordo multilateral o participante recebe uma vlan+ip e
troca trfego com todos.
...
Termo de adeso ao Acordo de Troca de Trfego Multilateral (ATM)
Version .........: 2008071000
Este termo de adeso trata das informaes e compromissos da entidade
solicitante para a participao no acordo de troca de trfego
multilateral no PTTMetro.
Localidade ......: sp.ptt.br
ASN .............: 22548
Entidade Nome ...: Registro.br
ATM v4 ..........: Sim [x] No [ ]
ATM v6 ..........: Sim [x] No [ ]
...

Aps preenchidos ambos devem ser encaminhados para join@ptt.br


171
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.4 - Diferenas entre Acordos Bilaterais e
Multilaterais

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 servio em layer 2, os
IPs ficam critrio 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 no participam do
ATM, em geral vendem trnsito atravs de
acordos bilaterais

172
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.5
Participantes Locais e
Remotos

173
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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:

174
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.5 - Participantes Locais e Remotos

Ou...
2# - Contratando transporte layer2 (lan2lan, clear channel)
de algum participante conectado fisicamente.
No h diferenas no ponto de vista tcnico entre as duas
modalidades, exceto pelas consequncias do aumento de
latencia, que proporcional distncia geogrfica.

175
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.6

Entendendo o Conceito de
Lan2Lan

176
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.6 Entendendo o Conceito de Lan2Lan

Para participar remotamente de um PTT, necessrio que o


participante troque informaes de nvel de enlace, ou seja,
alm de um IP diretamente conectado, o MAC original deve
ser conhecido pelos participantes atravs de solicitaes
ARP

Em outras palavras, o participante remoto deve fazer parte do


mesmo domnio de broadcast que os route servers e
demais participantes

177
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.6 Entendendo o Conceito de Lan2Lan

Um Tunel layer 2 ou Lan2Lan na prtica no se parece muito


com um tunel, ele pega o QUADRO ETHERNET original e
encapsula no campo de dados do pacote IP

O router destinatrio desencapsula, reproduz o QUADRO


ETHERNET ORIGINAL e joga na inteface correspondente.

Dessa maneira, todas as infornaes de layer 2 chegam ao


outro lado, incluindo requisies ARP e broadcasts

178
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.7

ATM-Tratando as Rotas
Recebidas

179
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.7 - ATM-Tratando as Rotas Recebidas

LAB: Estabelecer sesses 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,
!--- porm 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-7-1 180


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.7 - ATM- Tratando as Rotas Recebidas

Agora vamos verificar quais rotas recebo do Route Server do


PTT
Utilizaremos o router do grupo 25 como exemplo:
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

Vamos confirmar se todas as 5 sesses esto estabelecidas:


Peering
Trnsito AS100
PTT Looking Glass
PTT Route Server
LAB 1-7-1
Trnsito AS200 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
181
3.7 - ATM-Tratando as Rotas Recebidas

Vamos verificar todas as opes para chegar ao AS 123


Continuaremos Utilizando o router do grupo 25 como exemplo:
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
A rota escolhida para chegar ao AS 123 pelo PTT.

LAB 1-7-1 182


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.7 - ATM-Tratando as Rotas Recebidas

Agora vamos entrar no Looking Glass do AS123 e verificar as


rotas para o AS do grupo esto aparecendo assim:
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

A rota escolhida para chegar ao AS do grupo tambm pelo


LAB 1-7-1 PTT. 183
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.8

ATM-Anunciando
Corretamente

184
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.8- ATM- Anunciando Corretamente

Utilizamos anncios da maneira mais simples possvel, porm, no mundo


real, o mais recomendado anunciar blocos mais especficos para os
pontos de troca.
Um dos principais motivos so 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.

185
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.8- ATM- Anunciando Corretamente

Os anncios garantem trfego de download pelo PTT, porm existem outras


maneiras de fazer isso, utilizando communities e as path prepend.

186
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.9

O Looking Glass do PTT


Metro

187
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.9 - O Looking Glass do PTT Metro

O Looking Glass do PTT-Metro foge um pouco do padro,


quando visualizamos uma rota como best no significa
que essa a rota que est sendo escolhida pelos
participantes do PTT.

Ele no 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.

188
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.9 - O Looking Glass do PTT Metro

Digamos que quero verificar a tabela de roteamento do


participante do PTT que possui o AS 9.
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_

Esse comando mostraria todas as rotas BGP na FIB do AS 9


(desde que esse esteja enviando sua tabela full para o
LG).

189
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.10

Aplicaes de Um Acordo
Bilateral

190
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.10 Aplicaes de Um Acordo Bilateral

Com um acordo bilateral um AS pode vender trnsito para


outro AS participante dispensando os custos de ativao
(estrutura e equipamentos).

Outra aplicao interessante uma parceria entre 2 AS's de


cidades diferentes para interligar um cliente comum em
L2.

191
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.11 Comprando e vendendo trnsito no
PTT

LAB acordo bilateral:


Os grupos escolhero com quem fazer o acordo bilateral e
tero uma vlan comum escolhida pelo instrutor.

O objetivo semelhante ao LAB do peering, porm, um


dos participantes fornecer trnsito IP para o outro que
ser apenas cliente.

Para isso, deve ser estabelecida uma sesso BGP entre os


dois, onde o responsvel em prover trnsito 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.
LAB 1-8-1 192
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.11 Comprando e vendendo trnsito no
PTT

Aps decidido o ID da vlan cada participante deve inserir a


tag correspondente na interface f0/1 (interface conectada
ao PTT).
Os IPs no 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 endereos IP de cada lado)
GX-R1(config-subif)#end
GX-R1# ping Z.Z.Z.Z
!--- testem conectividade IP atravs da vlan antes de iniciar as config BGP

XXX o nmero (ID) da vlan e Z.Z.Z.Z o endereo


LAB 1-8-1
IP que o cliente configurou do outro lado
193
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.11 Comprando e vendendo trnsito no
PTT

Configuraes BGP no router que ser TRNSITO:


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

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 trnsito
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 no haver risco de receber do cliente
!--- prefixos que no sejam dele e meu trfego de output ir na direo 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 sada dos AS de trnsito,
!--- vamos aproveita-la e apenas adicionar mais um prefixo
GX-R1(config-router)#end
GX-R1#clear ip bgp *

LAB 1-8-1 194


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.11 Comprando e vendendo trnsito no
PTT

Configuraes BGP no router CLIENTE:


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

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 trnsito
!--- e j que o classe A local j est nessa lista no preciso configurar mais nada
GX-R1(config-router)#end
GX-R1#clear ip bgp *

LAB 1-8-1 195


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.11 Comprando e vendendo trnsito no
PTT

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 no participam do PTT


(55,100,111,200 e 222) conseguiro alcanar o AS do
cliente atravs do AS que serviu como trnsito.

O objetivo agora que AS's que no participam do PTT


fiquem acessvels (trnsito IP)

LAB 1-8-1 196


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
3.11

PERGUNTAS?

197
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.0
Filtros Bsicos para um AS
de Trnsito
4. Filtros bsicos para um AS de trnsito

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 trfego I

198
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.1

eBGP com Upstreams e


Downstreams

199
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.1 eBGP com Upstreams e Downstreams

Daqui por diante faremos referncia 3 tipos de sesses


BGP:

IBGP (BGP interno): sesses BGP com routers


do meu prprio AS.

eBGP UPSTREAM: sesses BGP com AS's


externos que prestam servio de trnsito IP
para meu AS.

eBGP DOWNSTREAM: sesses BGP com AS's


externos aos quais meu AS presta servio de
trnsito IP.
200
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.1 eBGP com Upstreams e Downstreams

IBGP
Sesses entre roteadores que fazem parte do mesmo
sistema autnomo

Geralmente no utilizamos filtros

No importa a quantidade de saltos de roteamento, no


h incremento de AS-PATH

O BGP identifica automaticamente sesses iBGP quando o


remote-as o mesmo AS declarado em router bgp X

201
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.1 eBGP com Upstreams e Downstreams

eBGP com UPSTREAMS


Geralmente recebemos todas as rotas possveis

Os filtros de ENTRADA so do tipo lista negra


Bloqueio de alguns excees
Prioridade sempre menor que DOWNSTREAMS

Os filtros de SADA so do tipo lista branca


Enviar apenas meus prefixos e prefixos de
DOWNSTREAMS

202
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.1 eBGP com Upstreams e Downstreams

eBGP com DOWNSTREAMS


Recebemos apenas prefixos do cliente e clientes
secundrios

Os filtros de ENTRADA so do tipo lista branca


Maior prioridade possvel deve ser aplicada

Os filtros de SADA so do tipo lista negra


Enviar todos os prefixos possveis
Anncio de parcial routing apenas quando solicitado

203
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2

Configurando Filtros de
Upstreams

204
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

No podemos anunciar nenhuma rede da qual no


queremos receber DOWNLOADS, para isso utilizamos
filtros em todas as nossas sadas de UPSTREAM e PTTs.
Porm existem certas precaues que devem ser tomadas
nos filtros de entrada de UPSTREAM:
No receber meus prprios prefixos;
No receber BOGONS;
No receber IPs privados;
No receber rotas cujo AS PATH contenham
AS(s) privado(s);
Garantir que rotas de UPSTREAMS no
recebam prioridade maior que rotas
DOWNSTREAMS;

205
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Por padro 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 prprio AS


no path e a rota descartada automaticamente.

Porm possvel que algum anuncie por "engano", e a


nica forma de garantir um filtro baseado em IP
(prefix-list).

206
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Precisamos configurar alguns filtros padro 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.

207
Vamos entender melhor...
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Antes de criar uma prefix-list precisamos ter em mente que


para toda ela h um DENY implcito no final, semelhante
uma lista branca, onde quem estiver na lista ser
permitido, e todo o resto bloqueado, ex:

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

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


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.

208
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

O que o seq ?
Ao inserir o comando:

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


Automaticamente o IOS insere um nmero de sequncia:
Gx-R1#show running-config | begin MINHA-LISTA
ip prefix-list MINHA-LISTA seq 5 permit 122.36.200.0/24
!

Caso adicionemos mais redes na mesma lista o nmero
de seq incrementado em 5 automaticamente para cada
regra:
Gx-R1(config)#ip prefix-list MINHA-LISTA permit 44.0.0.0/24
Gx-R1(config)#end
Gx-R1#show running-config | begin MINHA-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
!
...

209
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

O que o seq ?
A razo para o incremento de 5 em 5 a possibilidade de
inserir uma regra no meio especificando um nmero de
seq:
Gx-R1(config)#ip prefix-list MINHA-LISTA seq 4 permit 10.0.30.0/24

A regra recm criada seria processada primeiro do que todas as


outras: 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
!

Pouco importa a ordem de processamento quando todas as regras so


de permit
O seq s tem relevncia quando h regras de deny e permit na
mesma prefix-list e/ou utilizamos ranges com le/ge
210
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Ranges de subredes - (le):


Vamos agora considerar a necessidade de permitir sub-blocos:

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


Essa regra permite 192.168.0.0/24, porm no 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:
Gx-R1(config)#ip prefix-list MINHA-LISTA permit 192.168.0.0/24 le 29

Com essa mudana, 192.168.0.0/25, 192.168.0.128/25,


192.168.0.16/28 ou qualquer outra sub-rede dentro comeando
com 192.168.0 seria aceita, exceto redes /30, /31 e /32.
Para permitir TUDO dentro do /24 incluindo /30, /31 e /32
trocaramos o le 29 por le 32.

211
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Ranges de subredes - (ge):


Diferente do le, o ge especifica o tamanho mnimo da mscara,
seu uso mais apropriado em redes maiores.
Gx-R1(config)#ip prefix-list MINHA-LISTA permit 192.0.0.0/8 ge 18 le 26

O /8 indica os bits que sero fixos.

Para esse exemplo, qualquer prefixo com os 8 primeiros bits


fixos em comeando com 192 (11000000) e ainda com
mscara igual ou maior que /18 e igual ou menor que /26.

Caso seja declarada uma mscara /0 (192.0.0.0/0) no


importariam os 8 primeiros bits e qualquer prefixo (comeando
com qualquer coisa) seria aceito desde que sua mscara fosse
entre /18 e /26.
212
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Ranges de subredes - (ge):


Quero aceitar qualquer prefixo /24 e descartar todo o resto:
Gx-R1(config)#ip prefix-list MINHA-LISTA permit 0.0.0.0/0 ge 24 le 24
Quero aceitar TODOS os prefixos dentro de 200.233.16.0/20,
menos o primeiro /22:

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 mximo le 24 para qualquer filtro (in out)

!--- se posteriormente fosse necessrio adicionar bloqueio de mais um /22,


!--- o bloqueio funcionaria apenas com um seq menor que 20

213
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

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 no
desejamos receber.
Por se tratar de uma lista negra no podemos esquecer de
inserir uma regra que permita todo o resto no fim da
hierarquia.

214
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Inserindo os prefixos na lista:

GX-R1(config)#ip prefix-list NAO-RECEBER seq 10 deny X.0.0.0/8 le 32


!--- blocos do meu prprio 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
!--- Documentao
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 especfico que /24 como /25, /26, /27, etc
LAB 1-9-1 215
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Apenas criar a lista NAO-RECEBER de nada vale se a mesma no 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 *

LAB 1-9-1 216


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

O AS 123 vai anunciar vrios IPs privados, vamos verificar se o


bloqueio est acontecendo corretamente:
Existem 2 comando para verificar as rotas recebidas:

router#sh ip bgp neighbors A.B.C.D routes


!--- mostra todas as rotas APS a validao do nexthop
!--- e aps 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 validao do nexthop
!--- e ANTES de passar em todos os filtros de input

router#sh ip prefix-list detail NAO-RECEBER


Porm, se executarmos o segundo comando receberemos um
erro:
LAB 1-9-1 217
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Desmistificando o Soft reconfiguration inbound:

Para que serve de verdade?

218
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

HARD reset:
a maneira menos recomendada de fazer um refresh nas rotas.
A conexo TCP volta para o estado idle.
H um pequeno intervalo antes da conexo iniciar novamente.
Router#clear ip bgp { * | A.B.C.D | peergroupname }
SOFT reset:
Realiza o route refresh mantendo a sesso ativa .
Pode ser dividido em outbound refresh e inbound refresh.
Router#clear ip bgp { * | A.B.C.D | peergroupname } soft { out | in }

Porm isso ainda no explica a funo do soft reconfiguration inbound ...

219
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Quando updates so bloqueados pelos filtros de input, esses updates


so descartados pelo router, no sendo possvel verificar informaes
sobre essas rotas.
Habilitar o soft reconfiguration inbound para um neighbor reserva uma
rea em memria para guardar informaes de todas as rotas
recebidas desse neighbor, tornando possvel 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 invlido

220
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

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

LAB 1-9-2 221


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Agora vamos tentar novamente executar o comando ...


received-routes
Primeiro pelo AS 200:

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 APS do filtro NAO-RECEBER

Depois pelo AS 100:

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 APS do filtro NAO-RECEBER

LAB 1-9-2 222


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Outros BOGONS

Existe outro range de IPs que no so privados, mas ainda


assim devem ser bloqueados.

Existem blocos pblicos de IPs que ainda no foram designados


pelas organizaes responsveis.

Dessa forma possvel que algum utilize essas redes com


intenes suspeitas.

Onde conseguir uma lista atualizada?

223
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

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 informaes:

Nmero de AS;
Ip(s) que o cymru far peering com voc;
Se o equipamento suporta autenticao
MD5 para BGP;
Chave pblica GPG/PGP (opcional);

224
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Segundo o site a resposta com as informaes chega em 2 dias


teis em mdia

Para mais informaes acesse:


http://www.team-cymru.org/Services/Bogons/bgp.html

225
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

Configurando a sesso 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

226
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.2 - Configurando Filtros de Upstreams

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 opes do route-map de entrada
GX-R1(config-route-map)#match community 10
!---declara o conteudo da comm-list 10 para condio de math
GX-R1(config-route-map)#set ip next-hop 192.0.2.1
!---para toda rota que fizer a condio 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

227
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.3

Configurando Filtros de
Downstreams

228
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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, no podemos correr o risco de receber


um full-routing desse cliente por algum erro dele, caso
isso acontea, todo meu upload passa a subir por esse
cliente.

229
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.3 - Configurando Filtros de Downstreams

LAB: O router R2 agora ser um cliente de trnsito


(downstream) com as seguintes informaes:

Cliente de trnsito:
AS: 100X
Bloco CIDR: 187.X.0.0/22
IP de WAN: X.X.100.2
Interface serial 1/3

LAB 230
1-10-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.3 - Configurando Filtros de Downstreams

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 tambm os blocos do AS
!--- na sada 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 tambm os blocos do AS
!--- na sada 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 tambm os blocos do AS
!--- na sada para o PTT
LAB GX-R1(config)#end 231
1-10-1 GX-R1#clear ip bgp * out
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.3 - Configurando Filtros de Downstreams

Vamos verificar no looking glass os anncios dos downstreams...

SUCESSO??

Notem que no estgio em que chegamos, utilizar prefix-lists est se tornando


dificil de escalar e debugar problemas, pois com uma determinada quantidade
de dowstreams, simplesmente no conseguimos identificar a quem percentem
os blocos de IP.
Discutiremos posteriormente modelos mais fceis de escalar com route-map

LAB 232
1-10-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4

Entendendo o
BGP REGEXP

233
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

Quando temos muitos clientes de trnsito preciso estabelecer


padres para que os administradores sejam capazes de
entender as configuraes.

Alm de evitar ao mximo a quantidade excessiva de linhas de


configurao.

Por exemplo:

H um "range" de nmeros de AS que so de uso privado


semelhantes aos IPs 192.168.x.x . Esse intervalo vai de 64512
at 65535, e no devemos receber anncios que contenham
algum desses AS's no path.

234
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

Imagine ter que configurar uma linha de deny para cada AS


privado.

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 .*

Seria um tanto complicado!


Felizmente com expresses regulares ao invs de milhares,
resolvo esse problema com apenas 2, (ou uma talvez).

235
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

_ - Underline
Substitui uma lista de expresses, que pode ser uma vrgula (,), chave esquerda ({), chave direita (}), o
incio da seqncia de entrada (^), o fim da seqncia de entrada ($), ou um espao.

Escrever _444_ pode ser equivalente s seguintes combinaes:

^444$
^444espao
espao444
{444,
,444,
{444}
,444,
Para praticar segue um link interessante:
http://tools.lymas.com.br/regexp_br.php

236
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP
Antes vamos entender a funo dos principais caracteres nas
expresses regulares:

"1" Um nmero isolado satisfaz a condio para qualquer expresso que contenha esse nmero.
exemplo1: 1 "a condio de match qualquer AS no Path (podem haver vrios AS's) que contenha o
nmero 1 em qualquer parte, em pelo menos um dos AS's.

Satisfaz: 99199, "123 432", "999 888 777 123 998".

No satisfaz: "355 3344 22334", "466", etc.


exemplo2: _1 "a condio de match qualquer AS no Path (podem haver vrios AS's) que contenha o
nmero 1 no nicio de pelo menos um dos AS's e que essa ocorrncia no seja a primeira.

Satisfaz: "891 12333 3445 9999", "555 123 432", "1111 2222 4444".

No satisfaz: "4333 21123", "4661" "21111 912222", etc.


exemplo3: _1_ "a condio de match qualquer AS no Path (podem haver vrios AS's) que contenha o
nmero 1 sozinho em pelo menos um dos AS's e essa ocorrncia pode ser a primeira e/ou a ltima.
Satisfaz: "2333 1 3445 9999", "33 1", "433 4444 1 433", 1

No satisfaz: "333 222 555 12".


237
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

. Satisfaz a condio para qualquer nmero no lugar do ponto


exemplo: _4.5_ "a condio de match qualquer AS PATH que contenha um AS de 3 dgitos onde 4 seja
o primeiro e 5 seja o ltimo com qualquer nmero 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"

No satisfaz: "315", "123 4115", etc

Exemplo: 4.5 "a condio de match qualquer nmero de 3 ou mais dgitos que tenha 4 e 5 em qualquer
parte do AS PATH e com um dgito qualquer entre eles

Satisfaz: "23415", "43425", "435 3333", "445", "45587", "321 44459 345"

No satisfaz: 315, 416, etc

238
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

$ Satisfaz a condio para o tudo que o que for terminado com o caracter (ou expresso) ao
lado esquerdo de "$"
exemplo1: 12$ "a condio de match qualquer AS PATH em que os dois ltimos dgitos sejam 1 e 2
respectivamente"

Satisfaz: 4912, "65012", "12312", "11112", "9932 9976 64912", "28135 17379 54312" ...

No satisfaz: 13, 22, 129, 55413, 58752


exemplo2: _12$ "a condio de math qualquer AS PATH em que ltimo AS seja 12"

Satisfaz: "12", "2335 12", "312 12", "111 12"

No satisfaz: "444 112", "22", "12 229", "999 12 1111"

exemplo3: 1.2$ "a condio de match qualquer AS PATH em que seus ltimos 3 dgitos do ltimo AS
sejam: 1, qualquer coisa e 2 respectivamente"

Satisfaz: "123 45666 33 112", "444 122", "132", "1111 132", "444 65192", "60192"

No satisfaz: "2333 222", 123, 112 912

239
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

^ Satisfaz a condio para caracteres que comecem com o caracter (ou exprsso) aps o ^
exemplo1: ^1 "a condio de match qualquer AS PATH que tenha o dgito 1 no incio do primeiro AS do
PATH

satisfaz: "1111 9999 55443", "12345 6776", 12222, 19999

no satisfaz: 21111, 31211, 2, 3, 43111


exemplo2: ^1.4 "a condio de match qualquer AS PATH em que os 3 primeiros dgitos do primeiro as
sejam: 1, qualquer coisa e 4 respectivamente

Satisfaz: "124 4321", "12444", "1449", "19455 12333", "10466 55443 9900"

No satisfaz: 195, 2124, 22444, 9104


exemplo3: ^1..8$ "a condio de match um AS PATH contento apenas um AS de 4 dgitos, onde o
primeiro dgito 1, o segundo e o terceiro qualquer coisa e o quarto e ltimo seja 8 respectivamente

Satisfaz: 1008, 1248, 1118, 1228, 1998, 1888

No satisfaz: 10008, "1008 1008", "14448"

240
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

* Satisfaz a condio para qualquer caractere esquerda do "*", inclusive nenhum, por isso
preciso utilizar o caracter um espao "_" branco em conjunto, pois sem espao a
expresso perde o sentido, por exemplo, 1* satisfaria condio para qualquer coisa, e o
padro intuitivo para "qualquer coisa/tudo" ".*"
exemplo1: 1_* "a condio de match qualquer coisa que contenha o dgito 1 em qualquer
parte do AS"
satisfaz: "43431 9999 777 9999 8888(infinito...), 99 9991 345 666 654 5556...

no satisfaz: 8872, "9987 2332", etc

Exemplo2: .* "a condio de math qualquer AS PATH de qualquer tamanho, com qualquer
combinao"

Satisfaz: TUDO
No satisfaz: NADA

241
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

\ Este caracter usado quando os caracteres de condio tambm so caracteres de


expresso regular, por exemplo, se precisssemos de uma expresso para dinheiro, onde
a condio fosse "R$ 10,01" at "R$ 10,99", teramos um grande problema, j que a
expresso necessria "R$_10,..$" Notem que o "$" precisa aparacer como "condio" ao
mesmo tempo que um caracter de expresso regular. Sendo assim, no funcionaria. O
caracter "\" usado para declarar que o prximo caracter dever ser interpretado como
"condio", ao invs de sua funo normal. Assim, a expresso corret ficaria "R\$_10,..$"
Felizmente no utilizaremos esse caracter para BGP

242
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP
[ ] Satifaz a condio para qualquer um dos caracters dentro dos colchetes, mas apenas UM
deles. H a possibilidade de utilizar intervalos entre os colchetes seguidos de hfem "-"
Dentro dos colchetes o caracter "^" tem funo de negao, O intervalo funciona da mesma
forma para as negaes.
exemplo1: ^9[249]5$ "a condio um AS que contenha qualquer combinao de 3 dgitos sendo o
primeiro 9, o terceiro 5 e o do meio 2, 4 ou 9

Satisfaz: 925, 945, e 995

No satisfaz: 915, 955, 965, etc


exemplo2: ^9[5-7]5$ "mesma lgica do exemplo 1, porm o dgito do meio pode ser de 5 7"

Satisfaz: 955, 965 e 975


exemplo3: ^9[^28]5$ "a condio de match a mesma lgica dos exemplos 1 e 2 porm o digito do meio
no poder ser 2 ou 8

Satistaz: todas as possibilidades de um 9.5 "menos" 925 e 985.


exemplo4: ^9[^5-8]5$ "a condio de match segue a mesma lgica dos exemplos 2 e 3 porm o dgito do
meio no pode estar no intervalo entre 5 e 8 (5,6,7 ou 8)

Satisfaz: todas as possibilidades "menos" 955, 965, 975 e 985

243
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

| O PIPE divide dois ou mais caracters em uma condio "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 expresso em evidncia, sem eles o exemplo 2 aceitaria


5333333333333333333353333333333333333333333435465769733...

244
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

+ Satisfaz a condio para uma(pelo menos) ou mais ocorrncias do caracter (ou expresso)
anterior em qualquer parte
exemplo1: ^([^ ]+)$ satisfaz: qualquer ASPATH que contenha apenas 1 AS

Aplicao prtica: Filtrar para meu cliente apenas rotas que tenham um AS no path e nada mais

? Satisfaz a condio para uma ou nenhuma ou uma ocorrencia do caracter (ou expresso) anterior
exemplo1: ^([^ ]+)?$ satisfaz: qualquer rota que tenha no mximo um AS no PATH ou NENHUM

Aplicao prtica: Filtrar para meu cliente apenas rotas que tenham um AS no path e tambm rotas
que no contenham NENHUM AS no PATH (rotas originadas localmente)

{ } especifica um nmero ou um intervalo de repeties para um caracter (ou expresso)


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


245
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 1-4-2

4.4 - Entendendo o BGP REGEXP

Agora vamos raciocinar um pouco e utilizar as expresses que


aprendemos para bloquear o range dos AS's 64512 at 65535
utilizando o menor nmero possvel de regras...

LAB 246
1-11-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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, no 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 expresses acima podem ser simplificadas ainda mais

LAB 247
1-11-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

Existem infinitas aplicaes, por exemplo, descubro que o AS 12345


est com lentido, crio polticas 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 ao "mudar o local pref para 90"
router(config-route-map)#match as-path 20
!--- especifica quem ir receber a ao "set local pref 90"
router(config-route-map)#exit
router(config)#route-map UPSTREAM-1 permit 2
!--- cria um route-map em brancoque aceita todo o resto sem modificaes
router(config-route-map)#exit

LAB 248
1-11-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 ao "mudar o local pref para 90"
router(config-route-map)#match as-path 20
!--- especifica quem ir receber a ao "set local pref 90"
router(config-route-map)#exit
router(config)#route-map UPSTREAM-2 permit 2
!--- cria um route-map em brancoque aceita todo o resto sem modificaes
router(config-route-map)#exit

LAB 249
1-11-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

As expresses regulares no servem apenas para filtrar prefixos,


mas tambm 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
...

250
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

Exemplo 2:
Quais rotas foram recebidas pela Intelig atravs do peering com
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

Exemplo 3:
Quais ASs esto diretamente conectados (sem prepend) com o AS
4230 (EMBRATEL)?
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
... 251
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.4 - Entendendo o BGP REGEXP

Quais ASs esto 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
...

252
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.
5
Enviando e Recebendo
Partial e Full-Routing

253
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.5 Enviando e Recebendo Partial e
Full-routing
Enviando parcial para o meu DOWNSTREAM
O cliente deseja receber rotas do meu AS e meus outros
DOWNSTREAMS
A lgica 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 mximo 1 AS no AS-PATH

!--- inclusive rotas com 0 AS's no path, ou seja, originadas localmente

LAB 254
1-12-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 255
1-12-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 256
1-12-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 opo 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)
257
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.5 Enviando e Recebendo Partial e
Full-routing

Porm 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 expresso


"qualquer
nmero" [0-9]+" por "qualquer coisa q nao seja em branco" "[^ ]",
logo:

de ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$
para ^(([^ ]+ [^ ]+)|([^ ]+)|())$

258
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
(...continua)
4.5 Enviando e Recebendo Partial e
Full-routing

Porm 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 expresso


"qualquer
nmero" [0-9]+" por "qualquer coisa q nao seja em branco" "[^ ]",
logo:

de ^([0-9]+ [0-9]+)$|^([0-9]+)$|^$
para ^(([^ ]+ [^ ]+)|([^ ]+)|())$

259
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
(...continua)
4.5 Enviando e Recebendo Partial e
Full-routing

Mesmo ficando pouco intuitivo, tivemos uma boa reduo 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 expresso para "4" impossvel de digitar com pressa ;-)

(...continua) 260
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.5 Enviando e Recebendo Partial e
Full-routing
Ento as chaves ajudam a eliminar as repeties inserindo um
intervalo de repeties dentro das chaves {}...
Consigo diminuir essa expresso 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 verses de IOS que otilizamos nesse curso as
chaves simplesmente no funcionam
PS: No Quagga funciona 100%.

261
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6

Route-Map x Prefix-List

262
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6 Route-Map X Prefix-List

Polticas de filtro baseadas em ROUTE-MAP:


Seq number: { 0 65535 }
A ordem que esse route-map vai ser processado na hierarquia,
seguindo a mesma lgica 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

263
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6 Route-Map X Prefix-List

Polticas de filtro baseadas em ROUTE-MAP:


Condies: match ip address prefix-list MUDAR-METRIC
Para receber a ao permit e as modificaes opcionais (set
metric 50) o prefixo precisaria estar contido na prefix list
MUDAR-METRIC
OBS: possvel estabelecer mais de uma condio, por
exemplo:

match ip address prefix-list MUDAR-METRIC


match as-path 10
match community 60

Mas nesse caso preciso que todas as condies sejam


atendidas, caso contrrio, o route-map ignorado e
processado
router(config)#route-map o prximo permit
FILTROS-DE-ENTRADA route-map
10 na sequncia
router(config-route-map)#match ip address prefix-list MUDAR-METRIC
router(config-route-map)#set metric 50

264
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6 Route-Map X Prefix-List

Polticas de filtro baseadas em ROUTE-MAP:


Modificaes: set metric 50
Ao atender 100% das condies podem ser aplicadas
modificaes opcionais nas rotas
OBS: Tambm possvel realizar mais de uma modificao, 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

265
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6 Route-Map X Prefix-List

Polticas de filtro baseadas em ROUTE-MAP:


Route-map sem condies declaradas:
Nesses casos TODAS as rotas recebero ao {permit | deny}
e qualquer modificao 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

266
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6 Route-Map X Prefix-List

Polticas de filtro baseadas em ROUTE-MAP:


Route-map sem condies declaradas:
Caso hajam outros route-maps abaixo (nmeros maiores de
seq) de um route-map sem condies declaradas, esses jamais
sero processados e sero totalmente inteis.

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
!
267
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.6 Route-Map X Prefix-List

Polticas 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 no como um
aceitar propriamente dito, pois a ao de aceitar vai
depender do que for declarado na ao do route-map.
Se um route-map com ao DENY, tudo que tiver como permit
na prefix list ser bloqueado, por exemplo:
!
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
! Nesse caso o prefixo 192.168.2.0/24 ser bloqueado, enquanto
192.168.2.128/25 ser permitido, porm inutilizado por causa da
regra de cima
268
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.
7

AS-Path Prepend

269
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.7 - AS-Path Prepend

Para manipular o download pra os prefixos do meu prprio


AS eu posso facilmente anunciar prefixos mais ou menos
especficos.

Mas como AS de trnsito no tenho como pedir aos meus


clientes que modifiquem seus anncios caso eu queira
usar um link especfico.

O AS PATH prepend adiciona nmeros extras de AS no AS


PATH das rotas anunciadas para um determinado
neighbor.

270
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.7 - AS-Path Prepend

Exemplo1:
Inserindo prepends do MEU AS na sada

(Router-E1)
router bgp 65000
no synchronization
bgp log-neighbor-changes
network 10.7.1.0 mask 255.255.255.0
neighbor 10.0.1.2 remote-as 64800
neighbor 10.0.1.6 remote-as 64800
neighbor 10.0.1.6 route-map prepend out
!
route-map prepend permit 10
set as-path prepend 65000 65000 65000

(Router-R2)
R2#show ip 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

Fonte:http://wiki.nil.com/AS-path_prepending_(technical_details)
271
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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

Fonte:http://wiki.nil.com/AS-path_prepending_(technical_details)
272
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.8

Engenharia de Trfego
I

273
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.8 Engenharia de Trfego I

LAB: Todos os grupos configurar Upstreams +


Dowmstreams de acordo com os seguintes requisitos:
AS-123

Apenas o DOWNLOAD do
AS-55
CLIENTE (AS100X) dever AS-222
chegar pelo AS 100, de forma
que o DOWNLOAD do AS AS-111
LOCAL continuar chegando
pelo AS 200.
AS-100 AS-200

AS-X

DOWNLOAD CLIENTE:
DOWNLOAD AS LOCAL: AS-100X

LAB 274
1-13-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.8 Engenharia de Trfego I

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 sada para o AS 200
GX-R1(config-router)#exit
GX-R1(config)#route-map AS-200-OUT permit 1
!--- entra no modo de configurao do route-map seq 1
GX-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-100X
!--- declara a condio para receber permit + a modificao 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 configurao do route-map seq 2
GX-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
!--- declara a condio para receber permit, no havero modificas de prepend para
!--- os blocos do AS. Caso ainda no tenha sido criada, preciso criar a prefix-list MEUS-BLOCOS
!--- e adicionar os prefixo do AS dentro dela

LAB 275
1-13-1 v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
4.8

PERGUNTAS?

276
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.0

Roteamento
dentro do AS (iBGP)

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com
uma Licena Creative Commons - Atribuio 3.0 No Adaptada.
Podem estar disponveis autorizaes adicionais ao mbito desta licena em
rinaldopvaz@gmail.com.

277
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.0
Roteamento
dentro do AS (iBGP)
5. Roteamento dentro do AS (iBGP)

5.1 Implementando mltiplas sadas para clientes de trnsito


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 Trfego II

278
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.
1
Implementando Mltiplas
Sadas para Clientes de
Trnsito

279
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas para
Clientes de Trnsito
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 no h necessidade de injetar rotas externas
dentro do AS:

280
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas para
Clientes de Trnsito
Injetar rotas externas se faz necessrio 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.

281
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas para
Clientes de Trnsito
Alguns pontos importantes:
1. Um protocolo de roteamento IGP precisa garantir conectividade IP
entre TODOS os routers do AS.
2. Mas se no houver mltiplos caminhos, no h necessidade de IGP,
apenas rotas estticas.

282
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas para
Clientes de Trnsito
Em nosso LAB h mltiplos caminhos, e todos os routers (exceto
AS's externos) j esto configurados com OSPF:

283
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas para
Clientes de Trnsito
Nos prximos LABs os alunos se juntaro em grupos de 3.
Alunos da mesma bancada faro parte do mesmo grupo, de
maneira que os grupos 1,2,3 sero o GRUPO 1 AS 1
Grupos 4, 5 e 6 sero GRUPO 2 AS 2
Grupos 7, 8 e 9 sero GRUPO 3 AS 3
Grupos 10, 11 e 12 sero GRUPO 4 AS 4
Grupos 13, 14 e 15 sero GRUPO 5 AS 5
Grupos 16, 17 e 18 sero GRUPO 6 AS 6
Grupos 19, 20 e 21 sero GRUPO 7 AS 7
Grupos 22, 23 e 24 sero GRUPO 8 AS 8

LAB 2-1-1 284


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas para
Clientes de Trnsito

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.

LAB 2-1-1 285


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito
LAB: Considerando que as cidades onde ficam R4 e R5
atendem clientes de trnsito (DOWNSTREAMS), e as cidades
onde ficam R1 e R2 tem sada de trnsito IP (UPSTREAMS),
precisaremos que R4 e R5 recebam e enviem rotas para o
AS 100 (atravs de R1), e para o AS 200 atravs de R2.

Vamos estabelecer sesses eBGP entre os clientes de trnsito


AS 14X com R4 e AS 15X com R5.

NOTA:

!--- No intuito de facilitar a visualizao das rotas por parte dos


alunos, em
!--- todos os LABS seguintes no trabalharemos com anncios mais

!--- especficos que /8, (com excesso dos anncios ao PTT no lab
!--- correspondente
LAB 2-1-1 286
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito

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-ID para facilitar a visualizao 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 configuraes BGP

LAB 2-1-1 287


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito

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 *
LAB 2-1-1 288
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito

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 visualizao 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 configuraes BGP

LAB 2-1-1 289


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.3 Next-hop-self

Vamos tambm configurar as sesses 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 configurao 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...)

LAB 2-1-1 290


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito

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 *
LAB 2-1-1 291
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.3 Next-hop-self

Vamos tambm configurar as sesses eBGP com os UPSTREAMS.


Primeiro eBGP entre R1 e AS 100:

(...continuao)
AS-X-R1(config)#route-map ANUNCIAR-AS-100 permit 10
!--- cria um route-map de ao permit sequencia 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
!--- configura a condio para receber a ao 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 ao permit sequencia 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-14X
!--- configura a condio para receber a ao 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 ao permit sequencia 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-15X
!--- configura a condio para receber a ao permit, fazer parte da lista BLOCOS-AS-15x
AS-X-R1(config-route-map)#end
AS-X-R1#clear ip bgp * soft

LAB 2-1-1 292


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.3 Next-hop-self

Vamos tambm configurar as sesses 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 tambm filtros de saida baseados em route-map + prefix-list
AS-X-R2(config-router)#exit
!--- volta para o modo de configurao 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...)

LAB 2-1-1 293


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.3 Next-hop-self

Vamos tambm configurar as sesses eBGP com os UPSTREAMS


Em seguida eBGP entre R2 e AS 200:

(...continuao)
AS-X-R2(config)#route-map ANUNCIAR-AS-200 permit 10
!--- cria um route-map de ao permit sequencia 10
AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOS
!--- configura a condio para receber a ao 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 ao permit sequencia 20
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-14X
!--- configura a condio para receber a ao 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 ao permit sequencia 30
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-15X
!--- configura a condio para receber a ao permit, fazer parte da lista BLOCOS-AS-15x
AS-X-R2(config-route-map)#end
AS-X-R2#clear ip bgp * soft

LAB 2-1-1 294


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito
Configurando iBGP entre R4 e R1:

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

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.2 remote-as X


AS-X-R4(config-router)#neighbor X.0.0.2 description iBGP Router 2

LAB 2-1-1 295


v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito
Configurando iBGP entre R1 e R4:

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
Configurando iBGP entre R1 e R5:

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

296
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito
Configurando iBGP entre R5 e R1:

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

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.2 remote-as X
AS-X-R5(config-router)#neighbor X.0.0.2 description iBGP Router 2

297
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito
Configurando iBGP entre R2 e R4:

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

Configurando iBGP entre R2 e R5

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

298
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.1 - Implementando Mltiplas Sadas
para Clientes de Trnsito

As sesses iBGP subiram?

Provavelmente no!

Por que razo?

299
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.2 - Update-source

Como decidimos estabelecer as sesses utilizando os IPs de


loopback dos routers internos, nos deparamos com um
problema de conexo TCP.

300
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.2 - Update-source

A menos que especifiquemos o contrrio, o IP de origem de


todo pacote o IP da interface que saiu.

Em outras palavras, se a melhor rota para alcanar R4


pela serial 1/1, o IP de origem ser o IP dessa interface.

301
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.2 - Update-source

Vejamos:

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

Nesse caso, quando o pacote "syn" chegar ao router R1 (X.0.0.1)


para solicitar o incio da sesso 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
conexo.

302
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.2 - Update-source

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

303
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-2

5.2 - Update-source

Para resolver esse problema precisamos dizer ao meu router R4


que utilize o IP X.0.0.4 para estabelecer a conexo 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 tambm podemos declarar um IP ao invs de uma interface

304
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-2

5.2 - Update-source

Analizando novamente o debug aps a mudana 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

305
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-2

5.2 - Update-source

fazer a mesma mudana 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

306
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.2 - Update-source

Por que no foi necessrio realizar a mesma configurao 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 prtica preciso que apenas um dos dois routers altere o


"update-source", porm recomendvel alterar nos dois, pois
isso pode fazer com que a sesso estabelea alguns segundos
mais rpido numa eventual queda.

307
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-3

5.2 - Update-source

Ajustando o update-source nas sesses 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.4 update-source loopback 0
AS-X-R1(config-router)#neighbor X.0.0.5 update-source loopback 0

Ajustando o update-source nas sesses 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.4 update-source loopback 0
AS-X-R2(config-router)#neighbor X.0.0.5 update-source loopback 0

308
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-3

5.3 Next-hop-self

Estabelecidas as sesses iBGP e eBGP, vamos aos "novos"


problemas:
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

Notem que no estamos anunciando as redes recebidas


pelos meus DOWNSTREAMS, mas apenas o classe A do AS
local.
Por que? v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
309
LAB 2-1-3

5.3 Next-hop-self

O primeiro critrio para o protocolo BGP anunciar algum prefixo


que esse prefixo esteja vlido 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
...
O prefixo "X.0.0.0" est com o caractere ">", o que demonstra
que esse prefixo est de fato na FIB (best).
Porm no o que acontece com os prefixos recebidos dos
DOWNSTREAMS.
Os prefixos 14X.0.0.0 e 15X.0.0.0 esto na RIB, mas no na FIB.
Por que esses prefixos no esto na FIB?

310
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-3

5.3 Next-hop-self

Vamos verificar detalhadamente o status de um desses prefixos


em R1...
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

Um problema perceptvel sem muito trabalho:


"X.14X.4.2 (inaccessible)"
Para que esse prefixo seja vlido na FIB necessrio que o
"next-hop" correspondente tambm seja vlido, o que no
ocorre.
Mas esse apenas um dos problemas perceptveis na sada do
ltimo comando.
311
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-3

5.3 Next-hop-self

Resolvendo o primeiro problema:


No recomendvel que as interfaces externas do AS participem do IGP
(OSPF), portanto vamos para outra soluo.
Vamos ento 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

312
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-3

5.3 Next-hop-self

Continuando em R4 e R5...

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

Vamos agora verificar as mudanas...

313
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Vamos detalhar novamente um dos prefixos em R1:

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

Notem que o next-hop no se encontra mais inacessvel, porm a


rota mostra uma outra mensagem: "NOT SYNCRONIZED".
Isso acontece com rotas aprendidas por iBGP, uma vez que por
padro o protocolo exige a sincronizao da rota antes de
anunci-la aos AS's externos.
Nas verses e caixas mais novas o syncronize vem desabilitado.

314
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

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 *

315
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

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 *

316
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Conferindo as mudanas em R1 e demais:

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

Verificando o caractere ">" podemos ter certeza dessa vez


as rotas foram para FIB.

317
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Vamos agora ter certeza que os prefixos do meus


DOWNSTREAMS esto sendo anunciados aos UPSTREAMS:

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

Bingo!! Estamos anunciando os prefixos de DOWNSTREAMS para


o AS 100.
O mesmo vale para R2, R4 e R5, s conferir.

318
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

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,

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 * * *

CONCLUSES: Se o "syncronization" existe, precisamos


compreender sua funo antes de desabilit-lo.

319
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Entendendo o "syncronization"...

Uma proteo natural que o BGP implementa exigir a


sincronizao de uma rota aprendida por iBGP antes de
inseri-la na FIB.

Quando um router recebe um prefixo de origem "internal"


atravs de iBGP esse no tem como saber se os routers
intermedirios tambm conhecem rota para esse prefixo.

Vamos entender melhor...

320
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Entendendo o syncronization...

R4 estabelece um iBGP diretamente com R1 e anuncia os


prefixos recebidos do AS 14X. O problema que AS-X-R1
no tem como saber se R3 conhece rota para os prefixos
do AS 14X.

O syncronization um mecanismo de proteo que evita


loops de roteamento, vamos entender melhor o que
aconteceu no LAB.

321
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

AS 14X anuncia seus prefixos para R4...

322
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

AS R4 anuncia para R1...

323
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

AS R1 anuncia para o UPSTREAM AS 100...

324
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

AS 100 anuncia para o AS 99...

325
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Caminho dos pacotes: Entram no AS 100...

326
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Caminho dos pacotes: em seguida no AS por R1...

327
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Caminho dos pacotes: agora complica um pouco, R1


conhece rota para 11X.0.0.0/8 atravs do next-hop
X.0.0.4 (R4), e esse next-hop alcanvel via R3
(X.X.1.2).

328
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Caminho dos pacotes: Ningum avisou para R3 qualquer


coisa sobre um tal AS 11X, o que ele faz com um pacote
cujo destino no conhece? (rota padro) O pacote
devolvido para R1.

329
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Caminho dos pacotes: Mas R1 consulta novamente sua FIB,


e tem certeza que o pacote deve mesmo ser entregue
para R3...

330
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Caminho dos pacotes: E o loop se repete at o fim do TTL do


pacote...

331
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

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 atravs 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 atravs de Labels.
Veremos essa no captulo 8.1 (BGP atravs da nuvem
MPLS);
Vamos primeira!

332
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Distribuindo as rotas BGP atravs 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 configurao do OSPF
AS-X-R1(config)#router ospf 1
AS-X-R1(config-router)#redistribute bgp X
!--- habilita a distribuio 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

333
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Distribuindo as rotas BGP atravs 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 configurao do OSPF
AS-X-R2(config)#router ospf 1
AS-X-R2(config-router)#redistribute bgp X
!--- habilita a distribuio 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#

334
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Distribuindo as rotas BGP atravs 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 configurao do OSPF
AS-X-R4(config)#router ospf 1
AS-X-R4(config-router)#redistribute bgp X
!--- habilita a distribuio 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#

335
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Distribuindo as rotas BGP atravs 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 configurao do OSPF
AS-X-R5(config)#router ospf 1
AS-X-R5(config-router)#redistribute bgp X
!--- habilita a distribuio 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#

336
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Agora vamos verificar em R1 as rotas recebidas do AS-14X


via R4:

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
...

Agora podemos ver pelo ">" que a rota para 14X.0.0.0 est
na FIB.
Outro detalhe o "i" esquerda identifica a rota como 337
"internal". v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-4

5.4 - BGP Synchronization

Detalhando os prefixos do meu DOWNSTREAM:

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

Temos agora uma rota SINCRONIZADA, VLIDA, e


ANUNCIADA para 100.X.1.1 (AS 100).

338
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Segunda maneira desabilitando o syncronization, porm


alterando os BGP peers.

Vamos refazer as configuraes BGP estabelecendo


R4<->R3 e R3<->R1.

Dessa forma R3 vai conhecer a rota para os DOWSTREAMS e


UPSTREAMS.

339
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

Mas antes vamos desconfigurar a redistribuio 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

340
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

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#

341
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

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#

342
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

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#

343
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

Vamos alterar o esquema das sesses removendo todas as


sesses 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)#router bgp 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
344
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

Restabelecendo as sesses 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
!--- no vamos utilizar nenhum filtro de in-out para a sesso com R3

345
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

Reestabelecendo as sesses 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
!--- no vamos utilizar nenhum filtro de in-out

346
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

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

347
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

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

348
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

Restabelecendo as sesses 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

349
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-5

5.4 - BGP Synchronization

Verificando as mudanas comeando por R1

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 0i
*> 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
...
Ainda no temos a rota anunciada pelo DOWNSTRASM AS
14X na FIB de R1, isso porque R3 no est anunciando!
Por que isso acontece?

350
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

BGP e o SPLIT HORIZON

Desde o tempo do RIP, os protocolos do tipo vetor de


distncia sabem que no h sentido em propagar uma
rota para a mesma interface de onde aprendeu, e com o
BGP parecido.

No iBGP indispensvel* que haja fullmesh de sesses BGP


(todos estabelecendo com todos) e sendo assim, um
router no anuncia por iBGP uma rota que foi aprendida
tambm 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 351
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.4 - BGP Synchronization

Em resumo, um router no anuncia para outro router do


mesmo AS qualquer coisa que tenha aprendido tambm
via iBGP.

Ou seja, R3 no vai anunciar para R1 as rotas aprendidas de


R4.

352
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.
5

Route-Reflector

353
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.5 - Route-Reflector

Em tese, de acordo com as regras do split horizon deveramos


estabelecer as seguintes sesses 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 restrio no repasse de rotas iBGP
para outro neighbor iBGP.
altamente recomendado quando o nmero de routers maior
que 5:
*evita um nmero muito grande de sesses iBGP
354
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.5 - Route-Reflector

Nessa topologia de rede em particular, podemos optar por 3

modelos:

1- R1 como Route-Reflector estabelecendo com R2, R3, R4 e


R5 (4 sesses).
Pontos crticos de falha: falha em R3 e/ou R1 e/ou link
R3<->R1 = 3.

355
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.5 - Route-Reflector

2- R2 como Route-Reflector estabelecendo com R1, R3, R4 e


R5 (4 sesses).
Pontos crticos de falha: falha em R3 e/ou R2 e/ou link
R3<->R2 = 3.

356
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.5 - Route-Reflector

3- R3 como Route-Reflector estabelecendo com R1, R2, R4 e


R5 (4 sesses).
Pontos crticos de falha: falha em R3= 1.

357
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-6

5.5 - Route-Reflector

Obviamente j optamos pela opo nmero 3


Vamos acrescentar apenas a opo 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

358
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.5 - Route-Reflector

importante deixar claro que diferentemente do que o


nome possa sugerir, "Route-reflector" no significa
"refletir a rota" e preservar o next-hop original, isso uma
caracterstica do prprio iBGP. Route-Reflector significa
anunciar via iBGP rotas aprendidas tambm por iBGP.

359
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.
6

Peer Groups

360
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.6 - Peer Groups

Em nossa topologia, ficamos diante de uma situao:

R3 possui vrios neighbors com configuraes semelhantes,


exigindo configuraes repetitivas e sujeitas erros.

O recurso "peer-group" me permite realizar um padro para


os neighbors semelhantes diminuindo drasticamente a
quantidade de linhas de configurao e "show run".

361
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-7

5.6 - Peer Groups

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 configuraes bsicas
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

362
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.6 - Peer Groups

Com peer-group fica muito mais simples adicionar remover


configuraes de neighbors para todo o grupo em apenas um
comando, por exemplo:
!--- apenas exemplo, no efetue essa configurao
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, no efetue essa configurao

Todas as sesses BGP dentro do peer-group passariam pelos


mesmos filtros de entrada e de sada

!--- 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

363
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-7

5.6 - Peer Groups

Finalizando o LAB:
Acessar o Looking Glass e verificar se esse alcana o AS do grupo
e todos os seus respectivos DOWNSTREAMS

telnet 99.99.99.1 ...

364
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.
7

Local Preference x Weight no


iBGP

365
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.7 - Local Preference x Weight no iBGP

Caractersticas:
Weight:
Proprietrio Cisco (embora implementado por Mikrotik, Quagga, OpenBGPD)
Primeiro critrio na escolha de rotas (maior weight)
No considerado um atributo e seu valor pode ser de 0 a 65535
Os valores de weight no so transitivos (mesmo dentro do AS)
Local Preference:
Conhecido em todas as implementaes de BGP
Segundo critrio depois do weight (maior local pref)
Seu valor padro 100 e pode variar de 0 a 4294967295
Os valores alterados so propagados por todo o iBGP
366
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-8

5.7 - Local Preference x Weight no iBGP

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 condio para receber a ao permir
!--- e a modificao 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
!--- no podemos esquecer de adicionar um route-map vazio no final (numero alto), caso contrrio
!--- os prefixos do AS 99 reeceberiam a ao desejada, porm nenhum outro prefixo seria aceito
AS-X-R1(config-route-map)#end
AS-X-R1#clear ip bgp 100.X.1.1 soft

367
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-8

5.7 - Local Preference x Weight no iBGP

Conferindo a modificao:

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
...

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 no propagado atravs do iBGP

368
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.7 - Local Preference x Weight no iBGP

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 atravs 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 substitudo pelo atual

369
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.7 - Local Preference x Weight no iBGP

A maneira mais indicada de priorizar rotas dentro do iBGP


utilizando o local preference

O weight deve ser usado apenas em casos muito especficos onde


no haja a inteno de que os outros routers do AS escolham
essa mesma rota

370
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-9

5.8 Engenharia de Trfego II

LAB:
utilizando os recursos vistos no curso vamos configurar os
routers do AS de maneira que atenda todos os seguintes
requisitos:
Todo o trfego 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 trfego inbound (download) do
DOWNSTREAM AS 15X (apenas) deve chegar pelo AS 200 quando a origem for o AS 99
(internet)
Apenas R2 deve alcanar o AS 99 atravs do link com o AS 200

371
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-9

5.8 CHEATS
Soluo em R1 Soluo em R2

router bgp 4 router bgp 4


no synchronization no synchronization
bgp log-neighbor-changes bgp log-neighbor-changes
network 4.0.0.0 network 4.0.0.0
neighbor 4.0.0.3 remote-as 4 neighbor 4.0.0.3 remote-as 4
neighbor 4.0.0.3 update-source Loopback0 neighbor 4.0.0.3 update-source Loopback0
neighbor 4.0.0.3 next-hop-self neighbor 4.0.0.3 next-hop-self
neighbor 4.0.0.3 soft-reconfiguration inbound neighbor 4.0.0.3 soft-reconfiguration inbound
neighbor 100.4.1.1 remote-as 100 neighbor 200.4.2.1 remote-as 200
neighbor 100.4.1.1 soft-reconfiguration inbound neighbor 200.4.2.1 soft-reconfiguration inbound
neighbor 100.4.1.1 route-map AS-100-IN in neighbor 200.4.2.1 weight 10
neighbor 100.4.1.1 route-map ANUNCIAR-AS-100 out neighbor 200.4.2.1 route-map AS-200-IN in
auto-summary auto-summary
! !
ip prefix-list BLOCOS-AS-144 seq 5 permit 144.0.0.0/8 ip prefix-list BLOCOS-AS-200 seq 5 permit 200.0.0.0/8
! le 32
prefix-list BLOCOS-AS-154 seq 5 permit 154.0.0.0/8 !
! route-map AS-200-IN permit 10
prefix-list BLOCOS-AS-99 seq 5 permit 99.0.0.0/8 le 32 match ip address prefix-list BLOCOS-AS-200
! set local-preference 120
ip prefix-list MEUS-BLOCOS seq 5 permit 4.0.0.0/8 !
! route-map AS-200-IN permit 999
route-map AS-100-IN permit 10 set local-preference 100
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
!

372
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
5.8

PERGUNTAS?

373
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.0
BGP Communities

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com
uma Licena Creative Commons - Atribuio 3.0 No Adaptada.
Podem estar disponveis autorizaes adicionais ao mbito desta licena em
rinaldopvaz@gmail.com.
374
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.0
BGP Communities
6. BGP Communities

6.1 Communities Padro


6.2 Communities Numricas
6.3 Identificando e tratando rotas de peers especficos
6.4 Manipulando trsito (nacional/internacional) com communities
6.5 Engenharia de Trfego III

375
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.
1

Communities Padro

376
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

Communities so atributos que so preservados em


anncios entre AS's externos e internos.

So 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.

377
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

Os modelos mais novos suportam o "novo formato"


usualmente utilizado como ASN:comunity, por exemplo:
28135:110.

Porm h algumas communities padronizadas pela RFC


1997 e so padro nos routers Cisco:
INTERNET
NO-EXPORT
NO-ADVERTISE
LOCAL-AS
NO-ADVERTISE-SUBCONFED

378
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

NO-EXPORT por padro faz o router receptor exportar o


prefixo para neighbors iBGP, mas no para eBGP. til
quando fao anncios mais especficos para a operadora
A e menos especficos para operadora B. Normalmente, a
operadora B precisaria passar pela operadora A para
chegar ao prefixo "especfico" mesmo estabelecendo BGP
diretamente com meu AS.
Enviando o mesmo bloco especfico, com a community
NO-EXPORT operadora A, essa passaria a me alcanar
diretamente, ao mesmo tempo que no exportaria esses
prefixos.

379
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

NO-ADVERTISE por padro faz o router receptor no


exportar esse prefixo para nenhum neighbor, seja ele
eBGP ou iBGP.

380
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

NO-ADVERTISE-SUBCONFED usada para evitar que o prefixo


seja exportado para AS's confederados.

381
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

LOCAL-AS usada para evitar que os prefixos marcados


sejam exportados para fora do AS ou confederao,
geralmente usado em filtros de entrada.

382
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

INTERNET na prtica a community padro para anncios


externos, o mesmo que no haver nenhuma.

383
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.1 Communities Padro

LAB 1: Antes de comear remover todas as configuraes do


laboratrio anterior

R1 R2

conf t conf t
! !
no route-map AS-100-IN permit 10 no route-map AS-200-IN permit 10
!
! route-map AS-200-IN permit 999
route-map AS-100-IN permit 999 set local-preference 100
no set local-preference 110 !
!
!
route-map ANUNCIAR-AS-100 permit 30
no set as-path prepend 4
!
384
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-10

6.1 Communities Padro

LAB 1: Anunciar os prefixos de um dos AS's clientes com a


community NO-EXPORT para dentro do AS do grupo:

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

Verifiquem nos routers R1 e R2 se os prefixos marcados


como "NO-EXPORT" esto sendo anunciados para os AS's
100 e 200.
385
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-10

6.1 Communities Padro

Antes de iniciar os LABs desse captulo obrigatrio


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

386
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1
2-1-11

6.1 Communities Padro

LAB 2 opcional: verificar a diferena enviando a community


NO-ADVERTISE.

387
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-12

6.1 Communities Padro

LAB 3 :
Utilizar communities PADRO 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 devero alcanar os
DOWNSTREAMS do grupo pelo link direto sem ter que
dar a volta pelo AS 99.

388
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.
2

Communities Numricas

389
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.2 - Communities Numricas

muito pequena a quantidade de communities padro,


podemos fazer pouqussimas coisas com elas.

Porm h uma grande quantidade communities numricas


que podem ser utilizadas.

390
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.2 - Communities Numricas

importante saber que essas communities numricas por


padro no influenciam em nada no tratamento das rotas.

preciso uma configurao prvia ao para cada


community.

391
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.2 - Communities Numricas

Tambm no h nenhum padro para essas aes (pelo


menos nenhum padro RFC).

Entretanto muitos AS's implementaram padres


extremamente criativos e funcionais.

392
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.2 - Communities Numricas

O conhecimento desses padres uma ferramenta chave


para resolver rapidamente incidentes do dia a dia.

Vamos ver nos prximos slides uma srie de communities


numricas adotadas por algumas operadoras.

Mas antes vamos habilitar o suporte ao novo formato...

router#conf t
router(config)#ip bgp-community new-format

393
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.
3

Identificando e Tratando
Rotas de Peers Especficos

394
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.3 - Identificando e Tratando Rotas de
Peers Especficos
Quando utilizamos o comando:

AS-14X-R1(config-route-map)#set community xxx:xxx

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?
395
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.3 - Identificando e Tratando Rotas de
Peers Especficos
Com o comando "additive" qualquer community existente
preservada:
AS-X-R4(config-route-map)#set community 123:123 additive
OBS: Digitar o comando "set community" tem efeito "cumulativo"
exemplo: se digitarmos a seguinte sequncia de comandos:

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
396
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.3 - Identificando e Tratando Rotas de
Peers Especficos

Todas as communities digitadas sero ACUMULADAS:


router#sh running-config | begin route-map teste
route-map teste permit 10
set community 111:222 123:123 333:214 555:82
!
...
Lembrem que o "additive" no 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).

397
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.3 - Identificando e Tratando Rotas de
Peers Especficos

Sem o comando "additive", qualquer community existente


substituda.

Sempre utilizem additive na hora de colocar communities


em rotas recebidas de DOWNSTREAMS.

398
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.
4
Manipulando Trnsito
(Nacional/Internacional) com
Communities

399
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities
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 anncios

x: ao { 0 = no anuncia, 1,2,3 = insere x prepends)


y: peerings { 0=demais peerings, 1=internacionais, 2=Embratel,
3=Intelig, 4=Telemar, 5=Telefnica }
(exemplo: 312 = muda para 1 prepend o anncio para a Embratel)

* (default anunciar sem prepends para todos os peerings)

8167:555 => no exporta fora da Brasil Telecom.


8167:557 => no anuncia para sites internacionais.

8167:666 => sero injetados no BlackHole da Brasil Telecom.


8167:777 => somente anuncia para clientes da Brasil Telecom.

400
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities

Embratel

4230:120 - Local Preference - marcar a rota como localpreference 120


4230:10000 - Blackhole - bloqueia todo o trfego para a rede/endereco
4230:10002 - Blackhole - filtra o trfego 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

401
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities

GVT

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

Aonde, AS, deve ser o seu AS, exemplo: 1234:1

402
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities

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]

403
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities
Uma srie 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
404
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities
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) no receber o prefixo


todos os outros recebero o prefixo normalmente: "3549 4111"


405
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.4 Manipulando Trnsito
(Nacional/Internacional) com Communities

Intelig

17379:23004 - Community NO-EXPORT-INTERNACIONAL - No anuncia para peers


Internacionais.
17379:23005 - Community NO-EXPORT-NACIONAL - No anuncia para peers
Nacionais.
No-export ? A rota no 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 aplicao de communities tem por default o


valor 100 de local Preference.

406
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.
5

Engenharia de Trfego III

407
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-13

6.5 - Engenharia de Trfego III

LAB 2-1-13: Considerando as polticas 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 forado a mudar
o local preference para menos de 100, automaticamente
comea a dar a volta pelo AS 99, pois acaba escolhendo
rotas do AS 99 (local preference 100 padro). 408
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-13

6.5 - Engenharia de Trfego III

Soluo:

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

409
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-14

6.5 - Engenharia de Trfego III

LAB 2-1-14: De acordo com as polticas do AS 100 abaixo,


utilize as communities apropriadas (100:xxxx) para fazer
todas as aes:
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
ASN Peer Nao Anuncia Prepend +1 Prepend +2 Prepend +3
200;
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
410
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-14

6.5 - Engenharia de Trfego III

Soluo 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

411
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-15

6.5 - Engenharia de Trfego III

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.

412
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-15

6.5 - Engenharia de Trfego III

Soluo 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
413
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-1-15

6.5 - Engenharia de Trfego III

Soluo 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
414
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
6.5

PERGUNTAS?

415
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.
0
Filtros Avanados
para Um AS de Trnsito

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com
uma Licena Creative Commons - Atribuio 3.0 No Adaptada.
Podem estar disponveis autorizaes adicionais ao mbito desta licena em
rinaldopvaz@gmail.com.

416
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.
0Filtros Avanados
para Um AS de
Trnsito
7. Filtros avanados para um AS de trnsito

7.1 Manipulando rotas de mltiplos PTTs


7.2 DOWNSTREAMS com multihoming
7.3 AS de trnsito no PTT parte I
7.4 Configurando um trasporte Lan2lan com xconnect/L2TP
7.5 AS de trnsito no PTT parte II

417
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.1

Manipulando Rotas com


Mltiplos PTTs

418
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.1 Manipulando Rotas com Mltiplos Ptts

Em alguns casos clientes de trnsito solicitam o recebimento


apenas de rotas do PTT-SP, por exemplo.

Como filtrar e enviar um anncio assim?

419
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.1 Manipulando Rotas com Mltiplos Ptts

Uma maneira simples marcar uma community especfica para


rotas recebidas:

router-SP#conf t
router-SP(config)#route-map PTT-SAOPAULO-IN permit 1
router-SP(config-route-map)#set community 28135:1111 additive
...

Esse comando adiciona a community 28135:1111 e preserva


todas que existirem.

420
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.1 Manipulando Rotas com Mltiplos Ptts

Se meu AS participa de mais de um PTT posso filtrar rotas


de ambos e exportar para o meu cliente:

router-CampinaGrande#conf t
router-CampinaGrande(config)#route-map PTT-CAMPINAGRANDE-IN permit 1
router-CampinaGrande(config-route-map)#set community 28135:2222 additive

Dado o cenrio, vamos ver quais seriam os filtros que


enviariam para o cliente apenas rotas recebidas do
PTT-Campina Grande e PTT-So Paulo:

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

421
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.2

Downstreams com
Multihoming

422
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.2 Downtreams com Multihoming

Os filtros baseados apenas em prefixos nos trazem um


problema:

Como AS de trnsito, geralmente temos vrios peers, e caso


um dos nossos clientes tambm 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 trnsito com o AS 200.

423
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.2 Downtreams com Multihoming

Caso o AS 20 anunciasse um bloco especfico para cada AS


(100 e 200), essa seria minha FIB:

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
...

Percebam que por ser vlido na FIB, o prefixo 20.0.8.0/21


seria exportado para todos os peers externos (menos
para o AS 200 de onde "aprendemos") comeando pelo
AS 100.
424
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.2 Downtreams com Multihoming

Precisamos adicionar mais uma condio de match alm do


prefix list com expresses regulares.
Esse o route-map padro 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 AS 20

!--- voltamos no mesmo route-map


router(config)#route-map ANUNCIAR-AS-XXX permit 10
!--- e adicionamos a condio
router(config-route-map)#match as-path 33

425
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.2 Downtreams com Multihoming

A nomenclatura da prefix-list com final (ACL-33) para facilitar,


pois
indica o nmero da ACL de as-path correspondente ao cliente.
Nos routers Cisco no h possibilidade de nomear uma ACL de
as-path, podemos apenas utilizar apenas um nmero.
Para quem usa Quagga possvel atribuir um nome para a ACL
de as-path e community lists o que deixa tudo ainda mais fcil:
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 expresso limita em no mximo 8 ocorrncias
...OU...
router-quagga(config)#ip as-path access-list PATH-AS-20 permit ^20(_20)*$
!--- Essa expresso no 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
426
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.3

AS de Trnsito no PTT
parte I

427
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

Vamos iniciar estabelecendo as sesses 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 tero as mesmas configuraes, 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
!--- no precisamos repetir as configuraes 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 no far parte do peer-group pois no defver receber nenhum filtro in-out
!--- continua no prximo slide...
428
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

!--- OBS: h um pequeno BUG no laboratrio, onde o IP do PTT


!---j est levantado na interface errada f0/1, para isso entre na interface e
...BGP com PTT... remova o IP
AS-X-R1(config)#interface fastEthernet 0/1
AS-X-R1(config-if)#no ip address
AS-X-R1 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

!--- continuando...
!--- vamos declarar em networks os prefixos mais especficos
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 especficos (/9) na FIB
AS-X-R1(config)#end
AS-X-R1#clear ip bgp peer-group PTT out

429
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

Configurando as polticas de route-map


AS-X-R1

!--- ATENO TODAS AS PREFIX-LIST ABAIXO J FORAM CRIADAS NOS LABS ANTERIORES
!--- ESTO AQUI APENAS PARA LEMBRAR O SEU CONTEDO
!--- 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 NO ESTEJAM PRESENTES CONFIGUREM NOVAMENTE
!--- apenas os filtros baseados em ASPATH ainda no 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 responsveis pelo output (anncios) para o PTT
(continua...)

430
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

Configurando as polticas de route-map para o PTT


AS-X-R1

(...continuao)
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...)

431
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

Configurando as polticas de route-map para o AS 100


AS-X-R1

(...continuao)
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

432
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

Configurando as polticas de route-map para o AS 200


(no esquecer que agora vamos para R2)
AS-X-R2
!--- apenas os filtros baseados em ASPATH ainda no 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

433
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.3 - AS de Trnsito no PTT parte I

Todos esses route-maps podem deixar a configurao um


pouco maior, porm vai permitir que os donos dos AS's
sejam facilmente identificados no show run alm de
tornar muito fcil de escalar.
Imagine um dos clientes de trnsito AS 14X passar a prover
trnsito IP para outro AS:
ASN 88 CIDR 88.0.0.0/8
Com apenas 2 comandos o AS 88 est liberado nos filtros de
Sada:
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
!
434
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

PS: nos LABs anteriores j configuramos as mesmas


polticas para o output do AS 100, vamos apenas conferir:
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
!
Como podemos ver na saida do comando, as polticas de
output com o AS 100 j esto configuradas.
O mesmo resultado deve aparecer em R2

435
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

A configurao nos DOWNSTREAMS muito mais simples:


!--- NOTA preciso levantar o IP de participante na interface
AS-14X-R1 !--- 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#conf t AS-14X-R1(config-if)#ip address 187.16.216.14X 255.255.255.0
AS-14X-R1(config)#ip as-path access-list 1 permit ^$ AS-14X-R1(config-if)#no shutdown
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
436
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-3-1

7.3 - AS de Trnsito no PTT parte I

Seguimos a mesma lgica para o segundo DOWNSTREAM


!--- NOTA preciso levantar o IP de participante na interface
AS-15X-R1 !--- 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#conf t AS-15X-R1(config-if)#ip address 187.16.216.15X 255.255.255.0
AS-15X-R1(config)#ip as-path access-list 1 permit ^$ AS-15X-R1(config-if)#no shutdown
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
437
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.3 - AS de Trnsito no PTT parte I

As sesses BGP do DOWNSTREMS 14X com o PTT no


estabeleceu!

O que faltou?

Os testes de ping com o Route-Server tem resposta?

438
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.
4

Configurando um Transporte
Lan2Lan com xconnect/L2TP

439
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-4-1

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 configurao da class escolhemos o tipo de tunelamento que em nosso caso ser l2tp verso 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

440
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-4-1

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 configurao da class escolhemos o tipo de tunelamento que em nosso caso ser l2tp verso 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

441
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-4-1

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

442
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.5 - AS de Trnsito no PTT parte II

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 so


encaminhados para o PTT, e no chegam ao
DOWNSTREAM pelo link de trnsito.

Mesmo com um local preference maior, os prefixos que os


AS's 14X e AS 15X anunciam para PTT so mais
especficos do que os que anunciam para o trnsito, isso
obriga o router R1 a mandar os pacotes pelo PTT
(download dos DOWNSTREAMS).
443
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.5 - AS de Trnsito no PTT parte II

Isso um problema srio!

O cliente pode tirar proveito disso e causar prejuzos


desviando trnsito IP, obrigando AS local a trocar o
trnsito IP por nada.

Uma troca de trfego onde apenas um tem vantagem...

444
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-4-2

7.5 - AS de Trnsito no PTT parte II

Para resolver isso, precisamos utilizar uma expresso


regular proibindo R1 de receber qualquer anncio de
participantes que tambm sejam clientes de trnsito do
AS:
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

Inserimos o AS de cada cliente de trnsito nessa lista.


Vale lembrar que em certos casos, os filtros precisariam ser
mais especficos, fazendo um route-map de deny para
cada cliente, combinando uma prefix-list + as-path
access-list
445
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.5 - AS de Trnsito no PTT parte II

Vamos efetuar novamente o traceroute partindo de


AS-110-R1...

446
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
7.
5
PERGUNTAS?

447
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.
0
Multiprotocol Label Switching
(MPLS)

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com
uma Licena Creative Commons - Atribuio 3.0 No Adaptada.
Podem estar disponveis autorizaes adicionais ao mbito desta licena em
rinaldopvaz@gmail.com.

448
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.
0 Multiprotocol Label
Switching (MPLS)
8. Multiprotocol Label Switching

8.1 BGP atravs da nuvem MPLS


8.2 AtoM - Any Transport Over MPLS
8.3 Implementando servio VPN-L3 (VPN-Multiponto)

449
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.1

BGP Atravs da Nuvem MPLS

(BGP Multiprotocol)

450
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-5-1

8.1 BGP atravs 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
(...) 451
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-5-1

8.1 BGP atravs 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
452
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-5-1

8.1 BGP atravs 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

453
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-5-1

8.1 BGP atravs 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

454
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-5-1

8.1 BGP atravs 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

455
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-5-1

8.1 BGP atravs 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

456
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

8.1 BGP atravs da nuvem MPLS


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 padro 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 padro 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 padro com R5
(...) 457
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

8.1 BGP atravs da nuvem MPLS


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 padro e tambm 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 padro e tambm 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 padro e tambm do tipo estendida

458
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

8.1 BGP atravs da nuvem MPLS


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 padro 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 padro 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 padro com R5
(...) 459
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.1 BGP atravs da nuvem MPLS


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 padro e tambm 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 padro e tambm 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 padro e tambm do tipo estendida

460
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

8.1 BGP atravs da nuvem MPLS


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 padro 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 padro com R2
(...)

461
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.1 BGP atravs da nuvem MPLS


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 padro e tambm 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 padro e tambm do tipo estendida

462
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB 2-1-1

8.1 BGP atravs da nuvem MPLS


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 padro 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 padro com R2
(...)

463
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.1 BGP atravs da nuvem MPLS


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 padro e tambm 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 padro e tambm do tipo estendida

464
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.1 BGP atravs da nuvem MPLS


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# AS-X-R3#sh ip bgp
% BGP not active

465
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.
1
PERGUNTAS?

466
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.2 AtoM - Any Transport Over MPLS

Cenrio:

467
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.2

AToM
Any Trasnport Over MPLS

468
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.2 AtoM - Any Transport Over MPLS

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

469
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.2 AtoM - Any Transport Over MPLS

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#

470
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.2 AtoM - Any Transport Over MPLS

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)#exit
AS-14X-R2(config)#

471
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.2 AtoM - Any Transport Over MPLS

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#

472
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.2 AtoM - Any Transport Over MPLS

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
473
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.
2
PERGUNTAS?

474
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.3

Implementando servio
VPN-Layer 3
(MPLS-VPN)

475
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

Novamente o mesmo cenrio

476
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#
477
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

478
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#
479
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

480
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

481
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

482
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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
483
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

484
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

485
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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 0X?
r> X.14X.4.0/30 X.14X.4.1 0 0X?
*> 172.16.0.0/24 0.0.0.0 0 32768 i
*> 192.168.0.0 X.14X.4.1 0 X 6514X i

486
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

487
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

488
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

489
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

490
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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 0X?
r> X.15X.5.0/30 X.15X.5.1 0 0X?
*> 172.16.0.0/24 0.0.0.0 0 32768 i
*> 192.168.0.0 X.15X.5.1 0 X 6515X i

491
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

492
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

493
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

494
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

495
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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

496
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

497
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
LAB
2-5-10

8.3 Implementando servio VPN-L3

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#

498
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
8.
3
PERGUNTAS?

499
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
MATERIAL
EXTRA

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com
uma Licena Creative Commons - Atribuio 3.0 No Adaptada.
Podem estar disponveis autorizaes adicionais ao mbito desta licena em
rinaldopvaz@gmail.com.

500
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.
0
Mecanismos de Path Control

O trabalho Curso de BGP Design com Roteadores Cisco de Rinaldo Vaz foi licenciado com
uma Licena Creative Commons - Atribuio 3.0 No Adaptada.
Podem estar disponveis autorizaes adicionais ao mbito desta licena em
rinaldopvaz@gmail.com.

501
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
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 Mendona, autor dos


dois prximos sub-captulos

502
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Mecanismos de Path Control


Path Control so mecanismos que mudam o
encaminhamento
padro de um pacote atravs de uma rede.
No se trata de QoS ou Engenharia de Trfego.
Trata-se de uma coleo de ferramentas ou conjunto de
comandos que so ativados para manipular a tabela de
encaminhamento de um protocolo de roteamento ou
bypass o
encaminhamento padro de um pacote.
Esta manipulao de informaes de roteamento pode ser
requerida para obter melhor desempenho.
503
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Alguns Tpicos para Implementar Path Control

PBR Policy-Based Routing;

IP SLA Tool (Service Level Agreements)

504
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Para entender PBR, primeiro precisamos


revisitar o conceito de roteamento padro:
1.Quando um pacote chega uma interface de um router,
este examina o endereo 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 sada indicada.
3. Se a rede destino no for conhecida e existir uma rota
default, o pacote encaminhado para a interface de sada
apontada por ela.
4. Se nenhum dos dois casos acima ocorrer, o router
descarta o pacote.

505
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Policy-based routing quebra o processo default de


roteamento, permitindo que pacotes sejam roteados
baseados em polticas pr-definidas e no apenas no
endereo de destino.

Para isso, ROUTE-MAPs so usados, especificando condies


que devem ser examinadas e para onde os pacotes
devem ser encaminhados caso estas condies sejam
verificadas.

506
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Um exemplo genrico de aplicao de PBRs pode ser visto


na figura abaixo:

507
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Para implementar o cenrio ilustrado anteriormente, apenas


trs passos so necessrios:

1. Defina um route-map e a poltica 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 anlise dos


pacotes medida que entram (IN).

508
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Ao criar um route-map para ser usado com PBR, existem


algumas opes de MATCH escolher, por exemplo:

Match ip address (utiliza listas de acesso para


checagem)

Match lenght (utiliza um intervalo mnimo e mximo do


tamanho do pacote, em bytes)

509
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

E temos algumas opes 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, porm, o


roteador tentar antes o roteamento convencional, mas
no usa rota default);

Set interface (especifica a interface de sada do pacote);

Set default interface (mesmo acima, porm, o roteador


tentar antes o roteamento convencional, mas no usa
rota default).

510
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Exemplo padro:

511
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

PBR para que pacotes originados pelo PC2 sigam


via R3:

PBR Aplicada para origem


10.1.1.2

512
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.1 PBR Policy Based Routing

Configuraes:

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

513
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.
1
PERGUNTAS?

514
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

IP SLA Tool
O oferecimento de servios gerenciados vm se
consolidando como uma tendncia 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 solues de IP Telephony e


vdeoconferncia IP vm se tornando parte do
dia-a-dia das empresas, a ferramenta IOS IP SLA
pode ser uma poderosa aliada.

515
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

O IP SLA um recurso presente em algumas verses


do IOS da Cisco, que permite o gerenciamento
proativo das condies da rede monitorada.
Basicamente, gera-se um trfego especfico de um
dispositivo (transmitter) com destino a outro
(responder), que responde a este trfego e medies
so realizadas no decorrer do processo.
Esta ferramenta torna muito mais simples tarefas
como verificao do correto funcionamento das
polticas de QoS, e tambm permite
certificarmos-nos que estamos cumprindo os acordos
de uptime assinados com o cliente, por exemplo.

516
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Para habilitar o IP SLA, necessrio configurar ao


menos 2 elementos: O transmitter e o
responder.
A configurao do responder bastante simples (uma
linha de comando, apenas). Ao iniciar a operao, o
transmitter envia mensagens de controle ao
responder.
Estas mensagens de controle informam ao responder
qual porta lgica (TCP ou UDP) deve ser usada para
as requisies do transmitter. A ativao do servio
responder pode nem ser necessria, se o elemento
que ir responder s solicitaes do transmitter j
estiver aguardando dados nas portas a serem
testadas (ex. o servio HTTP j est ativado no
router que agir v3.0
como responder, e este
| autor: Rinaldo Vaz | rinaldopvaz@gmail.com o servio 517

que queremos medir).


9.2 IP SLA Tool

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 servio SLA esteja devidamente
configurado no transmissor, sua operao precisa
ser agendada.
As estatsticas apenas sero coletadas quando a
configurao estiver operacional. As atividades de
gerao de trfego e coleta podem ser agendadas
para iniciar de imediato, ou em uma data / hora
pr-determinadas. Podem ainda ser iniciadas sob
certas condies especficas. 518
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Exemplo: R3#conf t
R3(config)#ip sla {monitor} responder

Aqui temos OSPF single-area ativado nesta rede, para


garantir conectividade fim-a-fim. Vamos ativar o IP
SLA neste cenrio para monitorar um determinado
servio que roda na porta UDP 1234, de R1 para a
interface Loopback0 de R3. Vamos comear ativando
o IP SLA no responder (R3) :

519
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Verificando:

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:

520
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Configurando R1 como transmiter:

Vamos agora configurar o R1 como transmitter,


gerando o trfego que determinamos para a
loopback de R3 (responder) :
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
Aqui, criamos uma operao 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.
521
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Configurando R1 como transmiter:

Vamos iniciar a operao de imediato:

R1(config)#ip sla {monitor} schedule 1 life forever start-time now

522
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Vamos observar como esto as coisas em R1, nosso


transmitter:
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:
[...]

523
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Vamos observar como est do lado do responder (R3):

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:

524
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Agora, vamos associar uma ao ao resultado do IP


SLA... Por exemplo, uma rota esttica que apenas
existe se as condies do IP SLA forem atendidas...!!

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

525
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

Como nosso SLA falhou, a rota recm-criada deve sumir


da tabela, j que estava associada condio do nosso
SLA (track 1 rtr 1):
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

526
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.2 IP SLA Tool

possvel associar um PBR a uma condio testada pelo


IP SLA Tool, tambm.
Eis um exemplo:
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 parmetro verify availability e associamos o teste para o objeto 1.

Enquanto o estado do objeto estiver UP, o PBR funcionar


conforme configurado. Se o objeto em teste mudar de
estado (down), a clusula SET no ser executada.

527
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
9.
2
PERGUNTAS?

528
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
MUITO OBRIGADO!!

529
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Posfcio

100% desse material foi elaborado utilizando software livre, e


livre para ser copiado e distribudo desde que gratuitamente.
Est a verso 2.2 *beta3
Para reportar erros ou solicitar a verso mais recente entre em
contado por email: rinaldopvaz@gmail.com
Autor: Rinaldo Vaz
530
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

Mudanas previstas na verso 2.2 final


Previso de lanamento: 4/1/2013

Mais contedo
Cap 8
Textos explicativos e figuras em todo o captulo sobre MPLS, que at a
verso atual 2.2*beta3 s tem os comandos necessrios
Subcaptulo: Filma eu Galvo
Contribuies enviadas por alunos que participaram do cursos anteriores

ATENO!

TODAS AS VERSES ANTERIORES A ESSA SO CONSIDERADAS OBSOLETAS

531
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 2.2 *beta2 2.2 *beta3:


20/12/2012

Correes
Cap 7.3
Inserida linha com o comando no bgp enforce-fist-as na configurao
do BGP com o PTT em R1, e nos routers dos AS's 14X e 15X
Inserida linha de comando da rota esttica 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 ao 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 configurao de R5 onde o IP de neighbor era
X.0.0.2, o correto X.0.0.X
Cap 8.3
Corrigida a dcima linha na configurao de R2, onde o IP a ser
configurado X.15X.2.1 e no X.15X.2.2

532
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 2.2 *beta 2.2 *beta2:


14/12/2012

Correes
Laboratrios:
Cenrio 1
Corrigida configurao padro que mantinha a interface f0/0 desativada
Cap 7.0
Mudana no indice. Removido PBR que virou um novo captulo

Mais contedo
Cap 5.8
Inserido a sesso cheats com as respostas do LAB Desafio
Inseridos comandos para remover as config do LAB Desafio
Nmero total de slides de 539 para 544

533
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 2.1 2.2 *beta:


10/12/2012

Correes
Laboratrios:
Cenrio 1
Corrigida configurao padro que mantinha a interface f0/0 desativada

Mais contedo
Inserido um novo captulo: Multiprotocol Label Switching (MPLS)
Subcaptulos:
8.1 BGP atravs da nuvem MPLS
8.2 AtoM - Any Transport Over MPLS
8.3 Implementando servio VPN-L3 (VPN-Multiponto)
6.4 Manipulando Trnsito (Nacional/Internacional) com Communities
Inserida a relao das communities da GVT
(...)
534
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 2.1 2.2 *beta:


10/12/2012

(...)
Laboratrios:
Cenrio 2
Novo modelo de roteadores para todos o cenrio 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 mudanas
Nmero total de slides aumentou de 485 para 539
Pequenas correes nas confguraes
Mais figuras explicativas
Captulo 8 (Mecanismos de Path Control) movido para captulo 9

535
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 2.0 2.1:


05/10/2012

Mudana no layout
Cores, fontes e grficos melhorados
Correes
Captulo 4
4.4 - Expresses regulares
Corrigidas algumas expresses
Contedo ampliado com mais exemplos prtico
Mais contedo
4.7 - AS-Path Prepend
Adicionados mais slides com figuras e exemplos de configurao de
prepend de sada
Adicionado um novo slide com exemplo de prepend de entrada
(...)

536
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 2.0 2.1:


05/10/2012

(...)
Inserido um novo captulo: Mecanismos de Path Control
Subcaptulos:
PBR policy Based Routing
IP SLA Tool
Outras mudanas
Nmero total de slides aumentou de 434 para 485
Pequenas correes nas confguraes
Foram adicinadas mais figuras
Novos slides com configuraes que deveriam ser desfeitas antes de iniciar o
prximo laboratrio

537
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 1.1 2.0:


26/07/2012

Mudana no layout
Cores, fontes e grficos melhorados
Novos sub-captulos
Engenharia de trfego, Alta Disponibilidade, Transporte L2, e outros
Diversas outras correes
Explicaes mais claras
Inseridas mais linhas de comentrios explicativos
Melhoradas algumas expresses regulares
Includas figuras dos cenrios
E muitas outras melhorias
Total de slides aumentados de 363 para 434

538
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 1.0 1.1:


23/04/2012

2.6 Slide de abertura do sub-captulo:


corrigido slide 2.6 trocado pelo 2.7


2.7 Corrigido erro de digitao:
erro: "...ltimo /10..."
correo: "... ltimo /9..."
3.1 sada do comando "sh ip bgp neighbors (peering) advertise-routes":
corrigidos 2 prefixos que apareciam errados como /10,
o correto so 3 prefixos, um /8 e dois /9
3.1 sada do comando "sh ip bgp regexp ^2$":
corrigidos 2 prefixos que apareciam errados como /10,
o correto so 3 prefixos, um /8 e dois /9

539
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
Errata

CHANGELOG verso 1.0 1.1:


23/04/2012

2.6 Slide de abertura do sub-captulo:


corrigido slide 2.6 trocado pelo 2.7


2.7 Corrigido erro de digitao:
erro: "...ltimo /10..."
correo: "... ltimo /9..."
3.1 sada do comando "sh ip bgp neighbors (peering) advertise-routes":
corrigidos 2 prefixos que apareciam errados como /10,
o correto so 3 prefixos, um /8 e dois /9
3.1 sada do comando "sh ip bgp regexp ^2$":
corrigidos 2 prefixos que apareciam errados como /10,
o correto so 3 prefixos, um /8 e dois /9

540
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
CHANGELOG verso 1.0 1.1:
23/04/2012

3.5 Descrio de participante remoto no PTT:


a explicao ficou mais clara com relao s consequncias da latncia mais alta
4.2 Precaues para filtros de UPSTREAMS:
Erro: "... Garantir que rotas de DOWNSTREAMS no recebam prioridade maior..."
Correo: "...Garantir que rotas de UPSTREAMS nao recebam prioridade maior que rotas
DOWNSTREAMS..."
4.2 Utilizao do (ge) e (le), corrigido erro de digitao:
Erro: "... aceitar qualquer prefixo /25 e descartar..."
Correo: "... aceitar qualquer prefixo /24 e descartar..."

541
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
CHANGELOG verso 1.0 1.1:
23/04/2012

4.2 adicionando prefixos na lista "NAO-RECEBER", corrigidos aces de


permit erradas:
Erro: ...seq 70 permit...
...seq 80 permit...
...seq 90 permit...
Correo: ...seq 70 deny...
...seq 80 deny...
...seq 90 deny...
4.6 expresso regular de parcial, modificada para apenas uma linha, e
adicionado um terceiro exemplo para parcial de 3 AS's no path:
nova expresso: ^([0-9]+|[0-9]+ [0-9]+)$

542
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
CHANGELOG verso 1.0 1.1:
23/04/2012

4.8 Mudana de ttulo:


Anterior: Manipulando downstream com route-map e prepend
Atual: Manipulando trnsito dos downstreams com prepend
6.1 e 6.2 Sub-captulo sobre expresses 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 cenrio 5: Corrigido terceiro octeto da rede dos laptops
Erro: x.x.100.0/24
Correo: x.x.200.0/24

543
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
CHANGELOG verso 1.0 1.1:
23/04/2012

5.1 Diagrama do cenrio 5:


a partir da verso 1.2 Sero modificados nmero 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 configuraes iBGP, corrigido IP errado na configurao de R1 com R5
Erro:"...neighbor X.0.0.2 remote-as X"
"...neighbor X.0.0.2 description iBGP Router 2
Correo: "...neighbor X.0.0.5 remote-as X"
"...neighbor X.0.0.5 description iBGP Router 5

544
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
CHANGELOG verso 1.0 1.1:
23/04/2012

5.1 configurao eBGP com AS 200 (segunda rodada), corrigido endereo


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"
correo: "...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 Configurao iBGP entre R2 > R3, corrigido nmero da loopback
faltando
erro: "...neighbor X.0.0.3 update-source loopback "
correo: "...neighbor X.0.0.3 update-source loopback 0"

545
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com
CHANGELOG verso 1.0 1.1:
23/04/2012

5.1 Configurao iBGP entre R3>todos


erro: alguns IPs errados
correo: corrigidos IPs corretos para R1, R2, R4 e R5
6.1 LAB 2, communities padro
Incluida uma explicao mais clara dos objetivos do LAB
7.3 Corrigida expresso regular de permitir saida apenas de prefixos
originados diretamente do downstream:
erro: _20$
forma correta: (20_|20$)

Adicionadas mais imagens para facilitar a visualizao das configuraes

546
v3.0 | autor: Rinaldo Vaz | rinaldopvaz@gmail.com