Você está na página 1de 81

Treinamento MikroTik RouterOS

Certificação – MTCINE

Produzido por: Alive Solutions


www.alivesolutions.com.br
Instrutor: Guilherme Ramires
Objetivo do Curso

• Prover conhecimento teórico e prático referentes aos


recursos Internetworking básico e médio no RouterOS a
serem aplicados em redes de pequeno e grande porte.

• Após a conclusão do curso, você será capaz de planejar,


implementar, ajustar e depurar as configurações de BGP
implementados pelo RouterOS.

2
Visão Geral

• BGP
– BGP Basics (iBGP, eBGP, etc...)
– Distribuição
– Filtros
– BGP attributos
– Etc...

3
Cenário da aula

• Dividam-se em grupos de 4 alunos;


• Criem uma rede conforme mostrado no slide a
seguir;
• Os routers R1 e R2 irão se conectar ao SSID
AS100;
• Cada router da rede local terá uma rede
192.168.xy.0/24 onde:
– X é o número do grupo
– Y é o número do router

4
Setup

5
BGP
Border Gateway Protocol

6
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP - Básico

• Protocolo padrão do Router de Borda;

• Usado também como protocolo de roteamento “Inter-


AS”;

• Informações sobre a topologia da rede não são


trocadas. Somente informações sobre alcançabilidade;

• O único protocolo que pode lidar com uma rede do


tamanho da internet;

• Utiliza o algoritmo de distância vetorial.

8
BGP - Autonomous system(AS)
• Conjunto de roteadores que compartilham a mesma
política de roteamento;
• Troca de rotas:
– Routers com o mesmo AS usam o mesmo IGP
– Routers entre ASs usam EGP

• São números únicos;


• Podem ser de: 16 e 32 bits
• Números entre 64512 – 65535 são reservados pra uso
privado.

9
Implementação da distância vetorial

• O “prefixo” é informado com a lista de ASs ao


longo do caminho chamado AS Path;

• Trata todo o AS como um único ponto de


caminho;

• Pode esconder a topologia da rede dentro do AS;

• Não é capaz de prover uma rede livre de loops


dentro do próprio AS.

10
Implementação da distância vetorial

11
BGP - Capabilities
• É informado por seu peer BGP os códigos de capacidades
suportadas;

• Se uma capacidade não é suportada, uma mensagem de notificação


é enviada de volta;

• Neste caso o peer vai tentar estabelecer conexão sem a capacidade


caso ela não seja requerida;

• Alguns exemplos de capacidades do RouterOS são:


– Route Refresh(RFC 2918);
– Multi-protocol Extension(RFC 4760);
– Suporte aos “novos” AS de 4-bytes.

12
BGP - Transporte
• Funciona trocando informações de NLRI(Network Layer
Reachability Information);

• O NLRI possui diversos atributos BGP e um ou mais


atributos que eles possam estar associados;

• Utiliza o protocolo TCP na porta 179 como transporte;

• Inicialmente a tabela full routing é trocada entre os peers;

• Informações extras de atualização serão feitos após a troca


inicial.

13
Formato do Pacote

• O pacote possui 4 campos principais:


– Marker (128 bits) – Usado para autenticação;
– Length (16 bits);
– Type (8 bits) – Tipo de mensagem BGP;
– Message body.

14
BGP – Tipos de mensagens

• São 4 tipos de mensagens:


– Open: Primeira mensagem enviada após a conexão
TCP ser estabelecida. Contém a lista de capacidades e
deve ser confirmada com uma mensagem de
“keepalive”;
– Keepalive: Não contêm dados. Enviada somente para
evitar que a sessão expire;
– Update: Atualização de rotas. Contêm:
• NLRI;
• Path attributes;
– Notification: Enviada quando algum erro ocorre.
Contêm um código e sub-código do erro.

15
BGP – Session e Update

16
BGP - Networks
• Indica quais redes o protocolo deve originar a partir do router;

• Por padrão a rede somente é advertida se estiver presente na tabela de


rotas;

• O mecanismo de synchronization pode ser desativado se:


– Seu AS não provê serviço de transito;
– Todos os routers de trânsito rodam BGP;

• Desabilitar o “sync” permite uma convergência mais rápida do BGP;

• O mecanismo de “sync” pode ser muito perigoso caso a conexão esteja


muito instável;

• Pode ser configurado em: /routing bgp network

17
BGP – Multi Protocol

• O formato do pacote BGP foi designado inicialmente


no padrão IPv4;

• Uma “família” de novos atributos foram criados para


poder dar suporte aos novos tipos de endereços;

• O RouterOS suporta os seguintes:


– IPv6;
– L2VPN;
– VPN4;
– Cisco Style L2VPN.

18
BGP - Instances

• Cada instância BGP roda seu próprio algoritmo de


