Você está na página 1de 149

Treinamento oficial

MikroTik
Módulo MTCINE
(MikroTik Certified Internetworking Engineer)
Agenda
 Treinamento das 08:30hs às 18:30hs

 Coffe break as 16:00hs

 Almoço as 12:30hs – 1 hora de duração

2
Importante
 Curso oficial: Proibido ser filmado ou
gravado.
 Celular: Desligado ou em modo silencioso.
 Perguntas: Sempre bem vindas.
 Internet: Evite o uso inapropriado.
 Aprendizado: Busque absorver conceitos.

 Evite conversas paralelas.


 Deixe habilitado somente a interface
ethernet de seu computador.

3
Apresente-se a turma
 Diga seu nome.
 Com que trabalha.
 Seu conhecimento sobre o RouterOS.
 Seu conhecimento com redes.

4
Visão Geral
● BGP
● Básico do BGP (iBGP, eBGP)
● Distribuição, filtros e atributos do BGP
● MPLS
● Introdução ao MPLS
● LDP
● VPN L2 e L3
● Engenharia de Tráfego (TE)

©Mikrotik 2012 5
Configuração do Lab
● Dividir em grupos de quatro
● Fazer a configuração de rede como ilustrado
no slide a seguir
● Router R1 e R2 conectam no SSID AS100
● Cada router tem sua rede local 192.168.xy.0/24
onde:
● X – número do grupo
● Y – número do router

©Mikrotik 2012 6
Configuração do Lab
X – número do grupo

AP SSID=AS100
192.168.x1.0/24

AS100

10.20.0.1/24
AP 192.168.x3.0/24
R1 192.168.x.1/30
10.20.0.x1/24

10.20.0.x2/24 192.168.x.2/30
R2 R3
192.168.x.5/30
192.168.x.9/30

192.168.x.10/30
192.168.x.6/30 R4

192.168.x2.0/24

©Mikrotik 2012 192.168.x4.0/24 7


Border Gateway Protocol
(BGP)

©Mikrotik 2012 8
Autonomous System (AS)
● Conjunto de routers sob um único controle
administrativo
● Intercâmbio de rotas:
● Routers dentro do AS usam IGP em comum
● Routers entre ASs usam EGP

● Tem seu próprio número (ASN)


● Suporta valores de 16-bit e 32-bit
● Números 64 512 a 65 534 são privados

©Mikrotik 2012 9
Básico do BGP
● Significa Protocolo de Gateway de Borda
● Projetado como protocolo de roteamento
Inter-AS
● A topologia da rede não é considerada,
apenas informações de sua alcançabilidade.
● Único protocolo capaz de suportar redes do
tamanho da Internet
● Usa algoritmo de vetor de caminho (path
vector)
©Mikrotik 2012 10
Implementação do Vetor de Caminho
● Trata todo o AS como um único ponto no
caminho
● O prefixo é anunciado com a lista de ASs ao
longo do caminho, chamado AS Path.
● Esconde a topologia da rede dentro do AS
● Não garante ausência de loop dentro no AS

©Mikrotik 2012 11
Implementação do Vetor de Caminho
Add AS100
ao AS path
10.1.0.0/24

AS100
AS200

Rejeita, AS100
já contido no
AS path
Add AS200
ao AS path
Add AS300
ao AS path

AS300

©Mikrotik 2012 12
Recursos do BGP
● O BGP Speaker (router) anuncia os códigos dos
recursos suportados
● Se o recurso recebido não for suportado, o peer
remoto responde com uma notificação
● O BGP Speaker tenta a sessão novamente sem os
recursos não suportados
● Alguns dos recursos anunciados pelo RouterOS:
● Route refresh
● Multi-protocol extension
● Suporte a AS com tamanho de 4 bytes (32 bits)
©Mikrotik 2012 13
Transporte BGP
● Opera com a troca de mensagens NLRI
(Network Layer Reachability Information)
● A NLRI inclui um conjunto de atributos BGP e
um ou mais prefixos com estes atributos
associados
● Usa o TCP (179) como protocolo de transporte
● Inicialmente troca a tabela inteira entre os peers
● Depois troca-se apenas atualizações
incrementais (mantêm a versão da tabela de
roteamento)
©Mikrotik 2012 14
Formato do pacote
● O pacote contêm quatro campos principais:
● Marker (128bits) – usado para autenticação
● Length (16bits) – comprimento
● Type (8bits) – tipo da mensagem BGP
● Message body – corpo da mensagem

©Mikrotik 2012 15
Tipo de mensagens BGP
● Quatro tipos:
● Open – Primeira mensagem enviada depois do
estabelecimento da conexão TCP, contêm a lista de
recursos. Confirmada por keepalive.
● Keepalive – não contêm dados, enviada para evitar
que o hold timer expire
● Update – atualização de rotas. Contêm:
– NLRI
– Path attributes
● Notificação – enviada quando ocorre uma condição
de erro, contêm o código e sub-código do erro
©Mikrotik 2012 16
Sessão BGP e atualizações
Open com o recurso ASN4
AS100 AS200
Notificação recurso não sup.
Passive
Open sem o recurso BGP peer

Keepalive

AS100 AS200
Route Refresh message

Update

©Mikrotik 2012 17
Networks
● Indica quais redes o BGP deve originar do router.
● Por padrão, a rede é anunciada apenas se ela existir
na tabela de rotas.
● Essa sincronização pode ser desativada se:
● Seu AS não oferece serviço de trânsito
● Todos os routers de trânsito rodam BGP
● Desativar o sincronismo permite o BGP converger
mais rápido.
● O sincronismo pode ser danoso se as rotas estão
oscilando muito.
● Configuração em /routing bgp network
©Mikrotik 2012 18
Ativando o BGP
/routing bgp instance
set default as=300 router-id=10.10.10.4

/routing bgp peer


add instance=default remote-address=10.10.10.1 remote-
as=3000

Se o router-id não for especificado, será usado o menor endereço IP do


router.
Verifique a conectividade do BGP. Qualquer status diferente de
established indica que os routers não se tornaram vizinhos (use print
status para mais detalhes)
[admin@R1] /routing bgp peer> print
Flags: X - disabled, E - established
# INSTANCE REMOTE-ADDRESS REMOTE-AS
0 E default 10.10.10.1 3000

©Mikrotik 2012 19
Cenários de rede Stub
● Single homed
– É usado ASN privado (> 64511)
– ISP (operadora) envia apenas a rota padrão
– De fato não há necessidade para BGP
– A operadora anuncia as redes
– A rede Stub têm a mesma política da operadora
ISP
0.0.0.0/0 rede Stub

172.16.0.0/16
Internet AS65500
172.16.0.0/24
AS300

©Mikrotik 2012 20
Removendo o AS privado
Internet

AS65500
ISP 172.16.0.0/24
172.16.0.0/16
● AS privado não pode ser
anunciado ao público AS65501
172.16.1.0/24
AS300
● Disponível para os
vizinhos eBGP
AS65502
● Anuncie apenas a rota agregada 172.16.2.0/24

● Use o seguinte comando:


/routing bgp peer
set <peer-name> remove-private-as=yes

©Mikrotik 2012 21
BGP Lab I
● Criar o setup de rede BGP como ilustrado no
slide a seguir:
● Peer BGP de R1 e R2 para o AP
● Peer BGP de R2 para R4

● Peer BGP de R1 para R3

● Anuncie sua rede local


● Os ASN privados devem ser removidos
● Envie a rota padrão para os routers com AS
privado
©Mikrotik 2012 22
BGP Lab I
X – número do grupo
AP SSID=AS100 band=5Ghz
Peer BGP 192.168.x1.0/24

AS100 AS1x1
10.20.0.1/24
AP 192.168.x3.0/24
R1 192.168.x.1/30
10.20.0.x1/24

10.20.0.x2/24 192.168.x.2/30 AS65500


R2 R3
192.168.x.5/30
AS1x2 192.168.x.9/30

192.168.x.10/30
192.168.x.6/30 R4

