在 OVSDB 托管的 VXLAN 接口上配置 CoS

在支持的平台上,可以在 OVSDB 托管的VXLAN接口上配置数据包分类、数据包调度和数据包代码点重写(重写规则)CoS功能。OVSDB 托管的 VXLAN 接口使用 OVSDB 控制器创建和管理 VXLAN 接口和隧道。

OVSDB 托管的 VXLAN 接口上的分类器、调度器和重写规则配置使用的 CLI 语句与常规以太网接口上的 CoS 配置相同。但是,与常规以太网接口相比,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 分层端口调度。

您可以基于默认分类器或之前配置的分类器配置分类器,也可以创建不使用任何默认值的全新分类器。此示例用于网络接口。

  1. 要使用默认分类器或先前配置的分类器作为模板在入口接口上配置分类器,请包含import该语句并将 或 分类器名称指定default为要导入的分类器。然后将分类器与转发类、丢失优先级以及一个或多个代码点相关联:

    若要创建不基于默认分类器或先前存在的分类器的分类器,请创建新的分类器,并将其与转发类、丢失优先级以及一个或多个代码点相关联:

    注意:

    在面向网络的入口接口上,仅支持 BA DSCP 分类器。面向接入的入口接口支持 BA 和 MF DSCP 分类。

  2. 将分类器应用于交换机上一个或多个 OVSDB 托管的 VXLAN 接口:

您可以根据默认重写规则或以前存在的重写规则配置重写规则。默认重写规则会将内部数据包标头值写入 VXLAN 外部标头。或者,您可以创建不使用任何默认值的全新分类器。只能在面向网络的接口上配置重写规则,唯一支持的重写规则是 DSCP 重写规则。

  1. 要使用默认重写规则或先前配置的重写规则作为模板在面向网络的出口接口上配置重写规则,请包括 import 该语句,并将重写规则名称指定 default 为要导入的重写规则。然后将重写规则与转发类、丢失优先级以及一个或多个代码点相关联:

    若要创建不基于默认重写规则或先前现有重写规则的重写规则,请创建新的重写规则,并将其与转发类、丢失优先级以及一个或多个代码点相关联:

    注意:

    面向接入的接口不支持重写规则。

  2. 将重写规则应用于交换机上一个或多个 OVSDB 托管的 VXLAN 接口:

ETS 分层端口调度为两层流量分配端口带宽。ETS 提供了更好的端口带宽利用率和更大的灵活性,可以将端口资源分配给转发类和称为转发类集 (fc 集) 的转发类组。

首先,ETS 会将端口带宽分配给 fc 集(也称为优先级组)。每个 fc 集由一个或多个转发类组成,用于传输需要类似 CoS 处理的流量。然后,每个 fc 集接收的带宽将分配给该 fc 集中的转发类。每个转发类都映射到一个输出队列。转发类的调度属性将分配给转发类映射到的队列。流量控制配置文件控制为 fc 集的端口带宽分配。队列调度程序控制将 fc 集带宽分配给转发类。有关调度的详细信息,请参阅了解 CoS 输出队列调度器、了解 CoS 流量控制配置文件和了解 CoS 分层端口调度 (ETS)。

调度程序定义映射到转发类的输出队列的 CoS 属性。配置调度器后,可以使用调度器图将调度器映射到一个或多个转发类。将调度程序映射到转发类会将调度属性应用于转发类中的流量。

