了解在第 3 层使用 DSCP 处理未标记流量的 PFC
融合以太网版本 2 (RoCEv2) 上的远程直存接入 (RDMA) 等协议需要在第 3 层连接到第 2 层以太网子网的流量时无损行为。传统上,基于优先级的流量控制 (PFC) 可在 VLAN 标记流量的第 2 层或第 3 层接口上发生拥塞时防止流量丢失,方法是选择性地将流量暂停到与接口上传入流量的 VLAN 标头中的 IEEE 802.1p 代码点对应的八个优先级中的任何一个。但是,对于暂停流量的 IEEE 802.1p 代码点,无法检查 未标记 流量(不带 VLAN 标记的流量)。
从 Junos OS 版本 17.4R1 开始,为了支持在第 3 层为未标记的信息流提供无损流量,我们支持使用传入流量第 3 层 IP 标头中的分布式服务代码点 (DSCP) 值为第 3 层接口和第 2 层接入接口启用 PFC,而非第 2 层 VLAN 标头中的 IEEE 802.1p 代码点值。
基于 DSCP 的 PFC 概述
PFC 是一种在第 2 层运行的数据中心桥接技术,DSCP 信息在第 3 层的 IP 标头中交换。但是,您可以配置基于 DSCP 的 PFC,为未标记的流量保留第 3 层网络连接中的无损行为。
PFC 可为传入流量中配置的代码点上标识的信息流生成暂停帧,以通知对等方在链路拥塞时暂停传输。启用基于 DSCP 的 PFC 后,将基于传入信息流第 3 层 IP 标头中配置的 6 位 DSCP 值(对应于十进制值 0-63)触发暂停帧。
但是,PFC 只能发送具有 3 位 PFC 优先级的暂停帧,这是对应于十进制值 0-7 的 8 个代码点之一,对于 VLAN 标记的流量,通常与传入流量 VLAN 标头中的 IEEE 802.1p 代码点对应。未标记的信息流不提供 IEEE 802.1p 代码点值的参考,因此要在 DSCP 值上触发 PFC,必须在配置中将 DSCP 值明确映射到 PFC 优先级,以便在该代码点出现拥塞时发送给对等方的 PFC 暂停帧中使用。定义要对基于 DSCP 的 PFC 流量进行分类的无损转发类时,您可以将 DSCP 值上的流量映射到 PFC 优先级。转发类还必须映射到无损行为的输出队列。
如果配置了基于 DSCP 的 PFC,因此不能将相同的 PFC 优先级分配给多个转发类,因为映射的 PFC 优先级值用作转发类 ID。
还需要一个 DSCP 分类器(而不是 IEEE 802.1p 分类器),才能指定具有上述配置 DSCP 值的传入流量属于无损转发类。接口上启用基于 DSCP 的 PFC 的任何 DSCP 值都必须在默认 DSCP 分类器中或与接口关联的用户定义 DSCP 分类器中指定。
要在接口上启用基于 DSCP 的 PFC,请定义具有相同 DSCP 值(以及所需缓冲参数)的输入拥塞通知配置文件,并将其与接口相关联。
对等设备应具有与映射的 PFC 优先级代码点匹配的 PFC 配置。
基于 DSCP 的 PFC 的局限性
以下是基于 DSCP 的 PFC 的局限性:
不能在同一拥塞通知配置文件下配置基于 DSCP 的 PFC 和 IEEE 802.1p PFC,也不能将基于 DSCP 的拥塞通知配置文件和 IEEE 802.1p 拥塞通知配置文件与同一接口相关联。
第 3 层接口和第 2 层接入接口仅支持基于 DSCP 的 PFC,仅适用于未标记的信息流。如果在启用了基于 DSCP 的 PFC 的接口上收到 VLAN 标记的数据包,PFC 行为将不可预测。
每个无损转发类只能与唯一的 3 位 PFC 优先级值(从 0 到 7)相关联。