目录

简介

先决条件

要求

使用的组件

规则

将队列应用于具有各种带宽的接口

拨号程序接口上的 CBWFQ 与 LLQ

使用分布式 MLPPP 时的 LLQ 与 CBWFQ

使用 PPPoA 与 MLPPPoA 时的 CBWFQ 和 LLQ

相关信息

简介

service-policy 命令通常将使用模块化 QoS CLI (MQC) 的命令配置的策略映射应用于主接口、子接口或虚电路。您还可以将此命令应用于配置了点对点协议 (PPP) 封装和多链路 PPP (MLPPP) 的虚拟模板接口、多链路接口和拨号程序接口。 此类接口成为虚拟访问接口，在这里执行排队功能。本文档提供了用于了解将 Class-Based Weighted Fair Queueing (CBWFQ) 和 Low Latency Queuing (LLQ) 应用于 MLPPP 捆绑接口和拨号程序接口的推荐配置和相关警告的单个参考。

先决条件

要求

本文档没有任何特定的前提条件。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档约定的更多信息，请参考 Cisco 技术提示约定。

将队列应用于具有各种带宽的接口

RFC 1990 定义了多链路PPP，它将一个或多个物理接口组合到虚拟“捆绑”接口。捆绑接口的带宽与链路成员的带宽总和是相等的。因此，捆绑接口的最大带宽值会即时变化。

最初，bandwidth 和 priority 命令仅支持绝对 kbps 值。如果您将使用 CBWFQ 和 LLQ 的服务策略应用于捆绑接口，并且第一个活动接口不支持绝对 kbps 值，则服务策略将无法执行准入控制。路由器删除了服务策略并且输出了类似于以下输出的错误消息：

May 18 17:32:34.766 MEST: CBWFQ: Not enough available bandwidth for all

classes Available 48 (kbps) Needed 96 (kbps)

May 18 17:32:34.766 MEST: CBWFQ: Removing service policy on Dialer100

自 Cisco IOS® 软件版本 12.2T 起，路由器现在尝试在检测到向捆绑中添加了附加接口（例如第二个 BRI B 信道）时重新应用此策略。最好的方法是将 priority 和 bandwidth 命令配置为可用带宽的百分比。使用百分比值可将路由器配置为分配相对带宽量，该带宽量在捆绑包含一个或多个成员链路时进行调节。Cisco IOS 软件版本 12.2(2)T 支持 Cisco 7500 系列路由器和其他平台上的 priority percentage 命令。有关详细信息，请参阅支持 Priority Percentage 的 Low Latency Queuing。

拨号程序接口上的 CBWFQ 与 LLQ

可以采用两种方式配置按需拨号路由 (DDR)：

- 传统 DDR — 将拨号和协议参数直接应用于物理接口。

- Dialer Profiles — 将拨号和协议参数动态地应用于拨号程序接口，该接口又绑定到物理接口。例如，拨号程序接口包括一个或多个拨号字符串以访问远程站点、PPP 认证类型和 MLPPP。

传统 DDR 最初仅当串行或 ISDN 接口配置了 MLPPP 时才支持 First In First Out (FIFO) Queueing。此限制甚至适用于连接的两端没有协商 MLPPP 并且使用物理接口作为运行 PPP 封装的非捆绑接口的情况。现在支持通过 fair-queue 命令的传统 Weighted Fair Queuing (WFQ)。

如果您选择配置 Dialer Profiles，则拨号程序接口和基础物理接口都支持 service-policy 命令。如果您在物理接口上应用策略，请发出 show policy-map interface serial 命令或 show policy-map interface bri 0/0:1（和 bri0/0:2）命令来确认配置。IOS 中标识为 BRI0/0 的 D 信道支持信令而非数据流量。如果您将策略应用于拨号程序接口，请发出 show queueing interface dial <0-255> 命令来确认配置。

Cisco IOS 软件版本 12.2(4) 和 12.2(4)T 支持从配置了 MLPPP 的拨号程序接口创建的虚拟访问接口上的基于排队的服务策略。在上一个版本中，没有将 service-policy 参数复制到克隆的虚拟访问接口，在这里实际执行排队。以下输出说明这些症状：

Router#show policy interface dialer1

Dialer1

Service-policy output: foo

Class-map: class-default (match-any)

0 packets, 0 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 256

(total queued/total drops/no-buffer drops) 0/0/0

Router#show policy interface virtual-access 2

