📚 Tutorial

Optimiser sa bande passante avec Bandwidth Manager

Par Gandalf • 22 décembre 2024 • 12 min de lecture

Votre connexion rame pendant que quelqu'un regarde Netflix ? Les jeux en ligne lag quand un téléchargement est en cours ? Le module Bandwidth Manager de SecuBox résout ces problèmes avec une gestion intelligente de la QoS, des quotas et une détection automatique des types de trafic.

📑 Table des matières

1. Introduction à la QoS

La Quality of Service (QoS) permet de prioriser certains types de trafic sur votre réseau. Sans QoS, tous les paquets sont traités de la même manière : un téléchargement massif peut donc monopoliser toute la bande passante et rendre les appels vidéo inutilisables.

Bandwidth Manager utilise CAKE (Common Applications Kept Enhanced), le qdisc le plus moderne et efficace disponible sur Linux. Il gère automatiquement le bufferbloat et offre une distribution équitable de la bande passante.

⚡ Priorité temps réel

VoIP et gaming toujours fluides, même sous charge maximale.

📊 8 classes de priorité

Classification fine du trafic selon vos besoins.

🎯 Détection automatique

Netflix, YouTube, Zoom identifiés automatiquement.

📉 Quotas intelligents

Limites journalières/mensuelles avec throttling.

2. Installation

Installez le module via opkg :

# Mise à jour des paquets
opkg update

# Installation du module
opkg install luci-app-bandwidth-manager

# Dépendances (installées automatiquement)
# - kmod-sched-cake
# - kmod-sched-fq-codel
# - tc

# Redémarrer les services
/etc/init.d/rpcd reload

Accédez ensuite à l'interface via LuCI → Network → Bandwidth Manager.

3. Configuration des classes QoS

Bandwidth Manager propose 8 classes de priorité préconfigurées. Chaque classe a un pourcentage garanti (rate) et un maximum autorisé (ceil) :

# /etc/config/bandwidth

config class 'realtime'
    option name 'Real-time'
    option priority '1'
    option rate '30'      # 30% garanti
    option ceil '100'     # Peut utiliser jusqu'à 100%
    option description 'VoIP, Video calls'

config class 'interactive'
    option name 'Interactive'
    option priority '2'
    option rate '20'
    option ceil '100'
    option description 'Gaming, SSH, DNS'

config class 'streaming'
    option name 'Streaming'
    option priority '3'
    option rate '20'
    option ceil '90'
    option description 'Netflix, YouTube'

config class 'bulk'
    option name 'Bulk'
    option priority '6'
    option rate '5'
    option ceil '50'
    option description 'P2P, Backups'

💡 Conseil : La somme des rates ne doit pas dépasser 100%. Les classes de haute priorité peuvent emprunter la bande passante non utilisée par les classes inférieures.

4. Gestion des quotas

Les quotas permettent de limiter la consommation par client ou par groupe. Quand le quota est atteint, vous pouvez choisir de throttler (réduire la vitesse) ou bloquer complètement l'accès.

config quota 'kids_devices'
    option daily_limit '5000'     # 5 GB par jour
    option monthly_limit '100000'  # 100 GB par mois
    option throttle_speed '1000'   # 1 Mbps après dépassement
    option action 'throttle'       # ou 'block'
    list mac 'AA:BB:CC:DD:EE:01'
    list mac 'AA:BB:CC:DD:EE:02'

Cas d'usage typiques :

5. Détection automatique des médias

Le module identifie automatiquement les types de trafic grâce à l'analyse des ports, protocoles et domaines. Chaque type est associé à une classe QoS :

config media 'voip'
    option name 'VoIP'
    option class 'realtime'
    list port '5060'          # SIP
    list port '5061'          # SIP TLS
    list port '10000-20000'   # RTP
    list protocol 'sip'
    list protocol 'rtp'

config media 'gaming'
    option name 'Gaming'
    option class 'interactive'
    list port '3074'          # Xbox Live
    list port '3478-3480'     # PlayStation
    list port '27015-27030'   # Steam
    option dscp 'ef'          # Expedited Forwarding

config media 'streaming'
    option name 'Streaming'
    option class 'streaming'
    list domain 'netflix.com'
    list domain 'nflxvideo.net'
    list domain 'youtube.com'
    list domain 'googlevideo.com'

⚠️ Note : La détection par domaine nécessite que le DNS passe par le routeur. Si vos clients utilisent DoH (DNS over HTTPS), la détection sera moins efficace.

6. Planification horaire

Adaptez les limites selon l'heure de la journée. Parfait pour réduire la bande passante pendant les heures de pointe :

config schedule 'peak'
    option name 'Heures de pointe'
    option enabled '1'
    option days 'mon tue wed thu fri'
    option start '18:00'
    option end '23:00'
    option download_limit '80'  # 80% de la bande passante max
    option upload_limit '80'

config schedule 'night'
    option name 'Nuit'
    option enabled '1'
    option days 'mon tue wed thu fri sat sun'
    option start '00:00'
    option end '07:00'
    option download_limit '100'
    option upload_limit '100'
    # Backups nocturnes en classe 'bulk' prioritaire

7. Configuration avancée

Ajuster les paramètres CAKE

# Activer manuellement CAKE avec des paramètres optimisés
tc qdisc replace dev br-lan root cake bandwidth 100mbit \
    diffserv4 nat wash ack-filter split-gso

Marquage DSCP personnalisé

# Marquer le trafic VoIP avec DSCP EF (46)
iptables -t mangle -A POSTROUTING -p udp --dport 5060 \
    -j DSCP --set-dscp 46

Monitoring en temps réel

# Voir les statistiques tc
tc -s qdisc show dev br-lan

# Surveiller le trafic par classe
watch -n 1 'tc -s class show dev br-lan'

🚀 Prêt à optimiser votre réseau ?

Téléchargez SecuBox et installez Bandwidth Manager dès maintenant.

Installer SecuBox

Conclusion

Bandwidth Manager transforme votre routeur OpenWrt en un contrôleur de trafic intelligent. Avec la QoS basée sur CAKE, les quotas par client et la détection automatique des médias, vous avez tous les outils pour garantir une expérience optimale à tous les utilisateurs de votre réseau.

Pour aller plus loin, consultez nos autres guides sur Auth Guardian pour l'authentification et VHost Manager pour héberger vos propres services.