Chapter 8: Quality of Service, Multicast Snooping, and DHCP Services

Learning Objectives

Chapter at a Glance

Pre-Reading Self-Check

Answer each question below before reading. You will retake the same quiz at the end and compare scores.

Pre-Quiz - QoS

1. Which AOS-CX QoS stage is responsible for assigning traffic to one of the eight internal queues?

a) class-map
b) policy-map
c) schedule-profile
d) queue-profile

2. What is the default QoS trust mode on an AOS-CX interface?

a) trust dscp
b) trust cos
c) trust none
d) trust both

3. By convention on AOS-CX, which queue is used as a strict-priority queue for voice (DSCP 46/EF)?

a) Queue 0
b) Queue 3
c) Queue 5
d) Queue 7
Pre-Quiz - IGMP / Multicast

4. What is the default state of IGMP snooping on AOS-CX?

a) Enabled globally on all VLANs
b) Enabled only on VLAN 1
c) Disabled - multicast floods until enabled
d) Enabled but in passive mode

5. When IGMP snooping is enabled on a flat L2 VLAN with no PIM router, what is required for the snooping table to stay populated?

a) A snooping querier on the SVI
b) A static mrouter port on each access port
c) IGMPv1 hardcoded on every host
d) Storm control enabled

6. What is the default IGMP snooping version on AOS-CX?

a) v1
b) v2
c) v3
d) Auto-negotiated per host
Pre-Quiz - DHCP

7. The CLI ip helper-address on an SVI is used to:

a) Block rogue DHCP servers
b) Forward DHCP broadcasts as unicasts to off-segment servers
c) Build the DHCP binding database
d) Insert Option 82 only

8. Which DHCP messages does an untrusted DHCP-snooping port DROP?

a) DISCOVER and REQUEST
b) RELEASE and DECLINE
c) OFFER, ACK, and NAK (server-side messages)
d) All DHCP messages of any kind

9. What is the default trust state of every port when DHCP snooping is first enabled?

a) All ports trusted
b) All ports untrusted
c) Only uplinks trusted automatically
d) Only access ports trusted
Pre-Quiz - L2 Threat Mitigation

10. What feature does Dynamic ARP Inspection (DAI) DEPEND on for its validation source?

a) Spanning Tree state table
b) MAC address-table
c) DHCP snooping binding database
d) ARP cache timer

11. What L2 threat does IP Source Guard (IPSG) primarily defend against?

a) IP spoofing from compromised hosts
b) Broadcast storms
c) ARP cache poisoning of routers
d) Spanning Tree manipulation

12. Loop protect is intended to be applied to:

a) Uplinks toward aggregation switches
b) Access ports facing end users
c) Only management interfaces
d) Routed L3 interfaces

13. Why does enabling DAI in a server VLAN with statically addressed servers cause an outage?

a) DAI uses STP and creates a loop
b) Static-IP hosts have no DHCP binding entry, so their ARPs are dropped
c) DAI floods the CPU with ARP broadcasts
d) DAI requires IGMP snooping to be enabled first

8.1 Quality of Service on AOS-CX

Ethernet is best-effort by default. When a 1 Gb uplink fills up, every flow suffers equally - bulk traffic just slows, but a voice call drops words. QoS is the policy machinery that lets the switch say "voice goes first, video next, file copies last" when the pipe is congested.

QoS only matters at points of contention. The classic campus contention point is the access-to-aggregation uplink, where many 1 Gb edge ports converge onto a smaller number of 10/25 Gb uplinks.

The four-stage QoS pipeline

  1. Classify - class-map: identify the traffic (DSCP, CoS, or ACL).
  2. Mark/queue - policy-map: set DSCP/CoS, assign to internal queue.
  3. Schedule - schedule-profile: who serves first (strict vs DWRR).
  4. Shape/drop - queue-profile: per-queue rate limits and WRED.
Animation 1 - QoS Pipeline: Trust → Classify → Mark → Schedule → Egress
Trust qos trust dscp cos / none Classify class-map match dscp 46 Mark / Queue policy-map set dscp / queue 7 Schedule schedule-profile strict / DWRR Shape/WRED queue-profile CIR/CBS Egress port VOICE RTP / EF DSCP 46 (EF) Queue 7 strict A voice packet (DSCP 46) traverses the AOS-CX QoS pipeline. Each stage glows as it processes - culminating in strict-priority queue 7. CLI: class-map → policy-map → schedule-profile → queue-profile