seleção;
– Rotas entre as instâncias são eleitas por outros métodos
como “distance”, por exemplo;

• Rotas de uma instância não são automaticamente


redistribuídas para outras instâncias;
– Para isso é necessário que você opte por esta opção:
/routing bgp instance
set <id> redistribute-other-bgp=yes

• Os atributos BGP não são herdados de outras instâncias.


19
BGP - Habilitando

• Acima está a configuração mínima.

• Se o router-id não for informado, o maior endereço IP será usado.

• Verifique o status da conexão com o comando print. Qualquer estado


diferente de established significa que não há troca de base de dados.

20
Cenários – Rede Stub

• Single Homed
– Utiliza-se AS privado(64512-65535);
– O ISP origina somente rota default;
– Na verdade o BGP não seria necessário;
– O router(ISP upstream) que fecha BGP com AS público é
que adverte as redes;
– Deve usar a mesma política do ISP
Remoção do AS privado

• Seu AS privado não pode chegar


ao ambiente público;

• Ele deve estar disponível somente


para seus vizinhos eBGP do AS
privado;

• Anuncie somente rotas


agregadas;

• Utilize o seguinte comando:

22
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP - Lab 1

• Crie uma rede BGP conforme ilustrado no


próximo slide:
– Os routers R1 e R2 vão fechar peer com o AP;
– Os routers R2 e R4 vão fechar peer entre si;
– Os routers R1 e R3 vão fechar peer entre si;

• Anuncie sua rede local;


• O AS privado deve ser removido;
• R1 e R2 originem rota default.

24
BGP – Lab 1

25
Cenários – Rede Stub

• Multihomed:
– Utiliza-se AS privado também – opcional;
– Pode ser usado:
• Como link backup/principal;
• Balanceamento de carga;
– O router(ISP upstream) que fecha BGP com AS público
é que adverte as redes;
– Deve usar a mesma política do ISP
– upstream.

26
Cenários não stub

• Necessita de um AS público;
• Uma range IP de seu RIR;
• Pode utilizar uma política de
roteamento diferente de
seus ISPs;
• Pode ser usado:
– Como link backup/principal;
– Balanceamento de carga;
– Maiores políticas de
roteamento avançado.

27
BGP - Contrack

• A contrack não é capaz de manter válidas as


conexões em um ambiente multihomed;

• Pacotes relacionados a uma conexão podem fluir


por diferentes caminhos;
– Por isso é muito importante que neste tipo de cenário
você JAMAIS use drop conexões inválidas no firewall.

• A contrack pode ser desabilitada para obtenção


de uma melhor performance.
28
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP – Lab 2

• Adicione o R3 ao mesmo AS do R1;

• Adicione o R4 ao mesmo AS do R2;

• Crie um peer entre R4 e R3;

• Habilite o OSPF para distribuir rotas conectadas


nos routers de mesmo AS;

• Anunciem ambas as redes locais de seus AS;


30
BGP – Lab 2

31
BGP – Lab 2

32
BGP – Lab 2

• O BGP distribui somente a melhor rota. Enquanto em R1 a


melhor rota é recebida de R3, R1 não distribui de volta as
redes 12.0/24 e 14.0/24 para R3.
33
eBGP e iBGP

• iBGP: peers entre routers do mesmo AS;


• eBGP: peers entre routers de outros AS;

34
eBGP

• Quase sempre formado por peers que estão


diretamente conectados;

• A opção “multi-hop” é exigida se o peer não


estiver diretamente conectado;

• Adiciona o AS ao prefixo de caminho advertido;

• Por padrão a opção “Next-hop” e alterada para


“self”.

35
eBGP – Exemplo de multihop

• Neste exemplo podemos ver um bom exemplo do uso do multihop mesmo


em routers diretamente conectados.
• Nesta configuração foi utilizado endereço loopback para conexão entre os
peers e portanto seria necessário o uso de rota estática ou algum IGP para
existir alcançabilidade IP entre os mesmos.
• Esta é uma ótima prática para evitar ataques DoS.
36
iBGP
• Por padrão o “next-hop” não é modificado
– Utilize algum IGP(RIP, OSPF, estático) para garantir a
alcançabilidade IP dentro do AS.
• Atributos aprendidos a partir do iBGP não são alterados
para não impactar a seleção de caminho para rede externa;
• O as_path não é manipulado;
• Prover formas de controlar pontos de saída do AS;
• Rotas externas recebidas de um peer iBGP não são
passadas para outros peers iBGP;
– Para que isso ocorra é necessário o uso de full mesh ou router
reflect.

37
iBGP

38
LoopBack
• Elimina a dependência de estabelecimento da conexão
TCP interface física;
• Comumente utilizado entre peers iBGP;
• No MikroTik podemos utilizar uma bridge vazia como
interface loopback;

39
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP – Lab 3

