Infraestrutura da Internet

18/04/2011

BGP no Mikrotik (IX): Filtros

Filed under: BGP, Mikrotik, Protocolos, TCP/IP — juliaobraga @ 19:20

Cada homem interpreta os limites do seu campo de visão
como sendo os limites do mundo.

Arthur Schopenhauer

Introdução

Naturalmente, filtros, neste texto são equivalentes a filtros no BGP, exclusivamente. Outra informação importante é de que todos os Mikrotiks foram atualizados na Versão 5.1.

Para o que segue, iremos nos referenciar à Figura 1, abaixo, última topologia vista no artigo [Braga, 2011]1.

 

Figura 1: Empareamento independente do MK6 (AS65536) ao MK2 (AS65532).

Como filtrar no Mikrotik

Os exemplos preliminares de filtros concentrarão no componente MK8.6, da topologia mostrada na Figura 1, acima. Filtros do BGP no Mikrotik, são feitos no caminho mostrado na Figura 2, via Winbox.

 

Figura 2: Onde os filtros são feitos, no Mikrotik.

 

A janela “Route Filters” é onde estarão os filtros. Quando clicamos no “+”, aparece a janela de inclusão dos filtros, que possui 4 abas, vistas nas Figuras 3 e 4, que seguem.

 

Figura 3: Abas “Matches” e “BGP”

 

Figura 4: Abas “Actions” e “BGP Actions”

 

Como pode-se verificar são muitas as alternativas que giram em torno de Filtros, o que permite uma quantidade enorme de combinações. Na primeira aba, o parâmetro “Chain” deve indicar o que estamos filtrando. Os principais filtros estão associados ao emparemento que fazemos. A Figura 5 abaixo, exibe a maneira como indicamos, no empareamento, quais os filtros associados a ele, isto é, filtros de entrada e filtros de saída. A primeira parte da Figura 5 mostra o empareamento com o MK2, sem nenhuma indicação de filtros, enquanto que a segunda aba exibe o nome dados aos filtros de entrada e de saída, respectivamente, “MK2_entra” e “MK2_sai”. Uma vez salva, a aba “Matches” (Figura 3) irá mostrar estas duas identificações, no “Chain”.

 

Figura 5: Dando nomes aos filtros de entrada e saída, associados ao empareamento.

 

O estado atual do MK8.6

A listagem abaixo mostra o estado do MK8.6 em relação à tabela de rotas e aos anúncios que ele está fazendo.

[admin@MK8-6] > ip route print
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADb  10.201.0.0/23                      10.202.0.13        20
 1 ADb  10.202.0.0/23                      10.202.0.13        20
 2 ADC  10.202.0.12/30     10.202.0.14     MK2                0
 3 ADb  10.203.0.0/23                      10.202.0.13        20
 4 ADb  10.204.0.0/23                      10.202.0.13        20
 5 ADb  10.205.0.0/23                      10.202.0.13        20
 6 ADb  10.206.0.0/23                      10.202.0.13        20
 7 ADb  10.207.0.0/23                      10.202.0.13        20
 8 ADb  10.226.0.0/24                      10.202.0.13        20
 9 ADb  10.226.1.0/24                      10.202.0.13        20
10 ADC  10.236.0.1/32      10.236.0.1      LoopBack           0
[admin@MK8-6] > routing bgp advertisements print
PEER     PREFIX               NEXTHOP          AS-PATH
MK2      10.236.0.0/23        10.202.0.14

 

Filtrando o recebimento de anúncios dos próprios blocos

Filtrar a entrada dos próprios blocos não faz muito sentido já que o mecanismo de prevenção de laços infinitos do BGP já faz isso. Isso pode ser visto nas rotas do próprio MK8.6 e nos anúncios de MK2 para MK.6, mostrado na relação a seguir:

 