Router#

注意：建议使用Cisco IOS软件版本12.2(8)和12.2(8)T来避免Cisco Bug ID CSCdu87408，该漏洞将路由器重新加载解析为此配置的罕见副作用。

此示例配置显示如何将 CBWFQ 和 LLQ 应用于拨号程序接口。此配置导致：

- 使用拨号程序接口将连接的协议参数动态地应用于 ISDN BRI 接口。可以认为将拨号程序接口“绑定”到了 ISDN BRI 接口。

- 将两个 ISDN BRI 接口放在多链路捆绑中。

- 使用 dialer load-threshold load [outbound |入站 | eiher]命令，确定路由器何时需要激活其他B信道并增加捆绑接口的带宽。

- 使用 ppp multilink 命令创建虚拟访问接口。

- 通过拨号程序接口，将具有 CBWFQ 和 LLQ 的服务策略应用于虚拟访问接口。

配置示例

access-list 101 permit udp any any range 16384 32767

access-list 101 permit tcp any any eq 1720

!

access-list 102 permit tcp any any eq 23

!

class-map voice

match access-group 101

!--- Traffic that matches ACL 101 is classified as class voice.

class-map data

match access-group 102

!--- Traffic that matches ACL 102 is classified as class data.

policy-map mlppp

class voice

priority percent 50

class data

bandwidth percent 25

class class-default

fair-queue

!

interface BRI2/1

no ip address

encapsulation ppp

dialer pool-member 1

!--- Member of dialer pool 1.

isdn switch-type basic-net3

no cdp enable

ppp authentication chap

!

interface BRI2/2

no ip address

encapsulation ppp

dialer pool-member 1

!--- Member of dialer pool 1.

isdn switch-type basic-net3

no cdp enable

ppp authentication chap

!

interface Dialer2

ip unnumbered Loopback0

encapsulation ppp

dialer pool 1

dialer load-threshold 1 either

!--- Load level (in either direction) for !--- traffic at which additional connections !--- are added to the MPPP bundle !--- load level values that range from 1 (unloaded) !--- to 255 (fully loaded).

dialer string 6113

dialer string 6114

dialer-group 1

ppp authentication chap

ppp multilink

!--- Allow MLPPP for the four BRI channels.

service-policy output mlppp

!--- Apply the service policy to the dialer interface.

使用分布式 MLPPP 时的 LLQ 与 CBWFQ

Cisco 7500 系列使用分布式体系结构，该体系结构通过将包转发决定从路由交换机处理器 (RSP) 移动到通用接口处理器 (VIP) 来确保高包吞吐量。 该体系结构还通过跨 VIP 的多个独立处理器分散处理负载来允许部署增强的大型 IP 服务（例如 QoS）。

根据接口硬件，Cisco 7500 系列支持两种形式的 QoS：

QoS

如何启用

在哪里支持

在哪里处理

基于 RSP

自动地在传统接口处理器上启用。

传统接口处理器。不再可以在 VIP 上启用。

RSP CPU

基于 VIP（分布式）

在配置以下两个命令时自动启用：

- 全局配置模式下的 ip cef distributed 命令。

- 接口配置模式下的 ip route-cache distributed 命令。

VIP

VIP CPU

在以下三个 Cisco IOS 软件版本培训中介绍了通过模块化 QoS CLI (MQC) 应用的基于 VIP 的 QoS 机制：

- Cisco IOS 软件版本 12.0(XE)，它变为 Cisco IOS 软件版本 12.1(E)

- Cisco IOS 软件版本 12.0(9)S

- Cisco IOS 软件版本 12.1(5)T，它变为 Cisco IOS 软件版本 12.2 主线和 Cisco IOS 软件版本 12.2T

分布式 MLPPP 功能允许您将 VIP 上的多个 T1/E1 接口的带宽组合到一个捆绑接口中。有关详细信息，请参阅 Cisco 7500 系列路由器的分布式多链路点对点协议。Cisco IOS 软件版本 12.2(13)T 支持非信道化端口适配器（例如 PA-4T+ 和 PA-8T）上的分布式 MLPPP (dMLPPP)。

