语音 : 语音质量

带有服务质量控制(分段、流量整形、LLQ/IP RTP 优先级)的 基于帧中继的VoIP

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

本文档说明了帧中继网络上的 IP 语音 (VoIP) 的示例配置,其中包含服务质量 (QoS) 的配置。本文档包含已配置功能的背景技术信息、相关设计指南和基本验证与故障排除策略。

请务必注意,在本文档的配置中,有两台语音路由器连接到帧中继网络。但在许多拓扑中,具有语音功能的路由器可存在于任何位置。通常,语音路由器使用 LAN 连接到其它路由器,此路由器与 WAN 连接。其重要性在于,如果语音路由器没有直接连接到帧中继网络,则所有的 WAN 配置命令必须在连接到 WAN 的路由器上进行配置,而不能在语音路由器上进行配置(如本文档所示配置)。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • Cisco 3640路由器用Cisco IOSï ¿  ½软件版本12.2.6a (Enterprise Plus)

  • 使用 Cisco IOS 软件版本 12.2.6a (Enterprise Plus) 的 Cisco 2621 路由器

  • 低延迟队列(LLQ)在帧中继永久虚拟电路(PVC)。这在Cisco IOS软件版本12.1.(2)T介绍。

  • 帧中继IP在Cisco IOS软件版本12.0(7)T介绍的实时传输协议(RTP)优先级。

  • 帧中继论坛(FRF).12在Cisco IOS软件版本12.0(4)T介绍的分段。

  • 高于 12.0.5T 的 Cisco IOS 软件版本在压缩 RTP (cRTP) 方面具有显著的性能改进。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

VoIP over Frame Relay 的 QoS 设计指南

要获得良好的语音质量,需满足两个基本要求:

为了满足上述要求,请遵循以下指南:

语音流量的严格优先级(LLQ 或 IP RTP 优先级)

要为语音流量提供严格优先级,有两种主要方法:

  • IP RTP 优先级(也称为优先级队列/加权公平排队 (PQ/WFQ))

  • LLQ(也称为 PQ/基于类的加权公平排队 (PQ/CBWFQ))

IP RTP 优先级

帧中继IP RTP优先级创建在一个帧中继PVC的一个严格优先级队列一套的属于用户数据报协议范围的RTP数据包流(UDP)目的地端口。尽管实际使用的端口要在终端设备或网关之间进行动态协商,但是所有的 Cisco VoIP 产品都使用相同的 UDP 端口范围(16384 到 32767)。路由器识别出 VoIP 流量后,便将其放置到严格 PQ 中。若 PQ 为空,则根据标准 WFQ 处理其他队列。直到接口中出现拥塞时,IP RTP 优先级才会变为活动状态。下图表明了 IP RTP 优先级的运行情况:

/image/gif/paws/12156/pq-wfq.gif

注意: 当默认队列 (WFQ) 上有可用的带宽时,IP RTP 优先级允许打破 PQ。但当接口上出现拥塞时,它将严格控制 PQ 内容。

LLQ

LLQ 功能可以为 CBWFQ 提供严格 PQ。LLQ 能够在类级别上的 CBWFQ 内启用单个严格 PQ。使用 LLQ,(PQ 中)对延迟敏感的数据将首先出列并进行发送。在实施 LLQ 的 VoIP 中,语音流量放置在严格 PQ 中。

为保证公平队列不缺少带宽,PQ 将受到控制。当您配置 PQ 时,您用 Kbps 指定可用于 PQ 的最大带宽量。当接口被堵塞时,运行 PQ,直到负载达到优先级语句中配置的 Kbps 值。然后丢弃超额流量来避免 Cisco 传统较低级别 PQ 的优先组功能。

注意: 使用帧中继 LLQ 时,将针对每个 PVC 来设置队列。每个 PVC 有一个 PQ 和指定数量的公平队列。

/image/gif/paws/12156/llq.gif

与 IP RTP 优先级相比,此方法更为复杂,也更为灵活。应当根据实际网络中的流量模式和您的需求来选择方法。

LLQ 与 IP RTP 优先级

此表总结了 LLQ 和 IP RTP 优先级之间的主要区别,并提供了每种方法适用情况的指南。