192.168.x2.0/24
AS65500

192.168.x4.0/24
©Mikrotik 2012 23
Cenários de rede Stub
● Multihomed
– É usado ASN privado
– Pode ser usado:
● Como link principal / backup
● Balanceamento de carga
– A operadora anuncia as redes
– A rede Stub têm a mesma política da operadora
ISP
rede Stub

172.16.0.0/16
Internet AS65500
172.16.0.0/24
AS300

©Mikrotik 2012 24
Cenários não-Stub
● Precisa obter AS e faixa de IP públicos com o
RIR (Regional Internet Registry – Registro.Br,
no Brasil)
● Política de roteamento
independente da Internet
operadora
● Pode ser usado: AS100
AS200

– Como link principal / R3


R1
backup
– Balanceamento de carga
R2
– Políticas de roteamento
mais avançadas AS300

©Mikrotik 2012 25
BGP e o connection-tracking
● O connection-tracking é incapaz de manter
estados válidos de conexões com BGP multi-
homed.
● Os pacotes relacionados a uma determinada
conexão pode viajar por diferentes caminhos
– Não descarte conexões inválidas no firewall

● O connection-tracking pode ser desligado


para obtermos melhor performance no router

©Mikrotik 2012 26
BGP Route Reflector
● Re-anuncia rotas iBGP para evitar full mesh
● Reduz o número de mensagens de
comunicação
● Minimiza o tamanho dos dados por mensagem:
● Apenas o melhor caminho é refletido
AS200 AS200

R1 R3
R1 R3

R2
R2 RR

©Mikrotik 2012 27
Configuração do Route Reflector
● RR é configurado ao habilitar a opção “client to
client reflection”:
/routing bgp instance
set default client-to-client-reflection=yes
/routing bgp peer
add route-reflect=yes remote-peer=x.x.x.x (...)
● A reflexão de rotas deve ser habilitada apenas
no router RR
● O RouterOS não pode ser configurado como
um route reflector puro

©Mikrotik 2012 28
BGP Lab II
● Adicione R3 ao mesmo AS que R1
● Adicione R4 ao mesmo AS que R2
● Faça um peer BGP entre R3 e R4
● Ative o OSPF entre os routers do mesmo AS
● Configure o OSPF para anunciar as redes
WAN
● Coloque a interface WAN como passiva

©Mikrotik 2012 29
BGP Lab II
X – número do grupo
AP SSID=AS100
Peer BGP 192.168.x1.0/24

AS100

10.20.0.1/24
AP 192.168.x3.0/24
AS1x1
R1 192.168.x.1/30
10.20.0.x1/24

10.20.0.x2/24 192.168.x.2/30
R2 R3
192.168.x.5/30
192.168.x.9/30

192.168.x.10/30
192.168.x.6/30 R4
AS1x2
192.168.x2.0/24

©Mikrotik 2012 192.168.x4.0/24 30


BGP Lab II
[admin@R1] /ip route> print
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 10.20.0.1 20
1 ADC 10.20.0.0/24 10.20.0.11 R1_AP 0
2 ADC 192.168.1.0/30 192.168.1.1 R1_R3 0
3 ADo 192.168.1.8/30 192.168.1.2 110
4 ADC 192.168.11.0/24 192.168.11.0 local 0
5 Db 192.168.11.0/24 192.168.1.2 200
6 ADb 192.168.12.0/24 192.168.1.10 200
7 Db 192.168.12.0/24 10.20.0.12 20
8 ADo 192.168.13.0/24 192.168.1.2 110
9 Db 192.168.13.0/24 192.168.1.2 200
10 ADb 192.168.14.0/24 192.168.1.10 200
11 Db 192.168.14.0/24 10.20.0.12 20

©Mikrotik 2012 31
BGP Lab II
[admin@R3] /ip route> print
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 192.168.1.1 200
1 ADo 10.20.0.0/24 192.168.1.1 110
2 ADC 192.168.1.0/30 192.168.1.2 R3_R1 0
3 ADC 192.168.1.8/30 192.168.1.9 R3_R4 0
4 ADo 192.168.11.0/24 192.168.1.1 110
5 Db 192.168.11.0/24 192.168.1.1 200
6 ADb 192.168.12.0/24 192.168.1.10 20
7 ADC 192.168.13.0/24 192.168.13.0 local 0
8 Db 192.168.13.0/24 192.168.1.1 200
9 ADb 192.168.14.0/24 192.168.1.10 20

O BGP redistribui apenas a melhor rota. Como em R1 a melhor rota é a recebida de R3, o router
R1 não redistribui .12.0/24 e .14.0/24 de volta a R3.

©Mikrotik 2012 32
Interior e Exterior BGP
● iBGP – pareamento entre routers do mesmo AS
● eBGP – pareamento entre routers de ASs diferentes

AS200

R2
eBGP AS300

AS100 R3

R1
R4
R5
iBGP
R6
eBGP

AS400

©Mikrotik 2012 33
eBGP
● Quase sempre é formado entre peers
diretamente conectados (roteadores borda do
AS).
● A configuração de multi-hop é requerida se os
peers não são diretamente conectados
● Adiciona seu AS no PATH dos prefixos
anunciados
● Por padrão o Next-hop é alterado para “si
mesmo” (self)

©Mikrotik 2012 34
Exemplo de eBGP Multihop
Lo: 10.1.1.2 Lo: 10.1.1.1
AS100 AS200
172.16.1.1 172.16.1.2
R1 R2
Eth1 Eth1 Eth2

/routing bgp peer


add remote-address=10.1.1.x remote-as=x multihop=yes \
update-source=lo

Essa configuração requer rotas estáticas ou IGP habilitado para que os


vizinhos alcancem um ao outro.

Configurando eBGP em endereço Loopback pode proteger o BGP de


ataques DoS.

©Mikrotik 2012 35
iBGP
● Next-hop não é alterado por padrão:
● Usa IGP (RIP, OSPF ou estática) para garantir a
alcançabilidade dentro do AS
● Atributos aprendidos via iBGP não são alterados para
evitar impactos na escolha do caminho para as redes
externas
● O AS Path também não é manipulado
● Provê maneiras de controlar os pontos de saída do AS
● As rotas externas recebidas de um peer iBGP não é
propagada para outros peers iBGP:
● Requer full mesh entre os peers iBGP.
©Mikrotik 2012 36
[admin@R1] /ip route> print
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 10.20.0.1 20
1 ADb 10.1.101.0/24 10.20.0.1 20
2 ADC 10.20.0.0/24 10.20.0.11 ether1 0
3 ADC 192.168.1.0/30 192.168.1.1 ether2 0
4 ADC 192.168.11.0/24 192.168.11.1 dummy 0
5 Db 192.168.12.0/24 192.168.1.10 200
6 ADb 192.168.12.0/24 10.20.0.12 20
7 ADb 192.168.13.0/24 192.168.1.2 200
8 Db 192.168.14.0/24 192.168.1.10 200
9 ADb 192.168.14.0/24 10.20.0.12 20

8 Db dst-address=192.168.14.0/24 gateway=192.168.1.10
gateway-status=192.168.1.10 unreachable distance=200 scope=40
target-scope=30 bgp-as-path="112" bgp-local-pref=100 bgp-origin=igp
received-from=peer2

9 ADb dst-address=192.168.14.0/24 gateway=10.20.0.12


gateway-status=10.20.0.12 reachable ether1 distance=20 scope=40
target-scope=10 bgp-as-path="100,112" bgp-origin=igp
received-from=peer1

©Mikrotik 2012 37
loopback
● Elimina a dependência de interface física para fazer a
conexão TCP.
● Mais usado entre peers iBGP
● No RouterOS uma bridge vazia pode ser usada como
loopback loopback: 10.1.1.2 loopback: 10.1.1.1

AS100
R1 R2
Eth1 Eth1 Eth2

/interface bridge add name=loopback


