示例:配置静态和动态 ECN
此示例说明如何在输出队列上启用显式拥塞通知 (ECN)。
要求
概述
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。静态 ECN 要求您手动设置触发通知事件的阈值级别。动态 ECN 会根据队列长度和流量模式等实时条件自动调整阈值。
要在输出队列上启用 ECN,您不仅需要在队列调度器中启用 ECN,还需要:
-
配置 WRED 数据包丢弃配置文件。
-
配置包含 WRED 丢弃配置文件并启用 ECN 的队列调度器。(此示例仅显示 ECN 和丢包配置文件配置;您还可以在调度器中配置带宽、优先级和缓冲区设置。)
-
将队列调度器映射到调度器图中的转发类(输出队列)。
-
如果您使用的是增强型传输选择 (ETS) 分层调度,请将转发类添加到转发类集(优先级组)。
-
如果您使用的是 ETS,请将队列调度器映射与流量控制配置文件(用于分层调度的优先级组调度器)相关联。
-
如果您使用的是 ETS,请将流量控制配置文件和转发类集应用于接口。在该接口上,输出队列使用映射到转发类的调度器,如附加到流量控制配置文件的调度器图所指定。这将在队列上启用 ECN,并将 WRED 丢弃配置文件应用于队列。
如果使用的是端口调度,请将调度器图应用于接口。在该接口上,输出队列使用映射到调度器映射中转发类的调度器,从而在队列上启用 ECN,并将 WRED 丢弃配置文件应用于队列。
表 1 显示了此示例的配置组件。
| 组件 |
设置 |
|---|---|
| 跌落曲线(具有两个填充液位/跌落概率对) |
名称: |
| 调度程序 |
名称: |
| 调度器图 |
名称:
注意:
默认情况下, |
| 转发类集(仅限 ETS) |
名称: |
| 流量控制配置文件(仅限 ETS) |
名称: |
| 接口(仅限 ETS) |
名称: |
| 接口(仅限端口调度) |
名称: |
只有支持 ETS 分层调度的设备才支持转发类集和流量控制配置文件配置。直接端口调度不使用分层调度结构。
配置
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
端口调度快速配置
[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
使用调度器映射
be-map将调度器be-sched映射到best-effort转发类(输出队列 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
分步程序
要配置动态 ECN:
请按照步骤配置静态 ECN。
启用动态 ECN 配置文件:
[edit class-of-service] user@switch# set decn-profile profile-name queue queue number floor floor value offset offset value
下限和偏移值的范围从 0 到 524287。
无需配置下限和偏移值。如果未选择任何值,则默认情况下将选择524287的最大值。
将动态 ECN 配置文件分配给接口:
[edit class-of-service] user@switch# set interfaces interface decn-profile profile-name
验证
验证是否已启用 ECN
目的
通过显示调度器图be-map的配置,验证调度器be-sched中是否已启用 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
ECN Type: static/dynamic Offset offset-value Floor floor-value
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。