示例:配置队列调度程序以进行端口调度
调度程序定义输出队列的 CoS 属性。在调度程序中配置 CoS 属性,然后将调度程序映射到转发类。转发类依次映射到输出队列。分类器根据 IEEE 802.1p、DSCP 或 EXP 代码点将传入流量映射到转发类中。CoS 调度属性包括分配给队列的接口带宽量、队列的优先级、队列上是否启用了显式拥塞通知 (ECN) 以及与队列关联的 WRED 数据包丢弃配置文件。
配置 CoS 调度器
CLI 快速配置
要快速配置队列调度器,请复制以下命令,将其粘贴到文本文件中,移除换行符,更改变量和详细信息以匹配您的网络配置,然后将命令复制粘贴到 [edit] 层次结构级别的 CLI 中:
[edit class-of-service] set schedulers be-sched transmit-rate percent 20 set schedulers be-sched buffer-size percent 20 set schedulers be-sched excess-rate percent 20 set schedulers be-sched priority low set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp set scheduler-maps be-map forwarding-class best-effort scheduler be-sched set interfaces xe-0/0/7 scheduler-map be-map
分步程序
要配置 CoS 调度器,请执行以下操作:
创建调度器(
be-sched)并将其映射到丢弃配置文件be-dp:[edit class-of-service schedulers] user@switch# set be-sched transmit-rate percent 20 user@switch# set be-sched buffer-size percent 20 user@switch# set be-sched excess-rate percent 20 user@switch# set be-sched priority low user@switch# set be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp
注意:由于默认情况下禁用 ECN,因此不会显示任何 ECN 配置。
配置调度器映射 (
be-map),以便将调度器 (be-sched) 与转发类 (best-effort) 相关联:[edit class-of-service scheduler-maps] user@switch# set be-map forwarding-class best-effort scheduler be-sched
将调度器图与接口相关联,以便将调度应用于尽力而为转发类输出队列:
[edit class-of-service] set interfaces xe-0/0/7 scheduler-map be-map
要求
此示例使用以下硬件和软件组件:
一台 QFX10000 交换机
任何受支持的 Junos 版本
概述
调度器参数为映射到调度器的队列定义以下特征:
在调度程序中配置的参数可为映射到调度程序的队列定义以下特征:
-
priority— 与调度程序关联的队列可以接收的三个带宽优先级之一:-
low- 调度程序的优先级较低。 -
high— 调度程序的优先级较高。高优先级流量优先于低优先级流量。 -
strict-high— 调度程序具有严格高优先级。严格高优先级队列比低优先级队列更优先,并在低优先级队列提供服务之前接收其所有配置的带宽。在严格高优先级队列为空之前,低优先级队列不会传输流量。注意:强烈建议在所有严格高优先级队列上配置传输速率,以限制交换机将其视为严格高优先级流量的流量,并防止严格高优先级队列耗尽端口上的其他队列。如果在端口上配置多个严格高优先级队列,这一点尤为重要。如果未配置传输速率来限制严格高优先级队列可以使用的带宽量,则严格高优先级队列可能会使用所有可用的端口带宽,并使端口上的其他队列耗尽。
交换机将超过传输速率的流量视为从剩余(多余)端口带宽池接收带宽的尽力而为流量。在严格高优先级队列中,超过传输速率的所有流量都会根据严格高优先级超额带宽共享权重“1”(不可配置)在端口超额带宽池中共享。超过传输速率的流量实际接收的额外带宽量取决于有多少其他队列消耗了多余带宽以及这些队列的超额速率。
-
transmit-rate— 最小保证带宽,也称为 承诺信息速率 (CIR),设置为百分比速率或以位/秒为单位的绝对值。默认情况下,如果未显式配置超额速率,传输速率还会决定队列可以共享的超额(额外)端口带宽量。额外的带宽将按照每个队列的传输速率比例在端口上的队列之间分配。在不是严格高优先级队列的队列上,您可以将传输速率配置为exact,通过将传输速率设置为队列可以在端口上使用的最大带宽来调整传输。在严格高优先级队列上,传输速率设置用于严格高优先级转发的带宽量;超过传输速率的流量将被视为接收队列超额速率的尽力而为流量。
注意:在带宽计算中包括前导码字节和帧间间隙 (IFG) 字节以及数据字节。
excess-rate—低优先级队列可以接收的额外带宽(其他队列未使用的带宽)的百分比。如果未设置,交换机将使用传输速率来确定额外的带宽共享。您不能在严格高优先级队列上设置超额速率。drop-profile-map— 丢弃配置文件映射到数据包丢失优先级,以将 WRED 应用于调度程序,并在拥塞期间控制不同丢包优先级的数据包丢弃。buffer-size— 队列缓冲区的大小占端口上专用缓冲区空间的百分比,或表示在为显式配置的队列提供服务后剩余的端口上专用缓冲区空间的比例份额。explicit-congestion-notification— 在尽力服务队列上启用 ECN。ECN 支持在基于 TCP/IP 的网络上的两个启用 ECN 的端点之间发出端到端拥塞通知。必须在两个端点以及端点之间的所有中间设备上启用 ECN,ECN 才能正常工作。默认情况下,ECN 处于禁用状态。
不要为 FCoE 和无损转发类配置丢弃配置文件。FCoE 和其他无损流量队列需要无损行为。使用基于优先级的流控制 (PFC) 来防止无损优先级上的帧丢弃。
调度器映射将调度器映射到转发类,转发类映射到输出队列。配置调度器并将其映射到调度器图中的转发类后,需要将调度器图连接到接口,以便在该接口上的输出队列上实施配置的调度。
此过程将配置带宽属性、调度、优先级和 WRED 特征,以便映射到调度器图中的转发类(从而映射到输出队列)。
表 1 显示了此示例的配置组件。
组件 |
设置 |
|---|---|
硬件 |
一台交换机 |
调度程序 |
名称: |
调度器图 |
名称: |
验证
要验证队列调度程序是否已创建以及是否已映射到正确的接口,请执行以下任务:
验证调度器配置
目的
验证队列调度程序 be-sched 是否已创建,最小保证带宽 (transmit-rate) 为 2 Gbps,额外带宽共享速率 (excess-rate) 为 20%,优先级设置为 low,丢弃配置文件 be-dp。
行动
使用操作模式命令 show configuration class-of-service schedulers be-sched显示调度器:
user@switch> show configuration class-of-service schedulers be-sched transmit-rate percent 20; buffer-size percent 20; excess-rate percent 20; priority low; drop-profile-map loss-priority low protocol any drop-profile be-dp;
验证调度器图配置
目的
验证是否已创建调度器映射 be-map ,并将转发类 best-effort 与调度器 be-sched相关联。
行动
使用操作模式命令 show configuration class-of-service scheduler-maps be-map显示调度器图:
user@switch> show configuration class-of-service scheduler-maps be-map forwarding-class best-effort scheduler be-sched;