如何合理验证我的 QoS 配置是否有效?

网络工程 思科 服务质量 思科-ios 网络电话
2021-07-20 19:15:35

语境

我已将标准 QoS 配置部署到运行带有 IOS 15.1(4)M4 的 Cisco 891 路由器的客户站点。WAN 链路是连接到 FE8 的单个 ADSL2+ 链路 (24/1Mbps)。

我之前在另一个站点上测试了此配置,使用来自 LAN 的 iperf 生成 1+ Mbps 的上行流量,并确认在 WAN 接口上启用 QoS 时呼叫质量发生了显着变化。这就是我最初确认我的配置有效的方式。

我最近将这个相同的配置部署到另一个站点,但他们仍然遇到上游 VOIP 带宽的问题。我想合理地确认 QoS 正在工作,而无需实际使链接饱和(特别是因为它们处于状态外,并且现场没有技术)。然后尝试隔离我可能能够使用的柚木以获得更好的语音质量。

问题

鉴于下面的策略映射输出,以 VOICE 类映射为例,以下统计数据意味着什么?:

  • 3860628 个数据包,1070196895 个字节:我可以假设这是在类映射中匹配的数据包/字节总数吗?

  • 5 分钟提供的速率 0 bps,丢弃速率 0 bps: “提供的速率”是以 bps 为单位的优先流量速率,如果不是,那么是什么?同样,丢包率是否是由于带宽不足而无法优先处理的流量过大率?那么这是否表明我们需要 X bps 的更多带宽来让 VOICE 适应这样的流量高峰?

  • 优先级:40% (340 kbps),突发字节 8500,黑白超过滴:5:在这一行中,我不确定黑白超过滴是什么意思?

日志记录

鉴于这些统计数据可能会在高峰时间(这是您最希望看到它们的时候)(我想)发生变化。有什么方法可以记录这些数字,或者通过 SNMP 查询它们以便以编程方式绘制它们?

学习

我知道 QoS 是一个相当广泛的话题。在尝试了解这一点时,我经常被不同的信息所淹没,因为我正在阅读不同类型的 QoS 实现,或者因为不同的 IOS 版本(例如,使用语法或输出已更改的命令的旧文档)。

为此,任何人都可以推荐一些 Cisco 培训文档或视频课程,它们可以帮助我专注于更好地掌握 QoS 的工作吗?

一些额外的信息

这是一个示例 QoS 配置:

class-map match-any SSH
 match protocol ssh
class-map match-any LogMeIn
 match access-group name LogMeIn
class-map match-any VOICE
 match protocol sip
 match protocol rtp

policy-map ADSLPrioritisationOutbound
 class VOICE
  priority percent 40
 class SSH
  bandwidth 80
 class LogMeIn
  priority percent 20
 class class-default
  fair-queue
policy-map ADSLPrioritisationOutboundParent
 class class-default
  shape average 850000
  service-policy ADSLPrioritisationOutbound

interface FastEthernet8
 no ip address
 ip virtual-reassembly in
 duplex auto
 speed auto
 pppoe-client dial-pool-number 1
 service-policy output ADSLPrioritisationOutboundParent

和策略映射接口输出:

FastEthernet8

Service-policy output: ADSLPrioritisationOutboundParent

Class-map: class-default (match-any)
  18968101 packets, 6998385051 bytes
  5 minute offered rate 3000 bps, drop rate 0 bps
  Match: any
  Queueing
  queue limit 64 packets
  (queue depth/total drops/no-buffer drops) 0/93737/0
  (pkts output/bytes output) 18874363/6936577128
  shape (average) cir 850000, bc 3400, be 3400
  target shape rate 850000

  Service-policy : ADSLPrioritisationOutbound

    queue stats for all priority classes:

      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 3860623/1070194985

    Class-map: VOICE (match-any)
      3860628 packets, 1070196895 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: protocol sip
        97348 packets, 49867304 bytes
        5 minute rate 0 bps
      Match: protocol rtp
        3763280 packets, 1020329591 bytes
        5 minute rate 0 bps
      Match: access-group name NEC-PBX
        0 packets, 0 bytes
        5 minute rate 0 bps
      Priority: 40% (340 kbps), burst bytes 8500, b/w exceed drops: 5


    Class-map: SSH (match-any)
      89497 packets, 19838544 bytes
      5 minute offered rate 2000 bps, drop rate 0 bps
      Match: protocol ssh
        89497 packets, 19838544 bytes
        5 minute rate 2000 bps
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 89497/19838544
      bandwidth 80 kbps

    Class-map: LogMeIn (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: access-group name LogMeIn
        0 packets, 0 bytes
        5 minute rate 0 bps
      Priority: 20% (170 kbps), burst bytes 4250, b/w exceed drops: 0


    Class-map: class-default (match-any)
      15017976 packets, 5908349612 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops/flowdrops) 0/93732/0/93732
      (pkts output/bytes output) 14924243/5846543599
      Fair-queue: per-flow queue limit 16
1个回答

你的问题很广泛。您可以使用许多不同的命令来对 QoS 进行故障排除和监控,因此我将重点讨论您遇到的主要问题,即如何合理地验证您的 QoS 配置正在运行以及如何读取策略映射接口输出。

验证 QoS 是否有效的唯一真正方法是连接流量生成器并监控您在各种队列中的掉线率。由于这通常是不可行的,尤其是在生产环境中,您真正能做的就是验证流量是否被正确标记和分类。

在验证您的 QoS 配置是否有效时,您真正想要的是让 policy-map interface 命令中的计数器递增。

因此,例如,在您提供的输出中:

Class-map: VOICE (match-any)
  3860628 packets, 1070196895 bytes
  5 minute offered rate 0 bps, drop rate 0 bps
  Match: protocol sip
    97348 packets, 49867304 bytes
    5 minute rate 0 bps
  Match: protocol rtp
    3763280 packets, 1020329591 bytes
    5 minute rate 0 bps
  Match: access-group name NEC-PBX
    0 packets, 0 bytes
    5 minute rate 0 bps
  Priority: 40% (340 kbps), burst bytes 8500, b/w exceed drops: 5

您可以看到您看到的是 SIP 和 RTP 下的数据包,而不是 NEC-PBX。如果您知道通过链接获得 SIP 和 RTP 流量,您应该看到数据包计数增加,这是了解您的配置基本正常工作的合理方法。