Você está na página 1de 760

TREINAMENTO AVANADO

BGP Design com Roteadores Cisco,


Juniper, Mikrotik, Quagga e Vyatta

Instrutor: Rinaldo Vaz


Analista de Redes

Verso do material: 4.0


ltima publicao: 26/01/2015

1.0
Viso Geral sobre BGP
1. Viso geral sobre BGP

1.1
1.2
1.3
1.4
1.5
1.6

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

Topologia dos LABs


goo.gl/kIcIbX
2
Verso do material: 4.0
ltima publicao: 26/01/2015

v4.0beta | 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

3
v4.0beta | 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.
Por padro, o BGP jamais anuncia uma prefixo que no
esteja na FIB!
4
v4.0beta | 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:
Padro Cisco*
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

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

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

5
v4.0beta | 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

6
v4.0beta | 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

7
v4.0beta | 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

8
v4.0beta | 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

9
v4.0beta | 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

10
v4.0beta | 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
11
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

1.2
Requisitos para se tornar
um Sistema Autnomo

12
v4.0beta | 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
13
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

1.3
Preenchendo o Formulrio do
registro.br

14
v4.0beta | 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

15
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

1.4

Quando utilizar
IGP e EGP

16
v4.0beta | 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:

17
v4.0beta | 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.

18
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

1.5

Atributos BGP

19
v4.0beta | 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

20
v4.0beta | 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.

21
v4.0beta | 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:

22
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

1.6

Entendendo o Processo de
Escolha de Rotas

23
v4.0beta | 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".

24
v4.0beta | 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).

25
v4.0beta | 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.
26
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

1.6
PERGUNTAS?

27
v4.0beta | 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

28
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1
Configurando BGP com
apenas um link

29
v4.0beta | 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
AS1
AS1

AS1

AS1

AS2
AS4
AS3

LAB 1-1-1

30
v4.0beta | 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

31
v4.0beta | 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 16).
AS-100
.1
E1/0

.2

100.X.1.0/30
AS-X-R1

F0/0

.254
X.128.0.0/9
.1

LAB 1-1-1

32
v4.0beta | 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...
Connected to X.128.0.254.

Para quem usa windows pode usar o Putty......


http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Escape character is '^]'.


User Access Verification
Password: A senha de acesso 123

Onde X o nmero do seu AS

LAB 1-1-1

33
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Estamos agora no modo usurio:


AS-X-R1>

Para iniciar as configuraes precisaremos inicialmente


entrar no modo privilegiado, e ser exigida uma outra
senha:
AS-1-R1>enable
Password: 123
AS-X-R1#

E em seguida no modo de configurao global:


AS-X-R1#terminal monitor
AS-X-R1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.

LAB 1-1-1

AS-X-R1(config)#
34
v4.0beta | 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...
Connected to X.128.0.254.

Para quem usa windows pode usar o Putty......


http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Escape character is '^]'.


User Access Verification
Onde X o nmero do seu AS
LAB 1-1-1

Password: A senha de acesso 123


35
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

O primeiro passo na configurao BGP adicionar


um neighbor (peer):
AS-X-R1(config)# router bgp X
AS-X-R1(config-router)# neighbor 100.X.1.1 remote-as 100
AS-X-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)
AS-X-R1(config-router)#
Jan 20 15:32:02.915: %BGP-5-ADJCHANGE: neighbor 100.X.1.1 Up

LAB 1-1-1

36
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Verificando o status da sesso BGP recm-criada:

AS-X-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
8

LAB 1-1-1

37
v4.0beta | 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

38
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Verificando os anncios que recebo da minha operadora:


AS-X-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.0.0.0

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

39
v4.0beta | 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:

AS-X-R1>ping 123.123.123.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 123.123.123.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 64/84/96 ms
AS-X-R1>

Agora um Traceroute...

LAB 1-1-1

40
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Agora um Traceroute...

AS-X-R1>traceroute 123.123.123.1
Type escape sequence to abort.
Tracing the route to 123.123.123.1
1
2
3
4
5
6

100.X.1.1 [AS 100] 16 msec 12 msec 16 msec


111.100.1.1 [AS 111] 60 msec 48 msec 44 msec
111.111.1.1 [AS 111] 68 msec 44 msec 68 msec
55.111.1.1 [AS 55] 100 msec 80 msec 88 msec
55.55.1.1 [AS 55] 116 msec 108 msec 108 msec
123.55.1.1 [AS 123] 104 msec 101 msec 108 msec

LAB 1-1-1

41
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Em seguida ping para 123.123.123.1 a partir do seu laptop


Sucesso??

rinaldo@laptop:~$ 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.646 ms 15.595 ms 25.613 ms
2 ***
3 ***
4 ***
5 ***
6 ***
7 *^C

Que problema pode estar havendo?

LAB 1-1-1

42
v4.0beta | 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

43
v4.0beta | 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

44
v4.0beta | 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:

AS-X-R1#configure terminal
AS-X-R1(config)# router bgp X
!--- entra no modo de configurao BGP
AS-X-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
AS-X-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
AS-X-R1(config-router)#end
!--- volta ao modo privilegiado
AS-X-R1# clear ip bgp 100.X.1.1
!--- reinicia a sesso BGP ==> OPCIONAL

LAB 1-1-1

45
v4.0beta | 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

46
v4.0beta | 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:

AS-X-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
*> X.0.0.0

Next Hop
0.0.0.0

Metric LocPrf Weight Path


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

47
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Nova tentativa aps anncio do prefixo X.0.0.0/8

rinaldo@laptop:~$ 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 9.231 ms 19.290 ms 29.389 ms
2 100.X.1.1 39.495 ms 49.618 ms 59.774 ms
3 111.100.1.1 120.506 ms 140.731 ms 150.869 ms
4 111.111.1.1 181.203 ms 201.430 ms 211.495 ms
5 55.111.1.1 231.679 ms 232.583 ms 232.696 ms
6 55.55.1.1 253.021 ms 253.010 ms 252.910 ms
7 123.55.1.1 273.051 ms 231.043 ms 321.238 ms

SUCESSO!!

LAB 1-1-1

48
v4.0beta | 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

49
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1
PERGUNTAS?

50
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2

Analisando as rotas
recebidas

51
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2-Analisando as rotas recebidas

Vamos detalhar melhor as rotas recebidas:


AS-X-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

01:06:03

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


52
v4.0beta | 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

01:06:03

Neighbor = 100.X.1.1

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

53
v4.0beta | 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

V=4

Verso do BGP utilizada nessa sesso.

01:06:03

54
v4.0beta | 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

01:06:03

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

55
v4.0beta | 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

MsgRcvd = 112

MsgSent = 83

112

83

22

01:06:03

Quantidade total de mensagens BGP recebidas e enviadas


incluindo keepalives e updates.

56
v4.0beta | 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

01:06:03

TblVer = 22
Verso atual da tabela de rotas BGP, sempre que uma nova rota
inserida ou removida o TblVer incrementado.

57
v4.0beta | 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

InQ = 0

OutQ = 0

Updates na fila de entrada e de sada.

01:06:03

58
v4.0beta | 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

01:06:03

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.
59
v4.0beta | 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

01:06:03

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.
60
v4.0beta | 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.

61
v4.0beta | 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.

62
v4.0beta | 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, passase 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.

63
v4.0beta | 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.

64
v4.0beta | 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.

65
v4.0beta | 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.

66
v4.0beta | 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.

67
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2-Analisando as rotas recebidas

Entendendo os campos do summary:

Fonte: http://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/BGP_FSM.svg/549px-BGP_FSM.svg.png

68
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2-Analisando as rotas recebidas

Vamos detalhar todas as rotas BGP:


AS-X-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, tanto as


escolhidas (FIB) como tambm as no escolhidas (RIB). Como
recebemos rotas de apenas um peer, no h rotas no escolhidas
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

69

2.2-Analisando as rotas recebidas

Vamos detalhar uma rota especfica:


AS-X-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.0.0.100)
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...


70
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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

71
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2-Analisando as rotas recebidas

Vamos detalhar uma rota em especfico:


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

72
v4.0beta | 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
...

73
v4.0beta | 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.

74
v4.0beta | 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 (por padro).
75
v4.0beta | 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 (100.0.0.100)

...

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.
76
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.2
PERGUNTAS?

77
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3
Configurando BGP com 2
links
(MULTIHOMING)

78
v4.0beta | 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

79
v4.0beta | 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

AS-100

AS-200

.1
100.X.1.0/30
E1/0

.2

.2

F0/0

E2/0

.254

/30
0
.
X .1
.
0
20

.1

AS-X-R1
X.128.0.0/9

.1
LAB 1-2-1

80
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Primeiro passo a configurao do prximo neighbor:

AS-X-R1(config)# router bgp X


AS-X-R1(config-router)# neighbor 200.X.1.1 remote-as 200
AS-X-R1(config-router)# neighbor 200.X.1.1 description eBGP com as 200
*Jan 20 16:04:54.775: %BGP-5-ADJCHANGE: neighbor 200.1.1.1 Up
AS-X-R1(config-router)#end

LAB 1-2-1

81
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Verificando o status das sesses BGP recm-criadas:


AS-X-R1#sh ip bgp summary

Neighbor

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

100.1.1.1

4 100

192

170

00:27:48

200.1.1.1

4 200

191

181

00:27:51

O nmero de PfxRcd vai ser maior a medida que os alunos estabeleceram


suas conexes.

LAB 1-2-1

82
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP

Note que algumas rotas tem 2 opes e outras no...

AS-X-R1>show ip bgp
BGP table version is 16, local router ID is 1.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
*> 1.0.0.0
* 2.0.0.0
*>
* 55.0.0.0
*>
*> 100.0.0.0
*> 111.0.0.0
*> 123.0.0.0
*
*> 123.123.0.0/16
*> 123.123.123.0/24
*> 200.0.0.0/8
*> 222.0.0.0/8

Next Hop
0.0.0.0
200.1.1.1
100.1.1.1
200.1.1.1
100.1.1.1
100.1.1.1
100.1.1.1
200.1.1.1
100.1.1.1
200.1.1.1
200.1.1.1
200.1.1.1
200.1.1.1

Metric LocPrf Weight Path


0
32768 i
0 200 2 i
0 100 2 i
0 200 222 123 55 i
0 100 111 55 i
0 100 i
0 100 111 i
0 200 222 123 i
0 100 111 55 123 i
0 200 222 123 i
0 200 222 123 i
0 200 i
0 200 222 i

LAB 1-2-1

83
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP


Como temos BGP com duas operadoras, o normal seria
receber os prefixos das duas operadoras certo?

LAB 1-2-1

84
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP


Como temos BGP com duas operadoras, o normal seria
receber os prefixos das duas operadoras certo?

NEM SEMPRE!

LAB 1-2-1

85
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.1-Configurando BGP com apenas um link

Outros prefixos seguiro o mesmo comportamento mas


vamos focar no prefixo 222.0.0.0/8 do AS 222:

AS-X-R1#show ip bgp 222.0.0.0


BGP routing table entry for 222.0.0.0/8, version 10
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
1
200 222
200.X.1.1 from 200.X.1.1 (200.0.0.100)
Origin IGP, localpref 100, valid, external, best

De acordo com o resultado acima esse prefixo s est sendo


recebido pelo lado do AS 200

LAB 1-1-1

86
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Detalhando as rotas recebidas via BGP


O que significa essas o fato de algumas rotas alternativas
desaparecerem at da RIB?
E o que isso implica na prtica?
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 AS ficar na mesma
situao... vamos ver quem logo adiante, mas antes entender
esse processo

LAB 1-2-1

87
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
222.0.0.0/8
AS222
AS111
AS-100-BKB

AS200

AS100
AS-100-RX

ASX
LAB 1-2-1

88
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
222.0.0.0/8
AS222
AS111
AS-100-BKB

AS200

AS100
AS-100-RX

ASX
LAB 1-2-1

89
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111
AS-100-BKB

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

ASX
LAB 1-2-1

90
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111
AS-100-BKB

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

ASX
LAB 1-2-1

91
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111
AS-100-BKB

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

ASX
LAB 1-2-1

92
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111
AS-100-BKB

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

93

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111
AS-100-BKB

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

94

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

Prefixo
ASPATH
*>222.0.0.0/8 55 123 222

AS111
AS-100-BKB

AS200

AS100
Prefixo
ASPATH
*>222.0.0.0/8 X 200 222

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

95

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

Prefixo
ASPATH
*>222.0.0.0/8 55 123 222
* 222.0.0.0/8 100 X 200 222

AS111
AS-100-BKB

AS200

AS100
Prefixo
ASPATH
*>222.0.0.0/8 X 200 222
* 222.0.0.0/8 111 55 123 222

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 222

AS-100-RX

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

96

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).
AS-X-R1>sh ip bgp neighbors 100.X.1.1 advertised-routes
...

Network
*> X.0.0.0

Next Hop
0.0.0.0

Metric
0

LocPrf Weight Path


32768 i

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

Network
*> X.0.0.0
*> 2.0.0.0
*> 55.0.0.0
*> 100.0.0.0
*> 111.0.0.0
...

Next Hop
0.0.0.0
100.1.1.1
100.1.1.1
100.1.1.1
100.1.1.1

Metric LocPrf Weight Path


0
32768 i
0 100 2 i
0 100 111 55 i
0 100 i
0 100 111 i

LAB 1-2-1