LLQ IP RTP 优先级
根据以下项目匹配语音流量:
  • 访问列表。例如, UDP端口范围,主机地址, IP报头服务类型(Tos)字段(例如, IP优先级,差分服务代码点。
  • IP RTP 端口范围。
  • IP ToS 字段 - DSCP 和/或 IP 优先级。
  • 协议和输入接口。
  • CBWFQ 中使用的所有有效匹配标准。
优点:
  • 数据流匹配和定向到严格 PQ 和 CBWFQ 的方式更加灵活。
  • 可以配置其他类来保证其他数据流的带宽,例如 VoIP 信令和视频。
缺点:配置复杂。
根据以下项目匹配语音流量:
  • 根据 RTP/UDP 端口范围:16384 - 32767
优点:配置简单。缺点:
  • 在WFQ队列(VoIP信令)服务的实时控制协议(RTCP)流量。

    注意: RTP 协议使用 RTCP 来控制 RTP 数据包的传送。RTP 端口使用偶数,RTCP 端口则使用 16384 - 32767 范围内的奇数。IP RTP 优先级在 PQ 中安置 RTP 端口,此处的 RTCP 端口在默认的 WFQ 中发挥作用。

  • VoIP 流量在 PQ 中进行处理。但是,需要得到优先处理和带宽保证的其他任何数据流都在 WFQ 中进行处理。虽然 WFQ 可以通过加权来区分流(根据 IP 优先级),它不能 确保任何流都有带宽保证。
指南:
  • 应当根据实际网络中的流量模式和您的需求来进行选择。
  • 如果需要为语音流量提供严格的优先级,且其他流量可作为一种类型(数据)进行处理,则配置简单的 IP RTP 优先级可以很好地服务于您的网络。
  • 如果您打算根据 UDP 端口以外的其他标准对语音流量进行优先级排定,例如,差异化服务(DiffServ)每跳行为(PHB)和LLQ。

针对语音的 FRTS

FRTS 提供的参数可用于管理网络流量拥塞。FRTS 消除了带有中心站点高速连接和分支站点低速连接的帧中继网络中的瓶颈。您能配置速率执行值,以限制从中心站点的虚拟电路上发送数据的速率。

以下是与 FRTS 相关的定义:

  • 承诺信息速率(CIR) —对(比特/秒)数据传输的帧中继提供商保证估计。CIR 值由帧中继服务提供商设置,并由路由器上的用户配置。

    注意: 端口/接口访问速率可高于 CIR。速率将在承诺速率测量间隔 (Tc) 时间段内取平均值。

  • 承诺突发量(BC) —帧中继网络做转接过渡Tc位的最大。Tc = Bc/CIR。

  • 超额突发是帧中继交换机尝试在Tc上传输到CIR之外的未做承诺位的最大数量。

  • 承诺速率测量间隔 (Tc) - Bc 或 (Bc+Be) 位的传输时间间隔。Tc 可依此计算:Tc = Bc/CIR。Tc 值不在 Cisco 路由器中直接配置。它是在配置 Bc 和 CIR 值之后计算得出的。Tc 不能超过 125 毫秒。

  • Backwards Explicit Congestion Notification (BECN) —有点在指示在网络的拥塞的帧中继帧头。当帧中继交换机识别到拥塞时,它将在要发送到源路由器的帧上设置 BECN 位,并指示路由器降低传输速率。

语音流量的 FRTS 配置不同于数据流量整形的 FRTS 配置。为语音质量配置 FRTS 时,数据流量参数会受到影响。有关这些限制的详细信息,请参阅本文档的分段 (FRF.12) 部分。

分段 (FRF.12)

语音数据集成所面临的重大挑战在于,控制对时间敏感的流量(例如语音)的最大单向端到端延迟。要获得良好的语音质量,此延迟应小于 150 毫秒。此延迟的一个重要部分是接口上的串行化延迟。Cisco 建议此值为 10 毫秒,且不应超过 20 毫秒。串行化延迟是将位数据放置到接口上实际所花费的时间。

Serialization Delay = frame size (bits) / link bandwidth (bps)

例如,1500 个字节的数据包需要 214 毫秒离开一条 56Kbps 链路的路由器。如果发送一个 1500 字节的非实时数据包,则实时(语音)数据包要进行排队,直到大型数据包传输完毕。对于语音流量而言,此延迟是不可接受的。如果非实时数据数据包被分段成更小的帧,它们将与实时(语音)帧相互交叉。这样,语音和数据帧都可以同时在速率较低的链路上运行,不会导致实时语音业务的过度延迟。

/image/gif/paws/12156/lfi.gif

有关分段的详细信息,请参阅帧中继语音分段

注意: 如果您具有专用的半 T1 连接 (768 kbps),则可能不需要分段功能。但您仍然需要 QoS 机制(在本例中即为 IP RTP 优先级或 LLQ)。T1 减半或速度提高可以提供足够的带宽,允许语音数据包在推荐的串行化延迟时间范围内(10 毫秒,不超过 20 毫秒)进入和离开队列。此外,如果具有完整 T1,则可能不需要 cRTP(该功能可通过压缩 IP RTP 报头帮助节省带宽)。

带宽减少

cRTP

基于 RFC 2508,cRTP 功能可将 IP/UDP/RTP 数据包报头从 40 个字节压缩到 2 或 4 个字节。leavingcisco.com 这将减少不必要的带宽消耗。它是一种逐跳压缩方案。因此,必须在链路两端配置 cRTP,除非已配置被动选项。

注意: 要保证良好的语音质量,cRTP 并非必需。此功能可减少带宽消耗。请在满足其他所有条件且语音质量良好的情况下配置 cRTP。此过程能够隔离潜在的 cRTP 问题,因此节省了故障排除时间。

监控路由器的 CPU 使用率。如果超过 75%,请禁用 cRTP。链路速率较高时,通过 cRTP 节省的带宽可能不足以抵消额外的 CPU 负载。Cisco 只建议在低于 768 Kbps 的链路上使用 cRTP,除非路由器以较低的 CPU 使用率运行。

注意: 由于缺乏标准,帧中继 cRTP 根据 Cisco 专有封装进行开发。所以,它不与帧中继的互联网工程任务组(IETF)封装一起使用。最近,FRF.20 已最终完成,从而有可能在 IETF 封装上对 RTP 报头进行压缩。然而,截至本文的最近一次更新(2002 年 5 月),FRF.20 都不受支持。

有关详细信息,请参阅压缩实时传输协议 (CRTP)

编码器/编码器(编码)选择

请在 VoIP 呼叫段上使用低比特率的编解码器。G.729 (8 Kbps) 是 VoIP 拨号对等体的默认编解码器。

注意: 虽然双音多频准确地通常传输,当使用高比特率语音编码解码器(例如G.711)时,低比特率编码解码器(例如G.729和G.723.1),为语音模式是最佳并且倾向于扭曲DTMF音。此方法可能导致访问交互式语音应答 (IVR) 系统时出现问题。dtmf relay 命令可解决 DTMF 失真的问题。它能够在带外传输 DTMF 音频,或将其与已编码的语音流分离。如果使用低比特率的编解码器 (G.729、G.723),请在 VoIP 拨号对等体下启用 dtmf relay 命令。

Enable (event)语音活动检测(VAD)

典型的对话可能包含 35% 到 50% 的静音时间。使用 VAD 时,静音时间段的数据包将被抑制。对于 VoIP 带宽规划,假设 VAD 会使带宽减少 35%。默认情况下,VAD 在 VoIP 拨号对等体下进行配置。

配置

本部分提供有关如何配置本文档所述功能的信息。

注意: 要查找本文档所用命令的其他信息,请使用命令查找工具仅限注册用户)。

