🏛️ ArchiZeroTrust / CCIE / QoS / 09 — Design Réel
📶 QoS · 09

QoS Design Réel

De la théorie à la pratique : comment construire une QoS cohérente bout-en-bout dans une entreprise. NBAR, marquage, trust boundary, policy-map — chaque étape avec la CLI qui correspond. Un scénario complet, une config prête à déployer.

1
Le réseau ne sait rien
Sans classification, tout ressemble à un paquet anonyme
Par défaut, chaque paquet arrive avec DSCP = 0 (Best Effort). Le réseau ne distingue pas un appel Teams d'un backup de 100 Go. Les deux concurrencent sur les mêmes files — le backup peut tuer la voix.
PC Teams PC Web Téléphone IP PC Backup 0 0 0 0 Switch accès File FIFO unique ⚠ backup + voix + vidéo = même traitement WAN 10M Teams → DSCP 0 VoIP → DSCP 0 Backup → DSCP 0 Impossible de différencier
Conséquence concrète : un transfert backup de 100 Go à 9 Mbps laisse seulement 1 Mbps pour tout le reste sur un lien WAN 10 Mbps. La voix est hachée, Teams se freeze. Sans classification, il n'y a rien à faire.
2
Comment reconnaître le trafic ?
Les méthodes disponibles — du plus simple au plus précis
Avant de décider quoi faire d'un paquet, il faut savoir ce qu'il est. Plusieurs méthodes existent — chacune avec un niveau de précision et un coût CPU différent. Le problème moderne : tout passe sur le port 443 — les ports ne suffisent plus.
MéthodeCe qu'elle inspectePrécisionProblème
Port TCP/UDPPort 22 = SSH, 5060 = SIP…MoyenTeams, Zoom, Webex utilisent tous 443 — indiscernable
ACL (src/dst IP)IP source, destination, portBon pour serveurs connusCloud apps = IP variables — ACL impossible à maintenir
VLANVLAN voix séparé du VLAN dataSegmentation physiqueNe résout pas Teams vs YouTube dans le même VLAN
DSCP existantLit le DSCP déjà dans le paquetExcellent si bien marquéRequiert que le endpoint marque — pas toujours le cas
NBAR (L7)Signature applicative profondeExcellentCoût CPU — à placer sur les bons équipements
Tout passe en HTTPS — le port ne suffit plus Teams vidéo YouTube Backup cloud TCP 443 ? ACL sur port 443 → impuissant NBAR inspecte Teams → identifié ✓ YouTube → identifié ✓ Backup → identifié ✓
! Activer NBAR sur l'interface LAN (ingress)
interface GigabitEthernet0/0
 ip nbar protocol-discovery

! Vérifier ce que NBAR détecte
show ip nbar protocol-discovery interface GigabitEthernet0/0 top-n 10
3
NBAR — reconnaissance applicative
NBAR reconnaît. Il ne décide pas.
NBAR (Network-Based Application Recognition) inspecte le contenu des paquets jusqu'à la couche 7 pour identifier l'application réelle. Mais NBAR fait seulement la reconnaissance — il ne choisit pas automatiquement Teams = AF41. C'est la politique d'entreprise qui décide du marquage.
paquet TCP dst:443 DSCP0 NBAR Engine Inspection L7 Signature Microsoft Teams → match protocol ms-teams reconnu class-map CM-TEAMS match protocol ms-teams NBAR → MATCH ✓ mais… Politique entreprise decide : Teams → AF41 set dscp af41 NBAR reconnaît — la politique d'entreprise décide de la valeur DSCP
! class-maps de classification NBAR
class-map match-any CM-VOIP-RTP
 match protocol rtp audio          ! RTP avec payload audio — G.711/G.729

class-map match-any CM-SIGNALISATION
 match protocol sip                ! Signalisation SIP
 match protocol h323               ! Signalisation H.323 (legacy)

class-map match-any CM-TEAMS
 match protocol ms-teams           ! Microsoft Teams (audio+vidéo+partage)
 match protocol webex              ! Cisco Webex
 match protocol rtp video          ! RTP vidéo générique

class-map match-any CM-SSH
 match protocol ssh

class-map match-any CM-BACKUP
 match access-group name ACL-BACKUP  ! ACL : IP des serveurs backup

! ACL serveurs backup
ip access-list extended ACL-BACKUP
 permit ip 10.1.10.0 0.0.0.255 any  ! Sous-réseau backup