Cisco IOS软件版本12.2(8)T在PA-MC-xT1/E1和PA-MC-xT3/E3等信道化端口适配器上的dMLPPP捆绑接口上引入了对分布式LLQ和CBWFQ的支持。与此功能的非分布式版本类似，dMPMLPPP使用接口多链路创建虚拟访问接口，在该接口上执行排队功能。请参阅 Cisco IOS 软件版本 12.2T 的新信息和更改的信息。在您将分布式队列与 dMLPPP 一起应用时，推荐使用 Cisco IOS 软件版本 12.2(10)T 或更高版本以避免 Cisco Bug ID CSCdw47678。

dMLPPP/dLFI 仅支持使用 service-policy 命令应用的 CBWFQ 和 LLQ。不支持传统排队功能，例如使用 fair-queue 命令的 Fair Queuing、使用 priority-group 命令的 Priority Queuing 和使用 queue-list 命令的 Custom Queueing。

Cisco 7600 系列的 FlexWAN 支持非捆绑接口上的 dLLQ。不支持 MLPPP 捆绑接口上的 dLLQ。Cisco IOS 软件版本 12.2S 提供了此支持。

此示例配置在接口多链路上应用 dLLQ：

MLPPP 捆绑接口上的 dLLQ 的示例配置

Interface

!

access-list 100 permit udp any any range 16384 32000

access-list 100 permit tcp any any eq 1720

access-list 101 permit tcp any any eq 80

access-list 102 permit tcp any any eq 23

!

class-map voip

match access-group 100

class-map data1

match access-group 101

class-map data2

match access-group 102

!

policy-map llq-policy

class voip

bandwidth 40

class data1

bandwidth 15

class data2

bandwidth 15

class class-default

fair-queue

!

policy-map set-policy

class voip

bandwidth 40

class data1

bandwidth 15

class data2

bandwidth 15

class class-default

fair-queue

!

interface Serial5/0/0:0

no ip address

encapsulation ppp

keepalive 10

ppp chap hostname G2

ppp multilink

multilink-group 2

!

interface Serial5/1/0:0

no ip address

encapsulation ppp

keepalive 10

ppp chap hostname G2

ppp multilink

multilink-group 2

!

interface Multilink2

ip address 106.0.0.2 255.0.0.0

ppp multilink

service-policy output llq-policy

service-policy input set-policy

multilink-group 2

Link Fragmentation and Interleaving (LFI) 将 ppp multilink fragment-delay 和 ppp multilink interleave 命令添加到配置了 MLPPP 和服务策略的接口虚拟模板中。此配置可通过细分大数据报并将低延迟流量数据包与由分段的数据报产生的较小数据报交错来减少较慢速度链路上的延迟。有关详细信息，请参阅为帧中继和 ATM 虚电路配置 Link Fragmentation and Interleaving。

Cisco IOS 软件版本 12.2(8)T 支持具有 VIP 的 Cisco 7500 系列上的信道化串行线路上的 Distributed LFI (dLFI)。Catalyst 6500 系列交换机和 Cisco 7600 系列路由器也提供了此功能。有关支持 dLFI 的版本的信息，请参阅功能导航工具（仅限注册客户）和各自产品的发行版本注释。有关此功能的详细信息，请参阅租用线路上的 Distributed Link Fragmentation and Interleaving。

具有 Cisco IOS 软件版本培训 12.1E 的 Cisco 7600 系列的 FlexWAN 不支持 dLFI。

在您使用 ppp multilink fragment-delay <msec> 命令配置最大分段延迟后，dLFI 功能将使用以下公式（其中带宽以 kbps 为单位）计算信道化串行接口上的实际分段大小：

fragment size = bandwidth x fragment-delay  / 8

另外，根据具有最小带宽量的成员链路计算分段大小。例如，在成员链路为 64 k 和 128 k 的配置中，将根据 64 k 链路计算分段大小。

使用 PPPoA 与 MLPPPoA 时的 CBWFQ 和 LLQ

Cisco IOS 软件版本 12.2(8) 支持配置了通用 PPP over ATM (PPPoA) 封装的 ATM 虚电路上的每 VC 排队。以下小节为您提供了基于类的标记、策略和排队的配置示例。

一、分类标记

可以将 service-policy 命令附加到基于类的标记的虚拟模板接口或 ATM PVC。

在此示例中，定义了类映射 PEER2PEER，创建了策略映射 MARK_PEER2PEER，并且为类 PEER2PEER 配置了 dscp 默认值；然后将 service-policy 附加到虚拟模板或 ATM PVC。

Router(config)#class-map PEER2PEER

Router(config-cmap)#match access-group 100

Router(config-cmap)#exit

