Add complete French (fr) and Chinese (zh) translations for all documentation: - Root files: README, CHANGELOG, SECURITY, BETA-RELEASE - docs/: All 16 core documentation files - DOCS/: All 19 deep-dive documents including embedded/ and archive/ - package/secubox/: All 123+ package READMEs - Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/ Total: 346 translation files created Each file includes language switcher links for easy navigation between English, French, and Chinese versions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.6 KiB
Traffic Shaper - Controle QoS avance
Version : 0.4.0 Derniere mise a jour : 2025-12-28 Statut : Actif
Application LuCI pour la gestion avancee du traffic shaping et de la qualite de service (QoS) utilisant Linux Traffic Control (TC) et le qdisc CAKE.
Fonctionnalites
- Gestion des classes de trafic : Creer et gerer les classes d'allocation de bande passante avec limites garanties (rate) et maximales (ceil)
- Planification basee sur les priorites : Systeme de priorite a 8 niveaux pour une priorisation fine du trafic
- Regles de classification : Systeme de regles flexible pour classifier le trafic par :
- Numeros de port (source/destination)
- Adresses IP (source/destination)
- Marquages DSCP
- Type de protocole
- Statistiques en temps reel : Surveiller les compteurs de paquets, octets et drops par classe
- Presets rapides : Application en un clic de configurations optimisees :
- Gaming et faible latence
- Streaming video
- Teletravail
- Equilibre (defaut)
- Tableau de bord visuel : Diagramme de flux de trafic avec codage couleur par priorite
- Support multi-interfaces : Configurer la QoS sur WAN, LAN ou toute interface reseau
Installation
opkg update
opkg install luci-app-traffic-shaper
/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart
Dependances
luci-base: Framework d'interface web LuCIrpcd: Daemon RPC pour la communication backendtc: Utilitaire Linux traffic controlkmod-sched-core: Modules noyau de planification du trafickmod-sched-cake: Module noyau qdisc CAKE
Utilisation
Acceder a l'interface
Naviguer vers : Reseau -> Traffic Shaper
L'interface propose 5 vues principales :
- Vue d'ensemble : Tableau de bord avec cartes de statut et visualisation du flux de trafic
- Classes de trafic : Interface CRUD pour les classes de bande passante
- Regles de classification : Interface CRUD pour les regles de correspondance de trafic
- Statistiques : Statistiques en temps reel pour toutes les classes de trafic
- Presets : Appliquer rapidement des configurations optimisees
Creer des classes de trafic
- Aller dans Reseau -> Traffic Shaper -> Classes de trafic
- Cliquer sur Ajouter pour creer une nouvelle classe
- Configurer :
- Nom : Nom descriptif (ex. "Streaming video")
- Priorite : 1 (la plus haute) a 8 (la plus basse)
- Debit garanti : Bande passante minimum (ex. "5mbit")
- Debit maximum (Ceil) : Bande passante maximale autorisee (ex. "50mbit")
- Interface : Interface reseau (wan, lan, etc.)
- Activer : Activer la classe
- Cliquer sur Sauvegarder et appliquer
Guide des priorites
- Priorite 1-2 : Trafic critique (VoIP, gaming, applications temps reel)
- Priorite 3-4 : Trafic important (streaming video, VPN)
- Priorite 5-6 : Trafic normal (navigation web, email)
- Priorite 7-8 : Trafic de masse (telechargements, sauvegardes)
Creer des regles de classification
- Aller dans Reseau -> Traffic Shaper -> Regles de classification
- Cliquer sur Ajouter pour creer une nouvelle regle
- Configurer :
- Classe de trafic : Selectionner la classe de destination
- Type de correspondance : Port, IP, DSCP ou Protocole
- Valeur de correspondance : Valeur a faire correspondre
- Activer : Activer la regle
- Cliquer sur Sauvegarder et appliquer
Exemples de regles
| Type de correspondance | Valeur | Description |
|---|---|---|
| Port destination | 80,443 |
Trafic web HTTP/HTTPS |
| Port destination | 22 |
Connexions SSH |
| Port destination | 53 |
Requetes DNS |
| IP source | 192.168.1.0/24 |
Tout le trafic du sous-reseau LAN |
| IP destination | 8.8.8.8 |
Trafic vers Google DNS |
| DSCP | EF |
Expedited Forwarding (VoIP) |
| Protocole | udp |
Tout le trafic UDP |
Utiliser les presets
- Aller dans Reseau -> Traffic Shaper -> Presets
- Examiner les presets disponibles et leurs configurations
- Cliquer sur Appliquer ce preset sur le profil souhaite
- Confirmer l'action (cela remplacera la configuration existante)
Configuration
Configuration UCI
La configuration est stockee dans /etc/config/traffic-shaper :
config class 'gaming'
option name 'Gaming Traffic'
option priority '1'
option rate '10mbit'
option ceil '50mbit'
option interface 'wan'
option enabled '1'
config rule 'gaming_ports'
option class 'gaming'
option match_type 'dport'
option match_value '3074,27015,25565'
option enabled '1'
Options des classes de trafic
name: Nom d'affichage de la classepriority: Niveau de priorite (1-8)rate: Bande passante minimum garantie (format :<nombre>[kmg]bit)ceil: Bande passante maximale autorisee (format :<nombre>[kmg]bit)interface: Nom de l'interface reseauenabled: Activer/desactiver la classe (0/1)
Options des regles de classification
class: ID de la classe de trafic (nom de section UCI)match_type: Type de correspondance (dport,sport,dst,src,dscp,protocol)match_value: Valeur a faire correspondreenabled: Activer/desactiver la regle (0/1)
API Backend
Le backend RPCD (luci.traffic-shaper) fournit ces methodes :
Methodes de statut
status(): Obtenir le statut actuel du systeme QoSlist_classes(): Lister toutes les classes de traficlist_rules(): Lister toutes les regles de classificationget_stats(): Obtenir les statistiques par classe depuis TC
Methodes de gestion
add_class(name, priority, rate, ceil, interface): Creer une nouvelle classeupdate_class(id, name, priority, rate, ceil, interface, enabled): Mettre a jour une classedelete_class(id): Supprimer une classeadd_rule(class, match_type, match_value): Creer une regle de classificationdelete_rule(id): Supprimer une regle
Methodes de presets
list_presets(): Obtenir les presets disponiblesapply_preset(preset_id): Appliquer une configuration preset
Details techniques
Implementation du controle de trafic
Le module utilise Linux Traffic Control (TC) avec la hierarchie suivante :
- Qdisc racine : CAKE (Common Applications Kept Enhanced)
- Hierarchie de classes : HTB (Hierarchical Token Bucket) pour l'allocation de bande passante
- Filtres : Filtres U32 pour la classification du trafic basee sur les regles
Fonctionnalites CAKE
- Smart queuing : Gestion automatique des tailles de file d'attente
- Isolation de flux : Empeche les flux uniques de monopoliser la bande passante
- Reduction de latence : Minimise le bufferbloat
- Equite par hote : Assure une distribution equitable de la bande passante
Collecte des statistiques
Les statistiques sont collectees en utilisant tc -s class show et parsees pour fournir :
- Compteurs de paquets par classe
- Compteurs d'octets par classe
- Compteurs de drops (paquets supprimes a cause de la limitation de debit)
Les donnees sont rafraichies toutes les 5 secondes dans la vue Statistiques.
Exemples
Exemple 1 : Configuration bureau a domicile
Classes :
- Appels video : Priorite 1, 8mbit garanti, 50mbit max
- Trafic VPN : Priorite 2, 10mbit garanti, 60mbit max
- Navigation web : Priorite 4, 5mbit garanti, 40mbit max
Regles :
- Ports Zoom (8801-8810) -> Appels video
- Port 443 avec plage IP VPN -> Trafic VPN
- Ports 80,443 -> Navigation web
Exemple 2 : Gaming + Streaming
Classes :
- Gaming : Priorite 1, 5mbit garanti, 40mbit max
- Streaming : Priorite 3, 15mbit garanti, 70mbit max
- Telechargements : Priorite 7, 2mbit garanti, 30mbit max
Regles :
- Ports gaming (3074, 27015, etc.) -> Gaming
- Port 443 vers IPs Netflix/YouTube -> Streaming
- Port 80 -> Telechargements
Exemple 3 : Foyer multi-utilisateurs
Utiliser le preset Equilibre ou creer des classes personnalisees :
- Haute priorite : 10mbit -> 60mbit (Priorite 2)
- Normal : 15mbit -> 80mbit (Priorite 5)
- Masse : 5mbit -> 50mbit (Priorite 7)
Depannage
Le traffic shaping ne fonctionne pas
-
Verifier que le module CAKE est charge :
lsmod | grep sch_cake -
Verifier la configuration TC :
tc qdisc show tc class show dev wan tc filter show dev wan -
Verifier le nom de l'interface :
ip link show
Les classes n'apparaissent pas
-
Redemarrer RPCD :
/etc/init.d/rpcd restart -
Verifier la configuration UCI :
uci show traffic-shaper -
Verifier que la classe est activee :
uci get traffic-shaper.<class_id>.enabled
Les statistiques ne se mettent pas a jour
-
Verifier les statistiques TC :
tc -s class show dev wan -
Verifier que le polling est actif (verifier la console du navigateur)
-
S'assurer que les classes sont activees et que l'interface est correcte
Considerations de performance
- Utilisation CPU : Le traitement TC utilise un CPU minimal sur les routeurs modernes
- Memoire : Chaque classe utilise ~1-2KB de memoire noyau
- Latence : CAKE reduit significativement la latence pour le trafic interactif
- Debit : Impact minimal sur le debit total (<1% d'overhead)
Licence
Apache License 2.0
Mainteneur
SecuBox Project secubox@example.com