调度器为映射到调度程序的转发类(队列)定义以下特征:

  • transmit-rate- 最小带宽,也称为 承诺信息速率 (CIR),设置为百分比速率或以位/秒为单位的绝对值。传输速率还决定了队列可以共享的超额(额外)优先级组带宽量。额外的优先级组带宽将按照每个队列的传输速率比例在优先级组中的队列之间分配。

    注意:

    在带宽计算中包括前导码字节和帧间间隙 (IFG) 字节以及数据字节。

    注意:

    您无法为严格高优先级队列配置传输速率。具有已配置传输速率的队列(转发类)不能包含在具有严格高优先级队列的 fc 集中。

  • shaping-rate— 最大带宽,也称为 峰值信息速率 (PIR),设置为百分比速率或以 bps 为单位的绝对值。

    注意:

    在带宽计算中包括前导码字节和帧间间隙 (IFG) 字节以及数据字节。

  • priority— 与调度程序关联的队列可以接收的两个带宽优先级之一:

    • low- 调度程序的优先级较低。

    • strict-high— 调度程序具有严格高优先级。您只能将一个队列配置为严格高优先级队列。严格高优先级会在任何其他队列接收带宽之前将计划的带宽分配给队列。其他队列接收严格高排队列提供服务后剩余的带宽。

      建议始终对严格高优先级队列应用整形速率,以防止严格高优先级队列耗尽其他队列。如果不应用整形速率来限制严格高优先级队列可以使用的带宽,则严格高优先级队列可能会使用所有可用的端口带宽,并使端口上的其他队列耗尽。

  • drop-profile-map— 丢弃配置文件映射到丢失优先级和协议,以便将 WRED 数据包丢弃特征应用于调度程序。

    注意:

    如果入口端口拥塞是由于出口端口拥塞而发生的,请将丢弃配置文件应用于拥塞出口端口上的流量,以便流量在出口接口(而非入口接口)丢弃。当入口端口将流量传输到拥塞端口和不拥塞的出口端口时,入口接口拥塞会影响未拥塞的端口。

  • buffer-size— 队列缓冲区的大小占端口上专用缓冲区空间的百分比,或表示在为显式配置的队列提供服务后剩余的端口上专用缓冲区空间的比例份额。

  • explicit-congestion-notification— 在 BE 队列上启用 ECN。ECN 支持在基于 TCP/IP 的网络上的两个启用 ECN 的端点之间发出端到端拥塞通知。必须在两个端点以及端点之间的所有中间设备上启用 ECN,ECN 才能正常工作。默认情况下,ECN 处于禁用状态。

TCP 定义 fc 集的 CoS 属性,以及分配给 fc 集中转发类(队列)组的端口资源量。配置 TCP 后,将其(与关联的 fc 集一起)应用于接口,以便在该接口上为属于转发类的流量配置调度。

当您向接口应用 TCP 和 fc-set 时,TCP 会为映射到 TCP 的 fc-set(优先级组)定义以下特征:

  • guaranteed-rate— 最小带宽,也称为 承诺信息速率 (CIR)。保证速率还决定了 fc 集可以共享的多余(额外)端口带宽量。额外的端口带宽将根据每个 fc 集的保证速率在端口上的 fc 集之间分配。

    注意:

    您无法为包含严格高优先级队列的 fc 集配置有保证的速率。如果 TCP 用于包含严格高优先级队列的 fc 集,则不要配置有保证的速率。

  • shaping-rate— 最大带宽,也称为峰值信息速率 (PIR)。

  • scheduler-map— 队列的带宽和调度特征,通过将转发类映射到调度程序来定义。队列调度特征表示 fc 集带宽的数量或百分比,而不是总链路带宽的数量或百分比。

注意:

由于一个端口可以有多个 fc 集,因此当您将资源分配给一个 fc 集时,请记住,总端口带宽必须为每个 fc 集中与该端口关联的所有队列提供服务。

以下过程显示如何配置调度器属性,将调度器映射到转发类,将转发类映射到 fc 集,配置 TCP 属性,以及将 TCP 和 fc 集应用于接口(以将 ETS 端口调度配置应用于接口)。

注意:

您不必显式配置所有调度器和 TCP 特性。某些特征默认处于禁用状态,例如 ECN,并且只能在特定条件下启用。您可以混合使用配置的 CoS 属性和默认 CoS 属性。

  1. 为队列调度器命名,并定义队列的最小保证带宽:

  2. 定义队列的最大带宽:

  3. 定义队列优先级:

  4. 使用丢弃配置文件映射定义丢弃配置文件:

  5. 为队列配置端口专用缓冲区空间的大小:

  6. 如果需要,启用 ECN:

  7. 配置调度器图以将调度器映射到转发类,该转发类会将调度器的属性应用于该转发类中的流量:

    这样就可以完成可在调度程序中配置的特性,以及调度器到转发类的映射。接下来的步骤将展示如何配置 TCP。

  8. 为 TCP 命名,并定义 fc 集的最小保证带宽:

  9. 定义 fc 集的最大带宽:

  10. 将调度器图附加到 TCP;调度器图将调度器图中的调度器和转发类(队列)与 TCP 相关联:

    这样就可以完成可在 TCP 中配置的特征。下一步显示如何将转发类分配给 fc 集。

  11. 将一个或多个转发类分配给 fc 集:

    这样就完成了向 fc 集分配转发类。后续步骤将展示如何将 ETS 分层端口调度应用于接口。

  12. 要将 ETS 分层端口调度应用于接口,请将 fc 集和 TCP 与接口相关联。fc 集确定使用指定接口的转发类和队列。TCP 确定分配给 fc 集的端口资源量。转发类到 TCP 中的调度程序的映射决定了将 fc 集资源分配给作为 fc 集成员的转发类。