Trust modes

The first decision a packet faces: do I trust the markings the sender wrote?

Trust modeBehaviorTypical use
qos trust noneDefault. Ignore incoming markings, classify to default priority.Untrusted user ports.
qos trust cosUse 802.1p CoS bits in VLAN tag.L2 trunks, AP uplinks.
qos trust dscpUse DSCP bits in IP header.L3 boundaries, IP-phone uplinks.

The default of trust none is a common gotcha. A new Aruba CX deployment with IP phones will not honor DSCP 46 markings until you set qos trust dscp on the access port. Without trust, voice rides the default queue alongside YouTube.

DSCP / CoS to queue mapping

DSCPNameCoSQueueTraffic
46EF57 (strict)Voice (RTP)
34AF4146Interactive video
26AF3135SIP / signaling
0BE02Default Internet
8CS111Scavenger

Scheduling - strict vs DWRR

schedule-profile S-PROFILE
   queue 7 strict
   queue 6 dwrr weight 50
   queue 5 dwrr weight 40
   queue 0 dwrr weight 10

Canonical edge recipe

class-map match-any CLASS_VOICE
   match dscp 46
class-map match-any CLASS_VIDEO
   match dscp 34

policy-map EDGE-IN
   class CLASS_VOICE
      queue 7
   class CLASS_VIDEO
      queue 6

interface 1/1/10
   description "IP phone + PC daisy chain"
   qos trust dscp
   service-policy input EDGE-IN

QoS Key Points

8.2 IGMP and Multicast Snooping

Layer 2 switches treat multicast like broadcast - flood every port in the VLAN. A single 50 Mb video multicast that one host subscribes to floods every other host on the VLAN. IGMP snooping is the fix: the switch listens to IGMP Membership Reports, Leaves, and Queries, and dynamically forwards each multicast group only to subscribed ports plus the multicast router port.

Animation 2 - IGMP Snooping: Joins arrive, switch records, only subscribers receive
Querier / Source PIM router or SVI 239.1.1.1 stream Snooping Switch VLAN 10 Group Table: 239.1.1.1 -> 1/1/1, 1/1/2 mrouter -> 1/1/24 Host 1 JOINED 239.1.1.1 Host 2 JOINED 239.1.1.1 Host 3 not subscribed IGMP JOIN IGMP JOIN VIDEO VIDEO X no forward Hosts 1 and 2 send IGMP Join. The switch programs the L2 group table and forwards multicast only to those ports.

IGMP versions and querier

VersionNotes
IGMPv1RFC 1112. No leave message. Rare today.
IGMPv2RFC 2236. Adds explicit Leave messages and Group-Specific Queries.
IGMPv3RFC 3376. Adds source-specific multicast (SSM). Default on AOS-CX.

Every snooping VLAN needs a querier - a device that periodically sends IGMP General Queries so that hosts respond with Membership Reports. In a routed multicast network, the PIM router is automatic. In a flat L2 network, you must enable a snooping querier on the SVI.

Enabling IGMP snooping

IGMP snooping is disabled by default. Default version when enabled is v3.

# Global - simplest
switch(config)# ip igmp snooping all-vlans

# Per-VLAN
switch(config)# vlan 10
switch(config-vlan-10)# ip igmp snooping enable
switch(config-vlan-10)# ip igmp snooping version 2   # only if v2 hosts present

Snooping querier on the SVI

switch(config)# interface vlan 10
switch(config-if-vlan)# ip address 10.10.10.1/24
switch(config-if-vlan)# ip igmp snooping querier

If two queriers exist, IGMP elects the lowest IP as active.

Static mrouter port

switch(config)# vlan 10
switch(config-vlan-10)# ip igmp snooping mrouter interface 1/1/24

Verification commands

CommandShows
show ip igmp snoopingGlobal and per-VLAN snooping status
show ip igmp snooping vlan 10Detail for one VLAN
show ip igmp snooping groupsCurrently joined groups, member ports
show ip igmp snooping mrouterLearned and static mrouter ports