4
Qui décide du marquage ?
La politique QoS de l'entreprise — une convention que tous les équipements respectent
Une fois l'application reconnue, qui choisit EF ou AF41 ? C'est l'architecte réseau — pas NBAR, pas IOS automatiquement. Cette décision devient la politique QoS de l'entreprise : un tableau de correspondance Application → DSCP que tous les équipements vont implémenter.
ApplicationFluxDSCP cibleValeurJustification
Téléphonie IPRTP audio G.711/G.729EF46Latence <150ms, jitter <30ms — priorité absolue
Signalisation voixSIP, H.323CS324Signalisation — prioritaire mais pas temps réel
Microsoft TeamsAudio/Vidéo/PartageAF4134Vidéo interactive — bonne qualité, pas stricte
SSHGestion réseauAF2118Interactif — réactivité importante
Web HTTP/HTTPSNavigation standardBE0Best Effort — élastique, tolère la latence
Backup / TransfertBulk dataCS18Scavenger — volontairement limité, n'affecte pas le reste
Cette table EST la politique QoS. Une fois définie, elle se traduit en class-maps IOS et devient la référence de tous les équipements du réseau. Chaque switch, chaque routeur va lire le DSCP et agir en conséquence — sans avoir besoin de re-classifier.
! Routeur WAN — interface LAN en entrée
! Chaque application reconnue reçoit son DSCP
policy-map PM-INGRESS-MARK
 class CM-VOIP-RTP
  set dscp ef            ! RTP audio → EF (46)
 class CM-SIGNALISATION
  set dscp cs3           ! SIP/H.323 → CS3 (24)
 class CM-TEAMS
  set dscp af41          ! Teams vidéo → AF41 (34)
 class CM-SSH
  set dscp af21          ! SSH → AF21 (18)
 class CM-BACKUP
  set dscp cs1           ! Backup → CS1 (8) Scavenger
 class class-default
  set dscp default       ! Tout le reste → BE (0)
5
Marquer une fois, réutiliser partout
Le DSCP voyage dans chaque paquet IP — tout le réseau en bénéficie
Sans marquage, chaque équipement devrait refaire NBAR + ACL — coûteux, incohérent, impossible à maintenir. Avec le DSCP inscrit dans le paquet dès le bord du réseau, chaque switch et routeur lit simplement les 6 bits et applique la politique locale. Classification une fois → bénéfice sur tout le chemin.
Router LAN NBAR + set dscp marque EF/AF41… EF=46 Switch distrib lit DSCP 46 → queue prio ✓ EF=46 Router WAN lit DSCP 46 → LLQ priority ✓ ① Classifier+Marquer ② Lire + Appliquer ③ Lire + Appliquer DSCP intact tout le long du chemin IP
! Routeur WAN — interface LAN Gi0/0
interface GigabitEthernet0/0
 description LAN-ACCESS
 ip address 10.1.1.1 255.255.255.0
 ip nbar protocol-discovery       ! Activer NBAR
 service-policy input PM-INGRESS-MARK  ! Marquer en entrée

! Vérifier que le marquage fonctionne
show policy-map interface GigabitEthernet0/0
! → Regarder "packets matched" dans chaque classe
! → Si CM-VOIP-RTP = 0 paquets : NBAR non actif ou téléphone ne génère pas RTP
6
Trust Boundary
Peut-on faire confiance à n'importe quel marquage reçu ?
Problème : un utilisateur peut configurer son OS Windows/Mac pour marquer TOUS ses paquets DSCP EF — voix prioritaire pour son téléchargement YouTube. Sans trust boundary, le réseau lui fait confiance aveuglément.
⛔ Zone non fiable Téléphone IP CoS 5 — légitime PC utilisateur DSCP EF — suspect ! PC Backup pas de marquage Trust Boundary Switch Accès décision ici ✅ Zone de confiance Port Téléphone : mls qos trust cos → CoS du phone respecté Port PC : mls qos cos 0 → CoS remis à 0, DSCP remarqué Uplink distrib : mls qos trust dscp
! Switch accès Cisco Catalyst
mls qos                                ! Activer QoS globalement

! Port connecté au Téléphone IP
interface FastEthernet0/1
 description PHONE-VOIP
 switchport mode access
 switchport access vlan 10           ! VLAN data
 switchport voice vlan 20           ! VLAN voix
 mls qos trust cos                  ! Faire confiance au CoS du phone
 spanning-tree portfast