• Vamos incrementar o setup atual utilizando


endereços loopback entre peers iBGP com o
seguinte endereçamento 10.255.x.y/32;

• Adicione o endereço loopback na network do


OSPF;

• Modifique o router-id do OSPF e do BGP para


o endereço loopback;

41
Distribuição de rotas

• As rotas IGP(estático, OSPF, RIP) podem ser distribuídas


da seguinte forma:
– /routing bgp instance
– set default redistribute-static=yes
– set default redistribute-ospf=yes

• O prefix origin será “incomplete”;


• Existe o risco de todas rotas IGP serem publicadas;
• Utilize filtros para evitar estas propagações
indesejadas.

42
Exemplo de distribuição

• Desta forma os pacotes serão cessados a não ser


que exista uma rota mais especifica;
• É um boa forma de publicar uma “supernet”.
43
Routing Filters
• É a principal ferramenta para controlar e modificar as
informações de roteamento;
• São organizados em canais muito similar ao firewall;
• Pode especificar quais configurações serão aplicadas aos
peers BGP ou como filtro de saída da própria instância;
• Primeiramente os prefix passam pelo filtro da instância e
somente após isso é que passam pelos filtros dos peers.

44
Exemplo de filtro

45
Filtrando prefixo

46
Filtro AS PATH

• Pode ser configurado para permitir updates


somente de/para um AS especifico;
• Suporta expressões regulares tais como:
• “ . ” – qualquer caractere;
• “ ^ “ – inicio do as_path;
• “ $ “ – final do as_path;
• “ _ “ – qualquer valor entre vírgulas, no início, no fim
ou em um intervalo especifico.

47
Mais opções de Filtros AS Path

• .* - Todas as rotas BGP


• ^$ - Rotas que se originam no meu AS
• ^(100|200|300)$ - Rotas originadas no 100, 200 ou 300
• ^1002$ - Rotas que se originam no AS 1002 , adjacente ao
meu AS _1002$ - Rotas que terminam no AS 1002
• ^1002_ - Rotas originadas no AS 1002
• _1002_ - Rotas que passaram no AS 1002
• (...)+(...) – Uma ou várias ocorrências do caractere
especificado antes ( + = ou )
BGP – Reconfiguração “leve”

• Quando usamos action=discard as rotas não


serão mais atualizadas após a aplicação do filtro;
• Solução?
• Use action=reject para manter as rotas na memória;
• Modo Dynamic(O peer deve ter suporte a capacidade
“refresh”):
• O peer vai atualizar as rotas após as alterações serem feitas;
• Neste caso não há uso extra de memória;
• Não é feito automaticamente – é necessário você executar o
comando “refresh”.

49
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP – Lab 4

• Adicione filtros de forma que:


– R1 não receba o prefixo 192.168.x2.0/24 do AP;

– R2 não receba o prefixo 192.168.x1.0/24 do 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;

51
BGP – Lab 4

• Vamos verificar R3. Se os filtros foram


empregados corretamente o tracert para a
rede x2 deverá ir por R4 e o tracert para x4
deverá ir pelo AP.

52
BGP – Algoritmo de decisão
• BGP utiliza o simples “melhor caminho” para o destino;
• BGP sempre propaga o “melhor caminho” para os
vizinhos;
• Diferentes atributos de caminho são usados para
determinar o “melhor caminho” como:
– weight;
– Next-hop;
– As_path;
– Local_preference;
– Etc…

53
Seleção de melhor caminho
• Validação do “next-hop”;
• Maior “weight” – default=0;
• Maior “local_pref” – default=100;
• Menor “as_path”;
• Caminho gerado localmente(aggregate, BGP network, etc.);
• Menor tipo “origin” – (IGP, EGP, incomplete);
• Menor MED – default=0;
• eBGP é preferido sobre iBGP;
• Rota proveniente do menor Router ID;
• Menor cluster de router reflect – default=0;
• Caminho proveniente do vizinho com menor endereço IP.

54
Nexthop

• Endereço IP utilizado para alcançar um determinado


destino;
• Para o eBGP o nexthop é o endereço IP de seu vizinho;
• O nexthop informado pelo eBGP é carregado dentro do
iBGP.

55
Nexthop self

• Força o BGP a utilizar seu próprio IP como


nexthop;

56
Weight
• O weight é um atributo de uso próprio do router;
• Prefixos sem atribuição deste valor por padrão terá o
valor 0 atribuído;
• Router com o maior peso será preferido;
• Boa forma de controla o fluxo de upstream.

57
Local Preference
• Indica que caminho tem preferência para deixar o AS;

• Caminho com maior local_pref será escolhido (default: 100);

• É informado junto com o AS;

• Outra boa forma de controle de upstream.

58
AS Path

• Lista de números AS que são atualizados


sempre que se passa por um AS;