IGMP Snooping Key Points

8.3 DHCP Services - Relay and Snooping

DHCP comes in two flavors on a campus switch:

Both can - and usually should - coexist on the same access switch.

Animation 3 - DHCP Snooping: Trusted uplink permits OFFER, untrusted port drops rogue OFFER
DHCP Server 10.50.50.10 legitimate Access Switch dhcpv4-snooping enabled, VLAN 10 binding DB: {MAC, IP, VLAN, port, lease} TRUSTED 1/1/24 uplink UNTRUSTED UNTRUSTED Legit Client port 1/1/1 Rogue DHCP port 1/1/2 DHCP OFFER ROGUE OFFER X Server-side OFFER from the trusted uplink is forwarded; the rogue OFFER on an untrusted access port is dropped at the switch.

DHCP relay - ip helper-address

Routers do not forward broadcasts. The SVI catches the DHCPDISCOVER and relays it as a unicast to the server, setting the giaddr field so the server picks the right scope.

switch(config)# interface vlan 10
switch(config-if-vlan)# ip address 10.10.10.1/24
switch(config-if-vlan)# ip helper-address 10.50.50.10
switch(config-if-vlan)# ip helper-address 10.50.50.11   # redundancy

DHCP snooping - blocking rogue servers

All ports are untrusted by default. On an untrusted port, the switch:

switch(config)# dhcpv4-snooping
switch(config)# vlan 10
switch(config-vlan-10)# dhcpv4-snooping
switch(config)# interface 1/1/24
switch(config-if)# description "Uplink to DHCP server"
switch(config-if)# dhcpv4-snooping trust

Forgetting trust on the uplink is a common mistake - clients then fail to get addresses because the legitimate OFFER is dropped along with the rogue ones.

The binding database

FieldDescription
MAC addressClient hardware address
IP addressAddress leased by the server
VLANVLAN ID of the lease
InterfaceIngress port of the client
Lease timeWhen the binding expires

This binding database is the foundation for both Dynamic ARP Inspection and IP Source Guard.

Option 82

Relay or snooping switches can insert Option 82 (Relay Agent Information) so the upstream server can identify the originating port/switch. Useful for assigning IPs from specific scopes per port, logging which port leased an address, or rejecting requests without expected relay info.

DHCP Key Points

8.4 Layer 2 Threat Mitigation

Once the DHCP snooping binding database exists, two more security features can use it as their truth source. Add loop protect and storm control and you have a five-feature L2 hardening stack that should be standard on every access port.

ThreatWhat attacker doesMitigation
Rogue DHCP serverPlug in laptop running dnsmasqDHCP snooping
ARP spoofing / MITMSend unsolicited ARP claiming to be gatewayDynamic ARP Inspection
IP spoofingForge source IP from compromised hostIP Source Guard
L2 loopBridge ports outside STP domainLoop protect
Bcast/mcast/unknown-unicast stormFlood from chatty/malicious deviceStorm control

Dynamic ARP Inspection (DAI)

DAI inspects every ARP on untrusted ports and verifies the sender's IP/MAC/port against the snooping binding DB. If it doesn't match, drop. DAI requires DHCP snooping - without the binding DB it has nothing to validate against.

sequenceDiagram participant H as Host (untrusted port 1/1/5) participant SW as Switch (DAI VLAN 10) participant DB as DHCP Snooping Binding DB participant GW as Gateway / Target H->>SW: ARP packet (sender MAC/IP, port) SW->>DB: Lookup {MAC, IP, VLAN, port} alt Tuple matches binding DB-->>SW: Match SW->>GW: Forward ARP else Tuple absent or mismatched DB-->>SW: No match SW--xH: Drop ARP, increment violation counter end Note over SW,DB: Trusted uplink ports bypass this check entirely
switch(config)# vlan 10
switch(config-vlan-10)# arp inspection

switch(config)# interface 1/1/24
switch(config-if)# arp inspection trust

Static-IP gotcha: in a server VLAN with statically addressed servers, DAI black-holes them unless you add manual ip source-binding entries. This is the single biggest deployment mistake.

