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.
Por outro lado, uma recomendação
importante e pouco usada: ao se estabelecer empareamentos BGP,
implemente primeiro os filtros, para depois estabelecer o empareamento
propriamente dito. Porque? Porque se evitará de poluir a tabela de
roteamento do roteador eliminando a necessidade de reinicializá-lo.
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 e, que 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 divulgação
mais importante e 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.
Controlando os anúncios com o Networks
Uma questão a lembrar é o uso do Prefix Length nos filtros que juntamente com o “Networks”, flexibiliza as regras de filtragem.
Suponha que o AS tenha um bloco IPv4, /20 (Por exemplo, x.y.n.0/20). E que no Networks inclua-se somente um /24 (ex. x.y.zj.0/20,
n <= j <= n+15), pois é o que se deseja anunciar em uma
determinada conexão BGP. Então, o filtro abaixo, garante que somente o
/24 será anunciado:
Prefix => x.y.n.0/20 Prefix Length => 20-24
Se, entretanto, o Prefix Length não for utilizado, todo o bloco /20 será anunciado e ele deverá estar representado no Networks. A variedade de alternativas implica na necessidade de se planejar os filtros com esmerado cuidado.
Vale lembrar que o BGP de trânsito (ou de transporte) deverá ter a opção Redistribute Other BGP, marcada em Instances (também, distribui prefixos entre instâncias). Em todos os seus empareamentos, o Nexthop Choice deve ser force self evitando um grave erro. Em anúncios de terceiros, para um PTT, o Next-Hop
estará errado ao indicar o IP do roteador do consumidor de trânsito (ou
de transporte) e, não o do roteador que oferece o trânsito (ou o
transporte), como seria o correto. Neste caso, a punição pode ser a
desconexão com o ATM (o pessoal do PTT.br avisa antes…). Finalmente,
deve-se lembrar que o Client to Client Reflection, ainda em Instances, distribui prefixos entre os membros (empareados), de uma mesma instância.
Há algumas variações sobre a questão do force self.
Basicamente ele se aplica somente ao último empareado do trânsito (ou
do transporte). Muito embora, se existe roteadores intermediários, o
correto é que cada um deles passe o Next-Hop de forma correta. Isto implica em uma aparente regra: sempre use o force self.
E teste, quando no PTT, via o LG. Quando em um trânsito somente, faça
um traceroute de fora, via um outro LG qualquer e veja o estado do
caminho.
Assuntos relacionados, neste blogue
- BGP no Mikrotik: Dois operadores de trânsito. Versão anterior a este artigo.
- BGP em Mikrotik – Parte I
- BGP em Mikrotik – Parte II
- BGP em Mikrotik – Parte III
- BGP no Mikrotik (IV): Anúncios e rotas no FFE
- BGP no Mikrotik (V): Analisando anúncios de implementações de BGP
- BGP no Mikrotik (VI): Estabelecendo enlaces (rotas) backup
- BGP no Mikrotik (VII): Mesmo AS em empareamentos remotos e independentes
- BGP no Mikrotik (VIII): Alterando a política de roteamento
- Atributos do BGP
- BGP: Tabelas de roteamento
- Convergência, no BGP
- A Seta IPv6: Preparando para trabalhar com IPv6 no Mikrotik
- Conectando-se a um PTT, em Mikrotik (IPv4 e IPv6)
- BGP: topologias, abstrações, eBGP e iBGP (Parte 1)
Referências
- Braga, J., BGP no Mikrotik (VII): Mesmo AS em empareamentos remotos e independentes. Infraestrutura da Internet. 2011. Disponível em: https://juliaobraga.wordpress.com/2011/04/04/bgp-no-mikrotik-vii-mesmo-as-em-empareamentos-remotos-e-independentes/. Acessado em 15/04/2011 11:13.
fonte: https://ii.blog.br/2011/04/18/bgp-no-mikrotik-ix-filtros/
0 comentários:
Postar um comentário