EVPN VXLAN 上的 CoS 支持
您可以在 VXLAN 接口上配置服务等级 (CoS) 功能。来自不同租户的 VXLAN 流量在同一物理底层网络上遍历网络边界。为了确保 VXLAN 中所有租户的流量处理公平,以及为优先级更高的流量分配优先级,请对 VXLAN 接口应用 CoS 功能。
了解 VXLAN 接口上的 CoS
本节介绍如何将分类和重写规则应用于 VXLAN 实例中的数据包。 图 1 显示了包含两个叶节点和一个主干节点的简单 VXLAN。
![Classifiers and Rewrite Rules on VXLANs](/documentation/us/en/software/junos/cos-ex/images/g301240.png)
请参阅 图 1 ,了解 VXLAN 中带有 DSCP/ToS 字段的数据包流:
-
CE 1 发送一个数据包,该数据包将第 3 层 DSCP/ToS 位编程到叶 1 节点。
-
叶 1 接收原始数据包,并在原始数据包之上附加 VXLAN 标头。外部 VXLAN L3 报头使用原始数据包 DSCP/Tos 位。您可以基于原始数据包 DSCP/802.1p 位创建分类器。入口叶上的入口接口支持 DSCP 和 802.1p 分类器。
-
如果在叶 1 上配置重写,则内部报头将具有由 CE 1 设置的 DSCP/802.1p 位,外部报头将包含重写位。仅支持 DSCP 重写规则,QFX10000 交换机除外,其中如果底层已标记,则也支持 802.1p 重写。
-
主干节点接收 VXLAN 数据包,并使用这些 DSCP 位使用入口分类,并使用适当的转发类将数据包转发到出口接口。
-
主干出口接口可以使用重写规则重写这些位。这些主干重写规则仅影响外部第 3 层 DSCP 字段。内部/原始数据包仍保留 CE 1 设置的 DSCP/802.1p 位。
-
叶 2 接收数据包,处理隧道终止,并移除外部 VXLAN 报头。
-
叶 2 分类和重写功能适用于内部标头。
-
原始数据包在 CE 2 上送达。
在叶节点上,如果数据包是组播的,您可以使用 multi-destination
分类创建适当的组播分类和重写规则。
在 VXLAN 接口上配置 CoS
本节以 图 1 为例,显示了 VXLAN 中叶节点和主干节点的分类符和重写规则的示例配置。您可以为每个节点上的分类器创建常规计划器。
叶 1 上分类符和重写规则的示例配置。
主干上分类器配置和重写规则的示例。
-
基于外部 VXLAN DSCP/ToS 位创建分类器:
[edit class-of-service classifiers] user@spine#set dscp dscp_cf forwarding-class best-effort loss-priority low code-points af22 user@spine#set dscp dscp_cf forwarding-class network-control loss-priority high code-points af31 user@spine#set dscp dscp_cf forwarding-class expedited-forwarding loss-priority low code-points af13 user@spine#set dscp dscp_cf forwarding-class assured-forwarding loss-priority high code-points cs3
-
将分类器应用于入口主干接口:
[edit class-of-service interfaces] user@spine#set ge-0/0/3 unit 0 classifiers dscp dscp_cf user@spine#set ge-0/0/5 unit 0 classifiers dscp dscp_cf
-
为外部 VXLAN DSCP/ToS 位创建重写规则:
[edit class-of-service rewrite-rules] user@spine#set dscp dscp_rw forwarding-class best-effort loss-priority low code-points af22 user@spine#set dscp dscp_rw forwarding-class network-control loss-priority high code-points af31 user@spine#set dscp dscp_rw forwarding-class expedited-forwarding loss-priority low code-points af13 user@spine#set dscp dscp_rw forwarding-class assured-forwarding loss-priority high code-points cs3
-
将重写规则应用于出口主干接口:
[edit class-of-service interfaces] user@spine#set ge-0/0/4 unit 0 rewrite-rules dscp dscp_rw user@spine#set ge-0/0/6 unit 0 rewrite-rules dscp dscp_rw
叶 2 上的分类器配置和重写规则的示例。
-
由于 VXLAN 报头在隧道终止时会先应用转发类,因此根据原始 DSCP/ToS 位创建分类器:
[edit class-of-service classifiers] user@leaf2#set dscp dscp_cf forwarding-class best-effort loss-priority low code-points 100000 user@leaf2#set dscp dscp_cf forwarding-class network-control loss-priority high code-points 110000 user@leaf2#set dscp dscp_cf forwarding-class expedited-forwarding loss-priority low code-points 011010 user@leaf2#set dscp dscp_cf forwarding-class assured-forwarding loss-priority high code-points 001010
-
将分类器应用于入口叶 2 接口:
[edit class-of-service interfaces] user@leaf2#set ge-0/0/7 unit 0 classifiers dscp dscp_cf user@leaf2#set ge-0/0/8 unit 0 classifiers dscp dscp_cf
-
为 原始 DSCP/ToS 位创建重写规则:
[edit class-of-service rewrite-rules] user@leaf2#set dscp dscp_rw forwarding-class best-effort loss-priority low code-points 100000 user@leaf2#set dscp dscp_rw forwarding-class network-control loss-priority high code-points 110000 user@leaf2#set dscp dscp_rw forwarding-class expedited-forwarding loss-priority low code-points 011010 user@leaf2#set dscp dscp_rw forwarding-class assured-forwarding loss-priority high code-points 001010
-
将重写规则应用于出口叶 2 接口:
[edit class-of-service interfaces] user@leaf2#set ge-0/0/9 unit 0 rewrite-rules dscp dscp_rw
检查其中一个接口上的 CoS 配置:
user@node#show class-of-service interface interface-name
检查其中一个接口上的队列统计信息:
user@node#show interfaces queue interface-name
在 VXLAN 接口上实施 CoS(Junos OS 演化版)
使用分类器、调度器以及重写规则,支持用于 EVPN VXLAN 流量的 CoS。本节介绍如何在运行 Junos OS Evolved 的设备上的不同节点上实施这些组件,从而在 EVPN VXLAN 流量上应用 CoS。
- 用户界面 (UNI)/入口 PE 的分类 — 在发起 EVPN VXLAN 隧道的入口 PE 上,支持基于 IEEE 802.1p 和差异化服务代码点 (DSCP) 的流量分类。BA 和 MF 分类器可以应用于企业样式 (EP) 或服务提供商 (SP) 样式的接入接口。
- 节点接口 (NNI)/出口 PE 分类 — 在终止 EVPN VXLAN 隧道的出口 PE 上,支持基于 IEEE 802.1p 和差异化服务代码点 (DSCP) 的流量分类。BA 分类器可以应用于底层逻辑接口或单元。隧道终端不支持 MF 分类器。
- NNI 重写 — 封装 VXLAN 隧道后,使用底层逻辑接口或单元上的重写规则配置外部/隧道标头上的重写。根据配置的重写规则,VXLAN 流量被归类为主干/网络。
NNI 接口支持对 VXLAN 数据包的外部/隧道标头进行 DSCP 重写。
以下 EVPN VXLAN 方案支持重写规则:- VNI 内 L2 网关 — 重写规则同时应用于单播和广播、未知单播和组播 (BUM) 流量。
- VNI 间 L3 网关 — 集中路由桥接 (CRB) 和边缘路由桥接 (ERB)。
- EVPN Type 5 路由。
- UNI 重写 — VXLAN 隧道终止后,使用企业样式 (EP) 或服务提供商 (SP) 样式访问接口上的重写规则配置内部报头上的重写。根据配置的重写规则,解封装的数据包分类在 CE 端网络中。解封装的数据包的 UNI 接口支持以下重写规则:
- 内部 IPv4/IPv6 报头上的 DSCP 重写
- 内部以太网标头上的 IEEE 802.1p 重写(如果已标记)
- VNI 内 L2 网关 — 重写规则同时应用于单播和广播、未知单播和组播 (BUM) 流量。
- VNI 间 L3 网关 — 集中路由桥接 (CRB) 和边缘路由桥接 (ERB)。
- EVPN Type 5 路由。
- 调度 — 通过使用调度器实现流量优先级和带宽预留。调度器通过分类器与转发类集相关联。
VXLAN 的 CoS 限制
以下限制适用于 PTX 路由器:
- 集成路由和桥接 (IRB) 不支持 DSCP 重写规则(L3 网关方案)。
- NNI 接口不支持 IEEE 802.1p 重写规则。
- UNI 或 NNI 接口均不支持显式拥塞通知 (ECN) 重写。
- 不支持基于优先级的流控制 (PFC)。
- 不支持 IPv6 或 IRB 底层的 CoS 分类和重写机制。
EVPN VXLAN 上的 CoS 功能与 QFX5K 平台上的功能相同。QFX5120 已支持的所有 VXLAN CoS 功能也支持 QFX5130 和 QFX5700 平台。
以下限制适用于 QFX5130 和 QFX5700 平台:
- 由于硬件限制,不支持 HQoS。
- 不支持 IRB 接口上的分类器、重写和调度器。
- 不支持 NNI 端口上的 DOT1P 重写和分类器。
- 不支持 UNI 端口上的 DOT1P 和 DSCP 重写。
- NNI 端口上支持 DSCP 重写,但有以下限制:
- DSCP 重写仅在您在 VXLAN 封装节点上禁用 TOS 复制(在
[edit forwarding-options]
层次结构级别设置vxlan-disable-copy-tos-encap
)后才会生效。禁用 TOS 复制时,ECN 位不会从内部标头复制到外部报头,因此数据包外部报头将具有定义的重写 DSCP 值和 ECN 值00
。 -
DSCP 重写可重写外部和内部标头。因此,无法保留内部标头 DSCP 值。
- DSCP 重写仅在您在 VXLAN 封装节点上禁用 TOS 复制(在
- PFC 配置将导致长达 10 毫秒的瞬时流量丢弃。
- 不支持 DSCP IPV6 分类符和重写。改用 DSCP 分类器和重写。
- TOS 复制功能不适用于 5 类 EVPN VXLAN。
以下限制适用于 QFX10000 平台:
-
由于 IRB 接口不支持 dscp 重写规则,因此您可以在底层 L2 接口上应用重写规则。VXLAN 隧道数据包中的 802.1p/dscp 值使用底层 L2 接口规则编写。