97
v4.0beta | 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:
AS-X-R1(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8
!--- adiciona o bloco do AS do grupo na lista MEUS-BLOCOS
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor 200.X.1.1 prefix-list MEUS-BLOCOS out
!---aplicar o mesmo filtro na sada do AS 200
AS-X-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out
!--- aplicar o mesmo filtro na sada do AS 100
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

LAB 1-2-1

98
v4.0beta | 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:
AS-X-R1>sh ip bgp neighbors 100.X.1.1 advertised-routes
BGP table version is 24, 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
*> X.0.0.0

Next Hop
0.0.0.0

Metric
0

LocPrf Weight Path


32768 i

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


BGP table version is 24, 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
*> X.0.0.0

Next Hop
0.0.0.0

Metric
0

LocPrf Weight Path


32768 i

LAB 1-2-1

99
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
222.0.0.0/8
AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

100
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
222.0.0.0/8
AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

101
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

ASX
LAB 1-2-1

102
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

ASX
LAB 1-2-1

103
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

104

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

AS111

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

Filtros de sada

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

105

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

Prefixo
ASPATH
*>222.0.0.0/8 55 123 222

AS111

AS200

AS100

Prefixo
ASPATH
*>222.0.0.0/8 222

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

106

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

Prefixo
ASPATH
*>222.0.0.0/8 55 123 222

AS111

AS200

AS100
Prefixo
ASPATH
*> 222.0.0.0/8 111 55 123 222

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 222

Prefixo
ASPATH
*>222.0.0.0/8 200 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

107

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123

Prefixo
ASPATH
*>222.0.0.0/8 123 222

AS55
Prefixo
ASPATH
*>222.0.0.0/8 222

222.0.0.0/8
AS222

Prefixo
ASPATH
*>222.0.0.0/8 55 123 222

AS111

AS200

AS100
Prefixo
ASPATH
*> 222.0.0.0/8 111 55 123 222

LAB 1-2-1

Prefixo
ASPATH
*>222.0.0.0/8 222

Prefixo
ASPATH
*>222.0.0.0/8 200 222
* 222.0.0.0/8 100 111 55 123 222

ASX

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

108

2.3
PERGUNTAS?

109
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.4
Utilizando um
Looking Glass

110
v4.0beta | 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

111
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.4 Utilizando um Looking Glass

112
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.4 Utilizando um Looking Glass

113
v4.0beta | 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 222.200.10.1 92.724 ms 92.302 ms 69.351 ms
4 222.222.1.1 127.492 ms 73.505 ms 69.707 ms
5 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.

114
v4.0beta | 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:

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

115

v4.0beta | 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 X.128.0.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.1.2 [AS 222] 24 msec 28 msec 12 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.
116
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os pacotes vo e vem...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

117
v4.0beta | 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

118
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.4
PERGUNTAS?

119
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.5
Fail-Over
Automtico

120
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.5 Fail-Over automtico

Utilizando a rota alternativa


AS-100

AS-200

.1
100.X.1.0/30
E1/0

.2

Vamos simular um problema


tcnico no AS200 deligando
seus CPE's...
F0/0

.2

E2/0

.1
/30
0
.
X .1
.
0
20

AS-X-R1
.254
X.128.0.0/9

GX-R1# terminal monitor


5d06h: %BGP-5-ADJCHANGE: neighbor 200.X.1.1 Down ...
aguardem alguns instantes...
LAB 1-2-2

121
v4.0beta | 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 111.100.10.1 38.422 ms 108.815 ms 108.392 ms
4 111.111.1.1 133.799 ms 69.868 ms 133.367 ms
5 55.111.2.1 110.819 ms 107.647 ms 65.948 ms
6 55.55.1.1 138.345 ms 129.942 ms 129.917 ms
7 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

122
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

123
v4.0beta | 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.0.0.100)
Origin IGP, localpref 100, valid, external, best

LAB 1-2-2

124
v4.0beta | 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.1.2 [AS 111] 56 msec 48 msec 52 msec
6 100.X.1.2 [AS 100] 84 msec 88 msec 60 msec
7 X.128.0.1 [AS 1] 92 msec 68 msec 96 msec

LAB 1-2-2

125
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

126
v4.0beta | 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

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

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-RoutingTable)
Advertised to non peer-group peers:
123.222.2.2
55 111 100 X
123.55.2.2 from 123.55.2.2 (55.55.55.2)
Origin IGP, localpref 100, valid, external, best

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

127
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Veja como os anncios se preopagam...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

128
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.5 Fail-Over automtico

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


ALUNO@notebook:~$ traceroute 200.0.0.100 -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 111.100.10.1 68.506 ms 79.031 ms 100.321 ms
4 111.111.1.1 78.604 ms 68.467 ms 68.456 ms
5 55.111.2.1 45.810 ms 39.272 ms 127.491 ms
6 55.55.1.1 136.322 ms 123.845 ms 114.650 ms
7 123.55.2.1 113.618 ms 123.932 ms 112.493 ms
8 123.222.2.2 161.647 ms 101.636 ms 111.676 ms
9 222.222.1.2 161.596 ms 176.097 ms 183.647 ms
10 222.200.1.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 analisar...

LAB 1-2-2

129
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.5 Fail-Over automtico


Verifiquem as entradas para a rede em que faz parte o IP do AS200-BKB:

GX-R1>sh ip bgp 200.200.200.10


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

LAB 1-2-2

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


alcanar o AS 200.
Discutiremos solues alternativas nos prximos captulos.
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

130

2.5 Fail-Over automtico

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

ALUNO@notebook:~$ telnet 200.0.0.100


Trying 200.200.200.10
Connected to 200.200.200.10
Escape character is '^]'.
AS-200-BKB>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

131
v4.0beta | 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.
132
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.5
PERGUNTAS?

133
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6

Escolhendo o
Melhor Link

134
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

A falha no AS 200 ser reestabelecida...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

135
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

E o trfego volta direo de antes...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

136
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

E o trfego volta direo de antes...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

137
v4.0beta | 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...
138
v4.0beta | 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

139
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6 Escolhendo o melhor link


Analisando 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

140
v4.0beta | 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

141
v4.0beta | 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)

LAB 1-3-1

(...continua...)

142
v4.0beta | 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)
(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

143
v4.0beta | 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 X.128.0.1
Type escape sequence to abort.
Tracing the route to X.128.0.1
1 123.222.1.2 32 msec 16 msec 16 msec
2 222.222.1.2 [AS 222] 16 msec 36 msec 36 msec
3 222.200.1.2 [AS 222] 68 msec 48 msec 44 msec
4 200.X.1.2 [AS 200] 48 msec 64 msec 68 msec
5 X.128.0.1 [AS 1] 56 msec 128 msec 68 msec
AS-123-R1>

LAB 1-3-1

144
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6 Escolhendo o melhor link

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,
preciso convenc-los de outra forma a mudar de rota.

LAB 1-3-1

145
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

E o trfego volta direo de antes...


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

146
v4.0beta | 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

147
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

E o trfego volta direo de antes...


AS123
AS55

X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS222

AS111

AS200

AS100

X.0.0.0/9
X.128.0.0/9

X.0.0.0/8
ASX

LAB 1-2-1

148
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6 Escolhendo o melhor link

Configurando os anncios mais especficos:


AS-X-R1#conf terminal
AS-X-R1(config)#ip prefix-list LAB-1-3-1-ANUNCIAR-AS-100 permit X.0.0.0/9
AS-X-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
AS-X-R1(config)#ip prefix-list LAB-1-3-1-ANUNCIAR-AS-200 permit X.0.0.0/8
!--- adiciona o classe A inteiro dentro da lista ANUNCIAR-AS-100
AS-X-R1(config)#router bgp X
!--- adiciona 2 prefixos /9 dentro da lista ANUNCIAR-AS-100
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
!--- alm do anuncio local do classe A, inserimos mais 2 prefixos /9 a serem
!--- a serem anunciados pelo router
AS-X-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
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

LAB 1-3-1

149
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6 Escolhendo o melhor link

Verificando anncios para o AS 200:


AS-X-R1#sh ip bgp neighbors 200.X.1.1 advertised-routes
BGP table version is 13, 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
*> X.0.0.0

Next Hop
0.0.0.0

Metric LocPrf Weight Path


0
32768 i

Agora para o AS 100:


AS-X-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

150
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6 Escolhendo o melhor link

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

AS-X-R1#sh ip route X.0.0.0 longer-prefixes


...
Gateway of last resort is not set
C
C
C
C

X.0.0.0/8 is variably subnetted, 4 subnets, 3 masks


X.0.0.1/32 is directly connected, Loopback0
X.X.1.0/30 is directly connected, GigabitEthernet3/0
X.101.1.0/30 is directly connected, GigabitEthernet5/0
X.128.0.0/9 is directly connected, FastEthernet0/0

O comando longer-prefixes mostra rotas para qualquer sub-rede


dentro do bloco /8 pesquisado, porm temos um /32 na Loopback0,
o segundo /9 diretamente conectado f0/0, outros 2 /30, mas em
nenhum lugar aparece X.0.0.0/9

LAB 1-3-1

151
v4.0beta | 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:
AS-X-R1#conf t
AS-X-R1(config)#ip route X.0.0.0 255.0.0.0 null0
AS-X-R1(config)#ip route X.0.0.0 255.128.0.0 null0
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no auto-summary
AS-X-R1(config)#end
AS-X-R1
AS-X-R1#sh ip route X.0.0.0 longer-prefixes
...
Gateway of last resort is not set
1.0.0.0/8 is variably subnetted, 6 subnets, 4 masks
C
X.0.0.1/32 is directly connected, Loopback0
C
X.X.1.0/30 is directly connected, GigabitEthernet3/0
S
X.0.0.0/9 is directly connected, Null0
S
X.0.0.0/8 is directly connected, Null0
C
X.101.1.0/30 is directly connected, GigabitEthernet5/0
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

152
v4.0beta | 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...
AS-X-R1#sh ip bgp neighbors 100.X.1.1 advertised-routes
BGP table version is 11, 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
*> X.0.0.0/9
0.0.0.0
*> X.128.0.0/9
0.0.0.0

Metric LocPrf Weight Path


0
32768 i
0
32768 i

Agora estamos fazendo corretamente o anncio dos dois blocos /9


para o AS 100.

LAB 1-3-1

153
v4.0beta | 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
*> X.0.0.0/9
123.55.2.2
*> X.0.0.0
123.222.2.2
*> X.128.0.0/9
123.55.2.2

Metric LocPrf Weight Path


0 55 111 100 X i
0 222 200 X i
0 55 111 100 X i

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

154
v4.0beta | 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.X.1.2 [AS 100] 64 msec 56 msec 60 msec
7 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

155
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Agora IDA e VOLTA seguem a mesma rota


AS123
AS55

AS222
AS111

AS200

AS100

ASX
LAB 1-2-1

156
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.6
PERGUNTAS?

157
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.7
Balanceando os
Links

158
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.7-Balanceando os links

Antes de comear preciso remover a configurao de weight


aplicada no LAB anterior
AS-X-R1#configure terminal
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no neighbor 100.X.1.1 weight 10
AS-X-R1(config-router)#end
!--- agora vamos efetuar um clear na sesso BGP

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

Vamos verificar como ficaram as rotas BGP...

LAB 1-3-1

159
v4.0beta | 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.
160
v4.0beta | 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:
AS-X-R1#conf terminal
AS-X-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-100 permit X.0.0.0/8
AS-X-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
AS-X-R1(config)#ip prefix-list LAB-1-4-1-ANUNCIAR-AS-200 permit X.0.0.0/8
AS-X-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
AS-X-R1(config)#router bgp X
!--- adiciona 2 prefixos /9 dentro da lista ANUNCIAR-AS-100
AS-X-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
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

LAB 1-4-1

161
v4.0beta | 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:
AS-X-R1#show ip bgp neighbors 100.X.1.1 advertised-routes
(...)
Network
Next Hop
Metric LocPrf Weight Path
*> X.0.0.0/9
0.0.0.0
0
32768 i
*> X.0.0.0
0.0.0.0
0
32768 i
Total number of prefixes 2
AS-X-R1#show 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
*> X.128.0.0/9 0.0.0.0
0
32768 i
Total number of prefixes 2

LAB 1-4-1

162
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Anunciando um /9 para cada lado


AS123
AS55

X.0.0.0/8
X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS111

AS222

AS200

AS100

X.0.0.0/9
X.0.0.0/8

ASX

X.128.0.0/9
X.0.0.0/8

LAB 1-2-1

163
v4.0beta | 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

Agora testar o caminho para os 2 blocos /9.

LAB 1-4-1

164
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.7-Balanceando os links

Primeiro /9 (Loopback do router):


AS-123-R1>traceroute X.0.0.1
Type escape sequence to abort.
Tracing the route to X.0.0.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

165
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

O trfego com destino ao IP's dentro de X.0.0.0/9 seguem pela


rota 55, 111, 100...
AS123
AS55

X.0.0.0/8
X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS111

AS222

AS200

AS100

X.0.0.0/9
X.0.0.0/8

ASX

X.128.0.0/9
X.0.0.0/8

LAB 1-2-1

166
v4.0beta | 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.X.1.2 [AS 200] 92 msec 20 msec 40 msec
5 X.128.0.1 [AS 2] 64 msec 47 msec 33 msec
AS-123-R1#

Caminho 222,200

LAB 1-4-1

167
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

O trfego com destino ao IP's dentro de X.128.0.0/9 seguem pela


rota 222, 200...
AS123
AS55

X.0.0.0/8
X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS111

AS222

AS200

AS100

X.0.0.0/9
X.0.0.0/8

ASX

X.128.0.0/9
X.0.0.0/8

LAB 1-2-1

168
v4.0beta | 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

169
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Em uma eventual falha no AS 200 a rede X.128.0.0/9


desaparece...
AS123
AS55

X.0.0.0/8
X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS111

AS222

AS200

AS100

X.0.0.0/9
X.0.0.0/8

ASX

X.128.0.0/9
X.0.0.0/8

LAB 1-2-1

170
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Em uma eventual falha no AS 200 a rede X.128.0.0/9


desaparece...
AS123
AS55

X.0.0.0/8
X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS111

AS222

AS200

AS100

X.0.0.0/9
X.0.0.0/8

ASX

X.128.0.0/9
X.0.0.0/8

LAB 1-2-1

171
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

2.3 Configurando BGP com 2 links

Apesar da rota desaparecer, todos os IP's dentro de X.128.0.0/9


seguiro a rota X.0.0.0/8 j que essa rota contem X.128.0.0/9
AS123
AS55

X.0.0.0/8
X.0.0.0/8
X.0.0.0/9
X.128.0.0/9

AS111

AS222

AS200

AS100

X.0.0.0/9
X.0.0.0/8

ASX

X.128.0.0/9
X.0.0.0/8

LAB 1-2-1

172
v4.0beta | 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

173
v4.0beta | 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 Entendendo o conceito de Lan2Lan
3.7 ATM-Tratando as rotas recebidas
3.8 ATM-Anunciando corretamente
3.9 O looking glass do PTT Metro
3.10 Aplicaes de um acordo bilateral
3.11 Comprando e vendendo trnsito no PTT

174
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1

Peering x Trnsito

175
v4.0beta | 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.

176
v4.0beta | 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.
177
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

LAB: Observem o cenrio...

178
v4.0beta | 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.2.1.1/30

1.2.1.2/30

3.4.1.1/30

3.4.1.2/30

5.6.1.1/30

5.6.1.2/30

7.8.1.1/30

7.8.1.2/30

9.10.1.1/30

10

9.10.1.2/30

11

11.12.1.1/30

12

11.12.1.2/30

13

13.14.1.1/30

14

13.14.1.2/30

LAB 1-6-1

179
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

LAB: Estabelecer peering entre grupos com os seguintes Ips:


AS-100

AS-200

.1
100.X.1.0/30
E1/0

.2

AS-X-R1
F0/0

.254
X.128.0.0/9
.1

.X.
E2/0
0
20
.2

0
3
/
1.0

.1

PEERING

IP.DO.PEERING

AS

IP

AS

IP

1.2.1.1/30

1.2.1.2/30

3.4.1.1/30

3.4.1.2/30

5.6.1.1/30

5.6.1.2/30

7.8.1.1/30

7.8.1.2/30

9.10.1.1/30

10

9.10.1.2/30

11

11.12.1.1/30

12

11.12.1.2/30

13

13.14.1.1/30

14

13.14.1.2/30

LAB 1-6-1

180
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Realizando as configuraes IP (AS MPAR):


AS-XR1#conf t
AS-X-R1(config)#interface g4/0
AS-X-R1(config-if)#ip address X.Y.1.1 255.255.255.252
AS-X-R1(config-if)#no shutdown
AS-X-R1(config-if)#end
AS-X-R1#ping X.Y.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.2.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/17/40 ms
Onde:
X= AS local
Y= AS remoto

LAB 1-6-1

181
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Realizando as configuraes IP (AS PAR):


AS-XR1#conf t
AS-X-R1(config)#interface g4/0
AS-X-R1(config-if)#ip address Y.X.1.2 255.255.255.252
AS-X-R1(config-if)#no shutdown
AS-X-R1(config-if)#end
AS-X-R1#ping Y.X.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.2.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/17/40 ms
Onde:
X= AS local
Y= AS remoto

LAB 1-6-1

182
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Antes de comear vamos desfazer algumas das


configuraes dos laboratrios anteriores...
AS-X-R1#conf t
AS-X-R1(config)#no router bgp X
AS-X-R1(config)#no ip route X.0.0.0 255.0.0.0 Null0
AS-X-R1(config)#no ip route X.0.0.0 255.128.0.0 Null0

O Objetivo parar de propagar prefixos /9 e voltar


anunciar apenas /8 para os trnsitos a agora para o
peering

LAB 1-6-1

183
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Configurando BGP (AS MPAR):

Onde:

X= AS local
AS-X-R1(config)#router bgp X
Y= AS remoto
AS-X-R1(config-router)#network X.0.0.0
AS-X-R1(config-router)#auto-summary
AS-X-R1(config-router)#neighbor 100.X.1.1 remote-as 100
*Jan 21 00:06:34.958: %BGP-5-ADJCHANGE: neighbor 100.X.1.1 Up
AS-X-R1(config-router)#neighbor 200.X.1.1 remote-as 200
*Jan 21 00:07:08.046: %BGP-5-ADJCHANGE: neighbor 200.x.1.1 Up
AS-X-R1(config-router)#neighbor X.Y.1.2 remote-as Y
*Jan 21 00:09:06.434: %BGP-5-ADJCHANGE: neighbor X.Y.1.2 Up
AS-X-R1(config-router)#neighbor X.Y.1.2 weight 20
!--- priorizar todas as rotas recebidas pelo peering com weight 20
AS-X-R1(config-router)#neighbor X.Y.1.2 prefix-list MEUS-BLOCOS out
AS-X-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out
AS-X-R1(config-router)#neighbor 200.X.1.1 prefix-list MEUS-BLOCOS out
!--- filtrar anncios de sada para esse peering na respectiva prefix-list
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
LAB 1-6-1

184
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Configurando BGP (AS PAR):

Onde:

X= AS local
AS-X-R1(config)#router bgp X
Y= AS remoto
AS-X-R1(config-router)#network X.0.0.0
AS-X-R1(config-router)#auto-summary
AS-X-R1(config-router)#neighbor 100.X.1.1 remote-as 100
*Jan 21 00:06:34.958: %BGP-5-ADJCHANGE: neighbor 100.X.1.1 Up
AS-X-R1(config-router)#neighbor 200.X.1.1 remote-as 200
*Jan 21 00:07:08.046: %BGP-5-ADJCHANGE: neighbor 200.X.1.1 Up
AS-X-R1(config-router)#neighbor Y.X.1.1 remote-as Y
*Jan 21 00:09:06.434: %BGP-5-ADJCHANGE: neighbor Y.X.1.1 Up
AS-X-R1(config-router)#neighbor Y.X.1.1 weight 20
!--- priorizar todas as rotas recebidas pelo peering com weight 20
AS-X-R1(config-router)#neighbor Y.X.1.2 prefix-list MEUS-BLOCOS out
AS-X-R1(config-router)#neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out
AS-X-R1(config-router)#neighbor 200.X.1.1 prefix-list MEUS-BLOCOS out
!--- filtrar anncios de sada para esse peering na respectiva prefix-list
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
LAB 1-6-1

185
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Verificando os anncios para o novo peering:


AS-X-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

186
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Verificando as redes recebidas do meu novo peering:


AS-X-R1#sh ip bgp neighbor X.X.X.X routes
!--- verificando as rotas recebidas pelo peering
BGP table version is 23, 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
*> Y.0.0.0

Next Hop
1.2.1.2

Metric LocPrf Weight Path


0
20 Y i

Total number of prefixes 1

LAB 1-6-1

Onde:
X= AS local
Y= AS remoto

187
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

Testando um traceroute para Y.128.0.1 ...


ALUNO@notebook# traceroute Y.128.0.1 -n
traceroute to 2.0.0.1 (2.0.0.1), 30 hops max, 60 byte
packets
1 X.128.0.254 5.911 ms 15.863 ms 25.922 ms
2 X.X.X.X

46.113 ms 39.461 ms 66.244 ms

3 Y.128.0.254 151.540 ms 99.734 ms 108.429 ms

A partir de agora est havendo uma troca de trfego entre


os 2 AS's.

LAB 1-6-1

188
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.1 Peering x Trnsito

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

189
v4.0beta | 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...

AS-100
.1
100.X.1.0/30
E1/0

.2

AS-X-R1
F0/0

AS-200

.
X
.
E2/0
00
2
.2

/ 30
0
.
1

.1

PEERING

IP.DO.PEERING

.254
X.128.0.0/9
.1
LAB 1-6-1

190
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.2

Entendendo o
Funcionamento
de Um PIX do PTTMetro

191
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.2 Entendendo o Funcionamento de um


PIX do PTTMetro

Para quem ainda no assistiu:


http://zappiens.br:80/videos/cgiE9WjKruzQGmPy-VDyEDDAK
PUNxmfYneBOql0VJJOuIg.FLV

192
v4.0beta | 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 routeservers e um router Looking Glass (outros maiores como SP
possuem dezenas de switchs em vrios PIXes).

193
v4.0beta | 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.

194
v4.0beta | 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).
187.16.216.0/22
ROUTE
SERVER
.1
.2
.3
.4
195
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.3
Formulrios de Adeso