LLQ

请使用此过程配置 LLQ:

  1. 为 VoIP 流量创建类映射并定义匹配标准。

    以下命令说明如何完成此任务:

    maui-voip-sj(config)#class-map ?
           WORD 		class-map name
           match-all 	Logical-AND all matching statements under this classmap
           match-any 	Logical-OR all matching statements under this classmap
    maui-voip-sj(config)#class-map match-all voice-traffic 
    
    !--- Choose a descriptive class_name. 
    
    
    maui-voip-sj(config-cmap)#match ?
      access-group         Access group
      any                  Any packets
      class-map            Class map
      cos                  IEEE 802.1Q/ISL class of service/user priority values
      destination-address  Destination address
      input-interface      Select an input interface to match
      ip                   IP specific values
      mpls                 Multi Protocol Label Switching specific values
      not                  Negate this match result
      protocol             Protocol
      qos-group            Qos-group
      source-address       Source address
    
    !--- In this example  the access-group matching 
    !--- option is used for its flexibility (it uses an access-list).
    
    
    maui-voip-sj(config-cmap)#match access-group ?
      <1-2699>  Access list index
      name      Named Access List
    maui-voip-sj(config-cmap)#match access-group 102 
    
    
    !--- Create the access-list to match the class-map access-group:
    
    
    maui-voip-sj(config)#access-list 102 permit udp any any range 16384 32767
    
    !--- The safest and easiest way is to match with UDP port range 16384-32767.
    !--- This is the port range Cisco IOS H.323 products utilize to transmit 
    !--- VoIP packets.
    
    

    使用 match access-group 命令,这些访问列表也可用于匹配语音流量:

    access-list 102 permit udp any any precedence critical
    
    !--- This list filters traffic based on the IP packet TOS: Precedence field.  
    !--- Note: Ensure that the other non-voice traffic does not use the 
    !--- same precedence value.
    
    
    access-list 102 permit udp any any dscp ef
    
    !--- In order for this list to work, ensure that VoIP packets are tagged 
    !--- with the dscp ef code before they exit on the LLQ WAN interface. 
    !--- For more information on DSCP, refer to 
    !--- Implementing Quality of Service Policies with DSCP.
    !--- Note: If endpoints are not trusted on their packet marking, 
    !--- mark incoming traffic by applying an inbound service policy on an 
    !--- inbound interface. This procedure is out of the scope 
    !--- of this document. 
    
    
    access-list 102 permit udp host 192.10.1.1 host 192.20.1.1
    
    !--- This access-list can be used in cases where the VoIP 
    !--- devices cannot do precedence or DSCP marking and you 
    !--- cannot determine the  VoIP UDP port range.
     

    下面是可替代 access-group 命令的其他匹配方法:

    • 对于 Cisco IOS 软件版本 12.1.2.T 和更高版本,LLQ 实施了 IP RTP 优先级功能。此功能根据已配置的 UDP 端口对优先级类别内容进行匹配。其限制在于,只能为 PQ 中的偶数端口提供服务。

      class-map voice
        match ip rtp 16384 16383
      
    • 以下两种方法的操作均基于这样的假设,即在执行出站 LLQ 操作之前,VoIP 数据包在始发主机上进行标记,或在路由器中进行匹配和标记:

      class-map voice 
         match ip precedence 5
      

      或者

      class-map voice
         match ip dscp ef
      

      注意: 在 Cisco IOS 软件版本 12.2.2T 和更高版本中,VoIP 拨号对等体可在 LLQ 操作之前标记语音载体和信令数据包。这样就能以可扩展的方式通过 LLQ 的 DSCP 代码值标记并匹配 VoIP 数据包。欲知更多信息,参见“区分VoIP信令和带有服务质量DSCP的媒体”。

      Router(config-dial-peer)#ip qos dscp ?
      
  2. 为 VoIP 信令创建类映射并定义匹配标准(可选)。

    请使用以下命令完成此任务:

    class-map voice-signaling
      match access-group 103
    !
    access-list 103 permit tcp any eq 1720 any
    access-list 103 permit tcp any any eq 1720
    

    注意: 使用H.323、会话启动协议(SIP)、介质网关控制协议(MGCP)或小呼叫控制协议(SCCP)--Cisco Call Manager使用的专用协议,可以建立VOIP呼叫。上一个示例采用了 H.323 快速连接。以下列表可用作 VoIP 信令和控制信道所用的端口参考:

    • H.323/H.225 = TCP 1720

    • H.323/H.245 = TCP 11xxx(标准连接)

    • H.323/H.245 = TCP 1720(快速连接)

    • H.323/H.225 RAS = UDP 1718(到网守)

    • SCCP = TCP 2000-2002 (CM Encore)

    • ICCP = TCP 8001-8002 (CM Encore)

    • MGCP = UDP 2427、TCP 2428 (CM Encore)

    • SIP= UDP 5060、TCP 5060(可配置)

  3. 创建策略映射并将其与 VoIP 类映射关联。

    策略映射旨在定义如何进行链路资源共享或如何将其分配给不同的映射类。请使用以下命令完成此任务:

    maui-voip-sj(config)#policy-map VOICE-POLICY
    
    !--- Choose a descriptive policy_map_name.
    
    
    maui-voip-sj(config-pmap)#class voice-traffic
    maui-voip-sj(config-pmap-c)#priority ?
     <8-2000000>  Kilo Bits per second
    
    !--- Configure the voice-traffic class to the strict PQ
    !--- (priority command) and assign the bandwidth.
    
    
    maui-voip-sj(config-pmap)#class voice-signaling
    maui-voip-sj(config-pmap-c)#bandwidth 8
    
    !--- Assign 8 Kbps to the voice-signaling class.
    
    
    maui-voip-sj(config-pmap)#class class-default
    maui-voip-sj(config-pmap-c)#fair-queue 
    
    !--- The remaining data traffic is treated as WFQ.
    
    

    注意: 虽然可以将各种类型的实时流量排列到 PQ 中,但 Cisco 建议只将语音流量排到 PQ 中。实时数据流,例如视频,在延迟潜在引入变化(PQ是先入先出(FIFO)队列)。为避免抖动,语音流量要求该延迟是固定的。

    注意: priority 和 bandwidth 语句的总值需小于或等于 PVC 的 minCIR。否则,无法将 service-policy 命令分配给链路。默认情况下,minCIR 是 CIR 的一半。要发现错误信息,保证 logging console 命令启用于控制台访问,terminal monitor 命令启用于 Telnet 访问。

    欲知 bandwidthpriority 命令的更多信息,参见比较 QoS 服务策略的 bandwidth 和 priority 命令

  4. 通过将策略映射应用于出站 WAN 接口启用 LLQ。

    请使用以下命令启用 LLQ:

    maui-voip-sj(config)#map-class frame-relay VoIPovFR
    maui-voip-sj(config-if)#service-policy output VOICE-POLICY
    
    !--- The service-policy is applied to the PVC 
    !--- indirectly by configuring 
    !--- it under the map-class associated to the PVC.
    
    

