Guida MikroTik
RoutingAvanzato

VRF in RouterOS v7: routing virtuale isolato per multi-tenant e MPLS VPN

Configura VRF (Virtual Routing and Forwarding) in RouterOS v7 per isolare tabelle di routing per clienti o servizi diversi, con uso in contesto MPLS BGP VPN e assegnazione interfacce.

Cos'è VRF e quando usarlo

VRF (Virtual Routing and Forwarding) crea istanze di routing completamente isolate sullo stesso router fisico. Ogni VRF ha la propria tabella di routing, indipendente dalle altre e dalla tabella main. È essenziale per: separare traffico di clienti diversi su un PE router MPLS, isolare servizi interni (es. gestione out-of-band), implementare L3VPN BGP. RouterOS v7 supporta fino a 1024 VRF.

Creare e configurare un VRF
# 1. Creare il VRF e assegnargli un'interfaccia
/ip/vrf/add name=cliente-A interfaces=ether3

# 2. Assegnare un IP all'interfaccia nel contesto VRF
#    (la rotta connected va automaticamente nella tabella VRF)
/ip/address/add address=10.100.1.1/24 interface=ether3

# 3. Aggiungere una rotta statica specifica per il VRF
/ip/route/add \
  dst-address=0.0.0.0/0 \
  gateway=10.100.1.254@cliente-A \
  routing-table=cliente-A \
  comment="Default GW per cliente A"

# 4. Verificare le rotte nel VRF specifico
/ip/route/print where routing-table=cliente-A

# 5. Ordine VRF importante: se main ha interfaces=all, i VRF figli non ricevono interfacce
#    Riordinare se necessario:
/ip/vrf/print
/ip/vrf/move 1 0   # sposta VRF cliente-A sopra il main

VRF con BGP per L3VPN (MPLS)

Nel contesto MPLS L3VPN, ogni VRF cliente è associato a un Route Distinguisher (RD) che rende univoci i prefissi anche quando diversi clienti usano lo stesso spazio di indirizzi. I Route Target (RT) controllano quali prefissi vengono importati/esportati tra VRF tramite BGP VPNv4.

VRF con BGP VPNv4
# Configurare RD e RT per il VRF cliente
/routing/bgp/vpn/add \
  label-allocation-policy=per-vrf \
  vrf=cliente-A \
  export.route-targets=65001:100 \
  import.route-targets=65001:100 \
  rd=65001:100

# Creare connessione BGP per il PE (template VRF)
/routing/bgp/template/add \
  name=pe-template \
  vrf=cliente-A \
  as=65001

# Verificare le rotte VPNv4
/routing/route/print where afi=vpnv4

Nota sul routing tra VRF (route leaking)

Per permettere la comunicazione controllata tra VRF diversi (es. un VRF cliente accede a un VRF shared-services) si può usare il route leaking: aggiungere rotte statiche che puntano al gateway usando la notazione gateway@altro-vrf. Questa tecnica permette traffico selettivo senza unire completamente i VRF.

Route leaking tra VRF
# Permettere al VRF cliente-A di raggiungere il server DNS nel VRF shared
/ip/route/add \
  dst-address=172.16.0.0/24 \
  gateway=172.16.0.1@shared-services \
  routing-table=cliente-A \
  comment="DNS/NTP nel VRF shared accessibili da cliente-A"
Il route leaking va usato con cautela: ogni rotta 'trapelata' rompe l'isolamento VRF. Documenta sempre quali prefissi sono condivisi e perché. In contesti MSSP/carrier, preferisci l'architettura BGP VPNv4 standard con RT import/export invece del leaking manuale.
VRFvirtual routingrouting isolationMPLS VPNL3VPNmulti-tenantip vrfroute distinguisherroute targetBGP VPN

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