示例:减少分层 CoS 队列中的抖动
此示例说明如何减少分层队列 MPC 上托管的 VLAN 端口的输出队列中的抖动。
要求
此示例使用以下瞻博网络硬件和 Junos OS 软件:
IPv4 网络中运行的 Junos OS 13.2 或更高版本的 MX960 路由器。
FPC 插槽 2、PIC 插槽 0、端口 0 上托管的可用千兆以太网端口。
FPC 插槽 5 中的 MPC2 Q 模块化端口集中器 (MPC) 的 PIC 插槽 0 中的千兆以太网端口 0 上,托管在千兆以太网模块化接口卡 (MIC) 的端口 0 上。
开始配置此示例之前,请确保尚未配置插槽 5 中分层队列 MPC 允许的最大队列数。从配置模式进入 show chassis fpc 5 命令时,不应显示语句 max-queues 。
概述
在此示例中,您在分层队列 MPC 上托管的 VLAN 端口上配置层次调度。要减少 MPC 上托管的所有出口端口队列中的抖动,请减少 MPC 允许的最大队列数。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层级的 [edit] CLI 中。
set interfaces xe-2/0/0 per-unit-scheduler set interfaces xe-2/0/0 flexible-vlan-tagging set interfaces xe-2/0/0 unit 0 vlan-id 1 set interfaces xe-2/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces xe-2/0/0 unit * classifiers ieee-802.1 ieee_jitter set interfaces xe-5/0/0 per-unit-scheduler set interfaces xe-5/0/0 flexible-vlan-tagging set interfaces xe-5/0/0 unit 0 vlan-id 1 set interfaces xe-5/0/0 unit 0 family inet address 10.2.1.1/24 set class-of-service-interfaces xe-5/0/0 unit * output-traffic-control-profile tcp 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 schedulers be_sch priority low set class-of-service schedulers ef_sch priority low set class-of-service schedulers af_sch priority strict-high set class-of-service schedulers nc_sch priority low set class-of-service classifiers ieee_jitter forwarding-class be loss-priority low code-points 000 set class-of-service classifiers ieee_jitter forwarding-class ef loss-priority low code-points 001 set class-of-service classifiers ieee_jitter forwarding-class af loss-priority low code-points 010 set class-of-service classifiers ieee_jitter forwarding-class nc loss-priority low code-points 011 set class-of-service scheduler-maps smap_jitter forwarding-class be scheduler be_sch set class-of-service scheduler-maps smap_jitter forwarding-class ef scheduler ef_sch set class-of-service scheduler-maps smap_jitter forwarding-class af scheduler af_sch set class-of-service scheduler-maps smap_jitter forwarding-class nc scheduler nc_sch set class-of-service traffic-control-profiles tcp scheduler-map smap_jitter set class-of-service traffic-control-profiles tcp shaping-rate 6g
基准配置
逐步过程
在 xe-5.0.0中配置分层调度。
要配置和处的 VLAN 1 输入和输出
xe-2/0/0.0xe-5/0/0.0:[edit] user@host# set interfaces xe-2/0/0 per-unit-scheduler user@host# set interfaces xe-2/0/0 flexible-vlan-tagging user@host# set interfaces xe-2/0/0 unit 0 vlan-id 1 user@host# set interfaces xe-2/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces xe-5/0/0 per-unit-scheduler user@host# set interfaces xe-5/0/0 flexible-vlan-tagging user@host# set interfaces xe-5/0/0 unit 0 vlan-id 1 user@host# set interfaces xe-5/0/0 unit 0 family inet address 10.2.1.1/24
将四个队列中的每一个映射到一个转发类。
[edit] user@host# set class-of-service forwarding-classes queue 0 be user@host# set class-of-service forwarding-classes queue 1 ef user@host# set class-of-service forwarding-classes queue 2 af user@host# set class-of-service forwarding-classes queue 3 nc
为每个转发类分配一个数据包调度优先级值。
[edit] user@host# set class-of-service schedulers be_sch priority low user@host# set class-of-service schedulers ef_sch priority low user@host# set class-of-service schedulers af_sch priority strict-high user@host# set class-of-service schedulers ef_sch priority low
通过为 iEEE 802.1p 代码点定义不同的值,自定义默认 IEEE 802.1p 分类器(基于第 2 层标头的 BA 分类器)。
[edit] user@host# set class-of-service classifiers ieee_jitter forwarding-class be loss-priority low code-points 000 user@host# set class-of-service classifiers ieee_jitter forwarding-class ef loss-priority low code-points 001 user@host# set class-of-service classifiers ieee_jitter forwarding-class af loss-priority low code-points 010 user@host# set class-of-service classifiers ieee_jitter forwarding-class nc loss-priority low code-points 011
将 BA 分类器应用于上
xe-2/0/0逻辑单元的输入。[edit] user@host# set interfaces xe-2/0/0 unit * classifiers ieee-802.1 ieee_jitter
配置调度器图
smap_jitter,将转发类映射到调度器。[edit] user@host# set class-of-service scheduler-maps smap_jitter forwarding-class be scheduler be_sch user@host# set class-of-service scheduler-maps smap_jitter forwarding-class ef scheduler ef_sch user@host# set class-of-service scheduler-maps smap_jitter forwarding-class af scheduler af_sch user@host# set class-of-service scheduler-maps smap_jitter forwarding-class nc scheduler nc_sch
配置流量控制配置文件
tcp以将计划器图smap_jitter(用于将转发类映射到基于端口的计划程序)与整形速率(用于分层计划)相结合。[edit] user@host# set class-of-service traffic-control-profiles tcp scheduler-map smap_jitter user@host# set class-of-service traffic-control-profiles tcp shaping-rate 6g
将流量控制配置文件应用于位于
xe-5/0/0的路由器输出。[edit] user@host# set class-of-service-interfaces xe-5/0/0 unit * output-traffic-control-profile tcp
完成设备配置后,提交配置。
[edit] user@host# commit
结果
在配置模式下输入 show interfaces 命令并 show cloass-of-service 确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。
[edit]
user@host# show interfaces
xe-2/0/0 {
per-unit-scheduler;
flexible-vlan-tagging;
unit 0 {
vlan-id 1;
family inet {
address 10.1.1.1/24;
}
}
}
xe-5/0/0 {
per-unit-scheduler;
flexible-vlan-tagging;
unit 0 {
vlan-id 1;
family inet {
address 10.2.1.1/24;
}
}
}
[edit]
user@host# show class-of-service
classifiers {
ieee-802.1 ieee_jitter {
forwarding-class be {
loss-priority low code-points 000;
}
forwarding-class ef {
loss-priority low code-points 001;
}
forwarding-class af {
loss-priority low code-points 010;
}
forwarding-class nc {
loss-priority low code-points 011;
}
}
}
forwarding-classes {
queue 0 be;
queue 1 ef;
queue 2 af;
queue 3 nc;
}
traffic-control-profiles {
tcp {
scheduler-map smap_jitter;
shaping-rate 6g;
}
}
interfaces {
xe-2/0/0 {
unit * {
classifiers {
ieee-802.1 ieee_jitter;
}
}
}
xe-5/0/0 {
unit * {
output-traffic-control-profile tcp;
}
}
}
scheduler-maps {
smap_jitter {
forwarding-class be scheduler be_sch;
forwarding-class ef scheduler ef_sch;
forwarding-class af scheduler af_sch;
forwarding-class nc scheduler nc_sch;
}
}
schedulers {
be_sch {
priority low;
}
ef_sch {
priority low;
}
af_sch {
priority strict-high;
}
nc_sch {
priority low;
}
}
验证
确认配置工作正常
测量端到端抖动以建立基准
目的
当托管出口端口的层次化队列线卡配置为默认最大队列数时,通过指出发生的抖动量来建立基准测量。
行动
测量抖动:
通过 VLAN 传输流量。
测量数据流中选定数据包的数据包延迟变化。
配置抖动减少
目的
减少 VLAN 端口输出队列中的抖动。
行动
为插槽 5 中的分层队列 MPC 上的出口端口配置减少的最大队列数,从而减少端口队列中的抖动。
[edit] user@host# set chassis fpc 5 max-queue 64k
完成设备配置后,提交配置。
[edit] user@host# commit