在 OVSDB 管理的 VXLAN 接口上配置 CoS
在 QFX5100 和 QFX10000 系列交换机上,您可以在 OVSDB 管理的 VXLAN 接口上配置数据包分类、数据包调度和数据包代码点重写(重写规则)服务等级 (CoS) 功能。OVSDB 管理的 VXLAN 接口使用 OVSDB 控制器来创建和管理 VXLAN 接口和隧道。
OVSDB 托管的 VXLAN 接口上的分类器、调度程序和重写规则配置使用与常规以太网接口上的 CoS 配置相同的 CLI 语句。但是,与常规以太网接口相比,OVSDB 管理的 VXLAN 接口的功能支持在几个方面有所不同,具体取决于交换机接口是面向访问的(连接到访问网络的服务器和其他设备)还是面向网络(连接到网络,例如,连接到 VXLAN 网关的交换机接口)。
分类器 — 在面向接入的入口接口上,您可以配置 BA 或 MF DSCP 分类器。
在面向网络的入口接口上,只能配置 DSCP 分类器。
重写规则 — 在面向网络的接口上,您可以配置 DSCP 重写规则。面向访问的接口不支持重写规则。不支持 IEEE 802.1p 重写规则。
注意:重写规则仅重写 VXLAN 报头上的 DSCP 代码点。重写规则不会重写内部数据包头上的 DSCP 代码点。如果未配置重写规则,则默认情况下,数据包头中的代码点值将复制到 VXLAN 报头中。
调度程序 — 出口接口使用增强型传输选择 (ETS) 分层端口调度,与常规以太网接口相同,并且支持相同的功能。您可以在面向访问和面向网络的出口接口上配置数据包调度。
有关 OVSDB 托管的 VXLAN 接口上的 CoS 功能支持的更多信息,(请参阅 了解 OVSDB 托管的 VXLAN 接口上的 CoS。)
本主题介绍 OVSDB 托管的 VXLAN 接口上的 CoS 配置。它不包括 OVSDB 或 VXLAN 配置。有关 OVSDB 管理的 VXLAN 的信息,请参阅 了解 OVSDB 环境中动态配置的 VXLAN 。
如果未在接口上配置 CoS,则该接口将使用默认 CoS 属性。如果在接口上配置某些 CoS 属性,则该接口对这些属性使用已配置的 CoS,对未配置的属性使用默认 CoS。OVSDB 管理的 VXLAN 接口上默认设置的唯一区别是,如果未配置重写规则,则默认情况下,数据包标头中的代码点值将复制到 VXLAN 标头中。(其他接口上没有默认重写规则。有关默认调度程序和分类器设置的信息,请参阅 了解默认 CoS 调度和分类 。
以下三个过程说明如何在 OVSDB 管理的 VXLAN 接口上配置分类器、重写规则和 ETS 分层端口调度。
您可以基于默认分类器或以前配置的分类器配置分类器,也可以创建不使用任何默认值的全新分类器。此示例适用于网络接口。
您可以根据默认重写规则或以前存在的重写规则配置重写规则。默认重写规则将内部数据包标头值写入 VXLAN 外部标头,或者您可以创建不使用任何默认值的全新分类器。您只能在面向网络的接口上配置重写规则,并且唯一支持的重写规则是 DSCP 重写规则。
要使用默认重写规则或先前配置的重写规则作为模板在面向网络的出口接口上配置重写规则(交换机对您未显式配置的任何值使用默认值),请包含
import
语句并指定或重写规则名称作为要导入的重写规则,并将重写default
规则与转发类关联, 丢失优先级以及一个或多个代码点:[edit class-of-service rewrite-rules] user@switch# set dscp rewrite-name import (rewrite-name | default) forwarding-class forwarding-class-name loss-priority level code-points [aliases] [bit-patterns]
若要创建不基于默认重写规则或以前存在的重写规则的重写规则,请创建新的重写规则并将其与转发类、丢失优先级以及一个或多个代码点相关联:
[edit class-of-service rewrite-rules] user@switch# set dscp rewrite-name forwarding-class forwarding-class-name loss-priority level code-points [aliases] [bit-patterns]
注意:面向访问的接口不支持重写规则。
将重写规则应用于交换机上的一个或多个 OVSDB 管理的 VXLAN 接口:
[edit class-of-service interfaces] user@switch# set interface-name unit unit rewrite-rules dscp rewrite-name
ETS 分层端口调度将端口带宽分配给两层中的流量。ETS 可更好地利用端口带宽,并更灵活地将端口资源分配给转发类(这相当于将端口资源分配给输出队列,因为队列映射到转发类)和称为转发类集 (fc-sets) 的转发类组。
首先,ETS 将端口带宽分配给 fc 集(也称为优先级组)。每个 fc 集都包含一个或多个转发类,这些转发类承载需要类似 CoS 处理的流量。然后,每个 fc 集接收的带宽将分配给该 fc 集中的转发类。每个转发类都映射到一个输出队列。转发类的调度属性分配给转发类映射到的队列。流量控制配置文件控制向 fc 集分配端口带宽。队列调度程序控制将 fc 设置的带宽分配给转发类。有关调度的详细信息,请参阅了解 CoS 输出队列调度程序、了解 CoS 流量控制配置文件和了解 CoS 分层端口调度 (ETS)。
调度程序定义映射到转发类的输出队列的 CoS 属性。配置调度程序后,可以使用调度程序图将调度程序映射到一个或多个转发类。将调度程序映射到转发类会将调度属性应用于转发类中的流量。
调度程序为映射到调度程序的转发类(队列)定义以下特征:
transmit-rate
—最小带宽,也称为 承诺信息速率 (CIR),设置为百分比速率或以位/秒为单位的绝对值。传输速率还决定了队列可以共享的超额(额外)优先级组带宽量。额外优先级组带宽按每个队列的传输速率比例在优先级组中的队列之间分配。注意:在带宽计算中包括前导码字节和帧间间隔 (IFG) 字节以及数据字节。
注意:不能为严格高优先级队列配置传输速率。具有配置传输速率的队列(转发类)不能包含在具有严格高优先级队列的 fc 集中。
shaping-rate
—最大带宽,也称为 峰值信息速率 (PIR),设置为百分比速率或以位/秒为单位的绝对值。注意:在带宽计算中包括前导码字节和帧间间隔 (IFG) 字节以及数据字节。
priority
—与调度程序关联的队列可以接收的两个带宽优先级之一:low
- 调度程序的优先级较低。strict-high
— 调度程序具有严格高优先级。您只能将一个队列配置为严格高优先级队列。严格高优先级在任何其他队列接收带宽之前将计划的带宽分配给队列。其他队列接收在为严格-高队列提供服务后剩余的带宽。我们建议您始终对严格高优先级队列应用整形速率,以防止它们使其他队列资源不足。如果不应用整形速率来限制严格高优先级队列可以使用的带宽量,则严格高优先级队列可能会使用所有可用端口带宽,并耗尽端口上的其他队列。
drop-profile-map
—将丢弃配置文件映射到丢失优先级和协议,以将加权随机早期检测 (WRED) 数据包丢弃特征应用于调度程序。注意:如果入口端口拥塞是由于出口端口拥塞而发生的,请将丢弃配置文件应用于拥塞出口端口上的流量,以便在出口接口而不是入口接口丢弃流量。(当入口端口将流量同时传输到拥塞和不拥塞的出口端口时,入口接口拥塞可能会影响未拥塞的端口。
buffer-size
— 队列缓冲区的大小占端口上专用缓冲区空间的百分比,或作为提供显式配置的队列后保留的端口上专用缓冲区空间的比例份额。explicit-congestion-notification
—在尽力而为队列上启用 ECN。ECN 在基于 TCP/IP 的网络上的两个启用 ECN 的端点之间启用端到端拥塞通知。必须在两个端点上以及端点之间的所有中间设备上启用 ECN,ECN 才能正常工作。默认情况下,ECN 处于禁用状态。
流量控制配置文件定义 fc 集的 CoS 属性,以及分配给 fc 集中的转发类(队列)组的端口资源量。配置流量控制配置文件后,将其(带有关联的 fc-set)应用于接口,以便在该接口上为属于 fc-set 中转发类的信息流配置调度。
将流量控制配置文件和 fc-set 应用于接口时,流量控制配置文件会为映射到流量控制配置文件的 fc 集(优先级组)定义以下特征:
guaranteed-rate
—最小带宽,也称为 承诺信息速率 (CIR)。保证速率还决定了 fc 集可以共享的多余(额外)端口带宽量。额外的端口带宽按每个 fc 集的保证速率的比例在端口上的 fc 集之间分配。注意:不能为包含严格高优先级队列的 fc 集配置保证速率。如果流量控制配置文件适用于包含严格高优先级队列的 fc 集,请不要配置保证速率。
shaping-rate
—最大带宽,也称为峰值信息速率 (PIR)。scheduler-map
—队列的带宽和调度特征,由将转发类映射到调度程序来定义。(队列调度特征表示 fc 集带宽的数量或百分比,而不是总链路带宽的数量或百分比。
由于一个端口可以有多个 fc 集,因此在将资源分配给 fc 集时,请记住,总端口带宽必须服务于每个 fc 集中与该端口关联的所有队列。
以下过程说明如何配置调度程序属性、将调度程序映射到转发类、将转发类映射到 fc 集、配置信息流控制配置文件属性以及将流量控制配置文件和 fc-set 应用于接口(以将 ETS 端口调度配置应用于接口)。
您不必显式配置所有调度程序和流量控制配置文件特征。默认情况下,某些特征处于禁用状态,例如 ECN,并且应仅在特定条件下启用。您可以混合配置的 CoS 属性和默认 CoS 属性。
命名队列调度程序并定义队列的最小保证带宽:
[edit class-of-service] user@switch# set schedulers scheduler-name transmit-rate (rate | percent percentage)
定义队列的最大带宽:
[edit class-of-service schedulers scheduler-name] user@switch# set shaping-rate (rate | percent percentage)
定义队列优先级:
[edit class-of-service schedulers scheduler-name] user@switch# set priority level
使用丢弃配置文件映射定义丢弃配置文件:
[edit class-of-service schedulers scheduler-name] user@switch# set drop-profile-map loss-priority (low | medium-high | high) protocol protocol drop-profile drop-profile-name
为队列配置端口专用缓冲区空间的大小:
[edit class-of-service schedulers scheduler-name] user@switch# set buffer-size percent 20
如果需要,启用 ECN(队列应处理尽力而为的流量):
[edit class-of-service schedulers scheduler-name] user@switch# set explicit-congestion-notification
配置调度器图以将调度器映射到转发类,从而将调度器的属性应用于该转发类中的流量:
[edit class-of-service] user@switch# set scheduler-maps scheduler-map-name forwarding-class forwarding-class-name scheduler scheduler-name
这样就可以完成您可以在调度程序中配置的特征,以及调度器到转发类的映射。后续步骤演示如何配置流量控制配置文件。
命名流量控制配置文件并定义 fc 集的最小保证带宽:
[edit class-of-service ] user@switch# set traffic-control-profiles traffic-control-profile-name guaranteed-rate (rate | percent percentage)
定义 fc 集的最大带宽:
[edit class-of-service traffic-control-profiles traffic-control-profile-name] user@switch# set shaping-rate (rate | percent percentage)
将调度器图附加到流量控制配置文件;调度器图将调度器图中的调度程序和转发类(队列)与流量控制配置文件相关联:
[edit class-of-service traffic-control-profiles traffic-control-profile-name] user@switch# set scheduler-map scheduler-map-name
这样就可以完成您可以在流量控制配置文件中配置的特征。下一步显示如何将转发类分配给 fc 集。
将一个或多个转发类分配给 fc 集:
[edit class-of-service] user@switch# set forwarding-class-sets forwarding-class-set-name class forwarding-class-name
这样就完成了将转发类分配给 fc 集的工作。后续步骤将介绍如何将 ETS 分层端口调度应用于接口。
要将 ETS 分层端口调度应用于接口,请将 fc 集和流量控制配置文件与接口关联。fc-set 确定使用指定接口的转发类和队列。流量控制配置文件确定分配给 fc 集的端口资源量,转发类到流量控制配置文件中调度程序的映射确定将 fc 集资源分配给作为 fc 集成员的转发类。
user@switch# set interfaces interface-name forwarding-class-set fc-set-name output-traffic-control-profile tcp-name