/ip address add address=10.1.1.x/32 interface=loopback
/routing bgp peer
add remote-peer=10.1.1.x remote-as=100 update-source=loopback

©Mikrotik 2012 38
BGP Lab III
● Aprimore sua configuração usando endereços
de loopback entre os peers iBGP
10.255.x.y/32, onde
x – número do grupo
y – número do router
● Adicione o IP da loopback nas redes OSPF
● Atribua o IP da loopback como router-id do
OSPF e do BGP

©Mikrotik 2012 39
Distribuição de rotas
● As rotas IGP (static, OSPF, RIP, connected)
podem ser redistribuídas
/routing bgp instance
set default redistribute-static=yes
set default redistribute-ospf=yes

● Prefix origin fica “incomplete”


● Risco de anunciar todas as rotas IGP
● Sempre use filtros de rotas para evitar
anúncios indesejáveis

©Mikrotik 2012 40
Exemplo de Distribuição
10.1.1.0/24
AS200
AS100
R1 R2

/ip route add dst-address=10.1.1.0/24 type=unreachable


/routing bgp instance set default redistribute-static=yes

● Os pacotes serão descartados a menos que


rotas mais específicas estejam presentes
● Boa maneira de anunciar redes maiores
©Mikrotik 2012 41
Filtros de Rotas
● Principal ferramenta para controlar e modificar
informações de roteamento
● Organizadas em chains como no firewall
● Especifique no peer BGP quais chains quer
usar ou na instância BGP em out filter
● Os prefixos passam primeiro na chain da
instância, depois passam na chain do peer
/routing bgp peer set 0 in-filter=bgp-in out-filter=bgp-out

/routing filter add chain=bgp-out prefix=10.1.1.0/24 \


action=discard invert-match=yes

©Mikrotik 2012 42
Exemplo de Filter Chain
/routing bgp instance set default out-filter=bgp-o
/routing bgp peer set peer1 out-filter=bgp-peer-o

/routing filter
add chain=bgp-o prefix=10.1.1.0/24 action=accept \
set-bgp-communities=30:30
add chain=bgp-o action=discard
add chain=bgp-peer-o prefix=10.1.1.0/24 action=passthrough \
set-out-nexthop=192.168.99.1

3 ADb dst-address=10.255.1.2/32 gateway=10.20.0.12


gateway-status=192.168.99.1 reachable ether2 distance=20 scope=40
target-scope=10 bgp-as-path="112" bgp-origin=igp
bgp-communities=30:30 received-from=peer2

©Mikrotik 2012 43
Filtro de Prefixo
10.1.1.0/24

AS400 AS100
R1
R4 AS300

R3
10.1.2.0/24

AS200
R2

# config no R3
/routing bgp peer set peer1 out-filter=bgp-out

/routing filter add prefix=10.1.0.0/16 prefix-length=16-32 \


chain=bgp-out action=discard

©Mikrotik 2012 44
Filtro de AS Path
● Pode ser configurado para permitir atualizações
somente para/de determinado AS
● Suporte expressões regulares
● “.” - qualquer caractere simples
● “^” - início do as-path
● “$” - fim do as-path
● “_” - coincide com vírgula, espaço, início e fim do as-path
# config no R3

/routing filter add chain=bgp-out action=discard \


bgp-as-path=_200_

©Mikrotik 2012 45
BGP Soft Reconfiguration
● Quando action=discard é usada, as rotas não são
atualizadas depois da mudança de filtros.
● Solução
● Use action=reject para manter as rotas em memória
● Dynamic (o peer precisa suportar o recurso refresh):
– Peer atualiza as rotas após as mudanças.
– Não é usada memória adicional
– Não é feito automaticamente – precisa rodar o
comando “refresh”

©Mikrotik 2012 46
BGP Lab IV
● Crie filtros de rotas de maneira que:
● R1 não receba o prefixo 192.168.x2.0/24 via AP
● R2 não receba o prefixo 192.168.x1.0/24 via AP
● R3 não receba o prefixo 192.168.x4.0/24 de R4
● R4 não receba o prefixo 192.168.x3.0/24 de R3

©Mikrotik 2012 47
BGP Lab IV
Vamos analisar o R3. Se a configuração ficou correta,
o traceroute para a rede x2 deve ir por R4 e o
traceroute para x4 deve ir pelo AP
[admin@R3] /ip address> /tool traceroute 192.168.12.1 src-
address=192.168.13.1
# ADDRESS RT1 RT2 RT3 STATUS
1 192.168.1.6 4ms 4ms 4ms
2 192.168.12.1 3ms 4ms 4ms

[admin@R3] /ip address> /tool traceroute 192.168.14.1 src-


address=192.168.13.1
# ADDRESS RT1 RT2 RT3 STATUS
1 192.168.1.1 2ms 2ms 2ms
2 10.20.0.12 3ms 4ms 4ms
3 192.168.14.1 6ms 6ms 6ms

©Mikrotik 2012 48
Algorítimo de decisão do BGP
● BGP usa o único melhor caminho para alcançar
o destino
● BGP sempre propaga o melhor caminho para
seus vizinhos
● Diferentes atributos de prefixos são usados para
determinar o melhor caminho, como weight,
next-hop, as-path, local-pref etc.
● Atribuir no peer o IP da loopback pode forçar o
BGP a instalar rota ECMP (para load balancing).

©Mikrotik 2012 49
Escolha do melhor caminho
● Validação do Next-hop
● WEIGHT maior (padrão = 0)
● LOCAL-PREF maior (padrão = 100)
● Menor AS-PATH
● Path originado localmente (aggregate, BGP network)
● Menor origin type (IGP, EGP, Incomplete)
● Menor MED (padrão = 0)
● Prefere eBGP ao invés de iBGP
● Prefere a rota com menor router ID ou ORIGINATOR_ID
● Cluster de Route Reflectors mais próximo (padrão = 0)
● Prefere o caminho que vier do vizinho de menor IP
©Mikrotik 2012 50
Nexthop
● Endereço IP usado para alcançar determinado destino
● Para eBGP, o nexthop é o IP do vizinho
● O nexthop anunciado via eBGP é levado no iBGP

Dst: 172.16.0.0/24
AS100 next-hop:10.1.1.1

Dst: 172.16.0.0/24
R1 10.1.1.1 next-hop:10.1.1.1
172.16.0.0/24

10.1.1.2 R2 R3

10.30.1.1 10.30.1.2
AS200

©Mikrotik 2012 51
Nexthop self
Força o BGP a atribuir seu próprio IP como nexthop
# config no R2
/routing bgp peer set peer1 nexthop-choice=force-self

Dst: 172.16.0.0/24
AS100 next-hop:10.1.1.1

Dst: 172.16.0.0/24
R1 10.1.1.1 next-hop:10.30.1.1
172.16.0.0/24

10.1.1.2 R2 R3

10.30.1.1 10.30.1.2
AS200

©Mikrotik 2012 52
Weight
● Weight é atribuído localmente pelo router
● Prefixos sem atribuição de weight tem o valor padrão 0
● Rota com maior weight é preferida

AS200
AS100
R3
R1

172.16.0.0/24
172.16.0.0/24 Weight=50
Weight=100
R2

AS300

©Mikrotik 2012 53
Local Preference
● Indica qual caminho tem preferência para sair do AS
● Caminho com maior Local Pref é escolhido (padrão: 100)
● É anunciado para dentro do AS
10.1.1.0/24

AS100 AS200

R1 R5

AS300

R4 Local-pref = 100
Local-pref = 200 R2
R3

©Mikrotik 2012 54
AS Path
● Lista de números AS que um update percorreu.

AS200
AS300

R2
R3
10.1.1.0/24

AS-path:200,100 AS-path:100 AS100


AS400
R1

R4

AS-path: 300,200,100

©Mikrotik 2012 55
AS-Path Prepend
A manipulação do AS-Path pode ser usada para
influenciar a escolha do melhor caminho pelo
tráfego vindo dos routers acima.

172.16.0.0/24 172.16.0.0/24
AS-Path: 100,300,300 AS-Path: 200,300