59
As Path Prepend

• A manipulação do as_path pode ser feita pra


influenciar a seleção de melhor caminho dos
outros routers;

60
As Path Prepend

• Desta forma pode-se influenciar o tráfego de


upstream dos outros routers. O que de forma
indireta irá influenciar seu próprio tráfego de
downstream.

61
Origin

• Informação sobre a origem da rota:


– IGP: interna ou gerado no próprio AS;

– EGP: rota originada por um protocolo externo;

– Incomplete: origem desconhecida. Geralmente


ocorre quando a rota é redistribuída pelo BGP.

62
MED

• Multi Exit Discriminator ou métrica. Funciona


como sugestão ao vizinho externo sobre a
preferência de caminho dentro do AS;
• A menor métrica é escolhida;
• Atributo trocado entre ASs e usado para tomar
decisão de caminho dentro deste AS e não será
passado adiante a um terceiro AS;
• Atributo ignorado se for recebido de um AS
diferente.
63
MED - Exemplo

• R1, R2 e R3 publicam a mesma rede para R4 com diferentes valores


de MED. R4 vai comparar somente valores de MED vindos de R2 e
R3 e o MED de R1 será ignorado;

• Outros atributos serão usados para seleção de melhor caminho.

64
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP – Lab 5

• Utilize as_path prepend para balanceamento de


carga e failover conforme ilustra a imagem.

66
Community

• Atributo usado para agrupar destinos;


• Filtros podem ser facilmente aplicados para todo
o grupo;

• Existem também alguns grupos padrão:


– No-export: não publica para o peer eBGP;
– No-advertise: não publica para nenhum peer;
– Internet: publica para a comunidade internet;
– Local-as: não publica pra fora do AS local.

67
Community - Exemplo

• Supomos que você não queira que R2


propague rotas aprendidas de R1:

68
Community – Cont...
• Tem o valor de 32bits e é escrito no formato: “xx:yy”;
• Permite ao administrador maiores políticas de controle;
• Simplifica a configuração de upstream;
• Pode ser usado pelo ISP para:
– Opções de as_prepend;
– Restrições geográficas;
– Blackholing, etc…

• Usado também para checar o Internet Routing Registry


(IRR).

69
Community – outro exemplo

• AS 100 define communitys publicas;


– 100:500 – adverte para todos os peers;
– 100:501 – adverte para o AS 400.

70
Community – outro exemplo – cont...

71
Exemplos para ISPs
aut-num: AS2588
as-name: LatnetServiss-AS
descr: LATNET ISP
member-of: AS-LATVIA
remarks: +--------------------------------------------------
remarks: |
remarks: | x=0 Announce as is
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 Announce to LIX (Latvian Internet Exchange)
remarks: | 2588:666 Don't announce (blackhole)
remarks: | 2588:70x Announce to uplinks with $x prepend
remarks: | 2588:900 Recieved from LIX (Latvian Internet Exchange)
remarks: |
remarks: | For more information please use the email address
remarks: | iproute (at) latnet (dot) lv
remarks: +--------------------------------------------------

72
Agregação
• É o conceito de sumarização de rotas mais especificas em uma supernet;
• Pode ser usada para esconder a topologia;
• Funciona somente nos routers da mesma instância BGP;

73
BGP – Router Reflect

• Re-adverte rotas iBGP para evitar o full mesh;

• Reduz a contagem de mensagens de comunicação;

• Reduz também a quantidade de dados por mensagem;


– Neste caso somente o melhor caminho é “refletido”.

74
Router Reflect - configuração
• RR é configurado habilitando a opção “client-to-client
reflection” desta forma:
/routing bgp instance
set default client-to-client-reflection=yes

• Confirme o peer RR em sua configuração desta forma:


/routing bgp peer
add route-reflect=yes remote-peer=x.x.x.x

• RR deve ser habilitado SOMENTE no roteador “refletor”;


• O RouterOS não pode ser configurado puramente como RR.

75
BGP - Confederation
• Agrega múltiplos ASs em um único AS;
• Para o mundo externo a confederation aparece como um
único AS;
• Cada AS deve estar rodando full mesh ou RR;
• Troca de rotas entre confederados eBGP são entendidas
como rotas de iBGP;
• O as-path dentro da confederation aparecerá entre
parênteses: as-path=(30,20);

76
Confederation – As Path

77
Confederation – As Path

78
AVISO IMPORTANTE
• Peço aos Senhores que durante este
treinamento não utilizem a função COPY da
caixas de diálogo devido a problemas gerados
na “clonagem” de informações que devem ser
únicas para o correto funcionamento das
aplicações.
BGP – Lab 6

80
Obrigado!!

Contato: ramires@alivesolutions.com.br
Site: www.alivesolutions.com.br
Fan Page: www.fb.com/AliveSolutions

Você também pode gostar