Guida MikroTik
Firewall e QoSBase

Packet Flow in RouterOS — Come viaggia un pacchetto

Capire l'ordine esatto in cui RAW, conntrack, mangle, NAT, filter e code elaborano ogni pacchetto è il prerequisito per scrivere regole firewall corrette ed efficaci.

RouterOS elabora ogni pacchetto attraverso una pipeline ordinata di moduli. Conoscere questo ordine è fondamentale: una regola NAT piazzata nel posto sbagliato semplicemente non funzionerà, così come una regola di QoS che tenta di fare mark dopo che il pacchetto è già stato inoltrato.

Flusso per pacchetti instradati (routing)

Un pacchetto che transita attraverso il router (non destinato al router stesso) segue questo percorso completo:

  • PREROUTING — 1) RAW prerouting; 2) Connection Tracking; 3) Mangle prerouting; 4) NAT dstnat (port-forward / DNAT).
  • Decisione di routing — selezione del next-hop dalla tabella di routing.
  • FORWARD — 5) TTL check; 6) Mangle forward; 7) Filter forward; 8) Accounting.
  • POSTROUTING — 9) Mangle postrouting; 10) NAT srcnat (masquerade); 11) Queue tree (HTB Global); 12) Simple queues.
  • IPsec — cifratura/decifrazione (se applicabile) al termine.

Flusso per pacchetti destinati al router (chain input)

  • PREROUTING (identico al forward: RAW → conntrack → mangle → NAT dstnat).
  • Decisione di routing → il pacchetto va al processo locale.
  • INPUT — Mangle input → Filter input → Queue tree + Simple queues.
  • IPsec (se applicabile).

Flusso per pacchetti originati dal router (chain output)

  • Bridge decision → Connection Tracking → Mangle output → Filter output.
  • Routing adjustment (policy routing).
  • POSTROUTING (Mangle postrouting → NAT srcnat → Queue tree → Simple queues).

Bridge e use-ip-firewall

In modalità bridge, il traffico viene inoltrato a livello MAC senza coinvolgere le chain IP. Attivando use-ip-firewall=yes sull'interfaccia bridge, i pacchetti vengono presentati anche alle chain IP (prerouting → forward → postrouting) consentendo di applicare filter, mangle e NAT anche al traffico bridged.

Sicurezza: le regole nella chain input proteggono il router stesso (accesso Winbox, SSH, API). Le regole nella chain forward proteggono i clienti che transitano attraverso il router. Non confondere mai le due chain: una regola in forward non blocca attacchi diretti al router.
Visualizzare le connessioni attive e verificare il conntrack
# Visualizza la tabella di connessioni attive (IPv4)
/ip firewall connection print

# Filtra per indirizzo sorgente specifico
/ip firewall connection print where src-address~"192.168.88"

# Conta le connessioni per stato
/ip firewall connection print count-only where connection-state=established

Regola mnemonica: RAW → conntrack → mangle → NAT in prerouting; filter in input/forward/output; NAT srcnat + code in postrouting. Le code (QoS) sono le ultime a vedere il pacchetto prima che esca dall'interfaccia.

Tabella riassuntiva: dove agisce ogni modulo

FaseModulo / chainA cosa serve (WISP)
PreroutingRAW preroutingDrop DDoS/bogon prima del conntrack (zero costo conntrack)
PreroutingConnection TrackingCalcola lo stato (new/established/...); abilita NAT e firewall stateful
PreroutingMangle preroutingmark-connection / mark-routing (policy routing per ISP multipli)
PreroutingNAT dstnatPort-forward, redirect DNS dei clienti
RoutingDecisione di routingSceglie l'interfaccia di uscita (rispetta routing-mark)
ForwardMangle forwardmark-packet, change-mss (clamp PPPoE), change-dscp
ForwardFilter forwardProtezione traffico clienti: drop invalid, blocco WAN→LAN
PostroutingMangle postroutingMarking tardivo (dopo la scelta dell'uscita)
PostroutingNAT srcnatMasquerade/src-nat: i clienti escono con l'IP pubblico
PostroutingQueue (HTB/Simple)Shaping per piano cliente: l'ultima cosa prima dell'uscita
Punto della pipeline in cui ogni funzione vede il pacchetto (traffico instradato).
Implicazione pratica per il WISP: le code QoS lavorano sul pacchetto GIA' NATtato e instradato, sull'interfaccia di uscita. Per limitare il DOWNLOAD del cliente devi mettere la coda sull'interfaccia verso il cliente (LAN/bridge/PPPoE), non sulla WAN. Per limitare l'UPLOAD, la coda va sull'interfaccia WAN. Con le Simple Queue questo è automatico (target=IP, bidirezionale); con il Queue Tree devi scegliere tu il parent corretto.

FastTrack è l'eccezione alla pipeline: quando una connessione viene marcata fasttrack-connection, i pacchetti successivi saltano conntrack, mangle, NAT e filter, andando quasi direttamente all'uscita. È ottimo per le prestazioni ma rende invisibile il traffico a mangle e Queue Tree. Approfondito nell'articolo dedicato.

packet flowcatenepreroutingpostroutinginputforwardoutputNATmanglefilterqueuebridgingrouting

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