示例:在 PTX 系列路由器上配置严格优先级计划
此示例说明如何为 PTX 系列路由器上的物理接口配置 严格的优先级调度 。
要求
此示例使用以下硬件和软件组件:
一台 PTX 系列数据包传输路由器
提供输入数据包并接收输出数据包的一个或多个路由器
Junos OS 13.3 或更高版本
概述
此示例说明了如何为 PTX 系列路由器上的物理接口配置严格优先级计划,以按严格优先级顺序处理队列。保证区域内具有相同优先级的队列将采用轮询方式进行处理。将基于 WRR 算法处理剩余区域内的队列。
配置严格优先级计划时,请遵循以下准则:
transmit-rate
配置不会影响队列清空速率,因为按队列优先级顺序处理数据包。在层级,您只能配置一个具有
strict-high
优先级的[edit class-of-service schedulers scheduler-name priority]
队列。您不能在
[edit class-of-service schedulers scheduler-name]
层次结构级别同时transmit-rate exact
配置和strict-high
优先级。您不能配置
scheduler-map
,shaping-rate
也不能在接口上配置输出流量控制配置文件。您不能对
low
具有优先级的队列进行配置transmit-rate
,否则提交将失败。
如果一个严格高优先级的队列不断加载到 100% 的流量容量,其他队列就会被用尽。队列不足会导致接口硬件生成关键中断。
拓扑
在 图 1 中,PTX 系列路由器具有来自路由器 A、et-1/1/15 和 et-1/1/12 的输入,以及到路由器 B et-7/1/12 的输出。此示例针对两个入口接口配置分类,并在出口接口上配置严格优先级调度。

