Você está na página 1de 155

Treinamento MikroTik

Full Routing - ISP Engineer


Por Leonardo Rosa, BRAUSER, Brasil
Apresentação
Leonardo Rosa

● Consultor em Internetworking
desde 2006

● Instrutor MikroTik desde 2012,


certificado na Polônia

● Ministra cursos e treinamentos nas certificações MTCNA,


MTCIPv6E, MTCRE, MTCINE, MTCWE, MTCUME, MTCTCE.

2
Cursos de Certificação MikroTik

Mais informação em: mikrotik.com/training


Objetivos do treinamento
● Abordar os tópicos de maior relevância para o bom
desenvolvimento em Internetworking, discutindo várias
tecnologias de roteamento como OSPF, MPLS e BGP

4
Sumário
DIA 1 > ROTEAMENTO
1. Visão geral
2. Teoria de roteamento IP
3. RIB e FIB
4. Rotas mais específicas
5. Roteamento estático

5
Sumário
DIA 1 > ROTEAMENTO
1. Balanceamento de carga ECMP
2. Técnicas para Failover e Backup de rotas
3. Identificação de tráfego e roteamento inteligente
4. Políticas de roteamento (PBR)

6
Sumário
DIA 1 > OSPFv2
1. O que é
2. Como funciona
3. Interface loopback
4. Estrutura da rede OSPF
5. Vizinhança e Adjacência
6. Redistribuição
7. Custos
7
Sumário
DIA 2 > Endereçamento ponto a ponto
1. Teoria de redes ponto a ponto
2. Endereçamento e configuração
3. Roteamento ponto a ponto

8
Agenda

● Café da manhã às 8:00hs

● Treinamento das 08:30 às 18:30hs

● Almoço às 12:00hs (1 hora e meia de duração)

● Café da tarde às 15:30hs (30 minutos)

9
Gentileza

● Celular: em “silêncio” e atender chamadas fora da sala


● Perguntas: sempre bem vindas!
● Internet: evite o uso inapropriado
● Aprendizado: abra um bloco de notas
● Evite conversas paralelas
● Deixe habilitada apenas a interface ethernet do seu PC

10
Apresentações
● Diga seu nome
● Com que trabalha
● Seu conhecimento em redes
● Sua experiência no RouterOS
● Anote seu XY

11
ZERE A CONFIGURAÇÃO DO SEU ROTEADOR

/system reset-configuration no-defaults=yes

12
DIAGRAMA DO LABORATÓRIO

X = grupo AP
Anote seu XY
Y = router
SSID=grupoX

Grupo 1 Grupo 2

13
IDENTIFIQUE SEU ROTEADOR

/system identity set name=XY-NOME


IDENTIFIQUE AS INTERFACES

15
LAB > 1

1. Crie uma bridge com todas as interfaces


do roteador
2. Coloque seu PC em DHCP
3. Confira seu novo IP e o acesso à internet!

16
Teoria de roteamento IP + ARP

17
ANALISANDO O SEGUINTE CENÁRIO

18
TABELAS DE ROTAS RIB E FIB

19
TABELAS DE ROTAS RIB E FIB

20
Roteamento

● Opera na camada de rede (Layer3 no modelo OSI)


● O roteamento define para onde os pacotes devem ser
enviados

IP → Routes

21
Roteamento

∙ Dst. Address: redes que podem ser


alcançadas
∙ Gateway: endereço IP do próximo router
para se chegar ao destino

IP → Routes
22
Roteamento

∙ Se existirem duas ou mais rotas direcionando para


o mesmo endereço, a mais específica será usada
∙ Dst: 192.168.90.0/24, gateway: 10.0.0.1
∙ Dst: 192.168.90.128/25, gateway: 10.0.0.2
∙ Se um pacote precisa ser enviado para 192.168.90.135, o
gateway 10.0.0.2 será usado

23
Default Gateway

● Default gateway: um router (next hop) para qual


todo tráfego que não tiver destino definido será
enviado
● É reconhecido pela rede de destino 0.0.0.0/0

24
DISTANCE E CHECK-GATEWAY (DEMO)

