BGP in RouterOS v7: instance, connection, local.role e output.network
Configura BGP v7 in RouterOS: creazione dell'instance, connessioni eBGP e iBGP con local.role, annuncio di prefissi con output.network e differenze fondamentali rispetto alla v6 (nessun /routing/bgp/instance implicito).
BGP in RouterOS v7: cosa cambia rispetto alla v6
In RouterOS v6 il processo BGP veniva identificato automaticamente tramite il router-id; la configurazione era concentrata in /routing/bgp/instance e /routing/bgp/peer. In RouterOS v7 l'architettura è completamente diversa: l'istanza BGP è esplicitamente dichiarata in /routing/bgp/instance con un AS number, e ogni sessione peer è configurata in /routing/bgp/connection con sub-parametri dotted (local.role, remote.address, remote.as, output.network, ecc.). Non esiste più il vecchio menu /routing/bgp/peer.
# 1. Creare l'istanza BGP con il proprio AS number /routing/bgp/instance/add \ name=bgp-main \ as=65001 \ router-id=10.0.0.1 # 2. Creare la connessione eBGP verso il peer ISP (AS 65002) /routing/bgp/connection/add \ name=peer-isp \ instance=bgp-main \ remote.address=203.0.113.2 \ remote.as=65002 \ local.role=ebgp \ local.address=203.0.113.1 \ output.network=mynetworks \ comment="Peering eBGP con ISP upstream" # 3. Definire i prefissi da annunciare al peer /routing/bgp/network/add \ network=192.0.2.0/24 \ comment="Il nostro blocco IP pubblico" # Verificare sessione BGP e rotte ricevute /routing/bgp/session/print /ip/route/print where bgp
local.role: il parametro chiave per eBGP e iBGP
Il parametro local.role definisce il tipo di sessione BGP e influenza le policy di propagazione predefinite. I valori principali sono:
- ebgp: sessione esterna (tra AS diversi). Decrementa TTL, non propaga attributi iBGP.
- ibgp: sessione interna (stesso AS). Usato tra router nello stesso AS per propagare rotte BGP internamente.
- ebgp-rs: route server (IXP). Non modifica next-hop, non aggiunge AS path.
- ebgp-rs-client: client di un route server.
# Router A (route reflector) — AS 65001 /routing/bgp/instance/add name=ibgp-rr as=65001 router-id=10.255.0.1 /routing/bgp/connection/add \ name=ibgp-to-routerB \ instance=ibgp-rr \ remote.address=10.255.0.2 \ local.role=ibgp \ local.address=10.255.0.1 \ reflect=yes \ comment="Route Reflector -> Client" # Router B (client del RR) — AS 65001 /routing/bgp/instance/add name=ibgp-client as=65001 router-id=10.255.0.2 /routing/bgp/connection/add \ name=ibgp-to-rr \ instance=ibgp-client \ remote.address=10.255.0.1 \ local.role=ibgp \ local.address=10.255.0.2
output.network e input/output filter
Il parametro output.network specifica la lista BGP network (definita in /routing/bgp/network) da annunciare a quel peer. Per applicare filtri su rotte in ingresso o uscita si usano input.filter e output.filter che puntano a chain di route filter definite in /routing/filter/rule.
# Creare una chain di filtro per accettare solo prefissi /24 o più specifici
/routing/filter/rule/add \
chain=bgp-in-isp \
rule="if (dst-len < 8 || dst-len > 24) { reject } else { accept }"
# Applicare il filtro alla connessione BGP
/routing/bgp/connection/set \
[find name=peer-isp] \
input.filter=bgp-in-ispContinua con
Configura senza fatica con l'AI
In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.
Prova WispOS