VXLAN 隧道 DSCP 操作
Cumulus Linux 提供了配置选项,用于控制 VXLAN 封装和解封装期间的 DSCP 操作,特别是对于需要端到端服务质量的解决方案,例如融合以太网上的 RDMA。
配置选项根据 RFC 6040 在底层和叠加网络之间传播 ECN,该 RFC 描述了如何在 IP-in-IP 隧道的入口和出口处构造 ECN 字段的 IP 标头。
配置 DSCP 操作
您可以设置以下 DSCP 操作
- VXLAN 封装 DSCP 操作。如果内部数据包是 IP,则该操作可以是
copy
;set
用于配置特定值;或者derive
用于从交换机优先级派生值。默认设置为derive
。 - VXLAN 解封装 DSCP 或 COS 操作。该操作可以是
copy
,用于从外部数据包(底层网络)复制 DSCP 值;preserve
,用于保留内部数据包(叠加网络)中配置的值;或者derive
,用于从交换机优先级派生值。默认设置为derive
。
以下示例将 VXLAN 封装 DSCP 操作设置为 copy
。
cumulus@switch:~$ nv set nve vxlan encapsulation dscp action copy
cumulus@switch:~$ nv config apply
以下示例将 VXLAN 封装 DSCP 值设置为 16。
cumulus@switch:~$ nv set nve vxlan encapsulation dscp action set
cumulus@switch:~$ nv set nve vxlan encapsulation dscp value 16
cumulus@switch:~$ nv config apply
以下示例将 VXLAN 解封装 DSCP 值设置为 preserve
。
cumulus@switch:~$ nv set nve vxlan decapsulation dscp action preserve
cumulus@switch:~$ nv config apply
编辑 /etc/cumulus/switchd.conf
文件,然后重新加载 switchd
。
以下示例将 VXLAN 封装 DSCP 操作设置为 copy
。
cumulus@switch:~$ sudo nano /etc/cumulus/switchd.conf
...
# vxlan encapsulation update
vxlan.def_encap_dscp_action = copy
# default vxlan encap dscp value, only applicable if action is 'set'
#vxlan.def_encap_dscp_value =
# vxlan decapsulation update
#vxlan.def_decap_dscp_action = derive
以下示例将 VXLAN 封装 DSCP 值设置为 16。
cumulus@switch:~$ sudo nano /etc/cumulus/switchd.conf
...
# vxlan encapsulation update
vxlan.def_encap_dscp_action = set
# default vxlan encap dscp value, only applicable if action is 'set'
vxlan.def_encap_dscp_value = 16
# vxlan decapsulation update
#vxlan.def_decap_dscp_action = derive
以下示例将 VXLAN 解封装 DSCP 值设置为 preserve
。
cumulus@switch:~$ sudo nano /etc/cumulus/switchd.conf
...
# vxlan encapsulation update
#vxlan.def_encap_dscp_action = derive
# default vxlan encap dscp value, only applicable if action is 'set'
#vxlan.def_encap_dscp_value =
# vxlan decapsulation update
vxlan.def_decap_dscp_action = preserve
...
修改 /etc/cumulus/switchd.conf
文件后,您必须使用 sudo systemctl reload switchd.service
命令重新加载 switchd
。
显示 DSCP 设置
要显示 VXLAN 封装 DSCP 设置,请运行 nv show nve vxlan encapsulation dscp
命令
cumulus@switch:~$ nv show nve vxlan encapsulation dscp
operational applied
------ ----------- -------
action copy copy
要显示 VXLAN 解封装 DSCP 设置,请运行 nv show nve vxlan decapsulation dscp
命令。
cumulus@switch:~$ nv show nve vxlan decapsulation dscp
operational applied
------ ----------- --------
action preserve preserve
注意事项
您只能全局设置 VXLAN 封装和解封装 DSCP 操作。Cumulus Linux 不支持每个 VXLAN 或每个隧道的设置。