[admin@MK2] > routing bgp advertisements print peer=MK8.6
PEER     PREFIX               NEXTHOP          AS-PATH
MK8.6    10.201.0.0/23        10.202.0.13      65531
MK8.6    10.206.0.0/23        10.202.0.13      65537,65536
MK8.6    10.204.0.0/23        10.202.0.13      65531,65534
MK8.6    10.226.1.0/24        10.202.0.13      65537,65536
MK8.6    10.205.0.0/23        10.202.0.13      65531,65534,65535
MK8.6    10.207.0.0/23        10.202.0.13      65537
MK8.6    10.203.0.0/23        10.202.0.13      65533
MK8.6    10.226.0.0/24        10.202.0.13      65537,65536
MK8.6    10.202.0.0/23        10.202.0.13

 

Entretando, volta e meia ouvimos: “Filtre seus blocos, na entrada!”. Para efeitos ditáticos, vamos fazer isso. A Figura 6 mostra como e os respectivos resultados mostrando, como foi inócuo tal filtro.

 

Figura 6: Filtro inócuo de entrada e os resultados.

Em 1 a indicação da existência do filtro, mostrando a “Chain” (MK2_entra), o bloco filtrado e a ação do filtro (“discard”). Em 2 e 3, as abas do filtro, como foram preenchidas. Em 4, a tela do terminal, listando os resultados para efeitos de comparação.

Outro filtro importante de entrada é não deixar entrar a rota padrão, embora possa ver que MK2, único vizinho de MK8.6, não anuncia a rota padrão. Esta decisão é do administrador do MK8.6. Um bom administrador vê que isso não precisa ser feito. Mas, o administrador do MK2 pode, involuntariamente, anunciar a rota padrão. Copiando o primeiro filtro e alterando somente o bloco para 0.0.0.0/0, temos o resultado da Figura 7.

 

Figura 7: Filtrando a rota padrão, na entrada.

 

Filtrando a saída

A recomendação é de imediato: somente deixe passar os blocos que serão anunciados. Isso inclui o bloqueio da rota padrão, para que não haja efeitos involuntários. Mesmo que a rota padrão não esteja sendo usada, como é o caso do MK8.6 (ela pode vir a ser usada a qualquer momento). Antes de fazer este bloqueio, vamos confirmar o funcionamento de filtros, pois não vimos isso ainda. Se fizermos o bloqueio do bloco do MK8.6, ilustramos o fato. Vejamos na Figura 8, onde uma nova cópia do primeiro filtro é suficiente, desde que mudemos a “Chain”.

 

Figura 8: Filtrando a saída do próprio bloco.

 

O bloco não aparece mais na listagem de anúncios, mostrado no terminal, abaixo da janela de filtros. Então, funciona! Mas este filtro não interessa, exceto pelo efeito didático. Na realidade, tal filtro é indevido, pois impede a divultação mais importante desejada pelo administrador do MK8.6! Vamos então ao que interessa, bloqueando a rota padrão e tudo mais, exceto o bloco que MK8.6 quer anunciar. A técnica no Mikrotik é bloquear tudo, menos o bloco a ser anunciado. Na Figura 9, mostra o resultado, usando o próprio bloqueio de efeito didático. Um parâmetro na primeira aba do filtro, chamado de ‘Invert Matcher”, faz este trabalho. Como o bloco está com a ação “discard”, o Mikrotik irá bloquear tudo, menos o bloco definido em “Prefix”. Assim, até a rota padrão foi bloqueada!

 

Figura 9: Filtrando tudo, menos o bloco que se deseja anunciar.

 

Uma outra maneira de fazer isso é usando três filtros: o primeiro bloqueia a rota padrão, o segundo libera o bloco e o terceiro, bloqueia todo o resto (sem especificar qualquer coisa no campo “Prefix”.

Referências

  1. Braga, J., BGP no Mikrotik (VII): Mesmo AS em empareamentos remotos e independentes. Infraestrutura da Internet. 2011. Disponível em: http://juliaobraga.wordpress.com/2011/04/04/bgp-no-mikrotik-vii-mesmo-as-em-empareamentos-remotos-e-independentes/. Acessado em 15/04/2011 11:13.

2 Comentários »

  1. [...] BGP no Mikrotik (IX): Filtros [...]

    Pingback por BGP no Mikrotik: Dois operadores de trânsito « Infraestrutura da Internet — 08/08/2011 @ 16:37


Feed RSS para comentários sobre este post. URI de trackback

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Tema: WordPress Classic. Blog no WordPress.com.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.