如何合理地验证我的QoS配置正常工作?


10

语境

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

我以前已经在另一个站点上通过使用来自局域网的iperf来生成1+ Mbps的上行流量来测试了此配置,并确认了在WAN接口上启用QoS时通话质量的显着变化。这就是我最初确认我的配置正常的方式。

我最近已将相同的配置部署到另一个站点,但是它们仍然对上游VOIP带宽有问题。我想合理地确认QoS在不使链接实际饱和的情况下就可以正常工作(特别是因为它们已经过时,并且没有现场技术)。然后尝试隔离我可能会得到的柚木以获得更好的语音质量。

问题

给定以下策略映射输出,以VOICE类映射为例,以下统计信息是什么意思:

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

  • 5分钟提供的速率为0 bps,下降速率为0 bps: “提供的速率”是已被优先处理的流量的bps速率,如果不是,那么呢?同样,丢包率是否是由于带宽不足而无法优先处理的多余流量?这是否表明我们需要X带宽增加X bps的带宽来适应此类流量高峰?

  • 优先级:40%(340 kbps),突发字节8500,黑白超出丢弃:5:在这一行中,我不确定黑白超出丢弃意味着什么?

记录中

鉴于这些统计信息可能会在高峰时间(这是您最想看到的时间)发生变化(我想)。有什么方法可以记录这些数字,或者可以通过SNMP查询它们,以便可以以编程方式对其进行图形显示?

学习

我了解QoS是一个相当广泛的话题。当试图了解这一点时,我经常会因为了解不同类型的QoS实现或由于IOS版本不同(例如,使用语法或输出已更改的命令而使用文档的旧文档)而感到不知所措。

为此,有人可以推荐一些思科培训文档或视频课程,以帮助我集中精力更好地掌握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

和policy-map界面输出:

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

我假设您的意思是第一句中的IOS版本15.1?我只想在进行编辑之前澄清一下。
Brett Lykins 2013年

嘿,是的。抱歉。不知道发生了什么...今晚钥匙卡住了。很多错字。
Geekman

Answers:


10

您的问题范围很广。您可以使用许多不同的命令来对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流量,则应该看到数据包计数增加,这是一种合理的方法,可以知道您的配置正在正常工作。


谢谢。“各种队列中的监视器丢失率”是什么意思?这是“丢弃率X bps”吗?关于需要父整形器来实现ADSL QoS的示例,当我看到流量匹配时,我最初决定QoS在起作用-但最终并没有真​​正起作用。我同意这个问题仍然很广泛(在发布之前,我什至试图重写它!)。我将在短期内进行一些修改,并希望您能提出宝贵的见解。再次感谢!
Geekman

好吧 我认为,如果我至少完全了解有关策略映射输出的那些内容,那么我将能够了解正在发生的事情。
Geekman

1
验证配置时,需要特别注意两件事。第一个是整个类别以及每个单独的“匹配”行下的总数据包计数和速率。这将告诉您数据包是否与策略匹配,并被适当地分类/标记/优先排序(取决于您要查看的策略类型)。另一件事是每个组件下的丢失率。在正常的网络条件下,大多数类中您可能不会看到掉线,因此0不是问题。但是,如果您很拥挤,那么您会看到水滴。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.