AS200
AS100
R3
R1

Prepend = 2 R2

172.16.0.0/24 AS300

©Mikrotik 2012 56
Origin
● Informação da origem da rota:
● IGP – interna ou proveniente do AS.
● EGP – rota aprendida via Exterior Gateway
protocol
● Incomplete – origem é desconhecida, ocorre
quando a rota é redistribuida no BGP.

©Mikrotik 2012 57
MED
● Multi Exit Discriminator ou Metric – dica para o vizinho
externo sobre a preferência do caminho dentro do AS
● Menor metrica é preferida (padrão = 0)
● Valor trocado entre os AS e usado para tomar decisão
dentro do outro AS, não é encaminhado para terceiro AS.
● Ignorado se recebido de diferentes ASs

©Mikrotik 2012 58
Exemplo de MED
AS100 AS300 Med=0
Med=10

R1 R4

Med=50

Med=100

R2 R3

AS200

R1, R2 e R3 anunciam a mesma rede para R4 com valores diferentes de


MED. R4 compara apenas os MEDs vindos de R2 e R3, MED vindo de
R1 é ignorado (outros atributos são usados para seleção do melhor
caminho).

©Mikrotik 2012 59
X – número do grupo BGP Lab V
AP SSID=AS100
192.168.x1.0/24

AS100
192.168.x1.0/24
AP 192.168.x3.0/24
AS1x1
R1

192.168.x2.0/24

R2 192.168.x3.0/24 R3

192.168.x4.0/24
R4
AS1x2
192.168.x2.0/24

192.168.x4.0/24
Use as-path prepend para configurar fail-over no BGP e balanceamento de carga
como ilustrado
©Mikrotik 2012 60
Community
● Atributo para grupos de destino
● Filtros podem facilmente ser aplicados para
todo o grupo
● Grupos padrão:
● No-export – não anuncia para o peer eBGP
● No-advertise – não anuncia para qualquer peer
● Internet – anuncia para a community Internet
● Local-as – não anuncia para fora do AS local
(em redes não-confederadas é o mesmo que no-
export)
©Mikrotik 2012 61
Exemplo de Community
Assumindo que não queremos que R2 propague rotas
aprendidas de R1 10.1.1.0/24

AS300 AS100
R1
R3 AS200

R2

# config no R1

/routing filter add chain=bgp-out action=passthrough \


set-bgp-communities=no-export

©Mikrotik 2012 62
Community (continuação)
● Valor de 32-bit escrito no formato “xx:yy”
● Dá ao cliente mais controle sobre políticas
● Simplifica a configuração em “upstream*”
(*operadoras)
● Pode ser usado por ISPs para:
– Opções de prepend do AS
– Restrições geográficas
– Blackholing (criação de blackhole), etc.
● Verificar o Internet Routing Registry (IRR)
©Mikrotik 2012 63
Exemplo de Community (cont.)
● Communities públicas definidas pelo AS 100
● 100:500 – anuncia para todos os peers
● 100:501 – anuncia para o AS 400

10.1.1.0/24 community=100:500 AS 400


10.2.2.0/24 community=100:501

ISP
AS100
AS300 AS 500

©Mikrotik 2012 64
Exemplo de Community (cont.)
# config no router AS300
/routing bgp peer set toAS100 out-filter=bgp-out-as100

/routing filter
add prefix=10.1.1.0/24 action=accept\
chain=bgp-out-as100 set-bgp-communities=100:500
add prefix=10.2.2.0/24 action=accept\
chain=bgp-out-as100 set-bgp-communities=100:501

# config no router AS100


/routing bgp peer set toAS500 out-filter=bgp-out-as500

/routing filter
add bgp-communities=100:501 action=discard\
chain=bgp-out-as500

©Mikrotik 2012 65
Exemplo de ISP
aut-num: AS2588
as-name: LatnetServiss-AS
descr: LATNET ISP
member-of: AS-LATVIA
remarks: +--------------------------------------------------
remarks: |
remarks: | x=0 Anuncia como vier
remarks: | x=1 Prepend +1
remarks: | x=2 Prepend +2
remarks: | x=3 Prepend +3
remarks: | x=4 Prepend +4
remarks: | x=5 Prepend +5
remarks: |
remarks: | 2588:400 Latvian Nets
remarks: | 2588:500 Anuncia para LIX (Latvian Internet Exchange)
remarks: | 2588:666 Não anuncia (blackhole)
remarks: | 2588:70x Anuncia para uplinks com $x prepend
remarks: | 2588:900 Recebidas de LIX (Latvian Internet Exchange)
remarks: |
remarks: | Para mais informação favor enviar e-mail para:
remarks: | iproute (arroba) latnet (ponto) lv
remarks: +--------------------------------------------------

©Mikrotik 2012 66
Communities estendidas
● Usado para levar campos adicionais em
cenários com L2VPN e VPNv4
● Alguns campos adicionais:
● Route Targets
● Site of Origin
● Control flags
● MTU
● Encapsulation flags

©Mikrotik 2012 67
Agregação de rotas
Sumarização de rotas mais específicas em redes
maiores. Pode ser usado para esconder a topologia.
Funciona apenas na mesma instância
AS100
das rotas BGP
R1
AS400 10.1.1.0/24
10.0.0.0/8
R4 AS300

R3 10.1.2.0/24 AS200

R2

# config no R3
/routing bgp aggregate add instance=default summary-only=yes \
prefix=10.0.0.0/8 action=passthrough inherit-attributes=no

©Mikrotik 2012 68
Confederação BGP
● Divide o AS em múltiplos ASs
● Para o mundo externo, a confederação aparece como
um único AS
● Cada AS precisa ter iBGP em full mesh (ou RRs)
● O eBGP entre as confederações de AS trocam rotas
como se fossem iBGP
● O AS-Path dentro da confederação ocorre em escopos:
as-path=(30,20)
# setup da confederação

/routing bgp instance set default confederation=100 \


confederation-peers=20,30

©Mikrotik 2012 69
Confederação BGP
AS300
AS200
AS-Path: 100,300 R9
R8

R3 R4

AS20
R1
AS-Path:(20,30)

AS10 R5 R6
R2
AS30
AS100
AS400

R7

©Mikrotik 2012 70
Lab VI: Confederação
X – número do grupo
AP SSID=AS100 band=5Ghz
192.168.x1.0/24

AS100

AP 192.168.x3.0/24
R1
Confederação
AS xx00 AS1x1

R2 R3

AS1x2
R4

192.168.x2.0/24

192.168.x4.0/24
©Mikrotik 2012 71
AS-Path da Confederação
[admin@R1] /ip route> print detail

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
...
8 ADb dst-address=192.168.12.0/24 gateway=192.168.1.10
gateway-status=192.168.1.10 recursive via 192.168.1.2
distance=200 scope=40 target-scope=30 bgp-as-path="(112)"
bgp-local-pref=100 bgp-origin=igp received-from=peer2

©Mikrotik 2012 72
BGP Multi-Protocolo
● O formato do pacote BGP é projetado para IPv4
● O atributo “address family” foi criado para levar
novos tipos de endereços.
● RouterOS suporta as seguintes famílias de
endereços:
● IPv6
● L2VPN
● VPN4
● Cisco style L2VPN
©Mikrotik 2012 73
Instância BGP
● Cada instância BGP roda seu próprio
algorítimo de seleção BGP
● As rotas entre instâncias são eleitas por outros
meios (como “distance”)
● As rotas de uma instância não são
redistribuídas automaticamente para outra
instância
● Necessita de:
/routing bgp instance
set <id> redistribute-other-bgp=yes
● Os atributos BGP são herdados da outra
instância ©Mikrotik 2012 74
Multi-protocol Label Switching
(MPLS)

LDP, VPNs (layer2, layer3), TE

©Mikrotik 2012 75
Configuração do MPLS Lab
● Resetar a configuração do router
● Configurar o cenário como ilustrado
● Configurar endereço de loopback e ativar o
OSPF em todos os links
● Adicionar o endereço de loopback nas redes
do OSPF