IP Source Guard / IP Source Lockdown

IPSG filters IP traffic on access ports against the binding table. Only traffic whose {MAC, IP, VLAN, port} tuple matches a binding is forwarded. Like DAI, depends on DHCP snooping; breaks for static-IP hosts without manual bindings.

switch(config)# ip source-binding 00:11:22:33:44:55 vlan 10 ipv4 10.10.10.50 interface 1/1/5

Loop protect

STP can miss inadvertently bridged ports (a user looping a patch cable into a wall jack, a rogue mini-switch). Loop protect transmits a loop-detect frame and shuts the port if it returns.

switch(config)# loop-protect
switch(config)# interface 1/1/1-1/1/24
switch(config-if-<>)# loop-protect

Apply on every access port; do not apply on uplinks (managed by STP/MSTP).

Storm control

Rate-limits broadcast / multicast / unknown-unicast frames per port. Use cases: a NIC stuck in broadcast, a worm fan-out, ARP flood.

switch(config)# interface 1/1/1
switch(config-if)# storm-control broadcast level pps 100
switch(config-if)# storm-control multicast level pps 200
switch(config-if)# storm-control unknown-unicast level pps 100

L2 Threat Mitigation Key Points

Post-Reading Self-Check

Same questions, fresh attempt. Compare against your pre-quiz score.

Post-Quiz - QoS

1. Which AOS-CX QoS stage is responsible for assigning traffic to one of the eight internal queues?

a) class-map
b) policy-map
c) schedule-profile
d) queue-profile

2. What is the default QoS trust mode on an AOS-CX interface?

a) trust dscp
b) trust cos
c) trust none
d) trust both

3. By convention on AOS-CX, which queue is used as a strict-priority queue for voice (DSCP 46/EF)?

a) Queue 0
b) Queue 3
c) Queue 5
d) Queue 7
Post-Quiz - IGMP / Multicast

4. What is the default state of IGMP snooping on AOS-CX?

a) Enabled globally on all VLANs
b) Enabled only on VLAN 1
c) Disabled - multicast floods until enabled
d) Enabled but in passive mode

5. When IGMP snooping is enabled on a flat L2 VLAN with no PIM router, what is required for the snooping table to stay populated?

a) A snooping querier on the SVI
b) A static mrouter port on each access port
c) IGMPv1 hardcoded on every host
d) Storm control enabled

6. What is the default IGMP snooping version on AOS-CX?

a) v1
b) v2
c) v3
d) Auto-negotiated per host
Post-Quiz - DHCP

7. The CLI ip helper-address on an SVI is used to:

a) Block rogue DHCP servers
b) Forward DHCP broadcasts as unicasts to off-segment servers
c) Build the DHCP binding database
d) Insert Option 82 only

8. Which DHCP messages does an untrusted DHCP-snooping port DROP?

a) DISCOVER and REQUEST
b) RELEASE and DECLINE
c) OFFER, ACK, and NAK (server-side messages)
d) All DHCP messages of any kind

9. What is the default trust state of every port when DHCP snooping is first enabled?

a) All ports trusted
b) All ports untrusted
c) Only uplinks trusted automatically
d) Only access ports trusted
Post-Quiz - L2 Threat Mitigation

10. What feature does Dynamic ARP Inspection (DAI) DEPEND on for its validation source?

a) Spanning Tree state table
b) MAC address-table
c) DHCP snooping binding database
d) ARP cache timer

11. What L2 threat does IP Source Guard (IPSG) primarily defend against?

a) IP spoofing from compromised hosts
b) Broadcast storms
c) ARP cache poisoning of routers
d) Spanning Tree manipulation

12. Loop protect is intended to be applied to:

a) Uplinks toward aggregation switches
b) Access ports facing end users
c) Only management interfaces
d) Routed L3 interfaces

13. Why does enabling DAI in a server VLAN with statically addressed servers cause an outage?

a) DAI uses STP and creates a loop
b) Static-IP hosts have no DHCP binding entry, so their ARPs are dropped
c) DAI floods the CPU with ARP broadcasts
d) DAI requires IGMP snooping to be enabled first

Your Progress

Answer Explanations