本文档提供Cisco Nexus 7000系列交换机上服务质量(QoS)功能的示例配置,以简化分类和排队的实现方式。
尝试进行此配置之前,请确保满足以下要求:
了解Nexus 7000系列交换机配置的基本知识
了解QoS的基本知识
本文中的信息基于 Nexus 7000 系列交换机。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档约定的更多信息,请参考 Cisco 技术提示约定。
Nexus 7000交换机上的默认QoS参数足以满足大多数部署。但是,您需要了解创建自定义策略所需的限制和配置详细信息。
Nexus 7000 M系列线卡上的QoS需要考虑两个方面:
排队策略
QoS 策略
排队在硬件中执行,并使用模块化QoS CLI(MQC)排队策略进行配置。用于标记或管制流量的QoS策略通过MQC策略使用,其格式与其他思科平台上的标准QoS策略完全相同。例如,访问列表,用于使用相应的策略映射对类映射中的流量进行分类以设置/管制流量。
目前,M系列模块严格根据服务类别(CoS)值执行排队。因此,您需要首先了解CoS值是如何派生的。在您知道哪些CoS值进入/离开交换机后,您可以专注于队列配置,以获得不同流量类型所需的QoS。
对于路由单播流量,CoS值从差分服务代码点(DSCP)值的3个最高有效位派生。对于桥接单播流量,从802.1q报头中接收的CoS值复制CoS值。请注意,在L2接入链路上没有中继报头。因此,如果在接入端口上收到流量并将其桥接,则它将以CoS 0出口交换机。DSCP值不会更改,但数据包可能没有获得所需的优先级。您可以通过手动设置CoS或DSCP值的任何QoS策略在策略映射中手动设置CoS值。
了解组播的行为也很重要。路由组播流量以与路由单播流量相同的方式获取其CoS值。对于桥接组播流量,行为取决于L3状态。如果组播组没有L3状态,则CoS的派生方式与桥接单播流量相同。如果组播组有L3状态,则CoS的派生方式与路由单播流量相同。请注意,当在接收流量的VLAN的交换机虚拟接口(SVI)上以稀疏模式启用协议独立组播(PIM)时,当看到组播时,会创建S,G条目。
总之,流量类型的CoS行为如下所示:
流量类型 | CoS行为 |
路由单播 | 从3 MSB的ToS复制 |
桥接单播 | 不变 |
路由组播 | 从3 MSB的ToS复制 |
具有组L3状态的网桥组播 | 从3 MSB的ToS复制 |
没有组L3状态的网桥组播 | 不变 |
以接入端口(Eth8/1)上接收流量并在VLAN上桥接的流量为例。默认情况下,桥接单播流量的CoS值保持不变。如果流量到达接入端口,则分配默认CoS值0。在本例中,优先级流量(DSCP 46)在接入端口上接收,并以DSCP值不变且CoS值为0的方式出口交换机。因此,数据包未获得适当的优先级。
一个可能的解决方法是创建QoS策略,以在入口端口上手动设置CoS值。
在本例中,只有DSCP为46的数据包的CoS值才更新。如果需要多个DSCP值来确保适当的CoS值,则需要定义策略映射中的其他类映射和操作。
另一种选项是将表映射与操作“default copy”一起使用。 表映射允许您根据当前DSCP值重置DSCP。例如,如果收到DSCP值为40的流量,并且您需要确保该流量被重新标记为DSCP值46,则可以使用带有“40到46”操作的表映射。
表映射还包含“默认复制”操作,该操作将DSCP值设置为其原始值。这类似于创建具有“match dscp ef”分类和“set dscp ef”操作的策略映射。 逻辑上,DSCP值保持不变,但“set dscp”操作将CoS值隐式设置为新DSCP值的3-MSB。
因此,如果需要确保CoS值始终更新为DSCP值的3-MSB,请使用具有“default copy”的单个操作的表映射。
一旦CoS值被派生,您就可以控制全局队列类映射以影响cos-to-queue映射。这些类映射是全局的,会影响该特定队列类型的所有虚拟设备环境(VDC)中的所有模块。例如,请考虑M108和M132模块(1p7q4t)的以下默认队列类映射:
class-map type queuing match-any 1p7q4t-out-pq1
Description: Classifier for egress priority queue of type 1p7q4t
match cos 5-7
class-map type queuing match-any 1p7q4t-out-q2
Description: Classifier for egress queue 2 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q3
Description: Classifier for egress queue 3 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q4
Description: Classifier for egress queue 4 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q5
Description: Classifier for egress queue 5 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q6
Description: Classifier for egress queue 6 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q7
Description: Classifier for egress queue 7 of type 1p7q4t
class-map type queuing match-any 1p7q4t-out-q-default
Description: Classifier for egress default queue of type 1p7q4t
match cos 0-4
默认情况下,cos 0-4映射到默认队列,cos 5-7映射到优先级队列。这些与相同队列类型的默认队列策略相配合:
policy-map type queuing default-out-policy
class type queuing out-pq1
priority level 1
queue-limit percent 16
class type queuing out-q2
queue-limit percent 1
class type queuing out-q3
queue-limit percent 1
class type queuing out-q-default
queue-limit percent 82
bandwidth remaining percent 25
优先级队列为“优先级”,队列限制为16%。默认队列的队列限制为82%,默认带宽剩余权重。其他未使用的队列将分配1%的队列限制。请注意,q4、q5和q6不在默认排队策略中表示,因此,在硬件中编程的队列限制和带宽权重会更小。
要创建自定义队列策略,请完成以下步骤:
以具有1p7q4t队列架构的M132模块为例,其中所有8个CoS值都映射到单独的队列。输出显示自定义队列策略以及对全局队列类映射的更改:
policy-map type queuing 10G_POLICY
class type queuing 1p7q4t-out-pq1
priority level 1
queue-limit percent 10
class type queuing 1p7q4t-out-q2
queue-limit percent 10
bandwidth remaining percent 10
class type queuing 1p7q4t-out-q3
queue-limit percent 5
bandwidth remaining percent 5
class type queuing 1p7q4t-out-q4
queue-limit percent 5
bandwidth remaining percent 5
class type queuing 1p7q4t-out-q5
queue-limit percent 10
bandwidth remaining percent 20
class type queuing 1p7q4t-out-q6
queue-limit percent 5
bandwidth remaining percent 10
class type queuing 1p7q4t-out-q7
queue-limit percent 5
bandwidth remaining percent 10
class type queuing 1p7q4t-out-q-default
queue-limit percent 50
bandwidth remaining percent 40
! voice
class-map type queuing match-any 1p7q4t-out-pq1
match cos 5
! scavenger
class-map type queuing match-any 1p7q4t-out-q2
match cos 1
! transactional
class-map type queuing match-any 1p7q4t-out-q3
match cos 2
! call signaling
class-map type queuing match-any 1p7q4t-out-q4
match cos 3
! video
class-map type queuing match-any 1p7q4t-out-q5
match cos 4
! routing
class-map type queuing match-any 1p7q4t-out-q6
match cos 6
! management
class-map type queuing match-any 1p7q4t-out-q7
match cos 7
! best effort
class-map type queuing match-any 1p7q4t-out-q-default
match cos 0
最后一步是将自定义队列策略应用到每个1p7q4t接口:
interface Ethernet8/1
service-policy type queuing output 10G_POLICY
默认队列策略假设CoS 0-4映射到默认队列,CoS 5-7映射到优先级队列。因此,队列q3、q4、q5、q6和q7的队列限制非常小。您可以输入show queuing interface命令,以验证硬件中配置和应用的当前队列大小和带宽。
考虑上一节中每个CoS值映射到特定队列的示例策略。在本例末尾,自定义队列策略应用于Eth8/1。此外,假设还有另一个1p7q4t接口(Eth6/1)保留了默认队列策略:
N7k# show queuing interface e6/1
<some output omitted>
Configured queue-limit ratios
queue-limit ratios: 78[1p7q4t-out-q-default] 1[1p7q4t-out-q2] 1[1p7q4t-out-q3]
*1[1p7q4t-out-q4] *1[1p7q4t-out-q5] *1[1p7q4t-out-q6] *1[1p7q4t-out-q7] 16[1p7q4t-out-pq1]
* means unused queue with mandatory minimum queue-limit
Thresholds:
COS Queue Threshold Type Min Max
______________________________________________________________
0 1p7q4t-out-q-default DT 100 100
1 1p7q4t-out-q2 DT 100 100
2 1p7q4t-out-q3 DT 100 100
3 1p7q4t-out-q4 DT 100 100
4 1p7q4t-out-q5 DT 100 100
5 1p7q4t-out-pq1 DT 100 100
6 1p7q4t-out-q6 DT 100 100
7 1p7q4t-out-q7 DT 100 100
从上述输出中,您可以看到队列q2和q3的队列限制为1%,而q4、q5、q6和q7的队列限制为*1%,这是最小的强制队列限制(换句话说,显着小于1%)。 此外,您可以看到CoS值1-4和6-7使用这些非常小的队列。小队列大小会快速导致输出丢弃,并会降低网络性能。如果默认流量CoS 0映射到这些小队列之一,则会进一步恶化。
总之,如果创建自定义排队策略并更改全局排队类映射,则必须将自定义排队策略应用于机箱上共享相同排队类型的所有接口。
此外,下面列出了一些有用的drop命令:
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
29-May-2013 |
初始版本 |