©Mikrotik 2012 76
Configuração do MPLS Lab
X – número do grupo
AP SSID=AS100
192.168.x1.0/24

AS100

10.20.0.1/24
AP 192.168.x3.0/24
R1 192.168.x.1/30
10.20.0.x1/24

Lo:10.255.x.1
10.20.0.x2/24 192.168.x.2/30
R2 R3 Lo:10.255.x.3
Lo:10.255.x.2
192.168.x.5/30
192.168.x.9/30

192.168.x.10/30
192.168.x.6/30 R4

Lo:10.255.x.4
192.168.x2.0/24

192.168.x4.0/24
©Mikrotik 2012 77
Básico do MPLS
● Tecnologia usada para encaminhar pacotes,
baseada em labels (rótulos) pequenos
● Objetivo inicial: encaminhamento mais eficiente
que o roteamento IP (similar ao ATM switching)
● Serve de base para alguns “Serviços Avançados”:
● Layer3 VPNs
● Qualquer “coisa” sobre MPLS (AtoM), Layer2 VPNs
● MPLS Traffic Engineering (engenharia de tráfego)
● Serviços com largura de banda garantia

©Mikrotik 2012 78
Básico do MPLS
● LER – Label Edge Router ou Provider Edge router (PE)
● LSR – Label Switch Router ou Provider router (P)
Pacotes são classificados LSRs encaminham
e rotulados no ingress pacotes usando a
LER comutação de rótulos

Rótulo é removido no
MPLS egress LER
Backbone

©Mikrotik 2012 79
Básico do MPLS
● Também chamado de protocolo de camada 2.5
● Cabeçalho Shim (32 bit) colocado entre a camada OSI
2 e 3:
● Label (20 bits)
● EXP (3 bits) – CoS (classe do serviço)
● End of Stack flag (1 bit) – se o rótulo atual é o último da pilha
● TTL (8 bits)
L2 MPLS L3

Label EXP S TTL

©Mikrotik 2012 80
Básico do MPLS
● É permitido mais de um rótulo
● Os rótulos são agrupados na pilha de rótulos
● LSRs sempre usam o rótulo do topo da pilha
● Existem diversos métodos de distribuição de
rótulos:
● Static Label mapping – mapeamento estático
● LDP – mapeia destinos IP unicast em rótulos
● BGP – rótulos externos (VPN)
● RSVP (46), CR-LDP – usados para engenharia de
tráfego e reserva de recursos (banda)
©Mikrotik 2012 81
Mapeamento estático de Rótulos
● RouterOS permite adicionar vínculos estáticos
para cada destino seja local ou remoto.
● A faixa de rótulos dinâmicos do MPLS deve ser
ajustada para liberar rótulos para uso estático.
/mpls set dynamic-label-range=100-1048575
/mpls local-bindings
/mpls remote-bindings
/mpls forwarding-table

©Mikrotik 2012 82
Mapeamento estático de Rótulos
Lo:1.1.1.1 Lo:2.2.2.2 Lo:3.3.3.3

R1 R2 R3

Local: DST LABEL DST LABEL DST LABEL


1.1.1.1 impl-null 1.1.1.1 21 1.1.1.1 21
2.2.2.2 22 2.2.2.2 impl-null 2.2.2.2 22
3.3.3.3 23 3.3.3.3 23 3.3.3.3 impl-null
DST HOP LABEL DST HOP LABEL DST HOP LABEL
Remote: 2.2.2.2 R2 impl-null 1.1.1.1 R1 impl-null 2.2.2.2 R2 impl-null
3.3.3.3 R2 23 3.3.3.3 R3 impl-null 1.1.1.1 R2 21
IN OUT DST IN OUT DST IN OUT DST
Fwd: 22 2.2.2.2 21 1.1.1.1 21 21 1.1.1.1
23 23 3.3.3.3 23 3.3.3.3 22 2.2.2.2

©Mikrotik 2012 83
Testando com traceroute

[admin@R1] /mpls forwarding-table> print


Flags: L - ldp, V - vpls, T - traffic-eng
# IN-LABEL OUT-LABELS DESTINATION INTERFACE NEXTHOP
0 expl-null
...
4 L 23 23 3.3.3.3/32 ether1 10.20.0.11

[admin@R1] >/tool traceroute 3.3.3.3 src-address=1.1.1.1


# ADDRESS RT1 RT2 RT3 STATUS
1 10.20.0.11 2ms 1ms 2ms <MPLS:L=23,E=0>
2 3.3.3.3 1ms 1ms 2ms

©Mikrotik 2012 84
Mapeamento estático: LAB
● Crie rótulo estático para o endereço loopback
● Como ECMP não é usado no vínculo dos
rótulos, escolha apenas o primeiro gateway
● Teste se os rótulos estão OK com o traceroute:

/tool traceroute 10.255.1.1 src-address=10.255.1.3

©Mikrotik 2012 85
LDP
● Significa Label Distribution Protocol
(protocolo de distribuição de rótulos)
● Baseia-se na informação de roteamento
proveniente do IGP – cria rótulos locais
vinculados a cada prefixo IP e distribui a seus
vizinhos LDP Vínculos remotos

Prefixo IGP 10.1.1.0/24 10.1.1.0/24 10.1.1.0/24


10.1.1.0/24 Label 21 Label 22 Label 23

Local binding Local binding Local binding


Label 21 Label 22 Label 23
©Mikrotik 2012 86
Label space
● Per interface label space – o pacote é
encaminhado baseado em ambos a interface
de entrada e o rótulo
● Per platform label space – o rótulo não é único
por interface

Label1 Label1
Path 1 Path 1 Path 1
Path 1
Path 2

Label1 Label1
Path 2 Path 1

©Mikrotik 2012 87
Modos de Distribuição
● Downstream-on-Demand (DoD) – cada LSR
solicita seu rótulo de next-hop.
(ainda não implementado!)
● Unsolicited Downstream (UD) – o LSR distribui
seus vínculos locais a todos os LSRs adjacentes,
mesmo se eles LSRs não solicitarem rótulo.

©Mikrotik 2012 88
Números bem conhecidos
● LDP Hello messages – porta UDP 646
● LDP transport session establishment – porta
TCP 646
● Hellos são enviadas a “todos os routers da
sub-rede” pelo endereço de multicast
(224.0.0.2)

©Mikrotik 2012 89
Configurando LDP
● Pode ser configurado no menu “/mpls ldp”
/mpls ldp set enabled=yes transport-address=x.x.x.x \
lsr-id=x.x.x.x
/mpls ldp interface add interface=ether1

● Atribuir o endereço de transporte garante o


comportamento adequado de “penultimate hop
popping”

©Mikrotik 2012 90
LDP Lab
● Remova todo mapeamento estático do LAB
anterior
● Habilite o LDP e atribua aos lsr-id e transport
address o mesmo endereço de loopback
● Adicione as interfaces LDP que conectam nos
routers vizinhos
● Verifique se os vizinhos LDP são criados
/mpls ldp neighbor print
● Cheque a MPLS forwarding-table
/mpls forwarding-table print
©Mikrotik 2012 91
Labels Reservados
● Labels de 0 a 15 são reservados, mas apenas
4 são usados até então:
● 0 – explicit NULL
● 1 – router alert
● 2 – Ipv6 explicit NULL
● 3 – implicit NULL

©Mikrotik 2012 92
PHP
Implicit NULL

PHP
Explicit NULL

©Mikrotik 2012 93
Penultimate Hop Popping
● Este router é o ponto de saída (egress) para a
rede que está diretamente conectada a ele, o
próximo salto não é um router MPLS
● Anunciado pelo rótulo “implicit null”
● Penultimate hop popping garante que o último
router não precisa buscar por rótulos quando
se sabe antecipadamente que ele terá que
rotear (roteamento ip) o pacote
● Este penúltimo router então retira os rótulos e o
próprio cabeçalho MPLS e encaminha o pacote
IP original para o último salto
©Mikrotik 2012 94
Explicit NULL
● Se configurado, o penúltimo LSR encaminha o
pacote com o label NULL (rótulo nulo), ao
invés de retirar o cabeçalho.
● Útil para preservar o QoS
● Não é necessário se a pilha contiver ao menos
dois rótulos (o rótulo interno ainda pode levar
o valor de QoS)
● Implicit NULL é usado por padrão