IP RTP 优先级

如果不使用 LLQ,请遵循以下指南:

Router(config-map-class)#frame-relay ip rtp priority starting-rtp-port  
port-range  bandwidth 
  • starting-rtp-port - 起始 UDP 端口号。数据包将发往的最低端口号。对于 VoIP,请将此值设置为 16384。

  • port-range - UDP 目标端口的范围。将此数值加上 starting-rtp-port,即可得到最高 UDP 端口号。对于 VoIP,请将此值设置为 16383。

  • bandwidth - 优先级队列的最大允许带宽 (单位为 kbps)。请根据同步呼叫数设置此值,将系统所支持的每个呼叫的带宽逐个相加。

配置示例:

map-class frame-relay VoIPovFR  frame-relay cir 64000
 frame-relay BC 600
 no frame-relay adaptive-shaping
 frame-relay fair-queue
 frame-relay fragment 80
 frame-relay ip rtp priority 16384 16383 45

语音流量整形

配置语音流量整形时,请遵循以下指南:

  • 请勿超过 PVC 的 CIR。

  • 禁用帧中继自适应整形。

  • 将 Bc 值设置为较低值,以使 Tc(整形间隔)为 10 毫秒 (Tc = Bc/CIR)。配置 Bc 值,以强制得到所需的 Tc 值。

  • 将 Be 值设置为 0。