! Port connecté au PC (pas confiance)
interface FastEthernet0/2
 description PC-USER
 switchport mode access
 switchport access vlan 10
 mls qos cos 0                      ! Forcer CoS = 0 — ignorer marquage PC
 spanning-tree portfast

! Uplink vers switch distribution
interface GigabitEthernet0/1
 description UPLINK-DISTRIB
 switchport mode trunk
 mls qos trust dscp                 ! Faire confiance au DSCP sur trunk
7
Remarking — réécriture du DSCP
Si on ne fait pas confiance, on réécrit
Le remarking permet de réécrire le DSCP quand on reçoit un marquage non fiable ou quand on entre dans un nouveau domaine réseau. Cas typiques : un PC qui se marque EF, un flux WAN qui revient avec DSCP altéré par l'ISP, ou un partenaire avec une politique DSCP différente de la nôtre.
! Sur le routeur LAN — ingress depuis le PC (DSCP pas fiable)
! Le PC a marqué tout son trafic EF — on réécrit

class-map match-all CM-TOUT-PC
 match access-group name ACL-PC-RANGE   ! tous les PCs du VLAN

ip access-list extended ACL-PC-RANGE
 permit ip 10.1.10.0 0.0.0.255 any

policy-map PM-INGRESS-UNTRUST
 class CM-TOUT-PC
  set dscp default           ! Reset à 0 — on reclassifie ensuite via NBAR

! Alternative : police + remark (contrat de débit)
policy-map PM-INGRESS-SLA
 class CM-TOUT-PC
  police rate 5000000 bps
   conform-action transmit
   exceed-action  set-dscp-transmit cs1   ! Surplus → Scavenger
   violate-action drop
! Interface WAN — trafic entrant depuis l'ISP
! L'ISP peut avoir altéré le DSCP — on re-classifie

class-map match-any CM-TRUSTED-DSCP
 match dscp ef cs3 af41 af21          ! DSCP qu'on accepte tels quels

policy-map PM-WAN-INGRESS
 class CM-TRUSTED-DSCP
  set dscp dscp table dscp-mutation   ! Table de mutation optionnelle
 class class-default
  set dscp default                   ! Tout DSCP inconnu → BE

interface GigabitEthernet0/1          ! Interface WAN
 service-policy input PM-WAN-INGRESS
8
Les équipements suivants appliquent la politique
Le DSCP dans le paquet → chaque équipement sait quoi faire
Une fois le DSCP inscrit dans le paquet, chaque équipement sur le chemin lit ces 6 bits et applique sa politique locale. Le switch de distribution met le paquet dans la bonne file. Le routeur WAN applique LLQ pour EF, CBWFQ pour AF41, etc. Zéro re-classification nécessaire.
! class-maps de lecture DSCP (simples — pas de NBAR nécessaire ici)
class-map match-all CM-EF
 match dscp ef
class-map match-all CM-CS3
 match dscp cs3
class-map match-any CM-AF41
 match dscp af41 af42 af43
class-map match-any CM-AF21
 match dscp af21 af22 af23
class-map match-all CM-CS1
 match dscp cs1

! Policy enfant — scheduler de files
policy-map PM-CHILD-WAN
 class CM-EF
  priority 2000            ! 2 Mbps LLQ — voix
 class CM-CS3
  bandwidth 500            ! 500 kbps — signalisation
 class CM-AF41
  bandwidth 4000           ! 4 Mbps — Teams vidéo
  random-detect dscp-based ! WRED pour TCP Teams
 class CM-AF21
  bandwidth 1000           ! 1 Mbps — SSH interactif
 class CM-CS1
  bandwidth 500            ! 500 kbps minimum Scavenger
  random-detect dscp-based
 class class-default
  fair-queue               ! Web BE — WFQ résiduel
  queue-limit 64

! Policy parent — shaper 10 Mbps
policy-map PM-PARENT-WAN
 class class-default
  shape average 10000000   ! CIR 10 Mbps — active le scheduler
  service-policy PM-CHILD-WAN

! Application sur interface WAN
interface GigabitEthernet0/1
 description WAN-ISP
 bandwidth 10000              ! Déclare CIR pour calculs %
 service-policy output PM-PARENT-WAN
