示例:配置 ECN
此示例展示如何在输出队列上启用显式拥塞通知 (ECN)。
要求
此示例具有以下硬件和软件组件:
一台交换机。
Junos OS OCX 13.2X51-D25或 QFX 系列 或 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。不应在无损流量队列上启用 ECN,该队列对拥塞通知使用基于优先级的流量控制 (PFC),并且不应在严格高优先级流量队列上启用 ECN。
要启用输出队列上的 ECN,您不仅需要在队列时间表中启用 ECN,还需要:
配置 WRED 数据包丢弃配置文件。
配置一个队列时间表,其中包含 WRED 丢弃配置文件并启用 ECN。(此示例仅显示 ECN 和丢弃配置文件配置;您还可以在时间表中配置带宽、优先级和缓冲区设置。)
将队列时间表映射到时间表图中的转发类(输出队列)。
从 15.1 Junos OS开始,支持增强传输选择 (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 的时间表并映射至接口上的输出队列,请复制以下命令,粘贴在文本文件中,删除换行符,更改变量和详细信息,以匹配网络配置,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
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
创建启用了
be-sched
ECN 的时间表,并将丢弃配置文件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-sched
best-effort
将调度器映射到转发类(输出队列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
。