有关这些指南的详细信息,请参阅 VoIP 和 VoFR 帧中继流量整形

注意: 某些客户为数据和语音使用单独的 PVC。如果具有两个独立的 PVC,并希望在数据 PVC 中实现突发,同时使语音 PVC 保持或低于 CIR,则语音质量仍可能会受到影响,因为这两个 PVC 使用同一个物理接口。在这种情况下,帧中继提供商以及路由器需要优先安排语音 PVC。后者可以由PVC接口优先级排列(PIPQ)联机完成自Cisco IOS软件版本12.1(1)T。

分段 (FRF.12)

为低速链路(低于 768 kbps)启用分段。设置分段大小,使语音数据包不会被分段且经历的串行化延迟不大于 20 毫秒。根据路由器之间的最低端口速度设置分段大小。例如,假设有一个星型帧中继拓扑,其中中心路由器的速度为 T1,而远程路由器的端口速度为 64 K,则两个路由器上的分段大小均应按照 64 K 的速度进行设置。共享同一个物理接口的其他任何 PVC 都需要将分段大小配置为语音 PVC 所使用的分段大小。请使用下表确定分段大小值。

路径中的最低链路速度 推荐的分段大小(对于 10 毫秒串行化)
56 kbps 70 字节
64 kbps 80 字节
128 kbps 160 字节
256 kbps 320 字节
512 Kbps 640 字节
768 Kbps 1000 字节
1536 Kbps 1600 字节

配置示例:

map-class frame-relay VoIPovFR 

!--- Some output is omitted.

 frame-relay fragment 80

注意: 对于 1536 Kbps 而言,从技术上讲并不需要分段。但如果要启动双重 FIFO 排队系统、保证语音质量,则需要使用分段功能。1600 字节的分段大小可启用双重 FIFO。然而,因为1600个字节高于典型串行接口最大传输单位(MTU),大数据包没有被分段。

网络图

本文档使用此图中所示的网络设置:

/image/gif/paws/12156/VoIP_FR.gif

配置

本文档使用此处所示的配置:

  • maui-voip-sj (Cisco 3640)

  • maui-voip-austin (Cisco 3640)

maui-voip-sj (Cisco 3640)
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname maui-voip-sj
!
logging buffered 10000 debugging
enable secret 5 $1$MYS3$TZ6bwrhWB25b2cVpEVgBo1
!
ip subnet-zero
!

!--- Definition of the voice signaling and traffic class maps.
!--- "voice-traffic" class uses access-list 102 for its matching criteria.
!--- "voice-signaling" class uses access-list 103 for its matching criteria.

class-map match-all voice-signaling
 match access-group 103
class-map match-all voice-traffic
  match access-group 102
!

!--- The policy map defines how the link resources are assigned
!--- to the different map classes. In this configuration, strict PQ
!--- is assigned to the voice-traffic class 
!--- with a maximum bandwidth of 45 Kbps.
 

policy-map VOICE-POLICY
  class voice-traffic
  priority 45
  class voice-signaling
  bandwidth 8


!--- Assigns a queue for voice-signaling traffic that ensures 8 Kbps.
!--- Note that this is optional and has nothing to do with good voice
!--- quality. Instead, it is a way to secure signaling.


  class class-default
  fair-queue


!--- The class-default class is used to classify traffic that does
!--- not fall into one of the defined classes.
!--- The fair-queue command associates the default class WFQ queueing.

!
interface Ethernet0/0
  ip address 172.22.113.3 255.255.255.0
  half-duplex
!
interface Serial0/0
 bandwidth 128
 no ip address
 encapsulation frame-relay
 no fair-queue
frame-relay traffic-shaping
 frame-relay ip rtp header-compression

!--- Turns on traffic shaping and cRTP. If traffic-shaping is not
!--- enabled, then map-class does not start and FRF.12 and LLQ  does
!--- not work.

!
interface Serial0/0.1 point-to-point
 bandwidth 128
 ip address 192.168.10.2 255.255.255.252
 frame-relay interface-dlci 300
  class VOIPovFR

!--- This command links the subinterface to a VoIPovFR map-class.
!--- See the map-class frame-relay VoIPovFR command  here:
!--- Note: The word VoIPovFR is selected by the user.
!

ip classless
ip route 172.22.112.0 255.255.255.0 192.168.10.1
!
map-class frame-relay VOIPovFR
 no frame-relay adaptive-shaping

!--- Disable Frame Relay BECNS. Note also that Be equals 0 by default.

frame-relay cir 64000
 frame-relay bc 640

!--- Tc = BC/CIR. In this case Tc is forced to its minimal
!--- configurable value of 10 ms.

frame-relay be 0
 frame-relay mincir 64000

!--- Although  adaptive shaping is disabled, make CIR equal minCIR
!--- as a double safety. By default minCIR  is half of CIR.

service-policy output VOICE-POLICY