196
v4.0beta | 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

197
v4.0beta | 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 ........:
ASN ...............:
Entidade Nome .....:
URL ...............:
Endereo ..........:
NOC email .........:
INOC-DBA ext ......:
Telefone ..........:
Adm-c nome ........:
email .............:
Telefone ..........:
Peering-c nome ....:
email .............:
Telefone ..........:
Comercial Trnsito :
email .............:
Telefone ..........:
URL Poltica
Peering .......:
BGP Feed para o
Looking-glass ...:
Vende trnsitov4 ..:
Vende trnsitov6 ..:
Conexo
Bandwidth .........:
Media Ethernet ....:

(Coloque aqui a localidade do PTT que deseja se conectar) Listagem: http://ptt.br/adesao.php


22548
Registro.br
http://registro.br/
Av. das Naes Unidas 11548, 7 andar 04578-000 - So Paulo - SP
noc@registro.br
22548*NOC
11 5509-3510
Frederico A C Neves
fneves@registro.br
11 5509-3511
Oripide Ocilento Filho
oripide@nic.br
11 5509-3520

none - Open Policy


Sim [x]
Sim [ ]
Sim [ ]

Nao [ ]
No [x]
No [x]

10BaseTX [ ] 100BaseTX [ ]
1 GigE-SX [X] 1 GigE-LX [ ]
PIX ...............: Registro.br
IPv6 ..............: Sim [x]
Nao [ ]
...

10000BaseTX [ ]
10 GigE-SR [ ]

10 GigE-LR [ ]

198
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.4
Diferenas entre Acordo
Bilateral
e Multilateral

199
v4.0beta | 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...

200
v4.0beta | 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


201
v4.0beta | 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
202
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.5
Participantes Locais e
Remotos

203
v4.0beta | 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:

204
v4.0beta | 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
latncia, que proporcional distncia geogrfica.

205
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.6

Entendendo o Conceito de
Lan2Lan

206
v4.0beta | 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

207
v4.0beta | 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 informaes de layer 2 chegam ao


outro lado, incluindo requisies ARP e broadcasts

208
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.7

ATM-Tratando as Rotas
Recebidas

209
v4.0beta | 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:

AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no bgp enforce-first-as
AS-X-R1(config-router)#neighbor 187.16.216.253 remote-as 555
AS-X-R1(config-router)#neighbor 187.16.216.253 description PTT-SP Route_Server 1
AS-X-R1(config-router)#neighbor 187.16.216.253 weight 15
!--- o valor 15 de weight deve ser menor que o aplicado no peering "20
AS-X-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 neighbors
AS-X-R1(config-router)#neighbor 187.16.216.254 remote-as 555
AS-X-R1(config-router)#neighbor 187.16.216.254 description PTT-SP Route_Server 2
AS-X-R1(config-router)#neighbor 187.16.216.254 weight 15
AS-X-R1(config-router)#neighbor 187.16.216.254 prefix-list MEUS-BLOCOS out
!--- a configurao deve ser idncita com o route server de backbup
AS-X-R1(config-router)#neighbor 187.16.216.252 remote-as 555
AS-X-R1(config-router)#neighbor 187.16.216.252 description PTT-SP Looking Glass
!--- para o looking glass do PTT enviaremos todas as rotas da FIB, portando nao usaremos
nenhum filtro de out e tambm nenhum filtro de IN pois o mesmo no anuncia rotas para
ningum
LAB 1-7-1

210
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.7 - ATM-Tratando as Rotas Recebidas

LAB: Estabelecer sesses BGP com os PTT Route-server e com


o PTT Looking Glass:

AS-100
.1
100.X.1.0/30
E1/0

.2

AS-X-R1
F0/0

.254
X.128.0.0/9
.1

AS-200

E2/0

20
.2

0 .1
3
/
.0
1
.
0.X

PEERING

F0/1

.X 187
.16
.2

16
. 0/

22

PTT-SP Route Server 1:


187.16.216.253
PTT-SP Route Server 2:
187.16.216.254
PTT-SP Looking Glass:
187.16.216.252

PTT-SP

LAB 1-7-1

211
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.7 - ATM- Tratando as Rotas Recebidas

Agora vamos verificar se recebemos rotas dos Route Servers


do PTT-SP e se todas as 6 sesses esto estabelecidas:

Peering

Trnsito AS100

Trnsito AS200

PTT-SP Looking Glass

PTT-SP Route Server 1

PTT-SP Route Server 2

AS-X-R1#show ip bgp summary


(...)
Neighbor
V
AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
X.X.X.X
4
Y
116
124
17
0 0
01:18:00
1
100.X.1.1
4
100
146
114
17
0 0
01:19:56
27
187.16.216.252
4
555
14
22
17
0 0
00:11:37
0
187.16.216.253
4
555
37
46
17
0 0
00:34:39
13
187.16.216.254
4
555
41
53
17
0 0
00:18:04
13
200.X.1.1
4
200 147
122
17
0 0
01:19:56
26
LAB 1-7-1

212
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.7 - ATM-Tratando as Rotas Recebidas


Vamos verificar todas as opes para chegar rede do AS do
colega de peering

AS-X-R1>show ip bgp Y.0.0.0/8