©Mikrotik 2012 95
Traceroute MPLS
● Mensagens ICMP de erro são comutadas mais
adiante do LSP (Label Switch Path)
● Isso dará falso incremento na latência para
aquele salto
Label: 12 Label: 23 Label: 34

R1 R2 R3 R4

Label: 32 Label: 43

©Mikrotik 2012 96
Sessões LDP direcionadas
● Em alguns casos é necessário estabelecer
sessões LDP direcionadas (sessão entre
LSRs remotos, não diretamente conectados)
● Configuração:
/mpls ldp neighbor add transport=<remote_ip> \
send-targeted=yes
Targeted LDP

LDP LDP LDP

©Mikrotik 2012 97
Filtro de Rótulos (bindings)
● Pode ser usado para distribuir apenas um conjunto
específico de rótulos para reduzir o consumo de
recursos
● Há dois tipos de binding filters:
● De quais Routers devem ser aceitos vínculos
/mpls ldp accept-filter
● Quais vínculos devem ser aceitos
/mpls ldp advertise-filter
● Filtros são aplicados apenas em anúncios de
entrada/saída. Qualquer alteração nos filtros requer
desativar/ativar o LDP
/mpls ldp advertise-filter add prefix=9.9.9.0/24 advertise=yes
/mpls ldp advertise-filter add prefix=0.0.0.0/0 advertise=no

©Mikrotik 2012 98
Label Binding LAB

● Crie filtros de label binding de tal maneira que


apenas os vínculos dos ips das interfaces
loopback do seu grupo sejam enviados e
recebidos
● Verifique a forwarding table para se certificar
que os filtros funcionaram
● Verifique com traceroute se os pacotes estão
sendo comutados via label ou encaminhados
via L3
©Mikrotik 2012 99
Layer3 VPN

VRF

©Mikrotik 2012 100


VRF
● Virtual Routing and Forwarding
● Baseado em política de roteamento
● É a funcionalidade de tabelas de rotas
completamente independentes em um router.
● Múltiplas VRFs resolve o problema de
sobreposição de prefixos IP de clientes.
● Quando a resolução de nexthop falha na vrf,
não é resolvida/usada a tabela principal main
(comparado à policy routing)

©Mikrotik 2012 101


Route Leaking (vazamento de rota)
● Route leaking é a troca de rotas entre VRFs
distintas
● Rota estática entre VRFs:
● Tabela de rotas explicitamente especificada
(funciona com a “main”)
/ip route
add gateway=10.3.0.1@main routing-mark=vrf1

● Especificar explicitamente a interface


/ip route
add dst-address=5.5.5.0/24 gateway=10.3.0.1%ether2
routing-mark=main

©Mikrotik 2012 102


VRF e o Acesso ao Router
● Qualquer acesso ao router não é possível do
lado da vrf (winbox, telnet, ssh etc.)
● As ferramentas ping e traceroute são
atualizadas para suportar as VRFs
● OSPF e BGP podem ser usados como
protocolo de CE-PE (Customer Edge –
Provider Edge)
● http://wiki.mikrotik.com/wiki/Manual:Layer-3_MPLS_VPN_example
● http://wiki.mikrotik.com/wiki/Manual:EBGP_as_PE-CE_routing_protocol
● http://wiki.mikrotik.com/wiki/Manual:OSPF_as_PE-CE_routing_protocol

©Mikrotik 2012 103


BGP/MPLS VPN IP
● Funciona em Camada 3, diferente da VPLS
baseada em BGP
● Também chamada de L3VPN
● BGP Multiprotocolo é usado para distribuir as
rotas entre VRFs mesmo no próprio router.
● A rede do provedor PRECISA ter o MPLS
habilitado

©Mikrotik 2012 104


L3VPN
VPN A
RR
Site 1
CE CE

VPN B
Site 2
PE PE

CE
CE

VPN B PE VPN A
Site 1 Site 2
CE

VPN A
BGP
VPN B Site 3
OSPF as CE-PE
Site 3
©Mikrotik 2012 105
Route Distinguisher
● Route distinguisher (RD) é usado para tornar
os prefixos IPv4 únicos
● RD+IPv4 prefix=vpnv4 prefix
● Formato
● IP:número
● ASn:número
● Nota: alguns cenários complexos podem
requerer mais de um RD por VPN

©Mikrotik 2012 106


Route Target
● Route Targets (RTs) foram introduzidos para a
habilidade de interconectar sites de diferentes
empresas, a chamada extranet VPN.
● Route Targets são community estendidas do
BGP que especificam quais prefixos vpnv4
serão importados na tabela VRF.
● Exporting RT – a vpnv4 recebe adicionalmente
uma community BGP estendida
● Importing RT – a rota vpnv4 recebida é
verificada por um RT correspondente
©Mikrotik 2012 107
Route Target
VPN A
Site 1
VPN B CE
Site 1
CE
PE2
Import: 100:1
100:4
PE1 Export: 100:2

Import: 100:3
100:2
Export: 100:1
PE3
Import: 100:1
PE4 Export: 100:3 CE
Import: 100:2
VPN A Export: 100:4 VPN B
Site 2 Site 2
CE

©Mikrotik 2012 108


Configurando L3VPN
● Crie a instância VRF
/ip route vrf
add routing-mark=vrf1
route-distinguisher=100:1
export-route-targets=100:1
import-route-targets=100:1

● Configure o BGP para usar as address family


VRF e vpnv4
/routing bgp instance vrf
add instance=default routing-mark=vrf1 \
redistribute-connected=yes
/routing bgp peer
add address-families=vpnv4 update-source=lo (...)

● Resultados
/routing bgp vpn vpnv4-route print
©Mikrotik 2012 109
VPNV4 Lab
● Escolha um Route Reflector por grupo e estabeleça o
iBGP (AS do grupo: X00)
● Ative VPNV4 no BGP
● Crie VRF com a interface onde seu notebook está
conectado
● Route Distinguisher e Export RT: X00:Y
● Configure devidamente os Import Route Targets
(destinos), para que apenas os sites Verde e Azul
troquem rotas (veja no próximo slide)
● Configure route leaking (rotas adicionais) para
acessar a internet via VRF

©Mikrotik 2012 110


BGP peers
X – número do grupo
VPNV4 Lab
AP SSID=AS100 band=5Ghz
Azul 192.168.x1.0/24
Site 1
AS100

AP RR 192.168.x3.0/24
Verde
R1 Site 2

Lo:10.255.x.1

R2 AS: X00 R3 Lo:10.255.x.3


Lo:10.255.x.2

Verde
Site 1 R4

Lo:10.255.x.4
192.168.x2.0/24 Azul
Site 2
192.168.x4.0/24
©Mikrotik 2012 111
OSPF e eBGP como CE-PE
● Distribui rotas entre VRFs dos routers CE e PE
● No router PE especifique qual VRF irá usar
/routing ospf instance
set default routing-table=vrf1 redistribute-bgp=as-type-1

● Nova instância BGP para usá-la como CE-PE


/routing bgp instance
add name=ebgp as=100 routing-table=vrf1

instância BGP instância BGP


AP CE-PE CE-PE AP
CE CE
BGP peer
PE PE
nuvem MPLS
CE CE
OSPF OSPF
©Mikrotik 2012 112
Layer 2 VPN

VPLS baseada em
LDP e BGP

©Mikrotik 2012 113


