RouterOS 7
Configurando protocolo BGP
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!