!--- Enables LLQ on the PVC.

frame-relay fragment 80

!--- Turns on FRF.12 fragmentation and sets the fragment size equal to 80 bytes.
!--- This value is based on the port speed of the slowest path link.
!--- This command also enables dual-FIFO.

!
access-list 102 permit udp any any range 16384  32767
access-list 103 permit tcp any eq 1720 any
access-list 103 permit tcp any any eq 1720
!

!--- access-list 102 matches VoIP traffic 
!--- based on the UDP port range.
!--- Both odd and even ports are put into the PQ.
!--- access-list 103 matches VoIP signaling protocol. In this
!--- case, H.323 V2 is uesd with the fast start feature.

!
voice-port 1/0/0
!
dial-peer voice 1 pots
 destination-pattern 5000
 port 1/0/0
!
dial-peer voice 2 voip
 destination-pattern 6000
 session target ipv4:192.168.10.1
 dtmf-relay cisco-rtp
 ip precedence 5

maui-voip-austin (Cisco 3640)
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname maui-voip-austin
!
boot system flash slot1:c3640-is-mz.122-6a.bin
logging buffered 1000000 debugging
!
ip subnet-zero
!
class-map match-all voice-signaling
match access-group 103
class-map match-all voice-traffic
  match access-group 102
!
policy-map voice-policy
  class voice-signaling
   bandwidth 8
  class voice-traffic
    priority 45
  class class-default
   fair-queue
!
interface Ethernet0/0
 ip address 172.22.112.3 255.255.255.0
 no keepalive
 half-duplex
!
interface Serial0/0
 bandwidth 64
 no ip address
 encapsulation frame-relay
 no ip mroute-cache 
 no fair-queue
 frame-relay traffic-shaping
 frame-relay ip rtp header-compression
!
interface Serial0/0.1 point-to-point
 bandwidth 64
 ip address 192.168.10.1 255.255.255.252
 frame-relay interface-dlci 400
  class VOIPovFR
!
ip classless
ip route 172.22.113.0 255.255.255.0 192.168.10.2
!
map-class frame-relay VOIPovFR
no frame-relay adaptive-shaping
 frame-relay cir 64000
 frame-relay bc 640
 frame-relay be 0
 frame-relay mincir 64000
 service-policy output voice-policy
 frame-relay fragment 80
access-list 102 permit udp any any range 16384 32767
access-list 103 permit tcp any eq 1720 any
access-list 103 permit tcp any any eq 1720
!
voice-port 1/0/0
!
dial-peer voice 1 pots
 destination-pattern 6000
 port 1/0/0
!
dial-peer voice 2 voip
 destination-pattern 5000
 session target ipv4:192.168.10.2
 dtmf-relay cisco-rtp
 ip precedence 5

验证与故障排除

本部分提供的信息有助于确认配置是否正常运行。

命令输出解释程序工具仅限注册用户)支持某些 show 命令。通过此工具可查看对 show 命令输出的分析。

LLQ/IP RTP 优先级命令

以下 show 和 debug 命令可帮助您验证 LLQ 和 IP RTP 优先级配置。

  • show policy-map interface serial interface# - 此命令可用于查看 LLQ 操作和 PQ 中的任何丢包现象。欲知此命令的各种字段的更多信息,请参见了解 show policy-map interface 输出中的数据包计数器

  • show policy-map policy_map_name - 显示有关策略映射配置的信息。

  • show queue interface-type interface-number - 列出特定接口的公平排队配置和统计信息。

  • debug priority - 显示 PQ 事件并显示此队列中是否发生丢包现象。有关详细信息,请参阅优先级排队中的输出丢包故障排除

  • show class-map class_name - 显示有关类映射配置的信息。

  • show call active voice - 在 DSP 级别上检查是否有丢失的数据包。

  • show frame-relay ip rtp header-compression - 显示 RTP 报头压缩统计信息。

分段命令

请使用以下 Debug 和 Show 命令对分段配置进行验证和故障排除。

  • show frame-relay fragment - 显示 Cisco 路由器中发生的帧中继分段的相关信息。

  • debug frame-relay fragment - 显示与帧中继分段相关的事件或错误消息。此命令仅可在 PVC 级别所选接口上启用。

帧中继/接口命令

请使用以下 show 命令对帧中继/接口配置进行验证和故障排除。

  • show traffic-shape queue interface---显示VC数据链路连接标识符(DLCI)级别排列的元素信息。用于验证帧中继上的 IP RTP 优先级操作。当链路发生拥塞时,语音流以零权重表示。这表明语音流使用 PQ。请参阅此处的输出示例。

  • show traffic-shape - 显示 Tc、Bc、Be 和 CIR 配置值等信息。请参阅输出示例

  • show frame-relay pvc dlci-# - 显示流量整形参数、分段值和数据包丢包等信息。请参阅输出示例。另请参阅帧中继故障排除

已知问题