BGP routing table entry for Y.0.0.0/8, version 17
Paths: (5 available, best #5, table Default-IP-Routing-Table)
Advertised to update-groups:
1
Y
187.16.216.2 from 187.16.216.253 (187.16.216.253)
Origin IGP, metric 0, localpref 100, weight 15, valid, external
Y
187.16.216.2 from 187.16.216.254 (187.16.216.254)
Origin IGP, metric 0, localpref 100, weight 15, valid, external
200 Y
200.X.1.1 from 200.1.1.1 (200.0.0.100)
Origin IGP, localpref 100, valid, external
100 Y
100.X.1.1 from 100.1.1.1 (100.0.0.100)
Origin IGP, localpref 100, valid, external
Y
X.X.X.X from X.X.X.X (Y.0.0.1)
Origin IGP, metric 0, localpref 100, weight 20, valid, external, best

A rota escolhida a #5 porque o valor de weight do peering (20)


maior do que o valor aplicado s rotas do PTT-SP (15)

LAB 1-7-1

213
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.7 - ATM-Tratando as Rotas Recebidas

Agora vamos verificar as rotas a a conectividade entre os


outros AS's

LAB 1-7-1

214
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.8

ATM-Anunciando
Corretamente

215
v4.0beta | 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 ser a mais antiga por exemplo

216
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.8- ATM- Anunciando Corretamente

Os anncios mais especficos garantem trfego de download pelo PTT,


porm tambm existem outras maneiras de fazer isso, utilizando
communities e as path prepend.

217
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.9

O Looking Glass do PTT


Metro

218
v4.0beta | 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.

219
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.9 - O Looking Glass do PTT Metro

Conectando-se ao Looking Glass do PTT-SP:


AS-X-R1>telnet 187.16.216.252
Trying 187.16.216.252 ... Open
Ubuntu 14.10
PTT-SP-LG login: lg.ptt.sp
Password: 123456
$
$ telnet 127.0.0.1 bgpd
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Hello, this is Quagga (version 0.99.23).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
User Access Verification
Password: 123456
PTT-SP-LG>

Pronto! Agora estamos conectados ao Looking Glass e


poderemos fazer consultas...
220
v4.0beta | 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 1.
PTT-SP-LG> show ip bgp regexp ^1
BGP table version is 0, local router ID is 187.16.216.252
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 1.0.0.0
*> 2.0.0.0
*> 55.0.0.0
*> 100.0.0.0
*> 111.0.0.0
*> 123.0.0.0
(..)

Next Hop
187.16.216.1
187.16.216.1
187.16.216.1
187.16.216.1
187.16.216.1
187.16.216.1

Metric LocPrf Weight Path


0
01i
012i
0 1 100 111 55 i
0 1 100 i
0 1 100 111 i
0 1 200 222 123 i

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


(desde que esse esteja enviando sua tabela full para esse
Looking Glass).
221
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.10

Aplicaes de Um Acordo
Bilateral

222
v4.0beta | 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.

223
v4.0beta | 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.

LAB 1-8-1

224
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT

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.
Aps decidido o ID da vlan, cada participante deve
inserir a tag correspondente na interface f0/1 (interface
conectada ao PTT).
Os IPs de WAN sero definidos pelos participantes,

LAB 1-8-1

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


IP que o cliente configurou do outro lado

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

225

3.11 Comprando e vendendo trnsito no


PTT

IP's privadsos podem ser usados para algumas demandas


de segurana, porm pode causar certas complicaes
com traceroutes
Aps decidido o ID da vlan cada participante deve inserir a
tag correspondente na interface f0/1 (interface conectada
ao PTT).
Os IPs de WAN sero definidos pelos participantes,

AS-X-R1#conf t
AS-X-R1(config)#interface fastEthernet 0/1
AS-X-R1(config-subif)#ip address(combinem os endereos IP de cada lado) secondary
AS-X-R1(config-subif)#end
AS-X-R1# ping Z.Z.Z.Z
!--- testem conectividade IP atravs da vlan antes de iniciar as config BGP

X.X.X.X o Iocal e Z.Z.Z.Z o IP configurado do lado remoto


o endereo IP que o cliente configurou do outro lado
LAB 1-8-1

226
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT
Logo abaixo segue qual seria a maneira de configurar no
cenrio real do PTT-SP, com TAG vlan.

Router#conf t
Router(config)#interface fastEthernet 0/1.XXX
Router(config-subif)#encapsulation dot1Q XXX
Router(config-subif)#ip address z.z.z.z
Router(config-subif)#end
Router# ping Z.Z.Z.Z

NO APLIQUE ESSA CONFIG!


NO FAZ PARTE DO LAB

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


que o cliente configurou do outro lado

LAB 1-8-1

227
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT
Configurando VLAN/IP na interface PTT

Uma boa recomendao para o AS que vender o trnsito


nesse laboratrio usar um de seus /30 (ou /31) pblicos
na WAN de quem vai ser cliente um IP , assim os
tracerouters ficaro menos complicados de ler

!--- testem conectividade IP antes de iniciar as config BGP


AS-X-R1#ping Z.Z.Z.Z
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.125.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/13/28 ms

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


IP que o cliente configurou do outro lado

LAB 1-8-1

228
v4.0beta | 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
AS-X-R1#conf t

AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
AS-X-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral - cliente
AS-X-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
AS-X-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
AS-X-R1(config-router)#exit
AS-X-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
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
LAB 1-8-1

229
v4.0beta | 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
AS-X-R1#conf t

AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
AS-X-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral - cliente
AS-X-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
AS-X-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
AS-X-R1(config-router)#exit
AS-X-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
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
LAB 1-8-1

230
v4.0beta | 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
AS-X-R1#conf t

AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
AS-X-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral - cliente
AS-X-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
AS-X-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
AS-X-R1(config-router)#exit
AS-X-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
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
LAB 1-8-1

231
v4.0beta | 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

AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
AS-X-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral-transito IP
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

LAB 1-8-1

232
v4.0beta | 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

AS-X-R1#conf t
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor Z.Z.Z.Z remote-as Y
AS-X-R1(config-router)#neighbor Z.Z.Z.Z description Acordo bilateral-transito IP
AS-X-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
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

LAB 1-8-1

233
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT
AS-X-R1#show ip bgp Y.0.0.0

ROUTER
TRNSITO

BGP routing table entry for 3.0.0.0/8, version 54


Paths: (5 available, best #1, table Default-IP-Routing-Table)
Flag: 0x840
Advertised to update-groups:
1
Y
1.125.1.2 from 1.125.1.2 (3.0.0.1)
Origin IGP, metric 0, localpref 100, weight 25, valid, external, best
200 3
200.X.1.1 from 200.1.1.1 (200.0.0.100)
Origin IGP, localpref 100, valid, external
Y
187.16.216.Y from 187.16.216.254 (187.16.216.254)
Origin IGP, metric 0, localpref 100, weight 15, valid, external
Y
187.16.216.3 from 187.16.216.253 (187.16.216.253)
Origin IGP, metric 0, localpref 100, weight 15, valid, external
100 Y
100.X.1.1 from 100.1.1.1 (100.0.0.100)
Origin IGP, localpref 100, valid, external

LAB 1-8-1

234
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT
AS-X-R1#show ip bgp Y.0.0.0

ROUTER
TRNSITO

BGP routing table entry for 3.0.0.0/8, version 54


Paths: (5 available, best #1, table Default-IP-Routing-Table)
Flag: 0x840
Advertised to update-groups:
1
Y
1.125.1.2 from 1.125.1.2 (3.0.0.1)
Origin IGP, metric 0, localpref 100, weight 25, valid, external, best
200 3
200.X.1.1 from 200.1.1.1 (200.0.0.100)
Origin IGP, localpref 100, valid, external
Y
187.16.216.Y from 187.16.216.254 (187.16.216.254)
Origin IGP, metric 0, localpref 100, weight 15, valid, external
Y
187.16.216.3 from 187.16.216.253 (187.16.216.253)
Origin IGP, metric 0, localpref 100, weight 15, valid, external
100 Y
100.X.1.1 from 100.1.1.1 (100.0.0.100)
Origin IGP, localpref 100, valid, external

LAB 1-8-1

235
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT
AS-X-R1#show ip bgp neighbors 200.X.1.1 advertised-routes
(...)

ROUTER
TRNSITO

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


BGP table version is 54, 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
*> X.0.0.0
*> Y.0.0.0

Next Hop
0.0.0.0
1.125.1.2

Metric LocPrf Weight Path


0
32768 i
0
25 3 i

Total number of prefixes 2

LAB 1-8-1

236
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT

Testando o LAB:

DESATIVEM as interfaces E1/0 e sE2/0 do AS que foi


designado como CLIENTE nesse LAB.
Se tudo deu certo, os ASs que no participam do PTT
(123, 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 acessveis (trnsito IP)

LAB 1-8-1

237
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT
Testando da internet a conectividade do AS CLIENTE aps falha em seus links
principais...

AS-123-R1>show ip bgp Y.0.0.0


BGP routing table entry for Y.0.0.0/8, version 51
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Flag: 0x820
Advertised to update-groups:
2
55 111 100 X Y
123.55.1.2 from 123.55.1.2 (123.55.1.2)
Origin IGP, localpref 100, valid, external
222 200 X Y
123.222.1.2 from 123.222.1.2 (222.222.1.1)
Origin IGP, localpref 100, valid, external, best

LAB 1-8-1

238
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT

Testando da internet a conectividade do AS CLIENTE aps falha em seus links


principais...
AS-123-R1>show ip bgp Y.0.0.0
BGP routing table entry for Y.0.0.0/8, version 51
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Flag: 0x820
Advertised to update-groups:
2
55 111 100 X Y
123.55.1.2 from 123.55.1.2 (123.55.1.2)
Origin IGP, localpref 100, valid, external
222 200 X Y
123.222.1.2 from 123.222.1.2 (222.222.1.1)
Origin IGP, localpref 100, valid, external, best

LAB 1-8-1

239
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11 Comprando e vendendo trnsito no


PTT

Testando da internet a conectividade do AS CLIENTE aps falha em seus links


principais...
AS-123-R1>ping Y.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to Y.0.0.1, timeout is 2
seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max =
56/72/96 ms

LAB 1-8-1

240
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

3.11
PERGUNTAS?

241
v4.0beta | 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
4.2
4.3
4.4
4.5
4.6
4.7
4.8

eBGP com upstreams e downstreams


Configurando filtros de upstreams
Configurando filtros de downstreams
Entendendo o regexp
Enviando/recebendo partial e full-routouting
Route-map x prefix-list
AS-Path Prepend
Engenharia de trfego I

242
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.1

eBGP com Upstreams e


Downstreams

243
v4.0beta | 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.
244
v4.0beta | 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

245
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.1 eBGP com Upstreams e Downstreams

eBGP com UPSTREAMS

Geralmente recebemos todas as rotas da internet

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

246
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.1 eBGP com Upstreams e Downstreams

eBGP com DOWNSTREAMS

Recebemos apenas prefixos do cliente e/ou 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 e bloquear excees

Anncio de parcial routing apenas quando solicitado

247
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2

Configurando Filtros de
Upstreams

248
v4.0beta | 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 com UPSTREAMS:

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;
249
v4.0beta | 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 (prefixlist).

250
v4.0beta | 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 NAORECEBER e inserir nela todas as redes indesejadas.
Para facilitar, o Cisco IOS permite especificar intervalos de
IPs, isso dispensa o trabalho de inserir cada sub-rede
manualmente.
Vamos entender melhor...
251
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Antes de criar uma prefix-list no Cisco 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:
Router (config)#ip prefix-list MINHA-LISTA permit 122.36.200.0/24
Router (config)#ip prefix-list MINHA-LISTA {NEGAR TUDO}

Reg

ra o

cult
a

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.
252
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

O que o seq ?

Ao inserir o comando:
Router(config)#ip prefix-list MINHA-LISTA permit 122.36.200.0/24

Automaticamente o IOS insere um nmero de sequncia:


Router#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:
Router(config)#ip prefix-list MINHA-LISTA permit 44.0.0.0/24
Router(config)#end
Router#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

253
v4.0beta | 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:
Router(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:
Router#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
254
v4.0beta | 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:


Router(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:
Router(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.
255
v4.0beta | 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.
Router(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.
256
v4.0beta | 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:


Router(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:
Router(config)#ip prefix-list MINHA-LISTA seq 10 deny 200.233.16.0/22
Router(config)#ip prefix-list MINHA-LISTA seq 20 permit 200.233.16.0/20 le 32
!--- no cenario real geralmente so rejeitados os 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

257
v4.0beta | 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.

258
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Inserindo os prefixos na lista:


AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 10 deny X.0.0.0/8 le 32
!--- blocos do meu prprio AS
AS-X-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)
AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 30 deny 172.16.0.0/12 le 32
!--- uso privado
AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 40 deny 169.254.0.0/16 le 32
!--- link-local (APIPA)
AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 50 deny 127.0.0.0/8 le 32
!--- loopbacks
AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 60 deny 192.0.2.0/24 le 32
!--- Documentao
AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 70 deny 192.168.0.0/16 le 32
!--- uso privado
AS-X-R1(config)#ip prefix-list NAO-RECEBER seq 80 deny 224.0.0.0/4 le 32
!--- multicast
AS-X-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?)
AS-X-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

NAO INSERIR
ESSA LINHA

259
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Apenas criar a lista NAO-RECEBER no ter efeito se a mesma no for


declarada como filtro de ENTRADA dos UPSTREAMS, PEERING e PTT.
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor 100.X.1.1 prefix-list NAO-RECEBER in
AS-X-R1(config-router)#neighbor 200.X.1.1 prefix-list NAO-RECEBER in
AS-X-R1(config-router)#neighbor 187.16.216.253 prefix-list NAO-RECEBER in
AS-X-R1(config-router)#neighbor 187.16.216.254 prefix-list NAO-RECEBER in
AS-X-R1(config-router)#neighbor (IP de peering) prefix-list NAO-RECEBER in
AS-X-R1(config-router)#neighbor (acordo bilateral) prefix-list NAO-RECEBER in
!--- Nesse caso apenas para quem CLIENTE no acordo bilateral
!--- O AS que vende trnsito j tem uma prefix-list chamada BLOCOS-CLIENTE-AS-Y no IN
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

LAB 1-9-1

260
v4.0beta | 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 comandoS para verificar as rotas recebidas:


(routes e received-routes)
AS-X-R1#sh ip bgp neighbors 100.X.1.1 routes
!--- mostra todas as rotas APS a validao do nexthop
!--- e aps todos os filtros de input

Porm, se executarmos o segundo comando receberemos um


erro:
AS-X-R1#sh ip bgp neighbors 100.X.1.1 received-routes
% Inbound soft reconfiguration not enabled on 100.X.1.1
!--- mostra todas as rotas ANTES da validao do nexthop
!--- e ANTES de passar em todos os filtros de input

LAB 1-9-1

261
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Desmistificando o Soft reconfiguration inbound:

Para que serve de verdade?

262
v4.0beta | 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 ASN }

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 | ASN } soft { out | in }

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


263
v4.0beta | 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

264
v4.0beta | 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

265
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Agora vamos tentar novamente executar o comando ... receivedroutes

Primeiro pelo AS 200:


AS-X-R1#sh ip bgp neighbors 200.X.1.1 received-routes
!--- todas as rotas ANTES do filtro NAO-RECEBER
AS-X-R1#sh ip bgp neighbors 200.X.1.1 routes
!--- todas as rotas APS do filtro NAO-RECEBER

Depois pelo AS 100:


AS-X-R1#sh ip bgp neighbors 100.X.1.1 received-routes
!--- todas as rotas ANTES do filtro NAO-RECEBER
AS-X-R1#sh ip bgp neighbors 100.X.1.1 routes
!--- todas as rotas APS do filtro NAO-RECEBER

LAB 1-9-2

266
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Tambm possvel verificar a contagem de uma determinada


prefix-list
AS-X-R1#sh ip prefix-list detail NAO-RECEBER
ip prefix-list NAO-RECEBER:
count: 8, range entries: 8, sequences: 5 - 40, refcount: 7
seq 5 deny X.0.0.0/8 le 32 (hit count: 0, refcount: 1)
seq 10 deny 172.16.0.0/12 le 32 (hit count: 2, refcount: 1)
seq 15 deny 127.0.0.0/8 le 32 (hit count: 0, refcount: 2)
seq 20 deny 192.0.2.0/24 le 32 (hit count: 0, refcount: 1)
seq 25 deny 192.168.0.0/16 le 32 (hit count: 2, refcount: 2)
seq 30 deny 224.0.0.0/4 le 32 (hit count: 0, refcount: 1)
seq 35 deny 240.0.0.0/4 le 32 (hit count: 0, refcount: 4)
seq 40 permit 0.0.0.0/0 le 24 (hit count: 21, refcount: 1)
Ou...
AS-X-R1#sh ip prefix-list detail NAO-RECEBER | exclude (hit count: 0)
ip prefix-list NAO-RECEBER:
count: 8, range entries: 8, sequences: 5 - 40, refcount: 7
seq 10 deny 172.16.0.0/12 le 32 (hit count: 4, refcount: 1)
seq 25 deny 192.168.0.0/16 le 32 (hit count: 4, refcount: 2)
seq 40 permit 0.0.0.0/0 le 24 (hit count: 41, refcount: 1)

LAB 1-9-1

267
v4.0beta | 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?
268
v4.0beta | 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);
269
v4.0beta | 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

270
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Configurando a sesso BGP com Cymru...

Router(config)#router bgp X
Router(config-router)#neighbor x.x.x.x remote-as 65333
Router(config-router)#neighbor x.x.x.x ebgp-multihop 255
Router(config-router)#neighbor x.x.x.x weight 100
Router(config-router)#neighbor x.x.x.x description BOGONS CYMRU
Router(config-router)#neighbor x.x.x.x prefix-list SAIDA-CYMRU out
Router(config-router)#neighbor x.x.x.x route-map FILTRO-CYMRUBOGONS in
Router(config-router)#neighbor x.x.x.x password <senha cymru>
Router(config-router)#exit
271
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.2 - Configurando Filtros de Upstreams

Adicionando as rotas recebidas em BLACKHOLE:

Router(config)#ip bgp-community new-format


!---habilita suporte communities tipo xxxx:yyyy
Router(config)#ip route 192.0.2.1 255.255.255.255 null0
!---cria a rota de blackhole
Router(config)#ip community-list 10 permit 65333:888
!---adiciona a community 65333:888 na comm-list 10
Router(config)#route-map FILTRO-CYMRUBOGONS permit 10
!---entra as opes do route-map de entrada
Router(config-route-map)#match community 10
!---declara o conteudo da comm-list 10 para condio de math
Router(config-route-map)#set ip next-hop 192.0.2.1
!---para toda rota que fizer a condio mudar o next-hop para blackhole
Router(config)#ip prefix-list SAIDA-CYMRU seq 5 deny 0.0.0.0/0 le 32
!---garantir que nada ser anunciado para o cymru

272
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3

Configurando Filtros de
Downstreams

273
v4.0beta | 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.

274
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

LAB: Um cliente de trnsito (downstream) dever ser


ativado com as seguintes informaes:
PEERING

AS-200

PTT-SP

AS-100

E2/0

G4/0

F0/1

Cliente de trnsito:

AS: 10X

Bloco CIDR: 187.X.0.0/22

IP de WAN: X.101.1.2

Interface G5/0

E1/0

G5/0

AS-X-R1
F0/0

.254

.1
.2
X.101.1.0/30

CLIENTE
AS-10X

X.128.0.0/9
.1

LAB 1-7-1

275
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Configurao do lado operadora (Cisco)

AS-X-R1#conf t
AS-X-R1(config)#ip prefix-list BLOCOS-AS-10X permit 187.X.0.0/22 le 24
!--- criando uma nova prefix-list e inserindo o bloco CIDR do cliente na mesma
AS-X-R1(config)#ip prefix-list MEUS-BLOCOS permit 187.X.0.0/22 le 24
!--- atualizando a prefix-list existente com mais um prefixo
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#neighbor X.101.1.2 remote-as 10X
AS-X-R1(config-router)#neighbor X.101.1.2 weight 30
AS-X-R1(config-router)#neighbor X.101.1.2 prefix-list BLOCOS-AS-10X in
AS-X-R1(config-router)#neighbor X.101.1.2 default-originate
!--- filtro de ENTRADA para o DOWNSTREAM AS 10X + envio de rota padrao
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *

Como j usamos os pesos (weight) 10 15 e 20 utilizaremos 30


para downstreams.

LAB 1-10-1

276
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Configurao no cliente Mikrotik

Antes vamos verificar a conectividade IP com o AS 10X e depois


se conectar esse router via telnet:
AS-X-R1>ping X.101.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.101.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/20/36 ms
AS-X-R1>telnet X.101.1.2
Trying X.101.1.2 ... Open
MikroTik v5.26
Login: admin
Password: sem senha

No precisa
de senha

[admin@AS-10X-R1] >

LAB 1-101

277
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Configurao no cliente Mikrotik

Configurando BGP
[admin@AS-10X-R1] > routing bgp instance add name=ebgp as=10X router-id=187.X.0.1
[admin@AS-10X-R1] > routing bgp peer add name=ebgp-as-X remote-address=X.101.1.1 remote-as=X
instance=ebgp out-filter=AS-X-OUT
[admin@AS-10X-R1] > routing bgp network add network=187.X.0.0/22 synchronize=no
[admin@AS-10X-R1] > routing filter add chain=AS-X-OUT prefix=187.X.0.0/22 action=accept
[admin@AS-10X-R1] > routing filter add chain=AS-X-OUT action=discard
!-- Ao contrario do Cisco, os filtros do mikrotik no possuem uma action padro de DISCARD
[admin@AS-10X-R1] > interface bridge add name=loopback
[admin@AS-10X-R1] > ip address add address=187.X.0.1/32 interface=loopback
!-- de volta do Cisco AS-X-R1 com o comando /quit
[admin@AS-10X-R1] > /quit
interrupted
[Connection to X.101.1.2 closed by foreign host]
AS-X-R1>

LAB 1-101

278
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Configurao no cliente Mikrotik

Verificando status do BGP


[admin@AS-10X-R1] > routing bgp peer print status
Flags: X - disabled, E - established
0 E name="ebgp-as-1" instance=ebgp remote-address=X.101.1.1 remote-as=1
tcp-md5-key="" nexthop-choice=default multihop=no route-reflect=no
hold-time=3m ttl=255 in-filter="" out-filter=AS-X-OUT
address-families=ip default-originate=never remove-private-as=no
as-override=no passive=no use-bfd=no remote-id=X.0.0.1
local-address=X.101.1.2 uptime=2m7s prefix-count=14 updates-sent=1
updates-received=14 withdrawn-sent=0 withdrawn-received=0
remote-hold-time=3m used-hold-time=3m used-keepalive-time=1m
refresh-capability=yes as4-capability=yes state=established
OU SIMPLESMENTE...
[admin@AS-10X-R1] > routing bgp peer print
Flags: X - disabled, E - established
# INSTANCE
REMOTE-ADDRESS
0 E ebgp
X.101.1.1

LAB 1-101

REMOTE-AS
X

279
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Configurao no cliente Mikrotik

Verificando status do BGP


[admin@AS-10X-R1] > routing bgp peer print status
Flags: X - disabled, E - established
0 E name="ebgp-as-1" instance=ebgp remote-address=X.101.1.1 remote-as=1
tcp-md5-key="" nexthop-choice=default multihop=no route-reflect=no
hold-time=3m ttl=255 in-filter="" out-filter=AS-X-OUT
address-families=ip default-originate=never remove-private-as=no
as-override=no passive=no use-bfd=no remote-id=X.0.0.1
local-address=X.101.1.2 uptime=2m7s prefix-count=14 updates-sent=1
updates-received=14 withdrawn-sent=0 withdrawn-received=0
remote-hold-time=3m used-hold-time=3m used-keepalive-time=1m
refresh-capability=yes as4-capability=yes state=established
OU SIMPLESMENTE...
[admin@AS-101-R1] > routing bgp peer print
Flags: X - disabled, E - established
# INSTANCE
REMOTE-ADDRESS
0 E ebgp
X.101.1.1

LAB 1-101

REMOTE-AS
X

280
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Configurao no cliente Mikrotik

Verificando rotas anunciadas/recebidas no BGP recm criado


[admin@AS-10X-R1] > routing bgp advertisements print ebgp-as-X
PEER PREFIX
NEXTHOP
AS-PATH ORIGIN LOCAL-PREF
ebgp-... 187.X.0.0/22
X.101.1.2
igp
[admin@AS-10X-R1] > ip route print where received-from =ebgp-as-X
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#
DST-ADDRESS
PREF-SRC
GATEWAY
DISTANCE
0 ADb 0.0.0.0/0
X.101.1.1
20
1 ADb 1.0.0.0/8
X.101.1.1
20
2 ADb 2.0.0.0/8
X.101.1.1
20
3 ADb 3.0.0.0/8
X.101.1.1
20
4 ADb 55.0.0.0/8
X.101.1.1
20
5 ADb 100.0.0.0/8
X.101.1.1
20
6 ADb 111.0.0.0/8
X.101.1.1
20
7 ADb 123.0.0.0/8
X.101.1.1
20
8 ADb 123.123.0.0/16
X.101.1.1
20
(...)

LAB 1-101

281
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Vamos verificar no looking glass os anncios dos downstreams..


AS-123-R1>show ip bgp 187.X.0.0
BGP routing table entry for 187.X.0.0/22, version 31
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Advertised to update-groups:
2
55 111 100 X 10X
123.55.1.2 from 123.55.1.2 (123.55.1.2)
Origin IGP, localpref 100, valid, external
222 200 X 10X
123.222.1.2 from 123.222.1.2 (222.222.1.1)
Origin IGP, localpref 100, valid, external, best

LAB 1-101

282
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

Vamos verificar no looking glass os anncios dos downstreams..


AS-123-R1>traceroute 187.X.0.1
Type escape sequence to abort.
Tracing the route to 187.X.0.1
1 123.222.1.2 16 msec 12 msec 12 msec
2 222.222.1.2 [AS 222] 20 msec 36 msec 36 msec
3 222.200.1.2 [AS 222] 68 msec 48 msec 48 msec
4 200.X.1.2 [AS 200] 44 msec 100 msec 52 msec
5 187.X.0.1 [AS 10X] 88 msec 48 msec 64 msec

LAB 1-101

283
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.3 - Configurando Filtros de Downstreams

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 1-101

284
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.4

Entendendo o
BGP REGEXP

285
v4.0beta | 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.
286
v4.0beta | 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).
287
v4.0beta | 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
288
v4.0beta | 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".
289
v4.0beta | 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

290
v4.0beta | 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

291
v4.0beta | 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"

292
v4.0beta | 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

293
v4.0beta | 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,00" 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

294
v4.0beta | 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
295
v4.0beta | 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...

296
v4.0beta | 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
297
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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 1-11-1

298
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.4 - Entendendo o BGP REGEXP

LAB: O AS 123 vai gerar rotas com AS's privados, vamos aplicar filtros de
input para bloquear essas rotas:

AS-X-R1(config)#ip as-path access-list 1 permit _(645(0.|10|11)_?)_


!--- aceita de 64501 a 64511
AS-X-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
AS-X-R1(config)#ip as-path access-list 1 permit .*
!--- aceita todo o resto
AS-X-R1(config)#router bgp X
!--- Vamos adicionar o mesmo prefix-list na entrada do AS 100
AS-X-R1(config-router)#neighbor 100.X.1.1 filter-list 1 in
AS-X-R1(config-router)#neighbor 200.X.1.1 filter-list 1 in
AS-X-R1(config-router)#end
AS-X-R1#clear ip bgp *
OBS: As expresses acima podem ser simplificadas ainda mais

LAB 1-11-1

299
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.4 - Entendendo o BGP REGEXP

LAB: O AS 123 vai gerar rotas com AS's privados, vamos aplicar filtros de
input para bloquear essas rotas:

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


Network
(...)
* 123.123.0.0/16
* 172.20.0.0
* 192.168.0.0
(...)

Next Hop

Metric LocPrf Weight Path

100.1.1.1
100.1.1.1
100.1.1.1

0 100 111 55 123 64512 i


0 100 111 55 123 i
0 100 111 55 123 i
as-path privado

Prefixos privados
AS-X-R1#show ip bgp neighbors 100.1.1.1 routes
Network
(...)

Next Hop

Metric LocPrf Weight Path

Os prefixos indesejados no aparecem no ltimo comando!

LAB 1-11-1

300
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.4 - Entendendo o BGP REGEXP

LAB: O AS 123 vai gerar rotas com AS's privados, vamos aplicar filtros de
input para bloquear essas rotas:

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


Network
(...)
* 123.123.0.0/16
* 172.20.0.0
* 192.168.0.0
(...)

Next Hop

Metric LocPrf Weight Path

100.1.1.1
100.1.1.1
100.1.1.1

0 100 111 55 123 64512 i


0 100 111 55 123 i
0 100 111 55 123 i

AS-X-R1#show ip bgp neighbors 100.1.1.1 routes


Network
(...)

Next Hop

Metric LocPrf Weight Path

Os prefixos indesejados no aparecem no ltimo comando!

LAB 1-11-1

301
v4.0beta | 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 1-11-1

302
v4.0beta | 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 1-11-1

303
v4.0beta | 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
...

304
v4.0beta | 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?
Router# 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)?
Router# sh ip bgp regexp _4230 ([0-9]+)$

Network

Next Hop

*> 23.61.118.0/23 201.20.36.158


*> 23.61.120.0/22 201.20.36.158
...

Metric LocPrf Weight Path


0 16397 17379 4230 28573 i
0 16397 17379 4230 28573 i
305

v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.4 - Entendendo o BGP REGEXP

Quais ASs esto diretamente conectados com meus upstreams ou


downstreams?

Router# sh ip bgp regexp ^([0-9]+_{0,1}){1,2}$

Network
...
*> 216.72.166.0
*> 216.239.32.0/19
...

Next Hop
201.20.36.157
201.20.36.158

Metric LocPrf Weight Path


0 16397 6505 i
0 16397 15169 i

306
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.5

Enviando e Recebendo
Partial e Full-Routing

307
v4.0beta | 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 (no momento ainda no temos outros ;)

A lgica mesma, vamos utilizar a as-path acl "10".


AS-X-R1(config)#ip as-path access-list 10 permit ^([0-9]+)$
AS-X-R1(config-router)#neighbor X.101.1.2 filter-list 10 out
AS-1-R1(config-router)#end
AS-1-R1#clear ip bgp X.101.1.2
AS-1-R1#show ip bgp neighbors X.101.1.2 advertised-routes
Originating default network 0.0.0.0
Network
(...)
*> 2.0.0.0
*> 100.0.0.0
*> 200.0.0.0/8
(...)

Next Hop
1.2.1.2
100.1.1.1
200.1.1.1

Metric LocPrf Weight Path


0
0

0 20 2 i
0 100 i
0 200 i

LAB 1-12-1

308
v4.0beta | 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 (no momento ainda no temos outros ;)

A lgica mesma, vamos utilizar a as-path acl "10".


AS-X-R1(config)#ip as-path access-list 10 permit ^([0-9 ]+)$
AS-X-R1(config-router)#neighbor X.101.1.2 filter-list 10 out
AS-1-R1(config-router)#end
AS-1-R1#clear ip bgp X.101.1.2
AS-1-R1#show ip bgp neighbors X.101.1.2 advertised-routes

Enviando rota padro ok

Originating default network 0.0.0.0


Network
(...)
*> 2.0.0.0
*> 100.0.0.0
*> 200.0.0.0/8
(...)

Next Hop
1.2.1.2
100.1.1.1
200.1.1.1

Metric LocPrf Weight Path


0
0

0 20 2 i
0 100 i
0 200 i

LAB 1-12-1

309
v4.0beta | 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 (no momento ainda no temos outros ;)

A lgica mesma, vamos utilizar a as-path acl "10".


AS-X-R1(config)#ip as-path access-list 10 permit ^([^ ]+)$
AS-X-R1(config-router)#neighbor X.101.1.2 filter-list 10 out
AS-1-R1(config-router)#end
AS-1-R1#clear ip bgp X.101.1.2
AS-1-R1#show ip bgp neighbors X.101.1.2 advertised-routes

Enviando rota padro ok

Originating default network 0.0.0.0


Network
(...)
*> 2.0.0.0
*> 100.0.0.0
*> 200.0.0.0/8
(...)

Next Hop
1.2.1.2
100.1.1.1
200.1.1.1

Metric LocPrf Weight Path


0
0

0 20 2 i
0 100 i
0 200 i

No enviamos nossa
prpria rede

LAB 1-12-1

310
v4.0beta | 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 (no momento ainda no temos outros ;)

A lgica mesma, vamos utilizar a as-path acl "10".


AS-X-R1(config)#ip as-path access-list 10 permit ^([^ ]+)$
AS-X-R1(config-router)#neighbor X.101.1.2 filter-list 10 out
AS-1-R1(config-router)#end
AS-1-R1#clear ip bgp X.101.1.2
AS-1-R1#show ip bgp neighbors X.101.1.2 advertised-routes

Enviando rota padro ok

Originating default network 0.0.0.0


Network
(...)
*> 2.0.0.0
*> 100.0.0.0
*> 200.0.0.0/8
(...)

Next Hop
1.2.1.2
100.1.1.1
200.1.1.1

Metric LocPrf Weight Path


0
0

0 20 2 i
0 100 i
0 200 i

??????
No enviamos nossa
prpria rede

LAB 1-12-1

311
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.5 Enviando e Recebendo Partial e


Full-routing

Vamos entender porque...


AS-X-R1#show ip bgp regexp ^([^ ]+)$

O comando acima mostra rotas com 1 AS no ASPATH, porm as


rotas originadas localmente (comando network) tem na
verdade 0 AS's no ASPATH
AS-X-R1#show ip bgp reg ^$
BGP table version is 19, local router ID is 1.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
*> X.0.0.0

Next Hop
0.0.0.0

Metric LocPrf Weight Path


0
32768 i

LAB 1-12-1

312
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.5 Enviando e Recebendo Partial e


Full-routing

Para corrigir isso precisamos de mais uma linha na filter-list


AS-X-R1(config)#ip as-path access-list 10 permit ^$
AS-X-R1(config)#end
AS-X-R1#show running-config | include access-list 10
ip as-path access-list 10 permit ^([0-9]+)$
ip as-path access-list 10 permit ^$
AS-X-R1#clear ip bgp 1.101.1.2
*Jan 22 01:30:44.939: %BGP-5-ADJCHANGE: neighbor 1.101.1.2 Up
AS-X-R1#show ip bgp neighbors 1.101.1.2 advertised-routes
BGP table version is 21, local router ID is 1.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
Originating default network 0.0.0.0
Network
*> X.0.0.0
(...)

Next Hop
0.0.0.0

Metric LocPrf Weight Path


0
32768 i

LAB 1-12-1

313
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.5 Enviando e Recebendo Partial e


Full-routing

Para corrigir isso precisamos de mais uma linha na filter-list


AS-X-R1(config)#ip as-path access-list 10 permit ^$
AS-X-R1(config)#end
AS-X-R1#show running-config | include access-list 10
ip as-path access-list 10 permit ^([0-9]+)$
ip as-path access-list 10 permit ^$
2 linhas na filter-list
AS-X-R1#clear ip bgp 1.101.1.2
*Jan 22 01:30:44.939: %BGP-5-ADJCHANGE: neighbor 1.101.1.2 Up
AS-X-R1#show ip bgp neighbors 1.101.1.2 advertised-routes
BGP table version is 21, local router ID is 1.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
Originating default network 0.0.0.0
Network
*> X.0.0.0
(...)

Next Hop
0.0.0.0

Metric LocPrf Weight Path


0
32768 i

LAB 1-12-1

314
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.5 Enviando e Recebendo Partial e


Full-routing

Para corrigir isso precisamos de mais uma linha na filter-list


AS-X-R1(config)#ip as-path access-list 10 permit ^$
AS-X-R1(config)#end
AS-X-R1#show running-config | include access-list 10
ip as-path access-list 10 permit ^([0-9]+)$
ip as-path access-list 10 permit ^$
2 linhas na filter-list
AS-X-R1#clear ip bgp 1.101.1.2
*Jan 22 01:30:44.939: %BGP-5-ADJCHANGE: neighbor 1.101.1.2 Up
AS-X-R1#show ip bgp neighbors 1.101.1.2 advertised-routes
BGP table version is 21, local router ID is 1.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
Originating default network 0.0.0.0
Network
*> X.0.0.0
(...)

Next Hop
0.0.0.0

Metric LocPrf Weight Path


0
32768 i

LAB 1-12-1

Resolvido!

315
v4.0beta | 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)
316
v4.0beta | 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 ^(([^ ]+ [^ ]+)|([^ ]+)|())$


(...continua)
317
v4.0beta | 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 ^(([^ ]+ [^ ]+)|([^ ]+)|())$


(...continua)
318
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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)

319
v4.0beta | 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%.
320
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.6

Route-Map x Prefix-List

321
v4.0beta | 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

322
v4.0beta | 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 o prximo route-map na sequncia

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
323
v4.0beta | 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

324
v4.0beta | 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

325
v4.0beta | 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
!
326
v4.0beta | 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/25 ser bloqueado, enquanto


192.168.2.128/25 ser permitido, porm inutilizado por causa da
regra de cima
327
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.7

AS-Path Prepend

328
v4.0beta | 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.
329
v4.0beta | 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)
330
v4.0beta | 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
*> 10.7.1.0/24

