Beruflich Dokumente
Kultur Dokumente
Task
Set up one of the generic rack-mount servers in your rack with the IP address of 10.0.110.10/24
and place it in VLAN 110 on your N5K.
(Server 1 - 8 depending on rack number)
Generate a ping from VSM1 destined to 10.0.110.10 with the DSCP 46 (EF).
Provision N1Kv to intercept that packet and change the DSCP value to 40, and also to mark L2
with the CoS value of 5.
Ensure that this CoS value is being honored by UCSM by verfication in the proper Fabric
Interconnect.
Pre-Verification
To test this QoS scenario, we need to generate some packets with a particular DSCP value from
a VM running on the N1Kv switch VEM. Although we may be able to do this from a Windows
box, it is much easier and faster (and therefore makes much more sense) to do this from a
Cisco device. Luckily, the VSM is running on its own VEM, so we can simply test using an
extended ping from the VSM management interface, because it is simply another Veth interface
on the VEM. We will see that our VSM-1 (or Sup1) is currently active, so we know that our ping
will come from the management port on VSM-1, which in our case happens to be Veth10.
We will ping a Windows box that is running Wireshark and filter for ICMP. Note that this box
happens to be on the same subnet but is a standalone rack-mount server and is connected
outside of the UCS on a N5K. This will give us the ability to check the hardware queues on the
UCS Fabric Interconnects later for L2 CoS-to-Queue mapping.
Let's first make sure that the active VSM is indeed VSM1. This is critical to knowing which
vmnic in VMWare, and therefore which vNIC in UCSM, will be transmitting the packets
northbound. And we can clearly see that VSM1 is active.
FEEDBACK
Model
Status
Nexus1000V
active
Nexus1000V
ha-stand
248
NA
ok
248
NA
ok
*
2
by
We will begin by testing a simple ping marking DSCP to the PHB of EF (which is ToS 184), and
ensuring that it arrives at its destination marked accordingly. Next we'll identify the path it should
take and at what port and queue we expect it to be seen, apply the policy-map, and later test it
again to determine whether the DSCP is being changed and the CoS bits are being marked and
then matched to queue.
N1Kv-01# ping
Vrf context to use [default] :
No user input: using default context
Target IP address or Hostname: 10.0.110.10
Repeat count [5] :
Datagram size [56] :
Timeout in seconds [2] :
Sending interval in seconds [0] :
Extended commands [no] : y
Source address or interface :
Data pattern [0xabcd] :
Type of service [0] : 184
Set DF bit in IP header [no] :
Time to live [255] :
Loose, Strict, Record, Timestamp, Verbose [None] :
Sweep range of sizes [no] :
Sending 5, 56-bytes ICMP Echos to 10.0.110.10
Timeout is 2 seconds, data pattern is 0xABCD
64 bytes from 10.0.110.10: icmp_seq=0 ttl=126 time=1.94 ms
64 bytes from 10.0.110.10: icmp_seq=1 ttl=126 time=1.683 ms
64 bytes from 10.0.110.10: icmp_seq=2 ttl=126 time=1.656 ms
64 bytes from 10.0.110.10: icmp_seq=3 ttl=126 time=1.704 ms
64 bytes from 10.0.110.10: icmp_seq=4 ttl=126 time=1.652 ms
--- 10.0.110.10 ping statistics --5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 1.652/1.726/1.94 ms
N1Kv-01#
On the external server running Wireshark, we can see the ping come in, and we can also clearly
see that it is marked with DSCP 10111000 or 46 or PHB EF.
Now back in N1Kv, we revisit the show port command to see that the VSM1 Management
port, where all pings would come from, is pinned north to vmnic4, which also corresponds to our
last vNIC in UCSM, and that it is being served on VEM 3, which in UCSM is Service Profile
ESXi1.
VSM Port Admin Link State PC-LTL SGID Vem Port Type
17
Eth3/1
UP
UP
F/B*
305
vmnic0
18
Eth3/2
UP
UP
F/B*
305
vmnic1
19
Eth3/3
UP
UP
F/B*
20
Eth3/4
UP
UP
FWD
21
Eth3/5
49
Veth7
UP
UP
FWD
50
Veth8
UP
UP
FWD
51
Veth9
UP
UP
FWD
52
Veth10
53
Veth11
UP
UP
FWD
3 N1Kv-01-VSM-1.eth2
54
Veth12
UP
UP
FWD
3 Win2k8-www-2.eth0
55
Veth13
UP
UP
FWD
3 Win2k8-www-3.eth0
56
Veth14
UP
UP
FWD
3 vCenter.eth0
305
Po1
UP
UP
F/B*
306
Po3
UP
UP
FWD
UP
UP
UP
UP
FWD
FWD
306
306
vmnic2
3
4
vmnic3
vmnic4
vmk0
vmk1
4 N1Kv-01-VSM-1.eth0
4 N1Kv-01-VSM-1.eth1
Back in UCSM, click Service Profile ESXi1, expand vNICs, and click the last vNIC, which is
eth4-vm-fabB, to see that it is pinned to Fabric B (at least during normal, non-failover operation
- which we have currently).
Click the Service Profile ESXi1, and note that the associated server is blade 2.
If we click the right pane on VIF Paths, we can see that for Path B, the eth4-vm-fabB vNIC is
pinned to the uplink FI-B 1/4 and the link is indeed active.
To confirm this in NX-OS, we can run a couple of quick commands to note that Veth 693 is,
indeed, the Chassis 1 Blade 2 (or Server 1/2) and that it is VNIC eth4-vm-fabB; then with a
show pinning server-interfaces command, we can confirm that it is pinned to outgoing
interface 1/4. Remember that we want to be on FI-B when checking this information.
Sticky
---------------+-----------------+------------------------+---------------Po1282
No
Po1283
No
Eth1/1
No
Eth1/2
No
Veth688
No
Eth1/4
1d 12:33:51
Veth690
No
Eth1/4
1d 12:33:51
Veth692
No
Eth1/4
1d 12:33:51
Veth693
No
Eth1/4
1d 12:33:51
Veth698
No
Eth1/3
23:39:15
Veth700
No
Eth1/3
23:39:15
Veth702
No
Eth1/3
23:39:15
Veth703
No
Eth1/3
23:39:15
Veth8888
No
Veth8898
No
INE-UCS-01-B(nxos)#
INE-UCS-01-B(nxos)# sh run int veth693
!Command: show running-config interface Vethernet693
!Time: Thu Feb 21 12:10:37 2013
version 5.0(3)N2(2.03a)
interface Vethernet693
description server 1/2, VNIC eth4-vm-FabB
switchport mode trunk
hardware vethernet mac filtering per-vlan
no pinning server sticky
pinning server pinning-failure link-down
switchport trunk allowed vlan 1,110-114,118-122
bind interface port-channel1282 channel 693
service-policy type queuing input org-root/ep-qos-Host-Control-BE
no shutdown
INE-UCS-01-B(nxos)#
However, knowing its external pinned interface is not going to help us very much. Why?
Remember that because this is a Nexus NX-OS switch (in essence), it is based primarily on an
ingress queuing architecture. So what we really need to know is on what port the frame is
coming into the FI, rather than the Veth (which of course doesn't have any hardware queues), or
even the egress interface headed up to the N5Ks.
So to find that, let's go back to the UCSM in the left navigation pane. Click the Equipment tab,
and then click the root Equipment; in the right pane, click Policies, and select the Global
Policies tab to recall that we did not use port channeling to aggregate the links coming from the
IOM/FEXs up to the FIs.
This means that we will need to determine on which individual port the frame is leaving the IOM
and coming into the FI (of course, we would still need to do this if it were a port channel, but it
makes it a bit easier on us since it is not).
In the left navigation pane, expand Chassis 1 and Server 2, and look at the last two DCE
interfaces, which are 802.1KR backplane traces to the IOM inside the chassis. In the right pane,
notice that the IOM we are pinned to is chassis 1, slot 2 (or IOM 2 going to FI-B), and port 5.
Note:
You may see a port channel here. This is not a port channel from the blade up to
the FI, but rather just the two 10Gb DCE 802.1KR traces from the blade to the
IOM. We already saw that there is no port channel from the IOM up to the FI.
So back in FI-B, in NX-OS, let's look at the FEX detail, and we can see that both of these two
backplane DCE traces Eth1/1/5 and Eth1/1/7 are pinned to the uplink Fabric port of Eth1/2. So
that's where we need to look next.
state: Online
Max-links: 1
Eth1/1/1
Up
Eth1/1
Eth1/1/2 Down
None
Eth1/1/3
Up
Eth1/1
Eth1/1/4 Down
None
Eth1/1/5
Up
Eth1/2
Eth1/1/6 Down
None
Eth1/1/7
Up
Eth1/2
Eth1/1/8 Down
None
Eth1/1/9
Up
Eth1/1
Eth1/1/10 Down
None
Ingress port to FI-B is Eth1/2, and that's the port we are clearly interested in looking at. Let's
first look at the QoS configuration portion of FI-B in NX-OS. Remember in the N1Kv (in just a
little bit - not yet), we are going to be mapping DSCP EF to CoS 5, so that's where we need to
look first to see what qos-group that maps to, and then the ingress port what qos-group maps to
what queue.
Here we see that CoS 5 maps to Class-Platinum and that Class-Platinum maps to QoS-Group
2.
match qos-group 3
class-map type queuing class-silver
match qos-group 4
class-map type queuing class-platinum
match qos-group 2
class-map type queuing class-all-flood
match qos-group 2
class-map type queuing class-ip-multicast
match qos-group 2
policy-map type qos system_qos_policy
class class-platinum
set qos-group 2
class class-silver
set qos-group 4
class class-gold
set qos-group 3
class class-fcoe
set qos-group 1
policy-map type queuing system_q_in_policy
class type queuing class-fcoe
bandwidth percent 30
class type queuing class-platinum
bandwidth percent 10
class type queuing class-gold
bandwidth percent 20
class type queuing class-silver
bandwidth percent 30
class type queuing class-default
bandwidth percent 10
policy-map type queuing system_q_out_policy
class type queuing class-fcoe
bandwidth percent 30
class type queuing class-platinum
bandwidth percent 10
class type queuing class-gold
bandwidth percent 20
class type queuing class-silver
bandwidth percent 30
class type queuing class-default
bandwidth percent 10
policy-map type queuing org-root/ep-qos-FC-for-vHBAs
class type queuing class-default
bandwidth percent 100
shape 40000000 kbps 10240
policy-map type queuing org-root/ep-qos-CoS-2_30per-BW
class type queuing class-default
bandwidth percent 100
shape 40000000 kbps 10240
policy-map type queuing org-root/ep-qos-CoS-4_20per-BW
class type queuing class-default
Let's look at the queuing on the ingress interface eth1/2. Notice that Tx Queuing doesn't have
much value beyond WRR, but that Rx Queuing is clearly where the action is. Notice also that
the Q to which qos-group 2 is mapped has not yet reported any matched packets. So this is
where we will be looking for packets to match after we apply our configuration.
WRR
10
WRR
30
WRR
10
WRR
20
WRR
30
RX Queuing
qos-group 0
q-size: 196480, HW MTU: 1500 (1500 configured)
drop-type: drop, xon: 0, xoff: 1228
Statistics:
Pkts received over the port
: 1040393
: 944903
: 95490
: 1230897
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 1
q-size: 79360, HW MTU: 2158 (2158 configured)
drop-type: no-drop, xon: 128, xoff: 252
Statistics:
Pkts received over the port
: 352160
: 352160
:0
: 435978
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 2
q-size: 22720, HW MTU: 1500 (1500 configured)
drop-type: drop, xon: 0, xoff: 142
Statistics:
Pkts received over the port
:0
:0
:0
:0
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 3
q-size: 29760, HW MTU: 9000 (9000 configured)
drop-type: drop, xon: 0, xoff: 186
Statistics:
Pkts received over the port
:0
:0
:0
:0
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 4
q-size: 22720, HW MTU: 1500 (1500 configured)
drop-type: drop, xon: 0, xoff: 142
Statistics:
Pkts received over the port
:0
:0
:0
:0
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
Total Multicast crossbar statistics:
Mcast pkts received from the cross-bar
: 323371
INE-UCS-01-B(nxos)#
Now we need to apply the configuration to the N1Kv and port Veth10.
On N1Kv:
Note:
Before sending any pings, remember one critical thing: We are sending
packets/frames into a UCSM vNIC, and by default vNICs do not trust any L2 CoS
values - so by default they re-write everything to 0. In earlier tasks, we had you set
up the two updating vNIC templates that were used to instantiate two vNICs for
each service profile. When we set up these updating vNIC templates, we had you
apply a QoS policy; recall that only the two vNICs destined to be used for VM
traffic were the only two that we allowed "Host Control" in the QoS Policy. Also
recall that the VSMs are both using these VM vNICs (vNIC 3 and 4). It is for this
reason alone that our attempt to mark L2 CoS should be honored.
Now let's send another ping and check both our modified DSCP value in Wireshark and the
ingress Eth1/2 port on FI-B for the proper queue mapping.
N1Kv-01# ping
Vrf context to use [default] :
No user input: using default context
Target IP address or Hostname: 10.0.110.10
Repeat count [5] :
Datagram size [56] :
Timeout in seconds [2] :
Sending interval in seconds [0] :
Extended commands [no] : y
Source address or interface :
Data pattern [0xabcd] :
Type of service [0] : 184
Set DF bit in IP header [no] :
Time to live [255] :
Loose, Strict, Record, Timestamp, Verbose [None] :
Sweep range of sizes [no] :
Sending 5, 56-bytes ICMP Echos to 10.0.110.10
Timeout is 2 seconds, data pattern is 0xABCD
64 bytes from 10.0.110.10: icmp_seq=0 ttl=126 time=2.07 ms
64 bytes from 10.0.110.10: icmp_seq=1 ttl=126 time=1.139 ms
64 bytes from 10.0.110.10: icmp_seq=2 ttl=126 time=0.855 ms
64 bytes from 10.0.110.10: icmp_seq=3 ttl=126 time=0.802 ms
64 bytes from 10.0.110.10: icmp_seq=4 ttl=126 time=0.802 ms
--- 10.0.110.10 ping statistics --5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 0.802/1.133/2.07 ms
N1Kv-01#
It appears that it mapped the DSCP properly to 10100000 or decimal 40, but what about L2
CoS?
WRR
10
WRR
30
WRR
10
WRR
20
WRR
30
RX Queuing
qos-group 0
q-size: 196480, HW MTU: 1500 (1500 configured)
drop-type: drop, xon: 0, xoff: 1228
Statistics:
Pkts received over the port
: 1048988
: 952655
: 96333
: 1238764
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 1
q-size: 79360, HW MTU: 2158 (2158 configured)
drop-type: no-drop, xon: 128, xoff: 252
Statistics:
Pkts received over the port
: 352172
: 352172
:0
: 435993
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 2
q-size: 22720, HW MTU: 1500 (1500 configured)
drop-type: drop, xon: 0, xoff: 142
Statistics:
Pkts received over the port
:5
:5
:0
ive)
:0
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
qos-group 3
q-size: 29760, HW MTU: 9000 (9000 configured)
drop-type: drop, xon: 0, xoff: 186
Statistics:
Pkts received over the port
:0
:0
:0
:0
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
qos-group 4
q-size: 22720, HW MTU: 1500 (1500 configured)
drop-type: drop, xon: 0, xoff: 142
Statistics:
Pkts received over the port
:0
:0
:0
:0
:0
Per-priority-pause status
: Rx (Inactive), Tx (Inact
ive)
Total Multicast crossbar statistics:
Mcast pkts received from the cross-bar
: 324758
INE-UCS-01-B(nxos)#
And there we have it! It appears to have mapped properly to L2 CoS as well, which means that
the UCS can now honor traffic being passed.
^ back to top
2013 INE