VPLS em LDP
● Também chamadas de L2VPN ou EoMPLS
● Une redes LAN individuais através do MPLS
● Usa LDP para negociar os túneis VPLS
● O campo “pseudowire demultiplexor” (rótulo
PW) é usado para identificar o túnel VPLS
● O pseudowire (pseudo-cabo) tem funções de
aprendizado MAC, flooding e forwarding

©Mikrotik 2012 114


VPLS em LDP
frame L2 do cliente
PW label
SN label
L2 header
Site 1

PE1 PE2
CE1

Site 3
P1
CE3

PE3 backbone MPLS


Pseudo wire
Site 2
CE - customer's edge router
CE2 PE - provider's edge router
P – provider's core router

©Mikrotik 2012 115


Configurando VPLS
● Adicione os pontos de conclusão do túnel VPLS:
/interface vpls
add remote-peer=x.x.x.x vpls-id=x:x
● O vizinho LDP alvo é adicionado dinamicamente
● O túnel ID deve ser único para cada VPLS
● As informações relacionadas ao túnel VPLS
podem ser visualizadas pelo comando:
/interface vpls monitor
● Coloque em bridge o VPLS com sua LAN para
obter conectividade transparente
©Mikrotik 2012 116
Split Horizon
● Encaminha o frame Ethernet vindo do PE para os CEs
conectados
● Os pacotes não são encaminhados para as interfaces com
o mesmo valor de horizon
● O valor de horizon é atribuído na configuração da porta da
bridge: /interface bridge port
add bridge=vpn interface=vpls1 horizon=1

CE1 CE3

PE1 1 PE3
1
1 1
CE2 CE4

PE2

©Mikrotik 2012 117


VPLS em LDP: Lab
● Crie túneis VPLS entre todos os routers do
grupo (VPLS ID x:x)
● No seu router, coloque em bridge as interfaces
VPLS com sua LAN.
● A rede da VPN é 192.168.x0.0/24 onde:
● x – número do grupo
● Configure o Split horizon para evitar loops
● Teste a conectividade entre notebooks em seu
grupo

©Mikrotik 2012 118


túnel VPLS VPLS em LDP: Lab
X – número do grupo
AP SSID=AS100
192.168.x0.1/24
Site 1
AS100

AP RR 192.168.x0.3/24
R1 Site 3
rede VPN:
192.168.x0.0/24
Lo:10.255.x.1

R2 R3 Lo:10.255.x.3
Lo:10.255.x.2

Site 2
R4

Lo:10.255.x.4
192.168.x0.2/24 Site 4

192.168.x0.4/24
©Mikrotik 2012 119
[admin@R4] /mpls ldp neighbor> print
Flags: X - disabled, D - dynamic, O - operational, T - sending-
targeted-hello, V - vpls
# TRANSPORT LOCAL-TRANSPORT PEER SEND-TARGETED ADDRESSES

0 DOTV 10.255.0.3 10.255.0.4 10.255.0.3:0 no 10.255.0.3


192.168.1.2

1 DOTV 10.255.0.2 10.255.0.4 10.255.0.2:0 no 10.20.0.12


10.255.0.2

2 DOTV 10.255.0.1 10.255.0.4 10.255.0.1:0 yes 10.20.0.11


10.255.0.1

[admin@R4] /interface vpls> monitor 0


remote-label: 40
local-label: 28
remote-status:
transport: 10.255.0.1/32
transport-nexthop: 192.168.1.9
imposed-labels: 22,40

©Mikrotik 2012 120


VPN em LDP: desvantagens
● Problemas de escalabilidade por conta de sua
natureza estática
● Exigência de manter em full mesh os túneis LDP
● Ajuste de configuração em todos os roteadores
que formam VPLS

©Mikrotik 2012 121


VPLS em BGP
● Funcionalidades VPLS no BGP
● Autodiscovery – sem necessidade de configurar
cada router VPLS
● Signaling – rótulos para túneis VPLS distribuídos
nos updates do BGP.
● Sem necessidade de sessões LDP destinadas
● Sem problemas com escalabilidade
● Sem grandes vantagens sobre o LDP em
casos de BGP em full mesh.

©Mikrotik 2012 122


VPLS em BGP: configuração
● Configure a instância BGP
● Habilite l2vpn em address-families nos peers
BGP para usar o recurso de multiprotocolo
● Use o endereço de loopback como endereço do
peer especificando-o em update-source, a fim
de que o “penultimate hop popping” funcione
adequadamente.
/routing bgp peer
add remote address=1.1.1.1 remote-as=100 update-source=lo
address-families=l2vpn

©Mikrotik 2012 123


VPLS em BGP: configuração
● Configure a bridge da VPN
● Configure a interface VPLS sinalizada via BGP
/interface vpls bgp-vpls
add bridge=<bridge> bridge-horizon=1 site-id=1
route-distinguisher=1:1 import-route-targer=1:1 export-route-
target=1:1

● O túnel VPLS é criado dinamicamente e


adicionado como porta da bridge
– route-distinguisher – valor que é anexado à NLRI da
VPLS para distinguir os anúncios, valor deve ser único
para cada VPLS
– site-id – atributo único em cada router membro da VPLS
©Mikrotik 2012 124
VPLS em BGP: Lab
● Escolha qual dos routers será o RR (por
exemplo R1)
● Estabeleça peer BGP apenas entre os RR
● Substitua todas as VPLS criadas estaticamente
por VPLS baseadas em BGP
● Configure import/export route targets igual ao
route distinguisher.

©Mikrotik 2012 125


Importância do MTU L2/MPLS
● MTU MPLS = MTU IP (L3) + cabeçalhos MPLS
● MTU MPLS é ajustável no menu
/mpls interface
● Se o MTU for muito grande e o próximo cabeçalho
for IP
● Então gere “ICMP Need Fragment error”
● Senão, descarte o pacote silenciosamente
Eth(14) VLAN(4) MPLS(4) IP(20) DATA(1480)
IP (L3) MTU

MPLS MTU
L2 MTU

Full Frame
©Mikrotik 2012 126
L2MTU: 1500 Eth(14) IP(20) DATA(1480)

R1

L2MTU: 1526 Eth(14) MPLS(4)VPLS(4) CW(4) Eth(14) IP(20) DATA(1480)

R2

L2MTU: 1526 Eth(14) MPLS(4)VPLS(4) CW(4) Eth(14) IP(20) DATA(1480)

R3

L2MTU: 1522 Eth(14) VPLS(4) CW(4) Eth(14) IP(20) DATA(1480)

R4

L2MTU: 1500 Eth(14) IP(20) DATA(1480)

©Mikrotik 2012 127


VPLS Control Word
● 4-bytes para Control Word (CW) são usados
para fragmentação e remontagem dos pacotes
dentro do túnel VPLS
● CW opcional é adicionado entre o rótulo PW e
o payload do pacote
● O CW pode ser desativado para
compatibilidade com outros fabricantes
(algumas VPLS Cisco em BGP)

©Mikrotik 2012 128


©Mikrotik 2012 129
Traffic Engineering
(engenharia de tráfego)

©Mikrotik 2012 130


Limitação no roteamento IP
● Depois que dois tráfegos IP para o mesmo destino
se encontram, é impossível separá-los e (re)roteá-
los por diferentes caminhos.
● O link do Router C para o Router E fica
sobrecarregado.
E
A C F

D
40Mbps de tráfego de A a F
B 40Mbps de tráfego de B a F

©Mikrotik 2012 131


Traffic Engineering
● TE resolve este problema
● Pode ser usado para conduzir o tráfego para
links menos utilizados

E
A C F

B TE Tunnel1 50Mbps
TE Tunnel2 50Mbps

©Mikrotik 2012 132


Traffic Engineering
● Expande a capacidade de redes L2 ATM e
Frame relay
● Roteamento baseado em reservas – o caminho
para o fluxo do tráfego é o menor caminho que
atenda os requisitos de recursos (constraints)
● Elimina a necessidade de redes mesh L2
exageradas.

©Mikrotik 2012 133


