Example for Configuring HQoS (Subscriber Queues Configured Based on ACLs)
Networking Requirements
Voice, video, and data services from multiple users are transmitted on a network, and 802.1p priorities of voice, video, and data services are 6, 5, and 2 respectively. Bandwidth needs to be guaranteed for the voice, video, and data services in descending order of priority. Table 11-6 and Table 11-7 describe the configuration requirements.
Because the bandwidth is limited, the device needs to differentiate service priorities and shape traffic from different users to provide different bandwidth. Table 11-8 describes the configuration requirement.
Service Type |
Font Color |
Lower Drop Threshold (%) |
Upper Drop Threshold (%) |
Maximum Drop Probability |
---|---|---|---|---|
Voice |
Green |
80 |
100 |
10 |
Video |
Yellow |
60 |
80 |
20 |
Data |
Red |
40 |
60 |
40 |
Service Type |
CoS Value |
---|---|
Voice |
EF |
Video |
AF3 |
Data |
AF1 |
User |
PIR |
---|---|
Users in VLAN 10 |
8000 kbit/s |
Users in VLAN 20 |
5000 kbit/s |
Configuration Roadmap
- Create VLANs and configure interfaces so that the users can access the Internet through the Switch.
- Create a DiffServ domain on the Switch, map the 802.1p priorities of different service packets to PHBs and color, and bind the DiffServ domain to the inbound interface of the Switch.
- Configure a flow queue WRED drop profile, flow queue profile, and profile parameters on the Switch so that the Switch provides different scheduling priorities, drop profile parameters, and traffic shaping parameters for different services.
- Configure ACLs on the Switch to differentiate service traffic of different users based on VLAN IDs.
- Configure subscriber queues and traffic shaping parameters on the Switch, and reference the flow queue WRED drop profile and flow queue profile to implement HQoS.
Procedure
- Create VLANs and configure interfaces.
# Create VLAN 10 on SwitchA, configure GE0/0/1 and GE0/0/2 on SwitchA as access interfaces and add them to VLAN 10, and configure GE0/0/3 as a trunk interface and add it to VLAN 10.
<HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan batch 10 [SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] port link-type access [SwitchA-GigabitEthernet0/0/1] port default vlan 10 [SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] port link-type access [SwitchA-GigabitEthernet0/0/2] port default vlan 10 [SwitchA-GigabitEthernet0/0/2] quit [SwitchA] interface gigabitethernet 0/0/3 [SwitchA-GigabitEthernet0/0/3] port link-type trunk [SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 [SwitchA-GigabitEthernet0/0/3] quit
# Create VLAN 20 on SwitchB, configure GE0/0/1 and GE0/0/2 on SwitchB as access interfaces and add them to VLAN 20, and configure GE0/0/3 as a trunk interface and add it to VLAN 20.
<HUAWEI> system-view [HUAWEI] sysname SwitchB [SwitchB] vlan batch 20 [SwitchB] interface gigabitethernet 0/0/1 [SwitchB-GigabitEthernet0/0/1] port link-type access [SwitchB-GigabitEthernet0/0/1] port default vlan 20 [SwitchB-GigabitEthernet0/0/1] quit [SwitchB] interface gigabitethernet 0/0/2 [SwitchB-GigabitEthernet0/0/2] port link-type access [SwitchB-GigabitEthernet0/0/2] port default vlan 20 [SwitchB-GigabitEthernet0/0/2] quit [SwitchB] interface gigabitethernet 0/0/3 [SwitchB-GigabitEthernet0/0/3] port link-type trunk [SwitchB-GigabitEthernet0/0/3] port trunk allow-pass vlan 20 [SwitchB-GigabitEthernet0/0/3] quit
# Create VLAN 10 and VLAN 20 on SwitchC, configure GE0/0/1 on SwitchC as a trunk interface and add it to VLAN 10 and VLAN 20, and configure GE0/0/2 as a trunk interface and add it to VLAN 10 and VLAN 20.
<HUAWEI> system-view [HUAWEI] sysname SwitchC [SwitchC] vlan batch 10 20 [SwitchC] interface gigabitethernet 0/0/1 [SwitchC-GigabitEthernet0/0/1] port link-type trunk [SwitchC-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SwitchC-GigabitEthernet0/0/1] quit [SwitchC] interface gigabitethernet 0/0/2 [SwitchC-GigabitEthernet0/0/2] port link-type trunk [SwitchC-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SwitchC-GigabitEthernet0/0/2] quit
# Create VLAN 10 and VLAN 20 on the Switch, configure GE0/0/1, GE0/0/2, and GE0/0/3 as trunk interfaces, and add GE0/0/1 to VLAN 10, GE0/0/2 to VLAN 20, and GE0/0/3 to VLAN 10 and VLAN 20.
<HUAWEI> system-view [HUAWEI] sysname Switch [Switch] vlan batch 10 20 [Switch] interface gigabitethernet 0/0/1 [Switch-GigabitEthernet0/0/1] port link-type trunk [Switch-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 [Switch-GigabitEthernet0/0/1] quit [Switch] interface gigabitethernet 0/0/2 [Switch-GigabitEthernet0/0/2] port link-type trunk [Switch-GigabitEthernet0/0/2] port trunk allow-pass vlan 20 [Switch-GigabitEthernet0/0/2] quit [Switch] interface gigabitethernet 0/0/3 [Switch-GigabitEthernet0/0/3] port link-type trunk [Switch-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20 [Switch-GigabitEthernet0/0/3] quit
- Configure priority mapping.
# Create DiffServ domain ds1, map 802.1p priorities 6, 5, 2 to EF, AF3, and AF1, and color packets green, yellow, and red.
[Switch] diffserv domain ds1 [Switch-dsdomain-ds1] 8021p-inbound 6 phb ef green [Switch-dsdomain-ds1] 8021p-inbound 5 phb af3 yellow [Switch-dsdomain-ds1] 8021p-inbound 2 phb af1 red [Switch-dsdomain-ds1] quit
# Bind the DiffServ domain to GE0/0/1 and GE0/0/2 on the Switch.
[Switch] interface gigabitethernet 0/0/1 [Switch-GigabitEthernet0/0/1] trust upstream ds1 [Switch-GigabitEthernet0/0/1] trust 8021p inner [Switch-GigabitEthernet0/0/1] quit [Switch] interface gigabitethernet 0/0/2 [Switch-GigabitEthernet0/0/2] trust upstream ds1 [Switch-GigabitEthernet0/0/2] trust 8021p inner [Switch-GigabitEthernet0/0/2] quit
- Configure a flow queue WRED drop profile and define parameters in the profile.
# Create flow queue WRED drop profile wred1 on the Switch and set parameters of green, yellow, and red packets in the flow queue WRED drop profile.
[Switch] flow-wred-profile wred1 [Switch-flow-wred-wred1] color green low-limit 80 high-limit 100 discard-percentage 10 [Switch-flow-wred-wred1] color yellow low-limit 60 high-limit 80 discard-percentage 20 [Switch-flow-wred-wred1] color red low-limit 40 high-limit 60 discard-percentage 40 [Switch-flow-wred-wred1] quit
- Configure a flow queue profile and define parameters in the profile.
# Configure flow queue profile flow1 on the Switch, bind flow queue profile flow1 to flow queue WRED drop profile wred1, and configure different scheduling parameters.
[Switch] flow-queue-profile flow1 [Switch-flow-queue-flow1] qos queue 5 pq flow-wred-profile wred1 [Switch-flow-queue-flow1] qos queue 3 wfq weight 20 flow-wred-profile wred1 [Switch-flow-queue-flow1] qos queue 1 wfq weight 10 flow-wred-profile wred1 [Switch-flow-queue-flow1] quit
- Configure ACLs.
# Configure ACL 4001 and ACL 4002 on the Switch, and configure ACL rules based on VLAN 10 and VLAN 20.
[Switch] acl number 4001 [Switch-acl-L2-4001] rule 1 permit vlan-id 10 [Switch-acl-L2-4001] quit [Switch] acl number 4002 [Switch-acl-L2-4002] rule 1 permit vlan-id 20 [Switch-acl-L2-4002] quit
- Configure subscriber queues and parameters.
# Configure subscriber queues based on ACL 4001 and ACL 4002 on the Switch and reference flow queue profile flow1.
[Switch] interface gigabitethernet 0/0/3 [Switch-GigabitEthernet0/0/3] traffic-user-queue outbound acl 4001 pir 8000 flow-queue-profile flow1 [Switch-GigabitEthernet0/0/3] traffic-user-queue outbound acl 4002 pir 5000 flow-queue-profile flow1 [Switch-GigabitEthernet0/0/3] quit [Switch] quit
- Verify the configuration.
# Check the configuration of the flow queue WRED drop profile, including the profile name, upper and lower drop thresholds of green, yellow, and red packets, and maximum drop probability.
<Switch> display flow-wred-profile name wred1 Flow-wred-profile[1]: wred1 Queue depth : 1048576 Color Low-limit High-limit Discard-percentage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Green 80 100 10 Yellow 60 80 20 Red 40 60 40 -----------------------------------------------------------------
# Check the flow queue profile configuration, including the profile name and WFQ weights.
<Switch> display flow-queue-profile name flow1 Flow-queue-profile[1]: flow1 Queue Schedule(Weight) Shaping flow-wred-profile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 PQ None default 1 WFQ(10) None wred1 2 PQ None default 3 WFQ(20) None wred1 4 PQ None default 5 PQ None wred1 6 PQ None default 7 PQ None default -----------------------------------------------------------------------
# Check traffic statistics on subscriber queues.
<Switch> display traffic-user-queue statistics interface gigabitethernet 0/0/3 outbound acl 4001 -------------------------------------------------------------------------------- Interface: GigabitEthernet0/0/3 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 0 | packets: pass: 4,127 | drop: 2,798,787,076 | bytes: pass: 610,796 | drop: 414,220,487,248 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 1 | packets: pass: 4,127 | drop: 5,597,436,717 | bytes: pass: 610,796 | drop: 828,420,634,116 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 2 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 3 | packets: pass: 4,127 | drop: 5,597,436,713 | bytes: pass: 610,796 | drop: 828,420,633,524 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 4 | packets: pass: 4,127 | drop: 2,798,716,293 | bytes: pass: 610,796 | drop: 414,210,011,364 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 5 | packets: pass: 4,127 | drop: 2,798,716,294 | bytes: pass: 610,796 | drop: 414,210,011,512 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 6 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 7 | packets: pass: 1,119,509,460 | drop: 1,679,210,961 | bytes: pass: 165,687,400,080 | drop: 248,523,222,228 --------------------------------------------------------------------------------
<Switch> display traffic-user-queue statistics interface gigabitethernet 0/0/3 outbound acl 4002 -------------------------------------------------------------------------------- Interface: GigabitEthernet0/0/3 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 0 | packets: pass: 4,125 | drop: 5,218,026 | bytes: pass: 610,500 | drop: 772,267,848 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 1 | packets: pass: 4,125 | drop: 10,440,178 | bytes: pass: 610,500 | drop: 1,545,146,344 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 2 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 3 | packets: pass: 4,125 | drop: 10,440,178 | bytes: pass: 610,500 | drop: 1,545,146,344 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 4 | packets: pass: 4,125 | drop: 5,218,027 | bytes: pass: 610,500 | drop: 772,267,996 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 5 | packets: pass: 4,125 | drop: 5,218,027 | bytes: pass: 610,500 | drop: 772,267,996 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 6 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 7 | packets: pass: 2,092,988 | drop: 3,129,165 | bytes: pass: 309,762,224 | drop: 463,116,420 --------------------------------------------------------------------------------
Configuration Files
SwitchA configuration file
# sysname SwitchA # vlan batch 10 # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 10 # return
SwitchB configuration file
# sysname SwitchB # vlan batch 20 # interface GigabitEthernet0/0/1 port link-type access port default vlan 20 # interface GigabitEthernet0/0/2 port link-type access port default vlan 20 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 20 # return
SwitchC configuration file
# sysname SwitchC # vlan batch 10 20 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 # return
Switch configuration file
# sysname Switch # vlan batch 10 20 # diffserv domain ds1 8021p-inbound 2 phb af1 red 8021p-inbound 5 phb af3 yellow 8021p-inbound 6 phb ef green # acl number 4001 rule 1 permit vlan-id 10 acl number 4002 rule 1 permit vlan-id 20 # flow-wred-profile wred1 color green low-limit 80 high-limit 100 discard-percentage 10 color yellow low-limit 60 high-limit 80 discard-percentage 20 color red low-limit 40 high-limit 60 discard-percentage 40 # flow-queue-profile flow1 qos queue 1 wfq weight 10 flow-wred-profile wred1 qos queue 3 wfq weight 20 flow-wred-profile wred1 qos queue 5 flow-wred-profile wred1 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 trust upstream ds1 trust 8021p inner # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 20 trust upstream ds1 trust 8021p inner # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 10 20 traffic-user-queue outbound acl 4001 pir 8000 flow-queue-profile flow1 traffic-user-queue outbound acl 4002 pir 5000 flow-queue-profile flow1 # return