示例:配置 ECN
此示例说明如何在输出队列上启用显式拥塞通知 (ECN)。
要求
此示例使用以下硬件和软件组件:
一台交换机。
QFX 系列或 OCX 系列的 Junos OS 13.2X51-D25 或更高版本或 Junos OS 14.1X53-D20 版
概述
ECN 可在基于 TCP/IP 的网络上的两个端点之间实现端到端拥塞通知。这两个端点是支持 ECN 的发送方和支持 ECN 的接收方。必须在两个端点之间的两个端点上以及两个端点之间的所有中间设备上启用 ECN,才能使 ECN 正常工作。传输路径中不支持 ECN 的任何设备都中断端到端 ECN 功能
必须将加权随机早期检测 (WRED) 数据包丢弃配置文件应用于启用了 ECN 的输出队列。当输出队列遇到拥塞时,ECN 使用 WRED 丢弃配置文件阈值来标记数据包。
ECN 通过在网络拥塞期间转发支持 ECN 的数据包,而不是丢弃这些数据包,减少了数据包丢失。(TCP 通过丢弃数据包通知网络拥塞。)在拥塞期间,ECN 会标记从拥塞的队列中出口的支持 ECN 的数据包。当接收方收到被标记为出现拥塞的 ECN 数据包时,接收器将拥塞状态回显给发送方。然后,发件人降低其传输速率以清除拥塞。
默认情况下,ECN 处于禁用状态。您可以针对尽力流量启用 ECN。不应在使用基于优先级的流控制 (PFC) 来通知拥塞的无损流量队列上启用 ECN,并且不应在严格高优先级流量队列上启用 ECN。
要对输出队列启用 ECN,您不仅需要在队列调度器中启用 ECN,还需要:
配置 WRED 数据包丢弃配置文件。
配置包括 WRED 丢弃配置文件并启用 ECN 的队列调度器。(此示例仅显示 ECN 和丢弃配置文件配置;您还可以在调度器中配置带宽、优先级和缓冲区设置。)
将队列调度器映射到调度器图中的转发类(输出队列)。
从 Junos OS 15.1 开始,支持增强型传输选择 (ETS) 层次调度。如果使用增强型传输选择 (ETS) 分层调度,请将转发类添加到转发类集(优先级组)。
如果使用 ETS,请将队列调度器图与流量控制配置文件(用于分层调度的优先级组调度器)相关联。
如果使用 ETS,请向接口应用流量控制配置文件和转发类。在接口上,输出队列会使用映射到转发类的调度器,如连接到流量控制配置文件的调度器映射所指定。这会在队列上启用 ECN,并将 WRED 丢弃配置文件应用于队列。
如果使用端口调度,请向接口应用调度器图。在此接口上,输出队列使用映射到调度器图中转发类的调度器,从而在队列上启用 ECN,并将 WRED 丢弃配置文件应用于队列。
表 1 显示了此示例的配置组件。
组件 |
设置 |
---|---|
硬件 |
QFX 系列交换机 |
丢弃配置文件(包含两个填充级别/丢弃概率对) |
名称: |
调度 |
名称: |
时间表图 |
名称:
注意:
默认情况下, |
转发类集(仅限 ETS) |
名称: |
流量控制配置文件(仅限 ETS) |
名称: |
接口(仅限 ETS) |
名称: |
接口(仅限端口调度) |
名字: |
只有支持 ETS 层次调度的交换机才支持转发类集和流量控制配置文件配置。直接端口调度不使用分层计划结构。
在 QFX5100、EX4600、QFX3500 和 QFX3600 交换机上,以及 QFabric 系统上,WRED 丢弃配置文件还控制不支持 ECN 的流量(标记为非 ECT 的数据包,ECN 位代码 00)的数据包丢弃行为。
在 QFX10000 交换机上,当对队列启用 ECN 时,WRED 丢弃配置文件仅设置 ECN 阈值,它不会控制非 ECN 数据包的数据包丢弃。在支持 ECN 的队列上,QFX10000 交换机在拥塞期间对非 ECN 数据包使用尾部丢弃算法。如果未启用 ECN,则队列将使用 WRED 数据包丢弃机制。
配置
CLI 快速配置
要快速配置丢弃配置文件和启用 ECN 的调度器,并将调度程序映射到接口上的输出队列,请复制以下命令,将其粘贴到文本文件中,删除换行符,更改变量和详细信息以匹配您的网络配置,然后将命令复制并粘贴到层级的 [edit]
CLI 中。
ETS 快速配置
[edit class-of-service] set drop-profile be-dp interpolate fill-level 30 fill-level 75 drop-probability 0 drop-probability 80 set schedulers be-sched explicit-congestion-notification set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp set schedulers be-sched transmit-rate percent 25 set schedulers be-sched buffer-size percent 25 set schedulers be-sched priority low set scheduler-maps be-map forwarding-class best-effort scheduler be-sched set forwarding-class-sets be-pg class best-effort set traffic-control-profiles be-tcp scheduler-map be-map set interfaces xe-0/0/20 forwarding-class-set be-pg output-traffic-control-profile be-tcp
端口调度快速配置(QFX10000 交换机)
[edit class-of-service] set drop-profile be-dp interpolate fill-level 30 fill-level 75 drop-probability 0 drop-probability 80 set schedulers be-sched explicit-congestion-notification set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp set schedulers be-sched transmit-rate percent 25 set schedulers be-sched buffer-size percent 25 set schedulers be-sched priority low set scheduler-maps be-map forwarding-class best-effort scheduler be-sched set interfaces xe-0/0/20 scheduler-map be-map
配置 ECN
逐步过程
要配置 ECN:
配置 WRED 数据包丢弃配置文件
be-dp
。此示例使用百分比的30
丢弃起点、下降端点百75
分比、最小下降率百0
分比和最大丢弃率80
百分比:[edit class-of-service] user@switch# set drop-profile be-dp interpolate fill-level 30 fill-level 75 drop-probability 0 drop-probability 80
创建启用了 ECN 的调度器
be-sched
,并将丢弃配置文件be-dp
与计划程序相关联:[edit class-of-service] user@switch# set schedulers be-sched explicit-congestion-notification user@switch# set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile be-dp user@switch# set be-sched transmit-rate percent 25 user be-sched transmit-rate percent 25 user@switch# set be-sched buffer-size percent 25 user@switch# set be-sched buffer-size percent 25 user@switch# set be-sched priority low
使用调度器图将
best-effort
调度器be-sched
be-map
映射到转发类(输出队列 0):[edit class-of-service] user@switch# set scheduler-maps be-map forwarding-class best-effort scheduler be-sched
如果使用 ETS,请将转发类
best-effort
添加到转发类集中be-pg
;如果使用直接端口调度,请跳过这一步:[edit class-of-service] user@switch# set forwarding-class-sets be-pg class best-effort
如果使用 ETS,请将调度器图
be-map
与流量控制配置文件be-tcp
相关联;如果使用直接端口调度,请跳过这一步:[edit class-of-service] user@switch# set traffic-control-profiles be-tcp scheduler-map be-map
如果您使用 ETS,请将流量控制配置文件
be-tcp
和转发类集be-pg
与想在尽力队列上启用 ECN 的接口相关联:[edit class-of-service] user@switch# set interfaces xe-0/0/20 forwarding-class-set be-pg output-traffic-control-profile be-tcp
如果使用直接端口调度,请将调度器图
be-map
与想在尽力队列上启用 ECN 的接口相关联:[edit class-of-service] user@switch# set interfaces xe-0/0/20 scheduler-map be-map
验证
验证 ECN 是否已启用
目的
通过显示调度器 be-sched
图 be-map
的配置,验证在调度器中启用了 ECN。
行动
使用操作模式命令 show class-of-service scheduler-map be-map
显示调度器图配置:
user@switch> show class-of-service scheduler-map be-map
Scheduler map: be-map, Index: 12240
Scheduler:be-sched, Forwarding class: best-effort, Index: 115
Transmit rate: 25 percent, Rate Limit: none, Buffer size: 25 percent,
Buffer Limit: none, Priority: low
Excess Priority: unspecified, Explicit Congestion Notification: enable
Drop profiles:
Loss priority Protocol Index Name
Low any 3312 be-dp
Medium-high any 1 <default-drop-profile>
High any 1 <default-drop-profile>
意义
show class-of-service scheduler-map
操作命令显示与调度器图关联的调度器配置以及映射到该调度器的转发类。输出显示:
与调度器图关联的调度器是
be-sched
。调度器图适用于转发类
best-effort
(输出队列 0)。调度器的
be-sched
传输速率为25
百分比,队列缓冲区大小25
为百分比,丢弃优先级low
为。显式拥塞通知状态为
enable
。用于低丢弃优先级流量的 WRED 丢弃配置文件是
be-dp
。