Como funciona
● TE estabelece/mantêm o túnel usando RSVP
(Resource Reservation Protocol)
● O trajeto do túnel em qualquer ponto é determinado
com base em recursos de rede e requisitos do túnel
● Os recursos disponíveis são “inundados” via OSPF
● Os caminhos do túnel são calculados no início do túnel,
com base em um ajuste entre os recursos necessários
e os disponíveis (roteamento com base em restrições –
constraints)
● Túneis TE RSVP são unidirecionais

©Mikrotik 2012 134


Opções para Túnel TE Path
● O caminho do túnel é roteado com base na
tabela de roteamento
Tunnel path: use-cspf=no e “hops” em branco
● Caminho configurado estaticamente
Tunnel path: use-cspf=no hops=<config. explícita de hop>
● Constrained Shortest Path First (CSPF) – o
router do início calcula o caminho até o router
final usando conhecimento do estado da rede.
Necessida de assistência do IGP.
Tunnel path: use-cspf=yes, “hops” em branco ou
explicitamente configurados
©Mikrotik 2012 135
Como funciona
● Início do túnel surge como uma interface
● TE funciona automaticamente dentro do
intervalo de uma área
● O tráfego pode ser encaminhado
automaticamente para o TE se
● O ponto final do pseudowire remoto é o mesmo que
o ponto final do TE
● O ponto final do túnel é um nexthop BGP (pode ser
desativado com “use-te-nexthop=no”)

©Mikrotik 2012 136


Configuração TE
● Configure o OSPF para usar TE e configure a
TE em todas as interfaces participantes do túnel
/routing ospf set mpls-te-area=backbone
mpls-te-router-id=loopback
/mpls traffic-eng interface
add interface=ether1 bandwidth=50Mbps

● Configure o próprio túnel TE


/mpls traffic-eng tunnel-path
add use-cspf=no name=rt
/interface traffic-eng
add bandwidth=10Mbps primary-path=rt
from-address=10.255.1.2 to-address=10.255.1.3

©Mikrotik 2012 137


Configuração TE
● Resultado do OSPF (deve ter LSAs opacos)
● Monitoramento do túnel TE
[admin@R2] /interface traffic-eng> monitor 0
tunnel-id: 3
primary-path-state: established
primary-path: rt
secondary-path-state: not-necessary
active-path: rt
active-lspid: 1
active-label: 124
recorded-route: 192.168.1.1[124],192.168.1.2[0]
reserved-bandwidth: 10.0Mbps

[admin@R2] /interface vpls> monitor 0


remote-label: 114
local-label: 113
remote-status:
transport: traffic-eng1
transport-nexthop: 10.20.0.11
imposed-labels: 124,114

©Mikrotik 2012 138


Configuração TE
● Percurso do túnel TE e estado da reserva
[admin@R2] /mpls traffic-eng path-state> print
Flags: L - locally-originated, E - egress, F - forwarding, P - sending-
path, R - sending-resv
# SRC DST BANDWIDTH OUT.. OUT-NEXT-HOP
0 LFP 10.255.1.2:1 10.255.1.3:3 10.0Mbps R2_R4 10.20.0.11
[admin@R2] /mpls traffic-eng resv-state> print
Flags: E - egress, A - active, N - non-output, S - shared
# SRC DST BANDWIDTH LABEL INT...
0 AS 10.255.1.2:1 10.255.1.3:3 10.0Mbps 124 R2_R4

[admin@R2] /mpls traffic-eng interface> print


Flags: X - disabled, I - invalid
# INTERFACE BANDWIDTH TE-METRIC REMAINING-BW
0 R2_R1 50Mbps 1 50.0Mbps
1 R2_R4 50Mbps 1 40.0Mbps

©Mikrotik 2012 139


Caminho estático (static Path)
● Caminho estático é estabelecido ao definir saltos
(hops) “strict” ou “loose”:
● Strict – define que não pode haver outros saltos entre o
salto anterior e o salto “estrito” (caminho inteiramente
especificado)
● Loose – aceita a existência de outros saltos entre o
anterior e o salto definido (caminho não especificado
por completo).
/mpls traffic-eng tunnel-path
add use-cspf=no \
hops=10.1.1.1:strict,10.1.3.1:loose,10.1.4.1:strict

©Mikrotik 2012 140


Caminho estático: exemplo
10.1.3.1
10.1.1.1 10.1.4.1

E
A C F

B
10.1.2.1
10.1.0.1

10.1.2.1:loose

10.1.1.1:strict,10.1.2.1:strict, 10.1.4.1:loose

10.1.1.1:strict,10.1.2.1:strict,10.1.3.1:strict,10.1.4.1:strict

©Mikrotik 2012 141


TE Lab I
● Crie túneis TE de modo que os túneis VPLS
usem os seguintes caminhos:
● VPLS: R1<>R4; TE Path: R1-R3-R4 principal
● VPLS: R2<>R3: TE Path: R2-R4-R3 principal
● Experimente com tipos diferentes de
caminhos TE.

©Mikrotik 2012 142


túnel VPLS
X – número do grupo
TE Lab I
AP SSID=AS100
192.168.x0.1/24
Site 1
AS100

AP RR 192.168.x0.3/24
R1 Site 3
rede VPN:
192.168.x0.0/24
Lo:10.255.x.1

R2 R3 Lo:10.255.x.3
Lo:10.255.x.2

Site 2
R4

Lo:10.255.x.4
192.168.x0.2/24 Site 4

192.168.x0.4/24
©Mikrotik 2012 143
Caminho secundário do túnel TE
● TE não alterna automaticamente o caminho para o
secundário, o túnel precisa ser reotimizado:
● Manualmente (comando “optimize”);
● Automaticamente (no intervalo configurado em
“reoptimize-interval”)
● TE tenta alternar de volta para o primário a cada
minuto (pode ser ajustado em “primary-retry-interval”)
● Alternar os caminhos pode levar algum tempo,
depende de: timeout do OSPF, atualizações da tabela
de roteamento, ajustes de timeout do TE.

©Mikrotik 2012 144


Auto Bandwidth
● Por padrão, túneis TE não aplicam limites de banda,
configuração de “largura de banda” (bandwidth) são apenas para
contabilizar as reservas
● Para tornar os túneis mais flexíveis, dois recursos foram
adicionados:
● “bandwidth-limit” – limite máximo permitido para entrar no
túnel, o limite é percentual da largura de banda do túnel.
● Auto bandwidth adjustment – mede a taxa média durante o
intervalo “auto-bandwidth-avg-interval”, o túnel mantém a
maior taxa média vista durante o intervalo “auto-bandwidth-
update-interval”. Quando o “update interval” expira, o túnel
escolhe nova taxa máxima do campo “auto-bandwidth-range”.
● As duas opções pode ser usadas em conjunto.
©Mikrotik 2012 145
TE Lab II
● Crie túneis TE de modo que os túneis VPLS
usem os seguintes caminhos primários e
secundários:
● VPLS: R1<>R4; TE Path: R1-R3-R4 primary, R1-
R2-R4 backup
● VPLS: R2<>R3: TE Path: R2-R1-R3 primary, R2-
R4-R3 backup
● Crie limitação de banda no túnel TE
(automática e estática) e teste a limitação com
o Btest.
©Mikrotik 2012 146
túnel VPLS
X – número do grupo
TE Lab II
AP SSID=AS100
192.168.x0.1/24
Site 1
AS100

AP RR 192.168.x0.3/24
R1 Site 3
rede VPN:
192.168.x0.0/24
Lo:10.255.x.1

R2 R3 Lo:10.255.x.3
Lo:10.255.x.2

Site 2
R4

Lo:10.255.x.4
192.168.x0.2/24 Site 4

192.168.x0.4/24
©Mikrotik 2012 147
Resumo Geral
● MPLS melhora a performance
● Muito fácil de habilitar em configurações de
core já existentes
● Muito fácil para migrar de EoIP para VPLS
● Novas possibilidades para os ISPs oferecerem
novos serviços

©Mikrotik 2012 148


Perguntas ?

149

Você também pode gostar