Cisco vs HP vs Dell CLI – VLAN Configuration

This post continues my series on the differences between these three manufacturers and how they implement L2 and L3 VLANs.

Scenario 1: Create a Layer 2 VLAN

vlan 10

vlan 10

vlan database
vlan 10

Scenario 2: Create a Layer 3 VLAN (that’s routable)

interface vlan 10
ip address

vlan 10
ip address

interface vlan 10
ip address

The biggest difference between all three manufacturers is that HP does not implement a separate VLAN interface for L3 configuration.  Cisco and Dell both require you to go into interface vlan mode before configuring L3 information (IP addressing).  Dell also requires the routing keyword to actually route that VLAN.

**All three manufacturers do require you to input the command IP Routing if you want the switch to route packets**


Cisco vs HP vs Dell CLI – Interface Configuration

After working with all three switch manufacturers in a short period of time, I figured I would do a quick post on how each chooses how to implement VLANs at the interface level.

Scenario 1: Switchport needs to be part of a single native VLAN (VLAN 10)

interface GigabitEthernet1/1
switchport mode access
switchport access vlan 10

vlan 10
untag 1

interface ethernet 1/g1
switchport mode access
switchport access vlan 10

Scenario 2: Switchport needs to be part of a single native VLAN (VLAN 10) and multiple tagged VLANS (VLAN 20,30)

interface GigabitEthernet1/1
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,20,30 (not necessary, but added for security)

vlan 10
untag 1
vlan 20
tagged 1
vlan 30
tagged 1

interface ethernet 1/g1
switchport mode general
switchport general pvid 10
switchport general allowed vlan add 10
switchport general allowed vlan add 20,30 tagged
switchport general allowed vlan remove 1

Obviously the Dell configuration looks a bit convoluted here, but they do require you to manually remove VLAN 1 even though you have specified a different PVID.

HP ProCurve Switch Configuration

After working with ProCurve switches for a while, I figured I would post my general configuration for others to use as a template.  This configuration will be a simple setup with 2 VLANS, if you have any questions, feel free to ask.

hostname HP-Procurve-Core

time timezone -480
time daylight-time-rule Continental-US-and-Canada
sntp server priority 1
timesync sntp
sntp unicast

qos type-of-service diff-services

spanning-tree 1-24 bpdu-protection (do not apply this to ports connected to switches)
spanning-tree bpdu-protection-timeout 300

ip routing
ip route

vlan 1 name Data
vlan 1 ip address
vlan 1 untag 1-22, 23-24

vlan 10 name Voice
vlan 10 ip address
vlan 10 voice
vlan 10 tag 1-20
vlan 10 untag 21-22
vlan 10 ip helper-address

password manager username hpadmin plaintext hpadminpassword

HP Switch (ProVision) QoS Guide

Coming from a Cisco QoS background, I wanted to get a good grasp on HP QoS with the ProVision switches, but there isn’t much information out there (besides the Advanced Traffic Management Guide by HP).  This post should should consolidate some of that information, and is based on the the Advanced Traffic Management Guide, various vendor HP interopability guides, and talks with some of the guys over at HP Networking.

HP QoS Basics:

The 4 components of HP ProVision QoS are:

  1. Enable QoS
  2. Decide how many traffic queues you need
  3. Assign guaranteed minimum bandwidth (GMB)/traffic servicing per queue
  4. Classify traffic and assign to 802.1p priority

These four steps can be achieved with a single command (almost like an Auto QoS). This command enables QoS, the 8 queue model, GMB, and DSCP-to-802.1p mappings of the primary DSCP values.

HP(config)# qos type-of-service diff-services

Now that QoS has been enabled, we can look at how HP maps 802.1p priorities to each queue:

HP# show qos queue-config
Egress Queue Configuration

Queue      802.1p Priority
——-          ————
1                1
2                2
3                0
4                3
5                4
6                5
7                6
8                7

As you can see, traffic goes into queue 3 by default (802.1p – 0), background or scavenger traffic would be assigned to 802.1 priority 1 or 2, and more important traffic assigned to priorities 3-7.  Now that we know where the traffic is going, let’s look at the bandwidth assigned to each queue:

HP# show bandwidth output 1

Outbound Guaranteed Minimum Bandwidth %
Port   Q1   Q2   Q3  Q4   Q5   Q6   Q7   Q8
——   —    —    —    —    —    —    —    —
1         2      3     30   10   10   10    15   20

Traffic with priority 1 or 2 gets the least amount of guaranteed bandwidth at 2% and 3%.  Default traffic is guaranteed 30%, and we see that the upper queue’s (7 and 8) get 15% and 20% respectively.  Note that this is just guaranteed minimum bandwidth (GMB), not shaping or policing.  If the other queues are not full, traffic can burst above their guaranteed rate.  If the default values do not fit your network needs, the values can be changed on a port-by-port basis:

HP(config)# interface 1 bandwidth-min output 1 1 10 1 5 1 1 80

HP# show bandwidth output 1

Outbound Guaranteed Minimum Bandwidth %
Port   Q1   Q2   Q3  Q4   Q5   Q6   Q7   Q8
——   —    —    —    —    —    —    —    —
1         1     1     10     1      5      1     1      80

HP also does time-slicing per queue, depending on the assigned GMB.  For example, by default, traffic in queue 3 (GMB=30%) will be serviced at 30% of the time window before servicing the next queues packets.  With the modified GMB properties directly above, queue 8 would be serviced at 80% of the time before moving to the next queues.

