RouterOS 7
Configurando protocolo BGP

Paulo Ricardo
4 min readJan 15, 2023

--

RouterOs 7

Este artigo tem o objetivo de tratar brevemente sobre as principais mudanças que ocorreram no BGP do sistema RouterOS v6 para RouterOS v7

BGP-Networking

  • RouterOS v6: Na versão 6 você consegue informar os prefixos originados por seu ASN através do caminho Routing > BGP > Networks
  • RouterOS v7: Já na versão 7 para informar os prefixos que serão originados por seu ASN, é necessário criar uma address list, contendo a respectiva quebra do ASN, segue o caminho: IP > Firewall > Address Lists.

Anúncio dos Prefixos

  • RouterOS v6: Na versão 6 é possível anunciar seu prefixo através da função Synchronize, sem que seja necessário adicionar de forma estática os prefixos que serão anunciados!
  • RouterOS v7: Já na versão 7, você precisa ter os prefixos que serão anunciados instalado em sua FIB de forma manual, pois não há mais a opção de Synchronize.

Configuração de instância

  • RouterOS v6: Na versão 6 é possível configurar uma nova instância através do seguinte caminho: Routing > BGP > instances
  • RouterOS v7: Na versão 7 você pode configurar sua instância diretamente em um peer, ou caso prefira, também é possível criar um template e associar o mesmo no peer desejado, através do seguinte caminho: Routing > BGP > Templates

Configuração de Filtros

  • RouterOS v6: Na versão 6 possuimos uma GUI que nos permite manipular nossos anúncios
  • RouterOS v7: Na versão 7 os filtros devem ser configurados através do terminal, ou através de uma GUI, porém via linha de comando.

Configuração de Peer BGP

  • RouterOS v6: Na versão 6 há o campo Routing > BGP > Peers onde possibilita estabelecer uma sessão
  • RouterOS v7: Já na versão 7 há o campo Routing > BGP > Connection, onde permite que seja configurado uma nova sessão BGP

Exemplo sessão BGP RouterOS v7

Neste exemplo estaremos tratando sobre os seguintes assuntos:

Configurar Filtro BGP

  • INPUT
    -
    Aplicar Local-Preference
  • OUTPUT
    -
    Aplicar community
    - Aplicar AS-path

Configurar Conexão BGP

  • Template
  • Networks
  • Peer BGP

Filtros BGP (Input)

/routing filter rule add chain=Link-Scorpion-IPv4-IN disabled=no rule="set
bgp-local-pref 900; accept;"

/routing filter rule add chain=Link-Scorpion-IPv4-IN disabled=no
rule="if(dst==0.0.0.0/0){accept;}"

/routing filter rule add chain=Link-Scorpion-IPv4-IN disabled=no
rule="if(dst in 172.20.20.0/22 && dst-len in 22-23){reject;}"

/routing filter rule add chain=Link-Scorpion-IPv4-IN disabled=no
rule="reject;"

Filtros BGP (Output )

Exemplos de anuncios BGP:

/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.20.0/22) {accept;}"
/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.20.0/23) {accept;}"
/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.22.0/23) {accept;}"
/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.20.0/24) {accept;}"
/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.21.0/24) {accept;}"
/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.22.0/24) {accept;}"
/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if(dst == 172.16.23.0/24) {accept;}"

Através deste Exemplo obtemos o mesmo resultado:

/routing filter rule add chain=Link-Scorpion-IPv4-OUT disabled=no rule="if (dst in == 172.16.20.0/22 && dst-len in 22-24){accept;}"

Exemplo de filtro com community:

if(dst == 172.16.20.0/24) {set bgp-communities 777:666; accept;}
Exemplo aplicando prepend (AS-Path) com mikrotik:

if(dst == 172.16.21.0/24) {set bgp-path-prepend 3; accept;}

Configurando Peer BGP

Networks

Blackhole

Peer-BGP

Tabela de comandos úteis

Operadores Lógico

Operadores Relacionais

Fatos relevantes RouterOS 7

Para realizar todos os testes referenciados ao protocolo BGP foi utilizado a versão 7.6 virtualizada do sistema RouterOS.

  • BGP Received routes:
    - Na versão 7.6 do routerOS, mesmo quando é negado os prefixos que serão aprendidos via eBGP, os mesmos continuam sendo listados na tabela de rotas com o status de inválido, segue o exemplo:
  • BGP-Sessions:
    - No presente momento, caso seja utilizado a função de “refresh” ou “resend” para atualizar a tabela de rotas aprendidas via eBGP, o peer referenciado mudará o status para down e permanecerá neste enquanto o equipamento não for rebootado! Através dos testes realizados em laboratório com equipamentos virtualizados, mesmo após desabilitar e habilitar a sessão BGP ou até mesmo alterando o status da interface, o peer não retornou para a condição de estabelecida!
    Sendo assim, é recomendado NÃO utilizar este recurso da mikrotik.

Para visualizar o export dos equipamentos utilizados, acesse ao link do github onde o projeto foi disponibilizado!

--

--