● Check gateway – a cada 10 segundos envia ou um


ICMP echo request (ping) ou um ARP request.
● Se várias rotas usam o mesmo gateway e existe uma
rota que tem a opção check-gateway habilitada, então
todas as rotas estarão sujeitas ao comportamento do
check-gateway

25
DISTANCE POR PROTOCOLO

protocol distance

connected 0

static 1

eBGP 20

OSPF 110

RIP 120

MME 130

iBGP 200

26
CRITÉRIOS PARA MANUSEIO DAS TABELAS

● Uma rota só vai para a FIB se o processo de


nexthop-lookup foi bem sucedido
● Não admite rotas iguais na FIB
○ desempate com atributo distance (< preferido)
● A rota usada é sempre a mais específica
● O roteador busca pela rota mais específica em
toda a tabela FIB e salva a decisão em memória
● Nova busca é feita a cada alteração na RIB

27
TIPOS DE ROTAS

28
Roteamento Estático > 1

29
Roteamento Estático > 2

30
Roteamento Estático > 3

31
DIAGRAMA DO LABORATÓRIO

AP Station = 10.255.X.Y/24
LAN = 192.168.XY.0/24
XY.1 = ether2 AP = 10.255.X.254
XY.2 = PC

SSID=grupo1 SSID=grupo2

32
ECMP - Equal cost multi path
A rota possui mais de um gateway

/ip route add


gateway=10.1.1.1,10.2.2.2
Amarrando gateway
à uma interface
O processo de nexthop lookup usará a
interface como critério para validar o gateway

/ip route
add dst-address=192.168.11.0/24
gateway=10.255.1.1%wlan-grupo1
INTERFACE LOOPBACK

35
Roteamento Dinâmico

36



37
Autonomous System

● Um AS é o conjunto de redes IP e roteadores sobre o


controle de uma mesma entidade (OSPF, iBGP ,RIP)
que representam uma única política de roteamento
para o restante da rede;
● Um AS era identificado por um número de de 16 bits
(0 – 65535)
● Os novos AS’s são identificados por um número de 32
bits.

38
Roteamento dinâmico - BGP

39
OSPF
➢ O protocolo OSPF utiliza o estado do link e o algoritmo
de Dijkstra para construir e calcular o menor caminho
para todos destinos conhecidos na rede.
➢ O protocolo OSPF é reconhecido na pilha IP pelo
código 89
➢ O OSPF distribui informações de roteamento entre
roteadores pertencentes ao mesmo AS.
➢ O OSPF é um protocolo para uso como IGP.

40
LAB - OSPF básico

● Objetivo – Fechar uma sessão OSPF com cada um dos


seus vizinhos e conseguir alcançar todos.
● Apague qualquer rota estática existente em seu roteador.
● Para que o protocolo OSPF funcione, precisamos realizar
um único passo:
○ Adicionar as redes em /routing ospf network

41
Networks (redes) OSPF



42
Neighbors (vizinhos) OSPF

43
Designated router OSPF

44
Designated router OSPF

45
OSPF - Tipos de rede

➢ Três são os tipos de rede:

Point to point (não há eleição de DR e BDR)

Broadcast

46
NBMA Neighbors

➢ Em redes não-broadcast é necessário especificar os neighbors


manualmente.
➢ A prioridade determina a chance do router ser eleito DR.

47
Router ID e loopback

automaticamente
menor

1 - Copiar o endereço de loopback

2 – Colar no Roter ID
48
OSPF Instance







➢ re
.
➢ re

➢ re

49
50
OSPF – Custo de interfaces




51
Diagrama da rede

52

53
OSPF autenticação
➢ O Mikrotik suporta os seguintes métodos de
autenticação.
- Nome: Não utiliza método de autenticação.
- Simples: Autenticação em texto plano.
- MD5: Autenticação com encriptação md5.

54
CRITÉRIOS DE VIZINHANÇA E ADJACÊNCIA NO OSPF

1. Estar no mesmo segmento de rede (camada 2)