Next Hop
10.0.1.1

Metric LocPrf Weight Path


0
0 65000 65000 65000 i

Fonte:http://wiki.nil.com/AS-path_prepending_(technical_details)
331
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8

Engenharia de Trfego
I

332
v4.0beta | 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
CLIENTE (AS10X) dever
chegar pelo AS 100, de forma
que o DOWNLOAD do AS
LOCAL continuar chegando
pelo AS 200.

AS-55
AS-222
AS-111

AS-200

AS-100

AS-X

DOWNLOAD CLIENTE:
DOWNLOAD AS LOCAL:

AS-10X

LAB 1-13-1

333
v4.0beta | 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
CLIENTE (AS10X) dever
chegar pelo AS 100, de forma
que o DOWNLOAD do AS
LOCAL continuar chegando
pelo AS 200.

AS-55
AS-222
AS-111

AS-200

AS-100

AS-X

DOWNLOAD CLIENTE:
DOWNLOAD AS LOCAL:

AS-10X

LAB 1-13-1

334
v4.0beta | 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:
AS123

O DOWNLOAD do CLIENTE (AS10X)


dever chegar pelo AS 100,

AS55
AS222

AS111

AS200
AS100

ASX

AS10X

DOWNLOAD CLIENTE AS 10X:


DOWNLOAD AS LOCAL X:
LAB 1-13-1