已识别有关 VC LLQ 的 Bug,即使接口上没有拥塞,PQ 也被严格管辖。该 Bug 已修复,现在只有 VC 上出现拥塞时,不符合条件的语音数据包才会被丢弃。这使得针对每个 VC 的 LLQ 的行为与其他使用 LLQ 的接口相同。此行为在 Cisco IOS 软件版本 12.2(3) 及更高版本中已经更改。

show 及 debug 命令输出示例

以下是用于验证和故障排除的 show 和 debug 命令输出示例。


!--- To capture sections of this output, the LLQ PQ bandwidth
!--- is lowered and large data traffic  is placed
!--- on the link to force packets drops. 
      
!--- Priority queue bandwidth  is lowered to 10 Kbps to force drops from the PQ.
!--- Note: To reset counters, use the clear counters command. 


maui-voip-sj#show policy-map inter ser 0/0.1
  Serial0/0.1: DLCI 300 -

  Service-policy output: VOICE-POLICY

Class-map: voice-traffic (match-all)
         26831 packets, 1737712 bytes
         5 minute offered rate 3000 bps, drop rate 2000 bps
         Match: access-group 102
         Weighted Fair Queueing
         Strict Priority
         Output Queue: Conversation 24
         Bandwidth 10 (kbps) Burst 250 (Bytes)
         (pkts matched/bytes matched) 26311/1704020
         (total drops/bytes drops) 439/28964

   Class-map: voice-signaling (match-all)
         80 packets, 6239 bytes
         5 minute offered rate 0 bps, drop rate 0 bps
         Match: access-group 103
         Weighted Fair Queueing
         Output Queue: Conversation 25
         Bandwidth 8 (kbps) Max Threshold 64 (packets)
         (pkts matched/bytes matched) 62/4897
         (depth/total drops/no-buffer drops) 0/0/0
    
   Class-map: class-default (match-any)
         14633 packets, 6174492 bytes
         5 minute offered rate 10000 bps, drop rate 0 bps
         Match: any
         Weighted Fair Queueing
         Flow Based Fair Queueing
         Maximum Number of Hashed Queues 16
         (total queued/total drops/no-buffer drops) 0/0/0

      

!--- These  commands are useful to verify the LLQ configuration.
 
      
maui-voip-austin#show policy-map voice-policy
  Policy Map voice-policy
   Class voice-signaling
        Weighted Fair Queueing
           Bandwidth 8 (kbps) Max Threshold 64 (packets)
   Class voice-traffic
        Weighted Fair Queueing
         Strict Priority
             Bandwidth 45 (kbps) Burst 1125 (Bytes)
   Class class-default
        Weighted Fair Queueing
           Flow based Fair Queueing Max Threshold 64 (packets)

maui-voip-austin#show class-map
 Class Map match-all voice-signaling (id 2)
         Match access-group  103
 Class Map match-any class-default (id 0)
         Match any
 Class Map match-all voice-traffic (id 3)
         Match access-group 102


!--- Frame Relay verification command output.


maui-voip-sj#show frame-relay fragment
interface         dlci  frag-type    frag-size  in-frag    out-frag   dropped-frag
Serial0/0.1       300   end-to-end      80         4          4          0

maui-voip-sj#show frame-relay pvc 300

PVC Statistics for interface Serial0/0 (Frame Relay DTE)

DLCI = 300, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0.1

 input pkts 7 output pkts 7 in bytes 926
         out bytes 918 dropped pkts 0 in FECN pkts 0
         in BECN pkts 0 out FECN pkts 0 out BECN pkts 0
         in DE pkts 0 out DE pkts 0
         out bcast pkts 2 out bcast bytes 598
         pvc create time 1w2d, last time pvc status changed 1w2d
      service policy VOICE-POLICY

 Service-policy output: VOICE-POLICY

 Class-map: voice-traffic (match-all)
         0 packets, 0 bytes
         5 minute offered rate 0 bps, drop rate 0 bps
      Match: access-group 102
         Weighted Fair Queueing
      Strict Priority
         Output Queue: Conversation 24
         Bandwidth 45 (kbps) Burst 250 (Bytes)
         (pkts matched/bytes matched) 0/0
         (total drops/bytes drops) 0/0

 Class-map: voice-signaling (match-all)
         0 packets, 0 bytes
         5 minute offered rate 0 bps, drop rate 0 bps
         Match: access-group 103
         Weighted Fair Queueing
         Output Queue: Conversation 25
         Bandwidth 8 (kbps) Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

 Class-map: class-default (match-any)
         7 packets, 918 bytes
         5 minute offered rate 0 bps, drop rate 0 bps
         Match: any
         Weighted Fair Queueing
         Flow Based Fair Queueing
         Maximum Number of Hashed Queues 16
         (total queued/total drops/no-buffer drops) 0/0/0


 Output queue size 0/max total 600/drops 0
 fragment type end-to-end fragment size 80
 cir 64000 bc 640 be 0 limit 80 interval 10
 mincir 64000 byte increment 80 BECN response no
 frags 13 bytes 962 frags delayed 8 bytes delayed 642
 
 shaping inactive
 traffic shaping drops 0