Router(config)#policy-map MARK_PEER2PEER

Router(config-pmap)#class PEER2PEER

Router(config-pmap-c)#set dscp default

Router(config-pmap-c)#end

Attaching Service-policy to Virtual Template

Router(config-subif)#int atm1/0.1 point-to-point

Router(config-subif)#ip address 10.10.10.1 255.255.255.0

Router(config-subif)#pvc 1/50

Router(config-if-atm-vc)#encapsulation aal5mux ppp virtual-Template 1

Router(config)#interface Virtual-Template1

Router(config-if)#ip address negotiated

Router(config-if)#service-policy output MARK_PEER2PEER

Attaching Service-policy to ATM pvc

Router(config)#int atm1/0.1 point-to-point

Router(config-subif)#ip address 10.10.10.1 255.255.255.0

Router(config-subif)#pvc 1/50

Router(config-if-atm-vc)#service-policy output MARK_PEER2PEER

2.基于类的管制:

可以将 service-policy 命令附加到基于类的策略的虚拟模板接口或 ATM pvc。

Router(config)#policy-map POLICE_PEER2PEER

Router(config-pmap)#class PEER2PEERRouter(config-pmap-c)#police 8000 conform-action transmit exceed-action drop

Attaching Service-policy to Virtual Template

Router(config-subif)#int atm1/0.2 multipoint

Router(config-subif)#no ip address

Router(config-subif)#pvc 1/100

Router(config-if-atm-vc)#encapsulation aal5mux ppp virtual-Template 2

Router(config)#interface Virtual-Template2

Router(config-if)#ip address negotiated

Router(config-if)#service-policy output POLICE_PEER2PEER

Attaching Service-policy to ATM pvc

Router(config)#int atm1/0.2 multipoint

Router(config-subif)#no ip address

Router(config-subif)#pvc 1/100

Router(config-if-atm-vc)#service-policy output POLICE_PEER2PEER

三、基于类的排队:

对于基于类的排队（即，bandwidth、shape、priority 和 random-detect），可以将 service-policy 命令附加到虚拟模板或 ATM PVC。

Router(config)#policy-map QUEUE_PEER2PEER

Router(config-pmap)#class PEER2PEER

Router(config-pmap-c)#bandwidth 768

Attaching Service-policy to Virtual Template

Router(config-subif)#int atm1/0

Router(config-subif)#no atm ilmi-keepalive

Router(config-subif)#pvc 1/150

Router(config-if-atm-vc)#encapsulation aal5mux ppp virtual-Template 3

Router(config)#interface Virtual-Template3

Router(config-if)#ip address negotiated

Router(config-if)#service-policy output QUEUE_PEER2PEER

Attaching Service-policy to ATM pvc

Router(config)#int atm1/0

Router(config-subif)#no atm ilmi-keepalive

Router(config-subif)#pvc 1/150

Router(config-if-atm-vc)#service-policy output QUEUE_PEER2PEER

注：当使用基于类的标记或基于类的策略和基于类的队列的组合时，操作顺序如下：

1. 虚拟模板接口上配置的 service-policy 命令会对数据包进行标记或制定策略。

2. ATM PVC 上的 service-policy 命令会对数据包进行排队。

参阅以下示例：

policy-map MARK_PEER2PEER

class PEER2PEER

set dscp default

!

interface ATM0/0

no ip address

no atm ilmi-keepalive

pvc 1/100

encapsulation aal5mux ppp Virtual-Template1

service-policy output QUEUE_PEER2PEER

!

interface Virtual-Template1

ip address negotiate

service-policy output MARK_PEER2PEER

如果您运行 Cisco IOS 软件的早期版本，则可以在具有 MLPPPoA 封装的 ATM VC 上进行配置并将基于排队的服务策略应用于虚拟模板接口。有关详细信息，请参阅帧中继和 ATM 虚电路的 Link Fragmentation and Interleaving 和链路效率机制概述。

Cisco IOS 软件版本 12.2(4)T3 为 Cisco 7500 系列引入了此功能的分布式版本。有关此功能的详细信息，请参阅 ATM 和帧中继的 Distributed Link Fragmentation and Interleaving。

相关信息

- Cisco 7200、3600 和 2600 路由器上的基于每 VC 类的加权公平排队 (Per-VC CBWFQ)

- 低延时队列

- QoS 技术支持

- 技术支持和文档 - Cisco Systems