Budget 10 Mbps — allocation par classe EF 2Mbps 20% CS3 AF41 Teams 4Mbps 40% AF21 1M CS1 BE Web ~3Mbps EF 2M + CS3 0.5M + AF41 4M + AF21 1M + CS1 0.5M = 8M garantis → 2M résiduel pour BE
9
Vision complète bout-en-bout
Le pipeline complet — de l'application à l'ISP
Principe fondamental : NBAR reconnaît. La politique d'entreprise décide de la valeur DSCP. Le marquage transporte cette décision dans chaque paquet IP. Tous les équipements lisent le DSCP et appliquent leur PHB local. La cohérence est garantie par la table Application → DSCP, pas par la re-classification à chaque saut.
ENDPOINTS SW ACCÈS SW DISTRIB ROUTEUR LAN-IN ROUTEUR WAN-OUT ISP Téléphone IP trust cos CoS→DSCP EF trust dscp EF intact PM-INGRESS-MARK EF → EF ✓ PM-CHILD: priority LLQ 2Mbps EF=46 PC Teams cos 0 forcé DSCP0 DSCP0 transit NBAR ms-teams set dscp af41 PM-CHILD: bw 4M CBWFQ+WRED AF41=34 PC SSH NBAR ssh set dscp af21 bw 1M AF21 AF21=18 PC Web class-default set dscp 0 fair-queue BE BE=0 PC Backup CM-BACKUP ACL set dscp cs1 bw 500k CS1 CS1=8 Idée clé NBAR classe une seule fois (routeur LAN ingress). Le DSCP voyage dans chaque paquet IP. Chaque équipement lit le DSCP et applique son PHB local — sans re-classifier.
Configuration complète du scénario : Switch Accès → Switch Distribution → Routeur WAN. Adapter les IPs, VLANs, et interfaces à ton environnement. Scénario : lien WAN 10 Mbps, VLAN 10 data, VLAN 20 voix, LAN 10.1.0.0/16.
!========================================
! SWITCH ACCÈS — trust boundary
!========================================
mls qos                              ! Activer QoS globalement

! VLAN voice et data
vlan 10
 name DATA
vlan 20
 name VOICE

! Port Téléphone IP (trust CoS du phone)
interface FastEthernet0/1
 description VOIP-PHONE-01
 switchport mode access
 switchport access vlan 10
 switchport voice vlan 20
 mls qos trust cos                  ! Téléphone Cisco — marquage légitime
 spanning-tree portfast

! Ports PC utilisateurs (pas confiance)
interface range FastEthernet0/2 - 20
 description PC-USERS
 switchport mode access
 switchport access vlan 10
 mls qos cos 0                      ! Forcer CoS=0 — ignorer marquage PC
 spanning-tree portfast

! Port PC Backup (pas confiance, même traitement)
interface FastEthernet0/21
 description PC-BACKUP
 switchport mode access
 switchport access vlan 10
 mls qos cos 0
 spanning-tree portfast

! Uplink vers Switch Distribution
interface GigabitEthernet0/1
 description UPLINK-DISTRIB
 switchport mode trunk
 mls qos trust dscp                 ! Faire confiance au DSCP sur trunk
!========================================
! SWITCH DISTRIBUTION — transit trusté
!========================================
mls qos

! Downlink vers switch accès
interface GigabitEthernet1/0/1
 description DOWNLINK-ACCES
 switchport mode trunk
 mls qos trust dscp                 ! DSCP déjà marqué en amont

! Uplink vers routeur WAN
interface GigabitEthernet1/0/24
 description UPLINK-ROUTER-WAN
 switchport mode trunk
 mls qos trust dscp
!========================================
! ROUTEUR WAN — partie 1 : NBAR + marquage
!========================================

! ACL serveurs backup
ip access-list extended ACL-BACKUP
 permit ip 10.1.10.0 0.0.0.255 any

! CLASS-MAPS de reconnaissance
class-map match-any CM-VOIP-RTP
 match protocol rtp audio

class-map match-any CM-SIGNALISATION
 match protocol sip
 match protocol h323

class-map match-any CM-TEAMS
 match protocol ms-teams
 match protocol webex
 match protocol rtp video

class-map match-any CM-SSH
 match protocol ssh

class-map match-any CM-BACKUP
 match access-group name ACL-BACKUP

! POLICY-MAP de marquage ingress LAN
policy-map PM-INGRESS-MARK
 class CM-VOIP-RTP
  set dscp ef
 class CM-SIGNALISATION
  set dscp cs3
 class CM-TEAMS
  set dscp af41
 class CM-SSH
  set dscp af21
 class CM-BACKUP
  set dscp cs1
 class class-default
  set dscp default