2. Estar na mesma sub-rede (camada 3)
3. Ter mesmo valor de MTU
4. Ter mesmos valores de intervalo nos pacotes de “hello” e
“router dead”
5. Ter mesmo tipo de rede (network type) ou compatível
6. Estar na mesma area (area id)
7. Ter mesmo tipo de área (area type)

55
Multi-protocol Label Switching
(MPLS)

LDP, VPNs (layer2, layer3), TE


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

57
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

58
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

59
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
Vínculos remotos
vizinhos LDP
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

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

61
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”

62
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
63
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

64
PHP
Implicit NULL

PHP
Explicit NULL

65
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

66
Layer 2 VPN

VPLS baseada em
LDP e BGP
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

68
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
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 70
Importância do L2MTU no 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
71
Importância do MTU L2

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


1500
R1

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


1526
R2

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


1526

R3

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


1522

R4

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


1500
72
Traffic Engineering
(engenharia de tráfego)
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

74
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

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

76
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

77
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
78
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”)

79
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

80
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

81
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
Túnel TE LAB

● Criar caminho principal via ether1


● Criar caminho secundário via ether3
● Direcionar os túneis VPLS para os caminhos acima
● Verificar o consumo nas interfaces físicas

83
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

84
Border Gateway Protocol
(BGP)
Configuração do Lab

AS100

AP
R2

R1 R3

R4
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


Básico do BGP
● Significa Protocolo 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)
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
Implementação do Vetor de Caminho
Add AS100
10.1.0.0/24 ao AS path

AS100
AS200

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

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


mais avançadas
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
Interior e Exterior BGP
● iBGP – pareamento entre routers do mesmo AS
● eBGP – pareamento entre routers de AS diferentes

AS200

R2
eBGP AS300
AS100 R3

R1
R4
R5
iBGP
R6
eBGP

AS400
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)
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
next-hop:10.1.1.1
AS100
Dst: 172.16.0.0/24
R1 10.1.1.1 next-hop:10.1.1.1
172.16.0.0/24

R2 R3
10.1.1.2
10.30.1.1 10.30.1.2
AS200
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

R2 R3
10.1.1.2
10.30.1.1 10.30.1.2
AS200
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.
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
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
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
usando apenas as redes de enlace
BGP Lab II
X – número do grupo
AP SSID=AS100
Peer BGP
AS100

AP
AS1x2
R2

R1 R3

R4

AS1x1
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
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.
[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
Exemplo de eBGP Multihop
loopback: 10.1.1.2 loopback: 10.1.1.1
AS100 AS200

R1 172.16.1.1 172.16.1.2 R2
Eth1 Eth1 Eth2

/routing bgp peer


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

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.

Nota: iBGP não exige multihop=yes


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
BGP Lab III
● Aprimore sua configuração usando os
endereços de loopback entre os peers iBGP
● Atribua o IP da loopback como router-id do BGP
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
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
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
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_
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”
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
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
Algoritmo 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).
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
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
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
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
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: AS-Path: 200,300
100,300,300
AS200
AS100
R3
R1

Prepend = 2 R2

172.16.0.0/24 AS300
MED
● Multi Exit Discriminator ou Metric – dica para o vizinho
externo sobre a preferência do caminho dentro do AS
● Menor métrica é 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
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).
X – número do grupo BGP Lab V
AP SSID=AS100

AS100

AP
R2
AS1x2

R1 R3

R4
AS1x1

Use as-path prepend para configurar fail-over no BGP e balanceamento de carga


como ilustrado
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)

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
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)
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
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
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: +--------------------------------------------------
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
Layer 2 VPN

VPLS baseada em BGP


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

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

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

BGP
VPN A
VPN B Site 3
OSPF as CE-PE
Site 3
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
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
Route Target
VPN A
Site 1
VPN B CE
Site 1 CE

Import: 100:1
100:4
Export: 100:2

Import: 100:3
100:2
Export: 100:1

Import: 100:1
Export: 100:3 CE
Import: 100:2
VPN A Export: 100:4 VPN B
Site 2 Site 2
CE
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
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
BGP peers
X – número do grupo
VPNV4 Lab
AP SSID=AS100 band=5Ghz
Azul 192.168.x1.0/24
AS100 Site 1

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

Você também pode gostar