cisco 3850 上缺少信任 dscp 命令

网络工程 思科 转变 cisco催化剂 服务质量 cisco 命令
2021-07-13 00:23:33

我们在 2960X 交换机上有一个传入的 QoS 配置,如下所示:

class-map match-any QOS_GL_TRUST
 match ip dscp 8 16 24 32 46 
class-map match-any QOS_GL_CITRIX
 match access-group name QOS_GL_CITRIX

policy-map QOS_LAN_IN
 class QOS_GL_TRUST
  trust dscp
 class QOS_GL_CITRIX
  set dscp 32
 class class-default
  set dscp default

所以基本上,这会接受数据包并保留 DSCP8、16、24、32 和 46 的标记。如果 DSCP32 尚未标记,Citrix 流量将匹配 ACL 并设置 DSCP32 标记。所有其他 DSCP 标记都被 DSCP0 覆盖。所以到目前为止效果很好。现在我们希望在 Cisco 3850 交换机上具有相同的配置。但是我们没有 trust 命令:

switch(config-pmap-c)#? 
Policy-map class configuration commands:
  bandwidth        Bandwidth
  drop             Drop all packets
  encap-sequence   MCMLP encapsulate sequence
  exit             Exit from class action configuration mode
  netflow-sampler  NetFlow action
  no               Negate or set default values of a command
  police           Police
  priority         Strict Scheduling Priority for this Class
  queue-buffers    queue buffer
  queue-limit      Queue Max Threshold for Tail Drop
  service-policy   Configure QoS Service Policy
  set              Set QoS values
  shape            Traffic Shaping

因此,如果我想实现与 2960X 交换机相同的工作,我必须执行以下操作:

class-map match-any QOS_GL_VOICERTP
 match ip dscp 46
class-map match-any QOS_GL_CITRIX
 match ip dscp 32
 match access-group name QOS_GL_CITRIX
class-map match-any QOS_GL_VOICESIP
 match ip dscp 24
class-map match-any QOS_GL_MANAGEMENT
 match ip dscp 16
class-map match-any QOS_GL_TRASH
 match ip dscp 8

policy-map QOS_LAN_IN
class QOS_GL_VOICERTP
  set dscp 46
 class QOS_GL_CITRIX
  set dscp 32
 class QOS_GL_VOICESIP
  set dscp 24
 class QOS_GL_MANAGEMENT
  set dscp 16
 class QOS_GL_TRASH
  set dscp 8
 class class-default
  set dscp default

所以你可以看到3850er配置的代码要多得多。那么有没有更好的解决方案来实现这一目标?我只是在谈论标记,这里没有实际的 QoS 优先级。

2个回答

默认情况下,较新的 Cisco 交换机(3K、4K、9K)信任,因此 trust 命令不再存在。QoS 在这些交换机上的实现方式不同。对于不同的交换机系列,您需要稍微不同的 QoS 配置。

您可能会注意到的另一个区别是,您只能在 2K 交换机上执行基于端口的 QoS,但您可以在 3K、4K 和 9K 交换机上执行基于 VLAN 的 QoS。此外,您在 2K 交换机上的 TCAM 空间有限,如果您开始用完,您可能需要调整 TCAM 分配(请参阅此问题的答案)。

对我自己的问题给出“配置”答案,以防其他人将来遇到同样的问题...... 2960X交换机上的以下配置

class-map match-any QOS_GL_TRUST
 match ip dscp 8 16 24 32 46 
class-map match-any QOS_GL_CITRIX
 match access-group name QOS_GL_CITRIX

policy-map QOS_LAN_IN
 class QOS_GL_TRUST
  trust dscp
 class QOS_GL_CITRIX
  set dscp 32
 class class-default
  set dscp default

转换为3850模型如下:

class-map match-any QOS_GL_TRUST
 match ip dscp 8 16 24 32 46 
class-map match-any QOS_GL_CITRIX
 match access-group name QOS_GL_CITRIX

policy-map QOS_LAN_IN
 class QOS_GL_TRUST
 class QOS_GL_CITRIX
  set dscp 32
 class class-default
  set dscp default

所以基本上你可以跳过trust命令,因为正如Ron Maupin指出的那样,这些开关默认信任 DSCP。但是policy-map有一个空对我来说似乎很奇怪我测试了这个场景,它的行为就像你将信任 DSCP放在类下一样。所以即使看起来不对,这个配置也能按预期工作。