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.
forward non blocca attacchi diretti al router.# 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
| Fase | Modulo / chain | A cosa serve (WISP) |
|---|---|---|
| Prerouting | RAW prerouting | Drop DDoS/bogon prima del conntrack (zero costo conntrack) |
| Prerouting | Connection Tracking | Calcola lo stato (new/established/...); abilita NAT e firewall stateful |
| Prerouting | Mangle prerouting | mark-connection / mark-routing (policy routing per ISP multipli) |
| Prerouting | NAT dstnat | Port-forward, redirect DNS dei clienti |
| Routing | Decisione di routing | Sceglie l'interfaccia di uscita (rispetta routing-mark) |
| Forward | Mangle forward | mark-packet, change-mss (clamp PPPoE), change-dscp |
| Forward | Filter forward | Protezione traffico clienti: drop invalid, blocco WAN→LAN |
| Postrouting | Mangle postrouting | Marking tardivo (dopo la scelta dell'uscita) |
| Postrouting | NAT srcnat | Masquerade/src-nat: i clienti escono con l'IP pubblico |
| Postrouting | Queue (HTB/Simple) | Shaping per piano cliente: l'ultima cosa prima dell'uscita |
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.
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