QinQ 802.1ad: doppio tag VLAN per reti provider
Come configurare QinQ (802.1ad) su RouterOS v7: doppio tag VLAN con ether-type 0x88a8 sul bridge provider, tag-stacking sulle porte customer, scenari tipici WISP/ISP.
QinQ (802.1ad) — anche noto come *provider bridging* o *double tagging* — aggiunge un secondo header VLAN (S-VLAN, outer tag) sopra a quello già presente (C-VLAN, inner tag del cliente). Questo permette a un ISP o WISP di isolare il traffico di clienti diversi sulla propria infrastruttura anche quando i clienti usano lo stesso spazio VLAN ID, senza conflitti.
Perché un WISP ne ha bisogno
Lo spazio VLAN 802.1Q ha solo 4094 VID utilizzabili. Su una rete d'accesso con migliaia di clienti, o quando trasporti VLAN di clienti business che hanno già le LORO VLAN interne, finisci i VID e rischi conflitti. Con QinQ il provider 'avvolge' tutto il traffico di un cliente/sito in una sola S-VLAN, lasciando intatte le C-VLAN del cliente: il backbone trasporta migliaia di clienti usando poche centinaia di S-VLAN, e il cliente vede la sua rete L2 come se fosse un cavo diretto (transparent LAN service).
Ether-type e differenza con 802.1Q
Il tag 802.1Q standard usa ether-type 0x8100. Il tag outer S-VLAN 802.1ad usa ether-type 0x88a8. RouterOS permette di impostare l'ether-type del bridge (ether-type) e di abilitare il tag-stacking per porta, permettendo la coesistenza di entrambi gli standard.
# Il bridge provider usa 0x88a8 come outer tag (S-VLAN)
/interface/bridge
add name=bridge-provider \
ether-type=0x88a8 \
vlan-filtering=yes \
protocol-mode=none \
comment="Provider bridge QinQ"# Porta uplink verso core network: tagged con outer S-VLAN
/interface/bridge/port
add bridge=bridge-provider interface=ether1 \
frame-types=admit-only-vlan-tagged \
hw=yes \
comment="Uplink core"
# Porta customer A: tutto il suo traffico viene incapsulato
# con S-VLAN 100 (outer) — il tag C-VLAN del cliente rimane intatto
add bridge=bridge-provider interface=ether2 \
pvid=100 \
frame-types=admit-only-untagged-and-priority-tagged \
tag-stacking=yes \
hw=yes \
comment="Customer A - S-VLAN 100"
# Porta customer B: S-VLAN 200
add bridge=bridge-provider interface=ether3 \
pvid=200 \
frame-types=admit-only-untagged-and-priority-tagged \
tag-stacking=yes \
hw=yes \
comment="Customer B - S-VLAN 200"
# VLAN table: S-VLAN 100 e 200 sull'uplink
/interface/bridge/vlan
add bridge=bridge-provider vlan-ids=100 tagged=ether1 untagged=ether2
add bridge=bridge-provider vlan-ids=200 tagged=ether1 untagged=ether3Scenario WISP tipico
In un WISP con PPPoE, ogni cliente termina la sessione sul concentratore (BNG). Lungo il percorso dall'antenna al BNG si usa QinQ: la S-VLAN identifica il sito/antenna (es. VLAN 100 = Torre Nord, VLAN 200 = Torre Sud), mentre la C-VLAN identifica il cliente (es. VLAN 50 = Cliente Rossi, VLAN 51 = Cliente Bianchi). Il BNG riceve frame doppio-taggati, li de-incapsula e gestisce la sessione PPPoE del singolo cliente.
# Cattura traffico su ether1 per verificare i doppi tag /tool/sniffer set filter-interface=ether1 filter-ip-protocol=all start # dopo alcuni secondi stop # esporta su Wireshark via /tool/sniffer/save file-name=qinq_capture
protocol-mode=none sul bridge provider per disabilitare STP — il bridge non deve partecipare alla topologia STP del cliente. Gestire loop-protection separatamente se necessario (loop-protect sulle porte, vedi articolo sui loop).Continua 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