There are also memory buffers assigned to each queue, but those are platform dependent and not publicly available (they are also not configurable).

Finally, we can view the default DSCP-to-802.1p Priority mappings:

HP# show qos dscp-map
DSCP -> 802.p priority mappings
NOTE: ‘qos type-of-service diff-services’ must be configured before DSCP is honored on inbound traffic.

DSCP CodePoint    DSCP Value    802.1p tag      DSCP Policy name
————————    —————–    ————–       ——————————–
000000                      0                         0                       cs0
000001                      1                         No-override
000010                      2                         No-override
000011                      3                         No-override
000100                      4                         No-override
000101                      5                         No-override
000110                      6                         No-override
000111                      7                         No-override
001000                      8                         1                        cs1
001001                      9                         No-override
001010                      10                       1                        af11
001011                      11                       No-override
001100                      12                       1                        af12
001101                      13                       No-override
001110                      14                       2                        af13
001111                      15                       No-override
010000                      16                       2                        cs2
010001                      17                       No-override
010010                      18                       0                        af21
010011                      19                       No-override
010100                      20                       0                        af22
010101                      21                       No-override
010110                      22                       3                        af23
010111                      23                       No-override
011000                      24                       3                        cs3
011001                      25                       No-override
011010                      26                       4                        af31
011011                      27                       No-override
011100                      28                       4                        af32
011101                      29                       No-override
011110                      30                       5                        af33
011111                      31                       No-override
100000                      32                       4                        cs4
100001                      33                       No-override
100010                      34                       6                        af41
100011                      35                       No-override
100100                      36                       6                        af42
100101                      37                       No-override
100110                      38                       7                        af43
100111                      39                       No-override
101000                      40                       5                        cs5
101001                      41                       No-override
101010                      42                       No-override
101011                      43                       No-override
101100                      44                       No-override
101101                      45                       No-override
101110                      46                       7                        ef
101111                      47                       No-override
110000                      48                       6                        cs6
110001                      49                       No-override
110010                      50                       No-override
110011                      51                       No-override
110100                      52                       No-override
110101                      53                       No-override
110110                      54                       No-override
110111                      55                       No-override
111000                      56                       7                        cs7
111001                      57                       No-override
111010                      58                       No-override
111011                      59                       No-override
111100                      60                       No-override
111101                      61                       No-override
111110                      62                       No-override
111111                      63                       No-override

As you can see, by default, EF traffic is assigned a priority of 7, placed in queue 8, and therefore given a GMB of 20%.

If your traffic comes into the switch with DSCP values, then verify the default DSCP-to-priority mapping meets your application’s needs.  If not, you can assign the DSCP value to a different priority with the following command:

HP(config)# qos dscp-map af31 priority 5

If your application traffic does not come into the switch with a DSCP value, then you will need to classify the traffic and assign it a priority.  This can be done based off MAC address, IP address, VLAN ID, L3 Protocol, and L4 ports.  I’m not going to go through how to classify traffic with an access-list in this post, maybe in the future!

Here are a couple other interesting facts/suggestions related to ProVision QoS:

Only Egress queuing can be enabled.  There is no ingress queuing.  Egress queuing is most important, and even according to Cisco’s Medianet QoS 4.0 document, ingress queuing is not a requirement in an QoS implementation.

If you do not need to classify traffic into 8 queues, using the 4 queue model will increase the memory buffer available to each queue.  By default, the 4 queue model also has a higher GMB for EF traffic, which means EF traffic is serviced more frequently.

There is not a “strict priority queue” (like Cisco’s “Priority Queue Out”).  If you purely want a “strict priority queue” and do not care about other traffic, you can change the GMB and assign 100% of the bandwidth to the highest queue.

Daniel, I just need to implement QoS for ShoreTel VoIP and I don’t care about all this other stuff, what do I need to do? Just use the switch command “qos type-of-service diff-services” and you are set!  ShoreTel classifies voice traffic as EF and call control as AF31.  If you want to guarantee more bandwidth to ShoreTel, then I would also use the 4 queue model.

Supported Switches:  This guide is based off the HP 2920, 3800, 5400, and 8200 series of switches.

Setting up OSPF on HP Switches

To run OSPF on HP switches, you will most likely need the “Premium” software license.  Once you have that, configuring OSPF is fairly easy, although different from the Cisco approach:

For example, I want to enable OSPF in area 0 on my HP core switch (HP 5406):

1. Enter OSPF configuration
(config)#router ospf 

2. Define the OSPF areas to be used
(ospf)#area backbone

3. HP runs OSPF under the VLAN configuration, so enter the VLAN that will be communicating with your other OSPF enabled devices and then enable the OSPF area
(vlan-10)#ip ospf area backbone 

4. Once your configuration is complete, enable the OSPF process
(config)#router ospf enable

You can verify your OSPF status and neighbors:
#show ip ospf general
#show ip ospf neighbor

LACP Trunk on HP Procurve Switch

To create a LACP trunk on an HP 2910 switch, follow these commands:

On both switches:

1. Log into the HP switch CLI, and enter configure mode
2. Identify the interfaces you want to use for the trunk and type: trunk 25-26 trk1 lacp (the first set of numbers are the interfaces used, and “trk1” defines this specific trunk.)
3. Now untag/tag the trunk with VLANs just like any other interface, example: vlan 10 tag trk1

If you want to remove an interface from the trunk, just use the no command: no trunk 25

Verify commands:

#show lacp
#show trunks