335
v4.0beta | 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:
AS123

O DOWNLOAD do CLIENTE (AS10X)


dever chegar pelo AS 100,
O DOWNLOAD do AS LOCAL continuar
chegando pelo AS 200.

AS55
AS222

AS111

AS200
AS100

ASX

AS10X

DOWNLOAD CLIENTE AS 10X:


DOWNLOAD AS LOCAL X:
LAB 1-13-1

336
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I

Antes de comear precisamos desfazer algumas


configuraes e em seguida aplicar as demais
AS-X-R1(config)#no ip prefix-list MEUS-BLOCOS
AS-X-R1(config)#ip prefix-list MEUS-BLOCOS permit X.0.0.0/8
!--- remove a prefix list MEUS-BLOCOS e refaz com apenas uma linha
!--- para remover prefixos antigos
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no neighbor 200.X.1.1 prefix-list MEUS-BLOCOS out
!--- desconfigura a prefix list MEUS-BLOCOS do filtro de saida do AS 200
AS-X-R1(config-router)#no neighbor 100.X.1.1 prefix-list MEUS-BLOCOS out
!--- desconfigura a prefix list MEUS-BLOCOS do filtro de saida do AS 200
AS-X-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
AS-X-R1(config-router)#neighbor 100.X.1.1 route-map AS-100-OUT out
!--- configura o route-map AS-100-OUT como filtro de sada para o AS 100
AS-X-R1(config-router)#exit
(...)continua...

LAB 1-13-1

337
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I


(...)
AS-X-R1(config)#route-map AS-100-OUT permit 10
!--- entra no modo de configurao do route-map seq 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
!--- declara a condio fazer parte da lista MEUS-BLOCOS para receber permit,
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-100-OUT permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
!--- declara a condio para receber permit, porm sem inserir prepends
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-200-OUT permit 10
!--- entra no modo de configurao do route-map seq 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
!--- declara a condio fazer parte da lista MEUS-BLOCOS para receber permit,
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-200-OUT permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R1(config-route-map)#set as-path prepend X X
!--- declara a condio para receber permit + a modificao opcional prepend 2 vezes
!--- insere mais 2 vezes o AS local no AS PATH alm de 1x padro, total = 3
AS-X-R1(config-route-map)#end
AS-X-R1#clear ip bgp *
LAB 1-13-1

338
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I

Testando o resultado com prefixo do cliente AS 10X

AS-123-R1>show ip bgp 187.X.0.0


BGP routing table entry for 187.X.0.0/22, version 57
AS55
Paths: (2 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
Advertised to update-groups:
AS111
1
55 111 100 X 10X
123.55.1.2 from 123.55.1.2 (123.55.1.2)
Origin IGP, localpref 100, valid, external, best
AS100
222 200 X X X 10X
123.222.1.2 from 123.222.1.2 (222.222.1.1)
Origin IGP, localpref 100, valid, external

AS123

AS222

AS200

ASX

AS10X

LAB 1-13-1

339
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I

Testando o resultado com prefixo do cliente AS 10X

AS123

AS-123-R1>traceroute 187.X.0.1
AS55

Type escape sequence to abort.


Tracing the route to 187.X.0.1
1 123.55.1.2 24 msec 12 msec 16 msec
2 55.55.1.2 [AS 55] 16 msec 36 msec 36 msec
3 55.111.1.2 [AS 55] 64 msec 48 msec 44 msec
4 111.111.1.2 [AS 111] 48 msec 68 msec 64 msec
5 111.100.1.2 [AS 111] 97 msec 84 msec 88 msec
6 100.X.1.2 [AS 100] 88 msec 76 msec 76 msec
7 187.X.0.1 [AS 10X] 76 msec 84 msec 88 msec

AS222

AS111

AS200
AS100

ASX

AS10X

LAB 1-13-1

340
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I

Testando o resultado com prefixo do AS local X

AS-123-R1>show ip bgp X.0.0.1


BGP routing table entry for X.0.0.0/8, version 55
AS55
Paths: (2 available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
2
AS111
222 200 X
123.222.1.2 from 123.222.1.2 (222.222.1.1)
Origin IGP, localpref 100, valid, external, best
55 111 100 X
AS100
123.55.1.2 from 123.55.1.2 (123.55.1.2)
Origin IGP, localpref 100, valid, external

AS123

AS222

AS200

ASX

AS10X

LAB 1-13-1

341
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I

Testando o resultado com prefixo do cliente AS 10X

AS123

AS-123-R1>traceroute X.0.0.1
AS55

Type escape sequence to abort.


Tracing the route to X.0.0.1
1 123.222.1.2 24 msec 16 msec 16 msec
2 222.222.1.2 [AS 222] 16 msec 36 msec 36 msec
3 222.200.1.2 [AS 222] 68 msec 48 msec 44 msec
4 200.X.1.2 [AS 200] 48 msec 42 msec 44 msec

AS222

AS111

AS200
AS100

ASX

AS10X

LAB 1-13-1

342
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8 Engenharia de Trfego I

Testando o resultado com prefixo do cliente AS 10X

AS123

AS-123-R1>traceroute X.0.0.1
AS55

Type escape sequence to abort.


Tracing the route to X.0.0.1
1 123.222.1.2 24 msec 16 msec 16 msec
2 222.222.1.2 [AS 222] 16 msec 36 msec 36 msec
3 222.200.1.2 [AS 222] 68 msec 48 msec 44 msec
4 200.X.1.2 [AS 200] 48 msec 42 msec 44 msec

AS222

AS111

AS200
AS100

ASX

AS10X

LAB 1-13-1

343
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

4.8
PERGUNTAS?

344
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.0

Roteamento
dentro do AS (iBGP)

345
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.0
Roteamento
dentro do AS (iBGP)
5. Roteamento dentro do AS (iBGP)

5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8

Implementando mltiplas sadas para clientes de trnsito


Update-source
Next-hop-self
BGP Synchronization
Route-reflector
Peer groups
Local Preference x Weight no iBGP
Engenharia de Trfego II

346
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1

Implementando Mltiplas
Sadas para Clientes de
Trnsito

347
v4.0beta | 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:

348
v4.0beta | 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.

349
v4.0beta | 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.

350
v4.0beta | 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:

PTT-RJ

PTT-SP

40X
50X

50Z

100

R5

R2

200

50X

AS-X
R3
610XX

R1

10X
peering

R4

40X

IP's e interfaces detalhados em:


goo.gl/kIcIbX
351
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

40Z

50X

50Z

100

R5

R2

50X

200

AS-X
R3
610XX

R1

R4

40X

10X

352
v4.0beta | 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) e PTT,
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


40X com R4 e AS 50X com R5.
NOTA:

!--!--!--!---

No intuito de facilitar a visualizao das rotas, 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

353
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

BGP ENTRE
AS-X-R4 E AS-40X-R1

LAB 2-1-1

354
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R4

LAB 2-1-1

R4

355
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em R4:

LADO DA OPERADORA

AS-X-R4#conf t
AS-X-R4(config)#ip prefix-list BLOCOS-AS-40X permit 154.X.0.0/16 le 24
!--- adiciona os blocos CIDR do DOWNSTREAM nesa prefix-list que ser
!--- referenciada nas configuraes BGP a seguir...
AS-X-R4(config)#router bgp X
AS-X-R4(config-router)#bgp router-id X.0.0.4
!--- esse comando meramente ilustrativo pois o router ID de R1 j esse RouterID
AS-X-R4(config-router)#synchronization
AS-X-R4(config-router)#neighbor X.104.1.2 remote-as 40X
AS-X-R4(config-router)#neighbor X.104.1.2 description eBGP downstream AS-40X
AS-X-R4(config-router)#neighbor X.104.1.2 soft-reconfiguration inbound
AS-X-R4(config-router)#neighbor X.104.1.2 prefix-list BLOCOS-AS-40X in
!--- declara o filtro de entrada para rotas recebidas desse DOWNSTREAM
AS-X-R4(config-router)#end

LAB 2-1-1

R4

356
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-40X-R1

LAB 2-1-1

40X-R1

357
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Antes vamos testar conectividade e entrar


no Juniper...
AS-X-R4>ping X.104.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to X.104.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/13/24 ms
AS-X-R4>
AS-X-R4>telnet X.104.1.2
Trying X.104.1.2 ... Open

40X-R1

AS-40X-R1 (ttyp0)
login: juniper
Password: juniper.123
--- JUNOS 12.2R2.4 built 2012-11-15 13:13:55 UTC
juniper@AS-40X-R1>

LAB 2-1-1

358
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em AS-40X-R1:

LADO DO CLIENTE

juniper@AS-401-R1> configure
Entering configuration mode

40X-R1

[edit]
juniper@AS-401-R1#
set routing-options autonomous-system 40X
set protocols bgp group eBGP-upstream-AS-X type external
set protocols bgp group eBGP-upstream-AS-X export AS-X-OUT
set protocols bgp group eBGP-upstream-AS-X peer-as X
set protocols bgp group eBGP-upstream-AS-X neighbor X.104.1.1

LAB 2-1-1

359
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em AS-40X-R1:

LADO DO CLIENTE

juniper@AS-40X-R1# show protocols bgp group eBGP-upstream-AS-X


type external;
export AS-X-OUT; ## 'AS-X-OUT' is not defined
peer-as X;
neighbor X.104.1.1;

40X-R1

No JunOS qualquer referncia uma policy que no existe


fica com alerta e o sistema proibe aplicar tal configurao:

LAB 2-1-1

360
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em AS-40X-R1:

LADO DO CLIENTE

juniper@AS-40X-R1# show protocols bgp group eBGP-upstream-AS-X


type external;
export AS-X-OUT; ## 'AS-X-OUT' is not defined
peer-as X;
neighbor X.104.1.1;
juniper@AS-40X-R1# commit
error: Policy error: Policy AS-X-OUT referenced but not defined
[edit protocols bgp group eBGP-upstream-AS-X]
'export'
BGP: export list not applied
error: configuration check-out failed

40X-R1

[edit]
juniper@AS-40X-R1#

LAB 2-1-1

361
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AAS 40X em AS-40X-R1:

LADO DO CLIENTE

juniper@AS-40X-R1# show protocols bgp group eBGP-upstream-AS-X


type external;
export AS-X-OUT; ## 'AS-X-OUT' is not defined
peer-as X;
neighbor X.104.1.1;
juniper@AS-40X-R1# commit
error: Policy error: Policy AS-X-OUT referenced but not defined
[edit protocols bgp group eBGP-upstream-AS-X]
'export'
BGP: export list not applied
error: configuration check-out failed
[edit]
juniper@AS-40X-R1#

40X-R1

preciso declarar essa policy para


conseguir aplicar as configuraes

LAB 2-1-1

362
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em AS-40X-R1:

LADO DO CLIENTE

(...)

40X-R1

[edit]
juniper@AS-40X-R1#
set policy-options policy-statement AS-X-OUT term 1 from route-filter 154.X.0.0/16 exact
set policy-options policy-statement AS-X-OUT term 1 then accept
set policy-options policy-statement AS-X-OUT then reject
set interfaces lo0 unit 0 family inet address 154.X.0.1/32
set routing-options static route 154.X.0.0/16 discard

LAB 2-1-1

363
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em AS-40X-R1:

LADO DO CLIENTE

[edit]
juniper@AS-40X-R1# show policy-options policy-statement AS-X-OUT
term 1 {
from {
route-filter 154.X.0.0/16 exact;
}
then accept;
}
then reject;

40X-R1

[edit]
juniper@AS-40X-R1#

LAB 2-1-1

364
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 40X em AS-40X-R1:

LADO DO CLIENTE

juniper@AS-40X-R1# set routing-options static route 154.X.0.0/16 discard;

40X-R1

[edit]
juniper@AS-40X-R1# show interfaces lo0
unit 0 {
family inet {
address 154.X.0.1/32;
}
}
[edit]
juniper@AS-40X-R1# commit
commit complete
[edit]
juniper@AS-401-R1#

LAB 2-1-1

365
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Verificando status da sesso BGP...

juniper@AS-40X-R1> show bgp summary


40X-R1
Groups: 1 Peers: 1 Down peers: 0
Table
Tot Paths Act Paths Suppressed History Damp State Pending
inet.0
0
0
0
0
0
0
Peer
AS
InPkt OutPkt OutQ Flaps Last Up/Dwn State #Active/Received/Accepted/Damped...
X.104.1.1
X
8
11
0
0
3:02
0/0/0/0
0/0/0/0

LAB 2-1-1

366
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Verificando prefixos anunciados na sesso BGP

LADO DO CLIENTE

juniper@AS-40X-R1> show route advertising-protocol bgp X.104.1.1

40X-R1

inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)