!--- In this Frame Relay verification command 
!--- output, the PQ bandwidth is lowered and heavy traffic 
!--- is placed on the interface to force drops.


maui-voip-sj#show frame-relay pvc 300

PVC Statistics for interface Serial0/0 (Frame Relay DTE)

DLCI = 300, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0.1

 input pkts 483 output pkts 445 in bytes 122731
         out bytes 136833 dropped pkts 0 in FECN pkts 0
         in BECN pkts 0 out FECN pkts 0 out BECN pkts 0
         in DE pkts 0 out DE pkts 0
         out bcast pkts 4 out bcast bytes 1196
         pvc create time 1w2d, last time pvc status changed 1w2d
         service policy VOICE-POLICY

 Service-policy output: VOICE-POLICY

 Class-map: voice-traffic (match-all)
         352 packets, 22900 bytes
         5 minute offered rate 2000 bps, drop rate 2000 bps
         Match: access-group 102
         Weighted Fair Queueing
         Strict Priority
         Output Queue: Conversation 24
         Bandwidth 10 (kbps) Burst 250 (Bytes)
         (pkts matched/bytes matched) 352/22900
         (total drops/bytes drops) 169/11188

 Class-map: voice-signaling (match-all)
         7 packets, 789 bytes
         5 minute offered rate 0 bps, drop rate 0 bps
         Match: access-group 103
         Weighted Fair Queueing
         Output Queue: Conversation 25
         Bandwidth 8 (kbps) Max Threshold 64 (packets)
         (pkts matched/bytes matched) 7/789
         (depth/total drops/no-buffer drops) 0/0/0

 Class-map: class-default (match-any)
         79 packets, 102996 bytes
         5 minute offered rate 4000 bps, drop rate 0 bps
         Match: any
         Weighted Fair Queueing
         Flow Based Fair Queueing
         Maximum Number of Hashed Queues 16
         (total queued/total drops/no-buffer drops) 5/0/0
         Output queue size 5/max total 600/drops 169
         fragment type end-to-end fragment size 80
         cir 64000 bc 640 be 0 limit 80 interval 10
         mincir 64000 byte increment 80 BECN response no
         frags 2158 bytes 178145 frags delayed 1968 bytes delayed 166021

 shaping active
         traffic shaping drops 169


!--- Notice that the Tc interval equals 10 ms, 
!--- CIR equals 64000 BPS, and BC equals 640. 

     
maui-voip-sj#show traffic-shape
Interface  Se0/0.1
       Access Target    Byte   Sustain   Excess    Interval  Increment Adapt
VC     List   Rate      Limit  bits/int  bits/int  (ms)      (bytes)   Active
300           64000     80     640       0          10        80         -



!--- This output is captured on an isolated lab enviroment where
!--- the routers are configured with IP RTP Priority instead of LLQ.
 

maui-voip-austin#show frame-relay PVC 100

PVC Statistics for interface Serial0/1 (Frame Relay DTE)

DLCI = 100, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/1.1

  input pkts 336           output pkts 474          in bytes 61713
  out bytes 78960          dropped pkts 0           in FECN pkts 0
  in BECN pkts 0           out FECN pkts 0          out BECN pkts 0
  in DE pkts 0             out DE pkts 0
  out bcast pkts 0         out bcast bytes 0         
  PVC create time 1w0d, last time PVC status changed 1w0d
 Current fair queue configuration:   
   Discard      Dynamic       Reserved
   threshold    queue count   queue count
   64            16              2
 Output queue size 0/max total 600/drops 0 
  fragment type end-to-end        fragment size 80
  cir 64000     BC   640      be 0     limit 125    interval 10
  mincir 32000    byte increment 125   BECN response no
  frags 1091      bytes 82880     frags delayed 671      bytes delayed 56000
  shaping inactive
  traffic shaping drops 0
  ip rtp priority parameters 16384 32767 45000


!--- This command displays information of the VoIP dial-peers.
 
      
maui-voip-austin#show dial-peer voice 2
VoiceOverIpPeer2
        information type = voice,
        tag = 2, destination-pattern = `5000',
        answer-address = `', preference=0,
        group = 2, Admin state is up, Operation state is up,
        incoming called-number = `', connections/maximum = 0/unlimited,
        application associated: 
     type = voip, session-target = `ipv4:192.168.10.2',  
        technology prefix:
     ip precedence = 5, UDP checksum = disabled,
         session-protocol = cisco, req-qos = best-effort, 
         acc-qos = best-effort, 
     dtmf-relay = cisco-rtp, 
        fax-rate = voice,   payload size =  20 bytes
     codec = g729r8,    payload size =  20 bytes,
        Expect factor = 10, Icpif = 30,signaling-type = cas,
     VAD = enabled, Poor QOV Trap = disabled, 
        Connect Time = 165830, Charged Units = 0,
        Successful Calls = 30, Failed Calls = 0,
        Accepted Calls = 30, Refused Calls = 0,
        Last Disconnect Cause is "10",
        Last Disconnect Text is "normal call clearing.",
        Last Setup Time = 69134010.

相关信息


Document ID: 12156