⚡ Cos'è il Traffic Shaping?
Il Traffic Shaping (o QoS - Quality of Service) è la capacità di controllare, prioritizzare e limitare il traffico di rete in base a regole specifiche. Immagina di avere un'autostrada a 3 corsie: il traffic shaping decide quali veicoli possono usare la corsia veloce, quali quella normale, e quali devono rallentare.
🎯 Problemi Risolti dal Traffic Shaping
VoIP Instabile
Chiamate che "scattano" quando qualcuno scarica file → QoS garantisce priorità VoIP
Videoconferenze Lente
Teams/Zoom lagga durante backup → Priorità alta per videoconferenze
Un Utente Satura Banda
Download torrent occupa tutta la banda → Limiti per-utente o per-applicazione
Servizi Critici Lenti
ERP/CRM lento durante peak hours → Priorità garantita per traffico aziendale
📊 Scenari d'Uso Reali
| Scenario | Problema | Soluzione QoS |
|---|---|---|
| Call Center | VoIP scadente durante ore punta | Priorità massima VoIP (EF), limite download per utenti |
| Ufficio Remoto | Videoconferenze interrotte da aggiornamenti Windows | Priorità alta videoconf, limite basso Windows Update |
| Scuola/Università | Studenti saturano banda con YouTube/Netflix | Limite streaming video, priorità piattaforme e-learning |
| Hotel/WiFi Pubblico | Pochi utenti monopolizzano banda | Fair queue + limite per-utente (es: 10 Mbps max) |
| Azienda Multi-Sede | VPN site-to-site lenta | Priorità traffico inter-sede, limit P2P/streaming |
🔧 Due Approcci: Traffic Shaper vs Limiters
pfSense offre DUE sistemi di traffic shaping completamente diversi. È fondamentale capire quando usare quale!
🔹 Traffic Shaper (ALTQ)
Sistema più vecchio ma maturo, basato su ALTQ (Alternate Queueing). Lavora con code di priorità gerarchiche.
💡 Come Funziona ALTQ
ALTQ crea "code" (queues) con priorità diverse. Quando la banda è satura, i pacchetti nelle code ad alta priorità passano prima.
Banda WAN: 100 Mbps Queue Hierarchy: ├─ qVoIP (40% banda, priorità 7) ← VoIP sempre fluido ├─ qVideoConf (30% banda, priorità 5) ← Teams/Zoom ├─ qWeb (20% banda, priorità 3) ← Navigazione normale └─ qDefault (10% banda, priorità 1) ← Tutto il resto Durante congestione: - VoIP usa fino a 40 Mbps garantiti - Se VoIP usa solo 10 Mbps, i 30 Mbps liberi vanno a VideoConf - Fair distribution dinamica basata su priorità
✅ Vantaggi ALTQ:
- ✅ Prioritizzazione intelligente basata su tipo traffico
- ✅ Condivisione banda dinamica tra code
- ✅ Wizard integrato (facilissimo per casi comuni)
- ✅ Ideale per: VoIP, videoconferenze, gaming
❌ Limitazioni ALTQ:
- ❌ Solo 1 interfaccia per tipo (1 WAN, 1 LAN)
- ❌ Non funziona con multi-WAN load balancing
- ❌ Meno granulare per limiti per-utente
🔹 Limiters (dummynet)
Sistema più flessibile basato su dummynet. Lavora con pipe che limitano rigidamente la banda.
Configurazione limiter per limitare velocità download con schedulers
💡 Come Funzionano i Limiters
I limiters sono "tubi" con diametro fisso. Crei limiters separati e li associ a regole firewall specifiche.
Limiter: Download_10Mbps Bandwidth: 10 Mbps Mask: Source Address Applicato a regola firewall: Source: LAN net Destination: Internet In/Out pipe: Download_10Mbps Risultato: Ogni IP LAN può scaricare MAX 10 Mbps IP 192.168.1.10 → 10 Mbps max IP 192.168.1.20 → 10 Mbps max (indipendente) Totale può superare 10 Mbps (somma di tutti)
✅ Vantaggi Limiters:
- ✅ Limiti per-utente granulari
- ✅ Funziona con multi-WAN
- ✅ Bandwidth guarantees rigidi
- ✅ Supporta più interfacce simultaneamente
❌ Limitazioni Limiters:
- ❌ Nessuna prioritizzazione intelligente
- ❌ Banda "sprecata" se non utilizzata (non ridistribuita)
- ❌ Configurazione più complessa (no wizard)
⚠️ ALTQ e Limiters Insieme: Possibile ma Attenzione!
Tecnicamente puoi usare ALTQ e Limiters contemporaneamente, MA:
- ⚠️ Configurazione molto complessa
- ⚠️ Facile creare conflitti/inefficienze
- ⚠️ Debugging difficile
Consiglio: Scegli UNO dei due approcci in base alle tue esigenze!
🤔 Quale Scegliere?
| Usa ALTQ Se... | Usa Limiters Se... |
|---|---|
| Hai VoIP o videoconferenze critiche | Vuoi limitare singoli utenti (es: 10 Mbps/user) |
| Vuoi prioritizzazione automatica per tipo traffico | Hai multi-WAN con load balancing |
| Setup singola WAN + singola LAN | Hai multiple interfacce (LAN, DMZ, Guest, etc.) |
| Vuoi wizard semplice e veloce | Serve controllo granulare per-regola |
| Gaming online (bassa latenza critica) | WiFi pubblico con fair usage per utente |
🧙 Configurazione Traffic Shaper (ALTQ) con Wizard
Iniziamo con ALTQ usando il wizard - perfetto per VoIP, videoconferenze e gaming!
🚀 Step 1: Avviare il Wizard
-
Accedi al wizard
Vai in Firewall → Traffic Shaper → Wizards -
Seleziona wizard
Wizard: Multiple Lan/Wan (più completo)
Clicca Next
📊 Step 2: Configurare Banda WAN
-
Numero connessioni WAN
Number of WAN type connections: 1
(Aumenta se hai multi-WAN) -
Configura connessione WAN
Interface: WAN Scheduler: HFSC (consigliato) - HFSC = Hierarchical Fair Service Curve (migliore per VoIP) - CBQ = Class Based Queueing (più semplice) - PRIQ = Priority Queueing (meno features) Upload Bandwidth: 95% della banda upload reale Esempio: Se upload = 20 Mbps → Inserisci 19 Mbps (5% margine per overhead TCP/IP) Download Bandwidth: 95% della banda download reale Esempio: Se download = 100 Mbps → Inserisci 95 Mbps Come trovare banda reale? - Speedtest.net (3-5 test in momenti diversi, prendi media) - Fast.com (Netflix speed test) - Chiedi ISP (contratto può mentire!)
🏠 Step 3: Configurare LAN
-
Numero connessioni LAN
Number of LAN type connections: 1
(Aumenta se hai multiple LAN/DMZ da shapare) -
Configura LAN
Interface: LAN Scheduler: HFSC
📞 Step 4: Voice over IP (VoIP)
-
Abilita supporto VoIP
☑ Enable
Crea code ad altissima priorità per traffico VoIP -
Configura provider VoIP
Provider: Generic (custom provider) Upload bandwidth %: 10% (VoIP usa pochissima banda - 10% è abbondante) Esempio: WAN 20 Mbps → VoIP garantiti 2 Mbps Download bandwidth %: 10% VoIP Server IP/Network: - Se PBX interno: 192.168.1.10 - Se provider esterno: Lascia vuoto (wizard identifica VoIP automaticamente) - Se multipli: Crea alias e inserisci Nota: Wizard riconosce automaticamente protocolli VoIP comuni: - SIP (porta 5060/5061) - RTP (porte 10000-20000) - IAX (porta 4569)
🎮 Step 5: Penalty Box (Traffico a Bassa Priorità)
-
Abilita Penalty Box
☑ Enable
Coda a bassa priorità per P2P, file sharing, etc. -
Configura bandwidth
Upload bandwidth %: 10% (P2P/torrent limitato a 10% banda) Download bandwidth %: 10% Address: (opzionale) Puoi specificare IP/network da penalizzare Esempio: 192.168.1.50 (utente che fa troppo P2P)
🌐 Step 6: Peer-to-Peer Networking
-
Abilita rilevamento P2P
☑ Enable
Identifica automaticamente traffico P2P (BitTorrent, eMule, etc.) -
Azione
Options: ☑ Lower priority (metti P2P in Penalty Box) (Consigliato - P2P va lento ma non blocca VoIP/web) Alternative: ☐ Deny (blocca completamente P2P) (Solo se vuoi policy zero-tolerance)
🎮 Step 7: Network Games
-
Abilita supporto gaming
☑ Enable
Priorità alta per gaming (bassa latenza critica!) -
Bandwidth
Upload %: 10% (Gaming usa poca banda, ma necessita bassa latenza) Download %: 10% Cosa viene prioritizzato: - Counter-Strike, Call of Duty, Fortnite - League of Legends, Dota 2 - WoW, Final Fantasy XIV - Xbox Live, PlayStation Network, Steam Wizard riconosce automaticamente porte gaming comuni
📺 Step 8: Altri Servizi
Il wizard permette di configurare altre applicazioni:
- HTTP/HTTPS: Navigazione web normale
- Streaming Media: YouTube, Netflix (priorità media)
- Mail: SMTP/IMAP (priorità media-bassa)
Per semplicità, configuriamo solo i critici (VoIP, Gaming, P2P) e lasciamo il resto a priorità default.
✅ Step 9: Finalizzazione
-
Review configurazione
Wizard mostra summary delle code create
Verifica che tutto sia corretto -
Clicca Finish
Wizard applica configurazione
✅ Traffic Shaper attivo!
🎉 Wizard Completato!
Il wizard ha creato automaticamente:
- ✅ Code HFSC gerarchiche su WAN e LAN
- ✅ Regole firewall con code associate
- ✅ Priorità: VoIP > Gaming > Web > P2P
- ✅ Bandwidth garantiti per ogni coda
🔧 Configurazione Manuale Limiters
Ora vediamo come creare limiters per controllo granulare per-utente.
Configurazione limiter per controllare velocità upload con mask per-IP
📝 Esempio: Limitare Ogni Utente a 10 Mbps Download
-
Accedi a Limiters
Vai in Firewall → Traffic Shaper → Limiters -
Crea limiter download
Clicca New Limiter -
Configura limiter
Clicca SaveName: Download_10Mbps_PerUser (Nome descrittivo) ☑ Enable Bandwidth: 10 Mbit/s (Limite per singolo utente) Mask: Source addresses (CRITICO! Applica limite PER source IP) Description: Limita ogni utente a 10 Mbps download Opzioni avanzate (opzionali): Scheduler: FlowQueue-CoDel (consigliato) - FlowQueue-CoDel = Migliore per latenza (gaming/VoIP) - FlowQueue-PIE = Alternativa moderna - NONE = No scheduling (default) Queue Size (buckets): 64 (default OK) ECN: ☑ Enable (Explicit Congestion Notification - riduce packet loss)
-
Crea limiter upload
Ripeti creazione per upload (simmetrico):
Name: Upload_5Mbps_PerUser Bandwidth: 5 Mbit/s Mask: Destination addresses (Per upload, maschera su DESTINATION!)
Applicazione limiter a specifici IP usando aliases firewall
🔥 Associare Limiter a Regola Firewall
-
Modifica regola LAN
Firewall → Rules → LAN
Modifica regola "Allow LAN to any" (o crea nuova regola) -
Scroll a Advanced Features
Espandi sezione Advanced Options -
Configura limiters
In / Out pipe: In: Download_10Mbps_PerUser (Traffico IN verso client = download) Out: Upload_5Mbps_PerUser (Traffico OUT da client = upload) Spiegazione direzioni: IN = Traffico che ENTRA nell'interfaccia (verso LAN = download) OUT = Traffico che ESCE dall'interfaccia (da LAN = upload)
-
Salva e applica
Save → Apply Changes
✅ Limiters attivi!
🎯 Test Limiters
Da PC utente (192.168.1.100): 1. Vai su Speedtest.net 2. Esegui test Risultato atteso: Download: ~10 Mbps (limitato) Upload: ~5 Mbps (limitato) Se supera = limiter non applicato correttamente - Verifica regola firewall abbia limiter - Verifica "mask" corretta (source per download) - Check Status → Queues per vedere limiter attivo
📅 Schedulers - Limiti Temporali
Gli schedulers permettono di applicare regole/limiters solo in determinate fasce orarie!
Creazione scheduler per applicare regole in fasce orarie specifiche
📝 Esempio: Blocca Streaming Video Orario Lavorativo
-
Crea scheduler
Vai in Firewall → Schedules
Clicca Add -
Configura schedule
SaveSchedule Name: Orario_Lavorativo Description: Lunedì-Venerdì 9:00-18:00 Month: (lascia vuoto = tutti i mesi) Day: (lascia vuoto = tutti i giorni) Time Range: Start: 09:00 Stop: 18:00 Days of Week: ☑ Mon ☑ Tue ☑ Wed ☑ Thu ☑ Fri ☐ Sat ☐ Sun Clicca Add Time se serve aggiungere più fasce
-
Usa scheduler in regola firewall
Firewall → Rules → LAN → Add
Action: Reject Protocol: TCP/UDP Source: LAN net Destination: Alias "Streaming_Sites" (YouTube, Netflix, Disney+, etc. - crea alias IP) Destination Port: 80, 443 Schedule: Orario_Lavorativo ← SELEZIONA SCHEDULE! Description: Blocca streaming video ore lavorative Risultato: Lun-Ven 9:00-18:00 → YouTube/Netflix bloccati Fuori orario → YouTube/Netflix funzionano normalmente
📊 Monitoraggio Traffic Shaping
👁️ Visualizzare Code Attive
-
Status code ALTQ
Vai in Status → Queues
Vedrai tutte le code con statistiche real-time -
Informazioni visualizzate
Queue Name: qVoIP Bandwidth: 8.5 Mbps / 10 Mbps (85% utilizzato) Packets: 125,432 queued, 234 dropped Borrows: 12 times (Volte che ha "preso in prestito" banda da altre code) Cosa cercare: ✅ Dropped packets bassi (<1%) = OK ⚠️ Dropped packets alti (>5%) = Banda insufficiente ✅ Borrows alti = Code collaborano bene ⚠️ Una coda sempre al 100% = Sottodimensionata
📈 Grafici Banda
Status → Traffic Graph Opzioni: - Interface: WAN - Resolution: 1 second - Style: Area/Line Mostra banda usata real-time per interfaccia Utile per identificare picchi e saturazioni
🔧 Troubleshooting Traffic Shaping
❌ Problema: Limiters Non Funzionano
-
Verifica limiter abilitato
Firewall → Traffic Shaper → Limiters
☑ "Enable" deve essere selezionato -
Verifica regola firewall corretta
Firewall → Rules → LAN
La regola deve avere In/Out pipe configurati
La regola deve essere SOPRA altre regole che potrebbero matchare prima -
Check mask corretto
Download limiter: Mask = Source addresses Upload limiter: Mask = Destination addresses Se invertiti, limiter non funziona per-utente!
-
Verifica Stati
Status → Queues
Dovresti vedere limiter attivo con pacchetti processati
❌ Problema: VoIP Ancora Scadente con ALTQ
Possibili cause: 1. Banda configurata troppo alta Se configuri banda WAN > reale, ALTQ non funziona Soluzione: Riduci a 90-95% banda reale (SpeedTest) 2. Bufferbloat ISP Router ISP ha buffer enormi che introducono latency Test: DSLReports Speed Test (mostra bufferbloat grade) Soluzione: Riduci banda configurata a 80-85% reale 3. Upload saturato VoIP sensibile a upload saturo (ACK packets ritardati) Soluzione: Riduci upload max al 90%, aumenta % VoIP 4. Regole firewall sbagliate Traffico VoIP non passa dalla coda giusta Verifica: Status → Queues → qVoIP deve avere pacchetti 5. QoS sul router ISP Se doppio NAT, QoS deve essere su router ISP non pfSense Soluzione: Metti router ISP in bridge mode
✅ Best Practices Traffic Shaping
- ✅ Misura banda reale: SpeedTest multipli in ore diverse, prendi minimo
- ✅ Configura 90-95% banda: Mai 100% (overhead, variabilità ISP)
- ✅ Priorità VoIP massima: Se usi telefoni IP, VoIP SEMPRE priorità 1
- ✅ Limita P2P aggressivamente: P2P satura tutto se non controllato
- ✅ Test DSLReports: Verifica bufferbloat score (A/A+ = ottimo)
- ✅ Monitor dropped packets: Se >1% costante = bandwidth insufficiente
- ✅ Schedulers per policy: Usa schedule per blocking temporale
- ✅ Documenta configurazione: QoS complesso - documenta scelte
- ✅ Review trimestrale: Necessità cambiano (più utenti, nuovi servizi)
- ✅ Bridge mode ISP router: QoS funziona meglio senza doppio NAT
🎯 Prossimi Passi
Eccellente lavoro! Ora hai configurato Traffic Shaping professionale con prioritizzazione VoIP, limiters per-utente e schedulers temporali. La tua rete ora gestisce la banda in modo intelligente anche durante picchi di traffico!
Nel prossimo capitolo configureremo una DMZ completa per ospitare server pubblici in modo sicuro, isolati dalla LAN interna.