配置
配置严格优先级调度
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层级的 [edit]
CLI 中。
set class-of-service classifiers dscp cls forwarding-class be loss-priority high code-points 000000 set class-of-service classifiers dscp cls forwarding-class ef loss-priority medium-high code-points 000001 set class-of-service classifiers dscp cls forwarding-class af loss-priority medium-low code-points 000010 set class-of-service classifiers dscp cls forwarding-class nc loss-priority low code-points 000011 set class-of-service classifiers dscp cls forwarding-class af11 loss-priority low code-points 000100 set class-of-service classifiers dscp cls forwarding-class af12 loss-priority low code-points 000101 set class-of-service classifiers dscp cls forwarding-class af13 loss-priority low code-points 000110 set class-of-service classifiers dscp cls forwarding-class nc2 loss-priority low code-points 000111 set class-of-service forwarding-classes queue 0 be set class-of-service forwarding-classes queue 1 ef set class-of-service forwarding-classes queue 2 af set class-of-service forwarding-classes queue 3 nc set class-of-service forwarding-classes queue 4 af11 set class-of-service forwarding-classes queue 5 af12 set class-of-service forwarding-classes queue 6 af13 set class-of-service forwarding-classes queue 7 nc2 set class-of-service traffic-control-profiles tcp1 scheduler-map sch0 set class-of-service traffic-control-profiles tcp1 strict-priority-scheduler set class-of-service interfaces et-1/1/12 unit 0 classifiers dscp cls set class-of-service interfaces et-1/1/15 unit 0 classifiers dscp cls set class-of-service interfaces et-7/1/12 output-traffic-control-profile tcp1 set class-of-service scheduler-maps sch0 forwarding-class be scheduler be_sch set class-of-service scheduler-maps sch0 forwarding-class ef scheduler ef_sch set class-of-service scheduler-maps sch0 forwarding-class af scheduler af_sch set class-of-service scheduler-maps sch0 forwarding-class nc scheduler nc_sch set class-of-service scheduler-maps sch0 forwarding-class af11 scheduler af11_sch set class-of-service scheduler-maps sch0 forwarding-class af12 scheduler af12_sch set class-of-service scheduler-maps sch0 forwarding-class af13 scheduler af13_sch set class-of-service scheduler-maps sch0 forwarding-class nc2 scheduler nc2_sch set class-of-service schedulers be_sch transmit-rate percent 60 set class-of-service schedulers be_sch priority high set class-of-service schedulers ef_sch transmit-rate percent 5 set class-of-service schedulers ef_sch priority medium-high set class-of-service schedulers af_sch transmit-rate percent 5 set class-of-service schedulers af_sch priority high set class-of-service schedulers nc_sch transmit-rate percent 5 set class-of-service schedulers nc_sch priority strict-high set class-of-service schedulers af11_sch transmit-rate percent 5 set class-of-service schedulers af11_sch priority high set class-of-service schedulers af12_sch transmit-rate percent 5 set class-of-service schedulers af12_sch priority medium-high set class-of-service schedulers af13_sch transmit-rate percent 5 set class-of-service schedulers af13_sch priority medium-low set class-of-service schedulers nc2_sch priority low
逐步过程
在此示例中,八个调度器配置基于八个 DSCP 分类器配置。虽然严格优先级计划程序会忽略传输速率,但会为每个关联的调度器分配一个优先级和传输速率。计划程序图 sch0 配置了转发类到调度器的映射。在流量控制配置文件 tcp1 中,配置了调度器图和严格优先级调度器功能。PTX 系列路由器上的两个输入接口(et-1/1/12 和 et-1/1/15)均使用 DSCP 分类器进行配置。et-7/1/12 上的输出流量控制配置文件配置了流量控制配置文件 tcp1。
以下示例要求您在配置层次结构中的各个级别上导航。有关如何操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置严格优先级计划:
配置 DSCP 转发类。
[edit class-of-service dscp cls] user@host# set forwarding-class be loss-priority high code-points 000000 user@host# set forwarding-class ef loss-priority medium-high code-points 000001 user@host# set forwarding-class af loss-priority medium-low code-points 000010 user@host# set forwarding-class nc loss-priority low code-points 000011 user@host# set forwarding-class af11 loss-priority low code-points 000100 user@host# set forwarding-class af12 loss-priority low code-points 000101 user@host# set forwarding-class af13 loss-priority low code-points 000110 user@host# set forwarding-class nc2 loss-priority low code-points 000111
配置队列与转发类的映射。
[edit class-of-service forwarding-classes] user@host# set queue 0 be user@host# set queue 1 ef user@host# set queue 2 af user@host# set queue 3 nc user@host# set queue 4 af11 user@host# set queue 5 af12 user@host# set queue 6 af13 user@host# set queue 7 nc2
配置每个调度器的传输速率和优先级。
虽然您可以配置传输速率,但您配置的值会由严格优先级计划程序覆盖。
[edit class-of-service] user@host# set schedulers be_sch transmit-rate percent 60 user@host# set schedulers be_sch priority high user@host# set schedulers ef_sch transmit-rate percent 5 user@host# set schedulers ef_sch priority medium-high user@host# set schedulers af_sch transmit-rate percent 5 user@host# set schedulers af_sch priority high user@host# set schedulers nc_sch transmit-rate percent 5 user@host# set schedulers nc_sch priority strict-high user@host# set schedulers af11_sch transmit-rate percent 5 user@host# set schedulers af11_sch priority high user@host# set schedulers af12_sch transmit-rate percent 5 user@host# set schedulers af12_sch priority medium-high user@host# set schedulers af13_sch transmit-rate percent 5 user@host# set schedulers af13_sch priority medium-low user@host# set schedulers nc2_sch priority low
配置调度器图,其中将转发类映射到调度器。
[edit class-of-service scheduler-maps sch0] user@host# set forwarding-class be scheduler be_sch user@host# set forwarding-class ef scheduler ef_sch user@host# set forwarding-class af scheduler af_sch user@host# set forwarding-class nc scheduler nc_sch user@host# set forwarding-class af11 scheduler af11_sch user@host# set forwarding-class af12 scheduler af12_sch user@host# set forwarding-class af13 scheduler af13_sch user@host# set forwarding-class nc2 scheduler nc2_sch
配置流量控制配置文件以执行严格的优先级调度,并定义要使用计划器映射。
[edit class-of-service traffic-control-profiles tcp1] user@host# set scheduler-map sch0 user@host# set strict-priority-scheduler
将分类器应用于输入接口,将流量控制配置文件应用于输出接口。
[edit class-of-service interfaces] user@host# set et-1/1/12 unit 0 classifiers dscp cls user@host# set et-1/1/15 unit 0 classifiers dscp cls user@host# set et-7/1/12 output-traffic-control-profile tcp1
结果
在配置模式下,输入命令以确认 show class-of-service
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit] user@host# show class-of-service forwarding-classes { queue 0 be; queue 1 ef; queue 2 af; queue 3 nc; queue 4 af11; queue 5 af12; queue 6 af13; queue 7 nc2; } interfaces { et-1/1/12 { unit 0 { classifiers { dscp cls; } } } et-1/1/15 { unit 0 { classifiers { dscp cls; } } } et-7/1/12 { output-traffic-control-profile tcp1; } } scheduler-maps { sch0 { forwarding-class be scheduler be_sch; forwarding-class ef scheduler ef_sch; forwarding-class af scheduler af_sch; forwarding-class nc scheduler nc_sch; forwarding-class af11 scheduler af11_sch; forwarding-class af12 scheduler af12_sch; forwarding-class af13 scheduler af13_sch; forwarding-class nc2 scheduler nc2_sch; } } schedulers { be_sch { transmit-rate percent 60; priority high; } ef_sch { transmit-rate percent 5; priority medium-high; } af_sch { transmit-rate percent 5; priority high; } nc_sch { transmit-rate percent 5; priority strict-high; } af11_sch { transmit-rate percent 5; priority high; } af12_sch { transmit-rate percent 5; priority medium-high; } af13_sch { transmit-rate percent 5; priority medium-low; } nc2_sch { priority low; } } traffic-control-profiles { tcp1 { scheduler-map sch0; strict-priority-scheduler; } }
验证
验证严格优先级计划
目的
验证严格优先级计划配置是否产生了您期望的结果。
行动
在操作模式下,输入 show interfaces queue interface-name interface-name
命令并选择要验证的输出物理接口。
user@host> show interfaces queue interface-name et-7/1/12 Physical interface: et-7/1/12, Enabled, Physical link is Up Interface index: 231, SNMP ifIndex: 612 Forwarding classes: 16 supported, 8 in use Egress queues: 8 supported, 8 in use Queue: 0, Forwarding classes: be Queued: Packets : 394488 131507 pps Bytes : 591732000 1578084848 bps Transmitted: Packets : 394488 131507 pps Bytes : 591732000 1578084848 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 0 0 pps RED-dropped bytes : 0 0 bps Queue: 1, Forwarding classes: ef Queued: Packets : 234498 82115 pps Bytes : 352963584 988886784 bps Transmitted: Packets : 82425 27551 pps Bytes : 123637500 330618176 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 152073 54564 pps RED-dropped bytes : 229326084 658268608 bps Queue: 2, Forwarding classes: af Queued: Packets : 345175 115068 pps Bytes : 517762500 1380824240 bps Transmitted: Packets : 345175 115068 pps Bytes : 517762500 1380824240 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 0 0 pps RED-dropped bytes : 0 0 bps Queue: 3, Forwarding classes: nc Queued: Packets : 986224 328769 pps Bytes : 1479336000 3945236360 bps Transmitted: Packets : 986224 328769 pps Bytes : 1479336000 3945236360 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 0 0 pps RED-dropped bytes : 0 0 bps Queue: 4, Forwarding classes: af11 Queued: Packets : 493110 164383 pps Bytes : 739665000 1972606056 bps Transmitted: Packets : 493110 164383 pps Bytes : 739665000 1972606056 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 0 0 pps RED-dropped bytes : 0 0 bps Queue: 5, Forwarding classes: af12 Queued: Packets : 461830 164375 pps Bytes : 695777416 1981272728 bps Transmitted: Packets : 82778 27543 pps Bytes : 124167000 330521208 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 379052 136832 pps RED-dropped bytes : 571610416 1650751520 bps Queue: 6, Forwarding classes: af13 Queued: Packets : 462258 164556 pps Bytes : 696421280 1983445256 bps Transmitted: Packets : 82973 27637 pps Bytes : 124459500 331648480 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 379285 136919 pps RED-dropped bytes : 571961780 1651796776 bps Queue: 7, Forwarding classes: nc2 Queued: Packets : 227750 82215 pps Bytes : 343447000 991843712 bps Transmitted: Packets : 0 0 pps Bytes : 0 0 bps Tail-dropped packets : 0 0 pps RL-dropped packets : 0 0 pps RL-dropped bytes : 0 0 bps RED-dropped packets : 227750 82215 pps RED-dropped bytes : 343447000 991843712 bps
意义
命令 show
输出按队列和转发类名称列出流量。每个队列的传输字段下的字节字段会显示实际传输的字节数。
从示例输出中可以看到,严格高队列获得最高的优先级,并且传输不会丢失。然后传输高优先级队列。以轮循的方式处理中高和中低优先级队列。低优先级队列不足。
请记住,适用于严格优先级调度的以下条件:
如果输出接口上的流量订阅不足,则任何队列都不应显示已丢弃的流量。
首先处理严格高队列,然后处理高优先级队列(轮询),最后处理保证区域内所有剩余队列(轮询)。
如果入口流量超过输出接口的容量,将按严格优先级顺序处理队列。
将基于 WRR 算法处理剩余区域内的队列。