Prefix
Nexthop
MED Lclpref AS path
* 154.X.0.0/16
Self
I

LAB 2-1-1

367
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

BGP ENTRE
AS-X-R5 E AS-50X-R1

LAB 2-1-1

368
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R5

LAB 2-1-1

R5

369
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 50X em R5:

LADO DA OPERADORA

AS-X-R5#conf t
AS-X-R5(config)#ip prefix-list BLOCOS-AS-50X permit 155.X.0.0/16 le 24
!--- adiciona os blocos CIDR do DOWNSTREAM nesa prefix-list que ser
!--- declarada nas configuraes BGP a seguir
AS-X-R5(config)#router bgp X
AS-X-R5(config-router)#bgp router-id X.0.0.5
AS-X-R5(config-router)#synchronization
AS-X-R5(config-router)#neighbor X.105.1.2 remote-as 50X
AS-X-R5(config-router)#neighbor X.105.1.2 description eBGP downstream AS-50X
AS-X-R5(config-router)#neighbor X.105.1.2 soft-reconfiguration inbound
AS-X-R5(config-router)#neighbor X.105.1.2 prefix-list BLOCOS-AS-50X in
!--- declara o filtro de entrada para rotas recebidas desse DOWNSTREAM
AS-X-R5(config-router)#end

LAB 2-1-1

R5

370
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-50X-R1

LAB 2-1-1

R1

371
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Antes vamos testar conectividade e entrar


no Vyatta...
AS-X-R5>ping X.105.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.105.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/14/28 ms
AS-1-R5>teln
AS-1-R5>telnet X.105.1.2
Trying X.105.1.2 ... Open
EN
IO/S
R
A
SU

R1

HA

