在链路服务接口上配置服务等级
在瞻博网络设备上启用 LFI 时,分配给队列 2 或成员链路的所有转发流量均被视为 LFI(语音)流量。以下主题讨论分类器和转发类概述、调度图的定义和应用,以及 SRX 系列防火墙上接口整形速率的概述和配置详细信息。
了解如何定义分类器和转发类
通过定义分类器,可将传入数据包与转发类和丢失优先级相关联。您可以根据关联的转发类,将数据包分配给输出队列。要配置分类器,请为不同类型的流量指定位模式。分类器采用此位模式,并尝试将其与到达接口的数据包类型进行匹配。如果数据包标头中的信息与指定的模式匹配,则将数据包发送到相应的队列,该队列由与分类器关联的转发类定义。
在瞻博网络设备上启用 LFI 时,分配给队列 2 或成员链路的所有转发流量均被视为 LFI(语音)流量。无需将网络控制流量显式分配给队列,因为默认情况下会将其分配给队列 3。
在会员链接上:
DATA
分配给队列 0。VOICE
被分配到队列 2。NC
(网络控制)分配给队列 3。默认情况下,NC 被分配给队列 3。
示例:定义分类器和转发类
此示例说明如何为不同类型的流量(如语音、数据和网络控制数据包)定义分类器,以及如何将流量定向到不同的输出队列以管理吞吐量。
要求
开始之前:
为两台瞻博网络设备配置至少两个可通过串行链路进行通信的串行接口。
配置 CoS 组件。请参阅 安全设备 Junos OS 服务等级配置指南。
概述
在此示例中,您将配置服务等级,并将默认 IP 优先级分类器设置为 classify_input,该分类器将分配给所有传入流量。然后,将“服务类型”字段中的优先位值设置为所有传入数据流量的 000,将所有传入语音流量的优先级位值设置为 010。将所有传出数据流量设置为队列 0,将所有语音流量设置为队列 2,并将队列 2 映射为无分段。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中。
set class-of-service classifiers inet-precedence classify_input forwarding-class DATA loss-priority low code-points 000 set class-of-service classifiers inet-precedence classify_input forwarding-class VOICE loss-priority low code-points 010 set class-of-service forwarding-classes queue 0 DATA set class-of-service forwarding-classes queue 2 VOICE set class-of-service forwarding-classes queue 3 NC set class-of-service interfaces ge-0/0/1 unit 0 classifiers inet-precedence classify_input set class-of-service fragmentation-maps FM forwarding-class VOICE no-fragmentation set class-of-service interfaces lsq-0/0/0 unit 0 fragmentation-map FM
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要定义分类器和转发类,请执行以下作:
配置服务等级。
[edit] user@host# edit class-of-service
配置行为聚合分类器,以便对数据包进行分类。
[edit class-of-service] user@host# edit classifiers inet-precedence classify_input
将具有 IP 优先级的数据包分配给数据转发类并指定丢失优先级。
[edit class-of-service classifiers inet-precedence classify_input] user@host# set forwarding-class DATA loss-priority low code-points 000
将具有 IP 优先级的数据包分配给语音转发类并指定丢弃优先级。
[edit class-of-service classifiers inet-precedence classify_input] user@host# set forwarding-class VOICE loss-priority low code-points 010
使用输出队列一对一地指定转发类。
[edit class-of-service] user@host# edit forwarding-classes user@host# set queue 0 DATA user@host# set queue 2 VOICE user@host# set queue 3 NC
创建接口并应用行为聚合分类器。
[edit class-of-service] user@host# edit interfaces ge-0/0/1 user@host# set unit 0 classifiers inet-precedence classify_input
配置分段映射。
[edit] user@host# edit class-of-service user@host# set fragmentation-maps FM forwarding-class VOICE no-fragmentation
将分段映射附加到接口。
[edit class-of-service] user@host# set interfaces lsq-0/0/0 unit 0 fragmentation-map FM
结果
在配置模式下,输入 show class-of-service
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit]
user@host# show class-of-service
classifiers {
inet-precedence classify_input {
forwarding-class DATA {
loss-priority low code-points 000;
}
forwarding-class VOICE {
loss-priority low code-points 010;
}
}
}
forwarding-classes {
queue 0 DATA;
queue 2 VOICE;
queue 3 NC;
}
interfaces {
lsq-0/0/0 {
unit 0 {
fragmentation-map FM;
}
}
ge-0/0/1 {
unit 0 {
classifiers {
inet-precedence classify_input;
}
}
}
}
fragmentation-maps {
FM {
forwarding-class {
VOICE {
no-fragmentation;
}
}
}
}
如果完成设备配置,请从配置模式进入 提交 。
了解如何定义和应用调度器图
瞻博网络设备支持按单元调度 set class-of-service schedulers S0 priority low
,允许您在每个 MLPPP 或 MLFR 多链路捆绑包上配置调度器图。您还可以在构件链路上配置调度器图,但必须在构件链路和多链路束上保持相同的相对优先级。
如果您在瞻博网络设备上使用 LFI 配置 CoS 组件,我们建议您遵循有关整形速率、调度优先级和缓冲区大小的某些建议。
配置 LFI 时,建议在多链路捆绑包的每个组成链路上配置整形速率。需要对组成链路进行整形速率配置,以限制 LFI 队列上的 抖动 。如果您预计 LFI 队列上没有延迟敏感型或抖动敏感型流量,或者根本没有 LFI 流量,则整形速率配置是可选的。
表 1 显示了多链路捆绑包及其组成链路上正确和不正确的相对优先级示例。在此示例中,您为 LFI 数据包分配了高优先级,为多链路捆绑包上的数据包分配了低优先级。要保持组成链路的相对优先级,可以为 LFI 数据包分配高优先级,为数据包分配中高优先级,但不能为 LFI 数据包分配中高优先级,而为数据包分配高优先级。
多链路束 |
正确的构件链路优先级 |
构件链路优先级不正确 |
---|---|---|
LFI 数据包 — 高优先级 |
LFI 数据包 — 高优先级 |
LFI 数据包 — 中高优先级 |
数据包 - 低优先级 |
数据包 - 中高优先级 |
数据包 - 高优先级 |
通过定义调度器,您可以配置输出队列的属性,这些属性用于确定每个队列的传输服务级别。这些属性包括分配给队列的接口带宽量、为存储数据包而分配的内存缓冲区的大小以及队列的优先级。定义调度器之后,可以通过调度器图将它们与转发类相关联。然后,将每个调度器映射与一个接口相关联,从而配置根据此映射运行的硬件队列和数据包调度器。
当存在数据和 LFI 流时,建议对组成链路使用以下调度器图配置。这样可以降低 LFI 流量的延迟,并避免数据流量的乱序传输。
配置以下调度程序:
set class-of-service schedulers S0 buffer-size temporal 20k
set class-of-service schedulers S0 priority low
set class-of-service schedulers S2 priority high
set class-of-service schedulers S3 priority high
配置以下调度器图:
set class-of-service scheduler-maps lsqlink_map forwarding-class best-effort scheduler S0
set class-of-service scheduler-maps lsqlink_map forwarding-class assured-forwarding scheduler S2
set class-of-service scheduler-maps lsqlink_map forwarding-class network-control scheduler S3
将调度器图附加到所有成员链路:
set class-of-service interfaces t1-2/0/0 unit 0 scheduler-map lsqlink_map
即使在此配置之后,如果在重装端观察到序列号丢弃超出范围,请将捆绑包的丢弃超时增加到 200 毫秒。
示例:配置调度器图
此示例说明如何配置调度器图以确定每个输出队列的传输服务级别。
要求
开始之前,您应该将两台瞻博网络设备配置成至少两个通过串行链路进行通信的串行接口。
概述
在此示例中,您将创建名为 lsq-0/0/0、se-1/0/0 和 se-1/0/1 的接口。您可以启用按单元调度,以便对捆绑包配置调度器图。在 lsq-0/0/0 上将调度器图配置为 s_map。然后,将调度器图应用于多链路捆绑包的组成链路 se-1/0/0 和 se-1/0/1。您可以将调度程序与每个转发类(DATA、VOICE 和 NC)相关联。您可以通过将传输速率和缓冲区大小设置为 49% 来定义 DATA 调度器的输出队列的属性。通过将传输速率设置为 50%,将缓冲区大小设置为 5%,将优先级设置为高,可以指定 VOICE 调度器的输出队列的属性。最后,通过将传输速率和缓冲区大小设置为 1%,将优先级设置为高,来定义 NC 调度器的输出队列属性。
拓扑学
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中。
set interfaces lsq-0/0/0 per-unit-scheduler set interfaces se-1/0/0 per-unit-scheduler set interfaces se-1/0/1 per-unit-scheduler set class-of-service interfaces lsq-0/0/0 unit 0 scheduler-map s_map set class-of-service interfaces se-1/0/0 unit 0 scheduler-map s_map set class-of-service interfaces se-1/0/1 unit 0 scheduler-map s_map set class-of-service scheduler-maps s_map forwarding-class DATA scheduler DATA set class-of-service scheduler-maps s_map forwarding-class VOICE scheduler VOICE set class-of-service scheduler-maps s_map forwarding-class NC scheduler NC set class-of-service schedulers DATA transmit-rate percent 49 set class-of-service schedulers DATA buffer-size percent 49 set class-of-service schedulers VOICE transmit-rate percent 50 set class-of-service schedulers VOICE buffer-size percent 5 set class-of-service schedulers VOICE priority high set class-of-service schedulers NC transmit-rate percent 1 set class-of-service schedulers NC buffer-size percent 1 set class-of-service schedulers NC priority high
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要配置调度器图,请执行以下作:
创建接口并启用按单元调度。
[edit interfaces] user@host# set lsq-0/0/0 per-unit-scheduler user@host# set se-1/0/0 per-unit-scheduler user@host# set se-1/0/1 per-unit-scheduler
定义调度器图并将其应用于多链路束中的组成链路。
[edit class-of-service interfaces] user@host# set lsq-0/0/0 unit 0 scheduler-map s_map user@host# set se-1/0/0 unit 0 scheduler-map s_map user@host# set se-1/0/1 unit 0 scheduler-map s_map
将调度程序与每个转发类相关联。
[edit class-of-service scheduler-maps] user@host# set s_map forwarding-class DATA scheduler DATA user@host# set s_map forwarding-class VOICE scheduler VOICE user@host# set s_map forwarding-class NC scheduler NC
定义 DATA 调度器的输出队列的属性。
[edit class-of-service schedulers] user@host# set DATA transmit-rate percent 49 user@host# set DATA buffer-size percent 49
定义 VOICE 调度器的输出队列属性。
[edit class-of-service schedulers] user@host# set VOICE transmit-rate percent 50 user@host# set VOICE buffer-size percent 5 user@host# set VOICE priority high
定义 NC 调度器的输出队列属性。
[edit class-of-service schedulers] user@host# set NC transmit-rate percent 1 user@host# set NC buffer-size percent 1 user@host# set NC priority high
结果
在配置模式下,输入 show class-of-service
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit]
user@host# show class-of-service
interfaces {
lsq-0/0/0 {
unit 0 {
scheduler-map s_map;
}
}
se-1/0/0 {
unit 0 {
scheduler-map s_map;
}
}
se-1/0/1 {
unit 0 {
scheduler-map s_map;
}
}
}
scheduler-maps {
s_map {
forwarding-class DATA scheduler DATA;
forwarding-class VOICE scheduler VOICE;
forwarding-class NC scheduler NC;
}
}
schedulers {
DATA {
transmit-rate percent 49;
buffer-size percent 49;
}
VOICE {
transmit-rate percent 50;
buffer-size percent 5;
priority high;
}
NC {
transmit-rate percent 1;
buffer-size percent 1;
priority high;
}
}
如果完成设备配置,请从配置模式进入 提交 。
了解接口整形速率
配置 LFI 时,建议在多链路捆绑包的每个组成链路上配置整形速率。需要对组成链路进行整形速率配置,以限制 LFI 队列上的 抖动 。如果您预计 LFI 队列上没有延迟敏感型或抖动敏感型流量,或者根本没有 LFI 流量,则整形速率配置是可选的。
整形速率指定要为多链路捆绑包分配的带宽量。您必须将整形速率配置为等于组成链路的组合物理接口带宽。两个组成链路的总带宽容量为 2 Mbps。因此,在每个组成链路上配置 2 Mbps 的整形速率。
示例:配置接口整形速率
此示例说明如何配置接口整形速率以控制接口上传输的最大流量速率。
要求
概述
在此示例中,您将多链路捆绑包 se-1/0/0 和 se-1/0/1 的组成链路的整形速率设置为 2000000。
拓扑学
配置
程序
分步过程
要配置接口整形速率,请执行以下作:
配置服务等级。
[edit] user@host# edit class-of-service
将整形速率应用于多链路捆绑包的构成链路。
[edit class-of-service] user@host# set interfaces se-1/0/0 unit 0 shaping-rate 2000000 user@host# set interfaces se-1/0/1 unit 0 shaping-rate 2000000
验证
要验证配置是否工作正常,请输入 show class-of-service
命令。