Guida MikroTik
Firewall e QoSAvanzato

QoS WISP — Queue Tree HTB, PCQ e gestione banda per cliente

Architettura QoS completa per WISP: HTB per garantire banda minima e massima a ogni cliente (limit-at/max-limit), PCQ per condivisione equa della banda condivisa, priorità VoIP, e gestione burst per traffico transiente.

Per un WISP, il QoS non è opzionale: senza gestione della banda, un singolo cliente che scarica in bulk degrada l'esperienza di tutti. RouterOS offre tre strumenti principali: Simple Queue (facile, bidirezionale, per singoli IP), Queue Tree (HTB, per architetture gerarchiche) e PCQ (per condivisione equa automatica tra molti utenti).

Simple Queue — Limite base per singolo cliente

Simple Queue — limite download/upload per cliente
# Simple Queue: limite 20 Mbps download / 5 Mbps upload per singolo cliente
# target = IP del cliente (o subnet)
# max-limit = banda massima (download/upload)
# limit-at = banda garantita (CIR) = almeno questo anche sotto carico
/queue simple add   name="cliente-mario-rossi"   target=192.168.88.101/32   max-limit=20M/5M   limit-at=2M/1M   burst-limit=40M/10M   burst-threshold=15M/3M   burst-time=10s/10s   priority=8/8   comment="Piano 20/5 Mbps con burst"

# BURST SPIEGATO:
# - burst-limit=40M: può scaricare fino a 40 Mbps durante il burst
# - burst-threshold=15M: il burst si attiva se la media scende sotto 15 Mbps
# - burst-time=10s: finestra di calcolo della media (10 secondi)
# Risultato: se il cliente scarica poco (< 15 Mbps in media su 10s),
# i prossimi pacchetti possono andare a 40 Mbps finché la media risale.

# Applica queue a una subnet intera (tutti i clienti di quel segmento)
/queue simple add   name="segmento-nord"   target=10.10.1.0/24   max-limit=100M/30M   limit-at=50M/15M   comment="Segmento clienti area nord - 100/30 totale"

PCQ — Condivisione equa automatica della banda

PCQ (Per Connection Queue) divide automaticamente la banda disponibile in modo equo tra tutti i flussi attivi. Ideale per segmenti condivisi dove non vuoi configurare una queue per ogni cliente ma vuoi evitare che uno monopolizzi la banda.

PCQ — configurazione per equità tra clienti
# ================================================================
# PCQ: crea tipi di queue per download e upload
# ================================================================

# PCQ Download: classifica per IP destinazione (ogni cliente riceve quota equa)
/queue type add   name=pcq-download   kind=pcq   pcq-classifier=dst-address   pcq-rate=0   pcq-limit=50KiB   pcq-total-limit=2000KiB   comment="PCQ download: quota equa per IP destinazione"

# PCQ Upload: classifica per IP sorgente (ogni cliente invia quota equa)
/queue type add   name=pcq-upload   kind=pcq   pcq-classifier=src-address   pcq-rate=0   pcq-limit=50KiB   pcq-total-limit=2000KiB   comment="PCQ upload: quota equa per IP sorgente"

# Applica PCQ alla subnet clienti con limite totale della connessione WAN
# pcq-rate=0 significa: dividi equamente max-limit tra tutti gli IP attivi
/queue simple add   name="clienti-condivisi-pcq"   target=192.168.0.0/24   max-limit=100M/20M   queue=pcq-download/pcq-upload   comment="100 clienti: banda 100/20 Mbps divisa equamente con PCQ"

# Con pcq-rate fisso: imposta un limite PER CLIENTE
# (es. max 1 Mbps download ciascuno, totale gestito dal parent)
/queue type add   name=pcq-1mbps-download   kind=pcq   pcq-classifier=dst-address   pcq-rate=1M   comment="PCQ: max 1 Mbps download per cliente"

Queue Tree HTB — Architettura gerarchica per WISP

Queue Tree HTB — priorità VoIP + banda garantita + best-effort
# ================================================================
# QUEUE TREE HTB — Struttura gerarchica per WISP
# Obiettivo:
#   - VoIP: priorità massima, bassa latenza
#   - Streaming: priorità media, banda garantita
#   - Best-effort (P2P, download): rimanente
# ================================================================

# PASSO 1: Mangle — marca i pacchetti per categoria
# (nella chain prerouting per traffico in download verso i clienti,
#  o forward per traffico in transito)

/ip firewall mangle add chain=prerouting connection-state=new   protocol=udp dst-port=5060   action=mark-connection new-connection-mark=conn-voip passthrough=yes   comment="Mark SIP"
/ip firewall mangle add chain=prerouting connection-state=new   protocol=udp dst-port=10000-20000   action=mark-connection new-connection-mark=conn-voip passthrough=yes   comment="Mark RTP"
/ip firewall mangle add chain=prerouting   connection-mark=conn-voip   action=mark-packet new-packet-mark=pkt-voip passthrough=no   comment="Mark pacchetti VoIP"

/ip firewall mangle add chain=prerouting connection-state=new   protocol=tcp dst-port=80,443,8080   action=mark-connection new-connection-mark=conn-web passthrough=yes   comment="Mark connessioni web"
/ip firewall mangle add chain=prerouting   connection-mark=conn-web   action=mark-packet new-packet-mark=pkt-web passthrough=no   comment="Mark pacchetti web"

# Tutto il resto = best-effort
/ip firewall mangle add chain=prerouting   action=mark-packet new-packet-mark=pkt-bulk passthrough=no   comment="Mark best-effort/bulk"

# PASSO 2: Queue Tree — struttura HTB
# Root parent: interfaccia LAN (download verso clienti)
# max-limit = banda totale disponibile dalla WAN

/queue tree add   name=root-download   parent=bridge-local   max-limit=100M   comment="Root: 100 Mbps totali verso LAN"

# Figlio 1: VoIP — priorità 1 (la più alta), limite garantito 5 Mbps
/queue tree add   name=voip-download   parent=root-download   packet-mark=pkt-voip   limit-at=5M max-limit=15M   priority=1   comment="VoIP: garantito 5M, max 15M, priorità massima"

# Figlio 2: Web — priorità 2, garantito 40 Mbps
/queue tree add   name=web-download   parent=root-download   packet-mark=pkt-web   limit-at=40M max-limit=90M   priority=2   comment="Navigazione web: garantito 40M, max 90M"

# Figlio 3: Bulk/P2P — priorità 8 (la più bassa), usa solo banda residua
/queue tree add   name=bulk-download   parent=root-download   packet-mark=pkt-bulk   limit-at=10M max-limit=100M   priority=8   comment="Best-effort: almeno 10M garantiti, rest se disponibile"

# REGOLA HTB: la somma dei limit-at figli (5+40+10=55M) <= max-limit root (100M)
# Ogni figlio può "prendere in prestito" banda fino al proprio max-limit
# se gli altri figli non la stanno usando.
FastTrack e Queue Tree: a differenza delle Simple Queues (che non funzionano con FastTrack), il Queue Tree applicato a interfacce specifiche funziona correttamente anche con FastTrack attivo — il traffico accelerato hardware viene comunque messo in coda sull'interfaccia di uscita. Questo rende Queue Tree la scelta preferita per WISP con molti clienti.
QoSQueue TreeHTBPCQlimit-atmax-limitburstprioritybandwidth managementSimple Queuepacket-markCIRMIRfairnessWISP

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