! Interface LAN
interface GigabitEthernet0/0
 description LAN
 ip address 10.1.1.1 255.255.0.0
 ip nbar protocol-discovery
 service-policy input PM-INGRESS-MARK
!========================================
! ROUTEUR WAN — partie 2 : queuing + shaping
!========================================

! CLASS-MAPS de lecture DSCP (simples)
class-map match-all CM-EF
 match dscp ef
class-map match-all CM-CS3
 match dscp cs3
class-map match-any CM-AF41
 match dscp af41 af42 af43
class-map match-any CM-AF21
 match dscp af21 af22 af23
class-map match-all CM-CS1
 match dscp cs1

! POLICY-MAP enfant — scheduler
policy-map PM-CHILD-WAN
 class CM-EF
  priority 2000               ! LLQ 2 Mbps — voix EF
 class CM-CS3
  bandwidth 500               ! 500 kbps — signalisation SIP
 class CM-AF41
  bandwidth 4000              ! 4 Mbps — Teams vidéo
  random-detect dscp-based    ! WRED pour éviter TCP sync
 class CM-AF21
  bandwidth 1000              ! 1 Mbps — SSH interactif
 class CM-CS1
  bandwidth 500               ! 500 kbps minimum — backup
  random-detect dscp-based
 class class-default
  fair-queue                  ! Web BE — bande résiduelle ~2 Mbps
  queue-limit 64

! POLICY-MAP parent — shaper 10 Mbps
policy-map PM-PARENT-WAN
 class class-default
  shape average 10000000      ! CIR 10 Mbps — Tc=125ms, Bc=1250000 bits
  service-policy PM-CHILD-WAN

! Interface WAN
interface GigabitEthernet0/1
 description WAN-ISP
 ip address 203.0.113.1 255.255.255.252
 bandwidth 10000             ! Déclare CIR pour calculs % QoS
 service-policy output PM-PARENT-WAN