Welcome to Vyatta
U
AS-501-R1 login: vyatta
Password vyatta:
Last login: Tue Jan 20 08:53:46 GMT 2015 on tty1
Linux AS-50X-R1 2.6.37-1-amd64-vyatta #1 SMP Thu Jul 7 21:55:23 PDT 2011 x86_64
Welcome to Vyatta.
This system is open-source software. The exact distribution terms for
each module comprising the full system are described in the individual
files in /usr/share/doc/*/copyright.
vyatta@AS-50X-R1:~$
LAB 2-1-1

372
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Configurando eBGP com o


downstream: AS 50X em AS-50X-R1:

LADO DO CLIENTE

vyatta@AS-50X-R1:~$ configure
[edit]
vyatta@AS-50X-R1#
set protocols bgp 50X network 155.X.0.0/16
set protocols bgp 50X neighbor X.105.1.1 remote-as X
set protocols bgp 50X neighbor X.105.1.1 prefix-list export MEUS-BLOCOS
set protocols bgp 50X neighbor X.105.1.1 soft-reconfiguration inbound
set policy prefix-list MEUS-BLOCOS rule 10 prefix 155.X.0.0/16
set policy prefix-list MEUS-BLOCOS rule 10 action permit
set interfaces loopback lo address 155.X.0.1/32
set protocols static route 155.X.0.0/16 blackhole
vyatta@AS-50X-R1# commit
[edit]
vyatta@AS-50X-R1#save
Saving configuration to '/config/config.boot'...
Done
LAB 2-1-1

R1

373
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Verificando o status da sesso BGP

R1

vyatta@AS-50X-R1:~$ configure
vyatta@AS-50X-R1# run show ip bgp summary
BGP router identifier 155.X.0.1, local AS number 50X
RIB entries 1, using 96 bytes of memory
Peers 1, using 4560 bytes of memory
Neighbor
X.105.1.1

V
4

AS MsgRcvd MsgSent TblVer InQ OutQ


1
3
5
0
0 0

Up/Down State/PfxRcd
00:01:33
0

Total number of neighbors 1


[edit]

LAB 2-1-1

374
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Verificando prefixos anunciados na sesso BGP

vyatta@AS-50X-R1# run show ip bgp neighbors X.105.1.1 advertised-routes


BGP table version is 0, local router ID is 155.X.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 155.X.0.0

Next Hop
X.105.1.2

R1

Metric LocPrf Weight Path


0
32768 i

Total number of prefixes 1


[edit]
vyatta@AS-50X-R1#

LAB 2-1-1

375
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R1

LAB 2-1-1

R1

376
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as configuraes em R1.


AS-X-R1#configure terminal
AS-X-R1(config)# ip prefix-list BLOCOS-AS-40X permit 154.X.0.0/16 le 24
AS-X-R1(config)# ip prefix-list BLOCOS-AS-50X permit 155.X.0.0/16 le 24
!--- Criando as prefix-lists dos clientes AS 40X e 50X
AS-X-R1(config)#route-map AS-10X-IN permit 10
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R1(config-route-map)#set local-preference 300
AS-X-R1(config-route-map)#exit
!--- Configurando o route-map que o IN do cliente AS-10X
(...)

LAB 2-1-1

R1

377
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Inserindo os prefixos bloqueados para uso da prefix-list


com route-map:
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 10 permit X.0.0.0/8 le 32
!--- blocos do meu prprio AS
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 20 deny 10.0.0.0/8 le 32
!--- uso privado (neste lab estamos utilizando para grupo 10, favor nao bloquear este)
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 30 permit 172.16.0.0/12 le 32
!--- uso privado
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 40 permit 169.254.0.0/16 le 32
!--- link-local (APIPA)
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 50 permit 127.0.0.0/8 le 32
!--- loopbacks
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 60 permit 192.0.2.0/24 le 32
!--- Documentao
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 70 permit 192.168.0.0/16 le 32
!--- uso privado
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 80 permit 224.0.0.0/4 le 32
!--- multicast
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 90 permit 240.0.0.0/4 le 32
!--- reservado para uso futuro

LAB 1-9-1

NAO INSERIR
ESSA LINHA

378
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Filtros de entrada e sada com o AS 100


(...)
AS-X-R1(config)#route-map AS-100-IN deny 10
AS-X-R1(config-route-map)#match ip address prefix-list BLOQUEADOS
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-100-IN permit 999
AS-X-R1(config-route-map)#exit
!--- Essas linhas j existem
AS-X-R1(config)#route-map AS-100-OUT permit 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-100-OUT permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R1(config-route-map)#exit
!-- vamos acrescentar apenas as seguintes...
AS-X-R1(config)#route-map AS-100-OUT permit 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-40X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-100-OUT permit 40
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-50X
AS-X-R1(config-route-map)#exit
(...)

LAB 2-1-1

R1

379
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Filtros de entrada e sada com o AS 200


(...)
AS-X-R1(config)#route-map AS-200-IN deny 10
AS-X-R1(config-route-map)#match ip address prefix-list BLOQUEADOS
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-200-IN permit 999
AS-X-R1(config-route-map)#exit
!--- Essas linhas j existem
AS-X-R1(config)#route-map AS-200-OUT permit 10
AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-200-OUT permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R1(config-route-map)#exit
!-- vamos acrescentar apenas as seguintes...
AS-X-R1(config)#route-map AS-200-OUT permit 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-40X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map AS-200-OUT permit 40
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-50X
AS-X-R1(config-route-map)#exit
(...)

LAB 2-1-1

R1

380
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Filtros de entrada e sada com o PTT-SP


(...)
AS-X-R1(config)#route-map PTT-SP-IN deny 10
AS-X-R1(config-route-map)#match ip address prefix-list BLOQUEADOS
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map PTT-SP-IN permit 999
AS-X-R1(config-route-map)#set local-preference 120
AS-X-R1(config-route-map)#exit

R1

AS-X-R1(config)#route-map PTT-SP-OUT permit 10


AS-X-R1(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map PTT-SP-OUT permit 20
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map PTT-SP-OUT permit 30
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-40X
AS-X-R1(config-route-map)#exit
AS-X-R1(config)#route-map PTT-SP-OUT permit 40
AS-X-R1(config-route-map)#match ip address prefix-list BLOCOS-AS-50X
AS-X-R1(config-route-map)#exit
LAB 2-1-1

381
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as de todas


sesses eBGP

LAB 2-1-1

AS-X-R1#configure terminal
AS-X-R1(config)#no router bgp X
AS-X-R1(config)#router bgp X
AS-X-R1(config-router)#no bgp enforce-first-as
AS-X-R1(config-router)#bgp router-id X.0.0.1
AS-X-R1(config-router)#synchronization
AS-X-R1(config-router)#network X.0.0.0
AS-X-R1(config-router)#auto-summary
AS-X-R1(config-router)# neighbor X.101.1.2 remote-as 10X
AS-X-R1(config-router)# neighbor X.101.1.2 description downstream AS-10X
AS-X-R1(config-router)# neighbor X.101.1.2 default-originate
AS-X-R1(config-router)# neighbor X.101.1.2 weight 30
AS-X-R1(config-router)# neighbor X.101.1.2 soft-reconfiguration inbound
AS-X-R1(config-router)# neighbor X.101.1.2 route-map AS-10X-IN in
AS-X-R1(config-router)# neighbor X.101.1.2 filter-list 10 out
AS-X-R1(config-router)# neighbor 100.X.1.1 remote-as 100
AS-X-R1(config-router)# neighbor 100.X.1.1 description upstream 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 AS-100-IN in
AS-X-R1(config-router)# neighbor 100.X.1.1 route-map AS-100-OUT out
AS-X-R1(config-router)# neighbor 100.X.1.1 filter-list 1 in

R1

382
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as configuraes em R1.


(...)
AS-X-R1(config-router)# neighbor 200.X.1.1 remote-as 200
AS-X-R1(config-router)# neighbor 200.X.1.1 description upstream AS-200
AS-X-R1(config-router)# neighbor 200.X.1.1 soft-reconfiguration inbound
AS-X-R1(config-router)# neighbor 200.X.1.1 route-map AS-200-IN in
AS-X-R1(config-router)# neighbor 200.X.1.1 route-map AS-200-OUT out
AS-X-R1(config-router)# neighbor 200.X.1.1 filter-list 1 in
AS-X-R1(config-router)# neighbor 187.16.216.252 remote-as 555
AS-X-R1(config-router)# neighbor 187.16.216.252 description PTT-SP Lookin Glass
AS-X-R1(config-router)# neighbor 187.16.216.253 remote-as 555
AS-X-R1(config-router)# neighbor 187.16.216.253 description PTT-SP Router Server 1
AS-X-R1(config-router)# neighbor 187.16.216.253 weight 15
AS-X-R1(config-router)# neighbor 187.16.216.253 route-map PTT-SP-IN in
AS-X-R1(config-router)# neighbor 187.16.216.253 route-map PTT-SP-OUT out
AS-X-R1(config-router)# neighbor 187.16.216.254 remote-as 555
AS-X-R1(config-router)# neighbor 187.16.216.254 description PTT-SP Router Server 2
AS-X-R1(config-router)# neighbor 187.16.216.254 weight 15
AS-X-R1(config-router)# neighbor 187.16.216.254 route-map PTT-SP-IN in
AS-X-R1(config-router)# neighbor 187.16.216.254 route-map PTT-SP-OUT out
AS-X-R1(config-router)# end
AS-X-R1# clear ip bgp *

LAB 2-1-1

R1

383
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R2

LAB 2-1-1

R2

384
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as configuraes em R2.

AS-X-R2#configure terminal
AS-X-R2(config)# ip prefix-list MEUS-BLOCOS permit X.0.0.0/8
AS-X-R2(config)# ip prefix-list BLOCOS-AS-10X permit 187.X.0.0/22 le 24
AS-X-R2(config)# ip prefix-list BLOCOS-AS-40X permit 154.X.0.0/16 le 24
AS-X-R2(config)# ip prefix-list BLOCOS-AS-50X permit 155.X.0.0/16 le 24
!--- Criando as prefix-lists dos clientes AS 10X, 40X, 50X e blocos do AS local
AS-X-R2(config)#ip as-path access-list 1 permit _(645(0.|10|11)_?)_
!--- aceita de 64501 a 64511
AS-X-R2(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
AS-X-R2(config)#ip as-path access-list 1 permit .*
!--- aceita todo o resto
(...)

LAB 2-1-1

R2

385
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Inserindo os prefixos bloqueados para uso da prefix-list


com route-map:
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 10 permit X.0.0.0/8 le 32
!--- blocos do meu prprio AS
AS-X-R1(config)#ip prefix-list BLOQUEADOS seq 20 deny 10.0.0.0/8 le 32
!--- uso privado (neste lab estamos utilizando para grupo 10, favor nao bloquear este)
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 30 permit 172.16.0.0/12 le 32
!--- uso privado
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 40 permit 169.254.0.0/16 le 32
!--- link-local (APIPA)
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 50 permit 127.0.0.0/8 le 32
!--- loopbacks
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 60 permit 192.0.2.0/24 le 32
!--- Documentao
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 70 permit 192.168.0.0/16 le 32
!--- uso privado
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 80 permit 224.0.0.0/4 le 32
!--- multicast
AS-X-R2(config)#ip prefix-list BLOQUEADOS seq 90 permit 240.0.0.0/4 le 32
!--- reservado para uso futuro

LAB 1-9-1

NAO INSERIR
ESSA LINHA

386
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Filtros de sada com o AS 100


(...)
AS-X-R2(config)#route-map AS-100-IN deny 10
AS-X-R2(config-route-map)#match ip address prefix-list BLOQUEADOS
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-100-IN permit 999
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-100-OUT permit 10
AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-100-OUT permit 20
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-100-OUT permit 30
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-40X
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-100-OUT permit 40
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-50X
AS-X-R2(config-route-map)#exit
(...)

LAB 2-1-1

R2

387
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Filtros de sada com o AS 200


(...)
AS-X-R2(config)#route-map AS-200-IN deny 10
AS-X-R2(config-route-map)#match ip address prefix-list BLOQUEADOS
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-200-IN permit 999
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-200-OUT permit 10
AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-200-OUT permit 20
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-200-OUT permit 30
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-40X
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map AS-200-OUT permit 40
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-50X
AS-X-R2(config-route-map)#exit
(...)

LAB 2-1-1

R2

388
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Filtros de entrada e sada com o PTT-RJ


(...)
AS-X-R2(config)#route-map PTT-RJ-IN deny 10
AS-X-R2(config-route-map)#match ip address prefix-list BLOQUEADOS
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map PTT-RJ-IN permit 999
AS-X-R2(config-route-map)#set local-preference 120
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map PTT-RJ-OUT permit 10
AS-X-R2(config-route-map)#match ip address prefix-list MEUS-BLOCOS
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map PTT-RJ-OUT permit 20
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-10X
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map PTT-RJ-OUT permit 30
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-40X
AS-X-R2(config-route-map)#exit
AS-X-R2(config)#route-map PTT-RJ-OUT permit 40
AS-X-R2(config-route-map)#match ip address prefix-list BLOCOS-AS-50X
AS-X-R2(config-route-map)#exit

LAB 2-1-1

R2

389
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as de todas


sesses eBGP
AS-X-R2#configure terminal
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#bgp router-id X.0.0.2
AS-X-R2(config-router)#no bgp enforce-first-as
AS-X-R2(config-router)#synchronization
AS-X-R2(config-router)#network X.0.0.0
AS-X-R2(config-router)#auto-summary
AS-X-R2(config-router)# neighbor 100.X.2.1 remote-as 100
AS-X-R2(config-router)# neighbor 100.X.2.1 description upstream AS-100
AS-X-R2(config-router)# neighbor 100.X.2.1 soft-reconfiguration inbound
AS-X-R2(config-router)# neighbor 100.X.2.1 route-map AS-100-IN in
AS-X-R2(config-router)# neighbor 100.X.2.1 route-map AS-100-OUT out
AS-X-R2(config-router)# neighbor 100.X.2.1 filter-list 1 in
AS-X-R2(config-router)# neighbor 200.X.2.1 remote-as 200
AS-X-R2(config-router)# neighbor 200.X.2.1 description upstream 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 AS-200-IN in
AS-X-R2(config-router)# neighbor 200.X.2.1 route-map AS-200-OUT out
AS-X-R2(config-router)# neighbor 200.X.2.1 filter-list 1 in

LAB 2-1-1

R2

390
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as de todas


sesses eBGP
AS-X-R2#configure terminal
AS-X-R2(config)#router bgp X
AS-X-R2(config-router)#bgp router-id X.0.0.2
AS-X-R2(config-router)#no bgp enforce-first-as
AS-X-R2(config-router)#synchronization
AS-X-R2(config-router)#network X.0.0.0
AS-X-R2(config-router)#auto-summary
AS-X-R2(config-router)# neighbor 100.X.2.1 remote-as 100
AS-X-R2(config-router)# neighbor 100.X.2.1 description upstream AS-100
AS-X-R2(config-router)# neighbor 100.X.2.1 soft-reconfiguration inbound
AS-X-R2(config-router)# neighbor 100.X.2.1 route-map AS-100-IN in
AS-X-R2(config-router)# neighbor 100.X.2.1 route-map AS-100-OUT
NO IP out
O
ATEN
AS-X-R2(config-router)# neighbor 100.X.2.1 filter-list 1 in
AS-X-R2(config-router)# neighbor 200.X.2.1 remote-as 200
AS-X-R2(config-router)# neighbor 200.X.2.1 description upstream 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 AS-200-IN in
AS-X-R2(config-router)# neighbor 200.X.2.1 route-map AS-200-OUT out
AS-X-R2(config-router)# neighbor 200.X.2.1 filter-list 1 in

LAB 2-1-1

R2

391
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

Vamos tambm ajustar as de todas


sesses eBGP
(...)
AS-X-R2(config-router)# neighbor 200.219.138.252 remote-as 555
AS-X-R2(config-router)# neighbor 200.219.138.252 description PTT-RJ Lookin Glass
AS-X-R2(config-router)# neighbor 200.219.138.253 remote-as 555
AS-X-R2(config-router)# neighbor 200.219.138.253 description PTT-RJ Router Server 1
AS-X-R2(config-router)# neighbor 200.219.138.253 weight 15
AS-X-R2(config-router)# neighbor 200.219.138.253 route-map PTT-RJ-IN in
AS-X-R2(config-router)# neighbor 200.219.138.253 route-map PTT-RJ-OUT out
AS-X-R2(config-router)# neighbor 200.219.138.254 remote-as 555
AS-X-R2(config-router)# neighbor 200.219.138.254 description PTT-RJ Router Server 2
AS-X-R2(config-router)# neighbor 200.219.138.254 weight 15
AS-X-R2(config-router)# neighbor 200.219.138.254 route-map PTT-RJ-IN in
AS-X-R2(config-router)# neighbor 200.219.138.254 route-map PTT-RJ-OUT out
AS-X-R2(config-router)# end
AS-X-R2# clear ip bgp *

LAB 2-1-1

R2

392
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R1

LAB 2-1-1

R1

393
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

R1

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.4 remote-as X
AS-X-R1(config-router)#neighbor X.0.0.4 description iBGP AS-X-R4
LAB 2-1-1

R1

394
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R4

LAB 2-1-1

R4

395
v4.0beta | 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 AS-X-R1

R4

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 AS-X-R2

LAB 2-1-1

R4

396
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R5

LAB 2-1-1

R5

397
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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 AS-X-R1

R5

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 AS-X-R2
LAB 2-1-1

R5

398
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1 - Implementando Mltiplas Sadas


para Clientes de Trnsito

AS-X-R2

LAB 2-1-1

R2

399
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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)#neighbor X.0.0.4 remote-as X
AS-X-R2(config-router)#neighbor X.0.0.4 description iBGP AS-X-R4

R2

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 AS-X-R5
LAB 2-1-1

R2

400
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.1
PERGUNTAS?

401
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.2

Update-Source

402
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.2 - Update-source

As sesses iBGP subiram?

Provavelmente no!

Por que razo?

403
v4.0beta | 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 no extabelecimento da conexo TCP.

404
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.2 - Update-source

A menos que especifiquemos algo diferente, 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.

405
v4.0beta | 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.
406
v4.0beta | 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

407
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-2

408
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.2 - Update-source

Analisando 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

LAB 2-1-2

409
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-2

410
v4.0beta | 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.

411
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-2

412
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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
*> 187.X.0.0/22 2.101.1.2
0 201 i
AS-X-R2#sh ip bgp neighbors 100.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?

LAB 2-1-3

413
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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
*> X.0.0.0
0.0.0.0
* i154.X.0.0.0
X.104.1.2
* i155.X.0.0.0
X.105.1.2
...

Metric LocPrf Weight Path


0
32768 i
0 100
0 40X i
0 100
0 50X 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 154.X.0.0 e 155.X.0.0 esto na RIB, mas no na FIB.

Por que esses prefixos no esto na FIB?

LAB 2-1-3

414
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.3 Next-hop-self

Vamos verificar detalhadamente o status de um desses prefixos


em R1...
AS-X-R1#sh ip bgp 154.X.0.0
BGP routing table entry for 154.X.0.0/16, version 0
Paths: (1 available, no best path)
Not advertised to any peer
40X
X.104.1.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.104.1.2 (inaccessible)"

Para que esse prefixo seja vlido na FIB necessrio que o "nexthop" correspondente tambm seja vlido, o que no ocorre.
Mas esse apenas um dos problemas perceptveis na sada do
ltimo comando.

LAB 2-1-3

415
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-2

416
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-3

417
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

Vamos detalhar novamente um dos prefixos em R1:


AS-X-R1#sh ip bgp 154.X.0.0
BGP routing table entry for 154.X.0.0/16, version 0
Paths: (1 available, no best path)
Not advertised to any peer
40X
X.0.0.4 (metric 129) from X.0.0.4 (X.0.0.4)
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.

LAB 2-1-4

418
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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 *

LAB 2-1-4

419
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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-R5(config-router)#end
AS-X-R5#clear ip bgp *

LAB 2-1-4

420
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

Conferindo as mudanas em R1 e demais:

AS-X-R1#sh ip bgp
...
Network
Next Hop
*> X.0.0.0
0.0.0.0
*> 100.0.0.0
100.X.1.1
*>i14X.0.0.0
X.0.0.4
*>i15X.0.0.0
X.0.0.5

Metric LocPrf Weight Path


0
32768 i
0
0 100 i
0 100
0 146 i
0 100
0 156 i

Verificando o caractere ">" podemos ter certeza dessa vez


as rotas foram para FIB.

LAB 2-1-4

421
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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 154.X.0.0


BGP routing table entry for 154.X.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
40X
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.

LAB 2-1-4

422
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization


Agora entrem no Looking Glass e testem a conectividade IP
para os AS's clientes 40X e 50X

Telnet 123.123.123.1...
!--executem traceroute para os IPs dos seus respectivos downstreams
AS-123-R1>traceroute 154.X.0.1
Type escape sequence to abort.
Tracing the route to 154.X.0.1
1 123.222.1.2 12 msec 16 msec 16 msec
2 222.222.1.2 [AS 222] 12 msec 40 msec 32 msec
3 222.200.1.2 [AS 222] 72 msec 56 msec 56 msec
4 200.200.2.2 [AS 200] 56 msec 68 msec 68 msec
5 200.2.2.2 [AS 200] 100 msec 84 msec 88 msec
6 * * *
7 * * *
8 * * *

CONCLUSES: Se o "syncronization" existe, precisamos


compreender sua funo antes de desabilit-lo.

LAB 2-1-4

423
v4.0beta | 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...
424
v4.0beta | 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 40X. O problema que AS-X-R1
no tem como saber se R3 conhece rota para os prefixos
do AS 40X.
O syncronization um mecanismo de proteo que evita
loops de roteamento dentro do AS
Vamos entender melhor o que aconteceu no LAB.

425
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

AS 40X anuncia seus prefixos para R4...

426
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

AS R4 anuncia para R1...

427
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

AS R1 anuncia para o UPSTREAM AS 100...

428
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

AS 100 anuncia para o AS 99...

429
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

Caminho dos pacotes: Entram no AS 100...

430
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

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

431
v4.0beta | 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).

432
v4.0beta | 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.

433
v4.0beta | 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...

434
v4.0beta | 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...

435
v4.0beta | 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:

436
v4.0beta | 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!
437
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-5

438
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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#

LAB 2-1-5

439
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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#

LAB 2-1-5

440
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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#

LAB 2-1-5

441
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

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


via R4:
AS-X-R1#sh ip bgp
Network

*> 99.0.0.0
*> 100.0.0.0
*r>i154.X.0.0
*r>i155.X.0.0
*> 200.0.0.0
...

Next Hop
100.X.1.1
100.X.1.1
X.0.0.4
X.0.0.5
100.X.1.1

Metric LocPrf Weight Path


0
0
0

100
100

0 100 99 i
0 100 i
0 14X i
0 15X i
0 100 99 200 i

Agora podemos ver pelo ">" que a rota para 154.X.0.0 est
na FIB.
Outro detalhe o "i" esquerda identifica a rota como
"internal".

LAB 2-1-5

442
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

Detalhando os prefixos do meu DOWNSTREAM:

AS-X-R1#sh ip bgp 154.X.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).

LAB 2-1-5

443
v4.0beta | 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.

444
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-6

445
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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#

LAB 2-1-6

446
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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#

LAB 2-1-6

447
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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#

LAB 2-1-6

448
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

5.4 - BGP Synchronization

LAB 2-1-6

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

449

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

LAB 2-1-6

450
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-6

451
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-6

452
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-6

453
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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

LAB 2-1-6

454
v4.0beta | autor: Rinaldo Vaz | rinaldopvaz@gmail.com

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
*>iX.0.0.0
*> 100.0.0.0
*> 99.0.0.0
...

Next Hop
X.0.0.3
100.X.1.1
100.X.1.1

Metric LocPrf Weight Path


0 100
0i
0
0 100 i
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?

LAB 2-1-6

455
v4.0beta | 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
v4.0beta | autor: Rinaldo Vaz | rina