Ordre de vérification recommandé : commencer par les class-maps (est-ce que la classification fonctionne ?), puis les compteurs de queuing (est-ce qu'il y a des drops ?), puis la latence effective (outil de mesure).
! 1. NBAR détecte-t-il les protocoles ?
show ip nbar protocol-discovery interface GigabitEthernet0/0 top-n 10
! Résultat attendu : ms-teams, rtp, sip, ssh, http visibles avec compteurs croissants
! Si ms-teams = 0 et trafic Teams actif → NBAR non actif ou protocol-discovery manquant

! 2. Les class-maps matchent-elles ?
show policy-map interface GigabitEthernet0/0
! Regarder "packets matched" par classe :
!   CM-VOIP-RTP  :  X packets  ← doit être > 0 si appels actifs
!   CM-TEAMS     :  X packets  ← doit augmenter pendant une réunion Teams
!   CM-BACKUP    :  X packets  ← doit augmenter pendant le backup
!   class-default:  X packets  ← tout le reste (web)
! Vérifier que les paquets sortent avec le bon DSCP
! Sur le routeur, capturer sur l'interface WAN :
debug ip packet detail                 ! Attention : très verbeux en prod !
! Chercher "TOS=0xB8" = EF (46 << 2 = 184 = 0xB8)
! TOS=0x88 = AF41 (34 << 2 = 136 = 0x88)

! Alternative non-intrusive : show interface + counters
show ip nbar protocol-discovery interface GigabitEthernet0/1 stats byte-count
show policy-map interface GigabitEthernet0/1

! Output typique attendu — tout va bien :
!  Class-map: CM-EF
!    (total drops/bytes drops): 0/0        ← CRITIQUE : 0 drops voix
!    offered rate 1800000 bps              ← sous le seuil 2Mbps = ok
!
!  Class-map: CM-AF41
!    drop rate 0 bps                       ← ok si Teams < 4Mbps
!
!  Class-map: CM-CS1
!    drop rate 800000 bps                  ← Normal ! Backup limité volontairement

! ⚠ Si drop rate > 0 sur CM-EF → problème voix critique
!   Causes possibles :
!   - Trop d'appels simultanés (dépasse priority 2000k)
!   - Un flux non-voix se marque EF frauduleusement
!   - Mauvaise config : priority trop bas
show policy-map interface GigabitEthernet0/1

!  Service-policy output: PM-PARENT-WAN
!    Class-map: class-default
!      Traffic Shaping
!        Bc: 1250000 bits                  ← 10Mbps × 125ms = correct
!        Queue Depth/Total Drops: 12/0     ← quelques paquets en attente = normal
!        Delayed Pkts: 1234                ← paquets retardés = normal (shaping)
SymptômeCause probableCommande diagnosticFix
CM-VOIP-RTP = 0 paquetsip nbar protocol-discovery manquant, ou téléphone ne génère pas de RTPshow ip nbar protocol-discoveryAjouter ip nbar protocol-discovery sur interface LAN
Drops sur CM-EFTrop d'appels (> 2 Mbps), ou trafic non-voix marqué EFshow policy-map int Gi0/1Augmenter priority ou contrôler les appels (CAC)
CM-TEAMS = 0, Teams dans class-defaultNBAR ne reconnaît pas ms-teams (version IOS)show ip nbar versionUpdate NBAR PDL ou utiliser ACL + ports Teams
Backup sature toujours le lienCM-BACKUP ne matche pas (ACL incorrecte)show ip access-lists ACL-BACKUPCorriger les plages IP de l'ACL backup
Voix hachée malgré EF et 0 dropsLatence inter-site élevée, ou jitter lié au Tc du shaperping voip-destination repeat 100Vérifier que Tc = 125ms (Cisco défaut) — réduire Bc si besoin
drops sur CM-CS1 = 0 (backup non limité)PM-CHILD pas attaché au parent, ou shape not activeshow policy-map int Gi0/1 detailVérifier que PM-PARENT est appliqué en output
ApplicationProtocole / Méthode détectionDSCPValeurCoS 802.1pQueue IOSCommande set
Téléphonie IP (voix) match protocol rtp audio EF465 priority 2000 (LLQ) set dscp ef
Signalisation SIP/H.323 match protocol sip CS3243 bandwidth 500 set dscp cs3
Teams / Webex / vidéoconf match protocol ms-teams AF41344 bandwidth 4000 + WRED set dscp af41
SSH / gestion réseau match protocol ssh AF21182 bandwidth 1000 set dscp af21
Web HTTP/HTTPS class-default BE / DF00 fair-queue (résiduel) set dscp default
Backup / transferts bulk match access-group ACL-BACKUP CS181 bandwidth 500 + WRED set dscp cs1
ÉquipementRôle QoSCommandes clés
Switch accèsTrust boundary — téléphone trusté (CoS), PC non trusté (CoS=0)mls qos, mls qos trust cos, mls qos cos 0
Switch distributionTransit — propager le DSCP sans le modifiermls qos trust dscp sur tous les ports trunk
Routeur LAN ingressClassification NBAR + Marquage DSCP — le seul endroit où NBAR tourneip nbar protocol-discovery, service-policy input PM-INGRESS-MARK
Routeur WAN egressQueuing + Shaping — appliquer les PHBs sur le lien WANservice-policy output PM-PARENT-WAN

① Classifier une seule fois, le plus tôt possible

NBAR tourne uniquement sur l'interface LAN du routeur d'accès (ingress). Tous les équipements en aval lisent le DSCP — ils n'ont pas besoin de NBAR. Pas de NBAR sur chaque équipement = performances et cohérence.

② La trust boundary est là où le réseau devient géré

Le premier équipement réseau contrôlé par l'IT (switch accès) est la trust boundary. Les endpoints (PCs) ne sont pas de confiance. Les téléphones IP Cisco peuvent l'être (CoS 5 légitime).

③ EF ≤ 33% du lien WAN

Ne jamais allouer plus de 33% du lien WAN en priority (LLQ). Au-delà, les autres classes sont affamées. Règle empirique pour la voix : 1 appel G.711 = ~85 kbps. 10 appels = 850 kbps sur un lien 10M = 8.5% — bien en deçà du seuil.

④ Shape parent obligatoire pour activer LLQ sur GigE→WAN

Sur un lien GigabitEthernet vers un WAN 10M, sans shape parent, le scheduler LLQ n'est jamais actif (la file se vide à 1 Gbps, jamais congestionnée). Le shape average 10000000 crée le sas qui active PM-CHILD.

⑤ Le DSCP ne fait rien sans policy-map

Marquer EF ne suffit pas. Il faut une policy-map avec priority qui traite EF en LLQ. Sans policy-map, EF est juste un label — Best Effort en pratique.