802.1p 和 DSCP QoS

主题:

启用 802.1p

SonicOS 支持第 2 层和第 3 层 CoS 方法,可与启用了 QoS 的环境中外部系统进行广泛的互操作。2 层方法是 IEEE 802.1p 标准,其中,插入到以太网框架标头中的附加 16 位中的 3 位可用于指定框架的优先级,如下图所示:

图 41. 以太网数据帧

.

TPID:标签协议标识符从第 12 个字节开始(6 个字节的目标字段和 6 个字节的源字段之后),长度为 2 个字节,标签的流量的以太网类型为 0x8100。
802.1p:TCI(标签控制信息 – 从第 14 个字节开始,长度为两个字节)的前三位定义了用户优先级,总共为八个 (2^3) 优先级。IEEE 802.1p 定义了这三个用户优先级位的操作。
CFI:规范格式指示器是只有一位的标志,对于以太网交换机,它始终设置为零。CFI 用于以太网网络和令牌环网之间的兼容性原因。如果在以太网端口接收的帧其 CFI 设置为 1,则不应将该帧转发到未标签的端口。
VLAN ID:VLAN ID(在 14 个字节中从第 5 个字节开始)是 VLAN 的标识。它拥有 12 位,且允许 4,096 (2^12) 个唯一的 VLAN ID 标识。对于 4,096 个可用的 ID,ID 0 用于标识帧优先级,ID 4,095 (FFF) 已保留,因此可用的最大 VLAN 配置为 4,094。

通过启用想要处理 802.1p 标记的接口上的 802.1p 标签即可启动 802.1p 支持。可在任何 SonicWALL 设备上的任何以太网端口上启用 802.1p。

带有这些标签的 802.1p 字段的行为由访问规则控制。默认 802.1p 访问规则操作会将现有 802.1p 标签重置为 0,除非使用了其他配置(如需详细信息,请参见管理 QoS 标记 )。

启用 802.1p 标记将允许目标接口识别由支持 802.1p 的网络设备所生成的传入 802.1p 标签,这可通过访问规则控制。SonicOS 插入的拥有 802.1p 标签的帧其 VLAN ID 为 0。

802.1p 标签只能根据访问规则插入,因此在使用了默认设置的接口上启用 802.1p 标记不会中断与不支持 802.1p 的设备的通信。

802.1p 需要您想要对其使用优先级方法的网络设备的特定支持。通过 IP 的很多音频和视频设备都提供了对 802.1p 的支持,但必须将该功能启用。如果对该功能不确定,请检查您的设备文档,查看相关的 802.1p 支持信息。很多服务器和主机网卡 (NIC) 同样也提供了对 802.1p 的支持,但默认情况下该功能通常处于禁用状态。在 Win32 操作系统中,您可以在网卡的属性页面上的高级选项卡上检查和配置 802.1p 设置。如果您的网卡支持 802.1p,将会列出802.1p QoS、802.1p 支持、QoS 数据包标签或一些类似选项:

要处理 802.1p 标签,网络接口上必须拥有该功能,并将该功能启用。网络接口将能够生成带有 802.1p 标签的数据包,这由支持 QoS 的应用程序管理。默认情况下,为了维护与不支持 802.1p 的设备的通信,常规的网络通信不会插入标签。

还应注意,在支持 802.1p 的设备上执行数据包捕获(例如,使用诊断工具 Ethereal)时,一些设备将不显示捕获数据包的 802.1q 标头。相反,如果在不支持 802.1p 的设备上执行数据包捕获时,几乎总是会显示标头,但主机无法处理数据包。

在继续管理 QoS 标记 之前,先介绍“DSCP 标记”很重要,因为两种标记方法之间存在潜在的相关性,也需要解释一下为何存在相关性。

图 42. DSCP 标记:示例场景

在以上的情形中,我们通过 IPsec VPN 将远程站点 1 连接到“主站点”。公司使用支持内部 802.1p/DSCP 的 VoIP 电话系统,并在主站点上托管了一个专用 VoIP 信号服务器。主站点使用千兆和快速以太网混合型基础结构,远程站点 1 均为快速以太网。两个站点均使用支持 802.1p 的交换机进行内部流量的优先级排列。

1
2
a
b

如果防火墙通过 VPN/WAN 链路发送数据包,则可将 DSCP 标签包含到数据包中,但无法包含 802.1p 标签。这可能会丢失 VoIP 流量的所有优先级信息,因为当数据包到达远程站点时,交换机将不能使用 802.1p MAC 层信息对流量进行优先级排序。由于链路饱和,远程站点交换机处理 VoIP 流量的方式与优先级较低的文件传输的处理方式相同,到达 VoIP 流产生的延迟(甚至可能是丢弃数据包)使呼叫质量下降。

因此关键的 802.1p 优先级信息将如何通过 VPN/WAN 链路从主站点 LAN 传输到远程站点 LAN?通过使用 QoS 映射。

QoS 映射是将第 2 层 802.1p 标签转换为第 3 层 DSCP 标签的一种功能,以便它们可以安全地遍历(以映射的形式)不支持 802.1p 的链路;当数据包到达下一个支持 802.1p 的分段时,QoS 映射会将 DSCP 转换为 802.1p 标签,以便可以使用 2 层 QoS。

在以上的情形中,主站点的防火墙为 VoIP 数据包以及封装 ESP 数据包分配 DSCP 标签(例如值 48),以便能够在 WAN 应用第 3 层 QoS。通过保留现有 DSCP 标签或从 802.1p 标签(如果存在)映射值可完成分配。如果 VoIP 数据包到达链路的另一端,接收数据包的 SonicWALL 将遍历映射过程,同时会将 DSCP 标签映射到 802.1p 标签。

3

DSCP 标记

DSCP(差分服务代码点)标记使用 IP 标头中 8 位 ToS 字段中的 6 位提供 64 类(或代码点)流量。由于 DSCP 是第 3 层标记方法,且存在 802.1p 标记,因此无需考虑兼容性问题。不支持 DSCP 的设备将忽略标签,在最差的情况下会将标签值重置为 0。

图 43. DSCP 标记:IP 数据包

上图说明了 IP 数据包,在标头的 ToS 部分拥有结束标记。ToS 位最初用于优先级和 ToS(延迟、吞吐量、可靠性和成本)设置,但之后 RFC2474 又将其用于用途更广的 DSCP 设置。

下表显示了常用的代码点,以及它们向旧优先级和 ToS 设置的映射。

 

表 123. DSCP 标记:常用代码点

DSCP

DSCP 说明

旧 IP 优先顺序

旧 IP ToS (D, T, R)

0

最大努力型

0(例程 – 000)

-

8

1 级

1(优先级 – 001)

-

10

1 级,黄金级 (AF11)

1(优先级 – 001)

T

12

1 级,白银级 (AF12)

1(优先级 – 001)

D

14

1 级,青铜级 (AF13)

1(优先级 – 001)

D、T

16

2 级

2(中间级 – 010)

-

18

2 级,黄金级 (AF21)

2(中间级 – 010)

T

20

2 级,白银级 (AF22)

2(中间级 – 010)

D

22

2 级,青铜级 (AF23)

2(中间级 – 010)

D、T

24

3 级

3(闪存 – 011)

-

26

3 级,黄金级 (AF31)

3(闪存 – 011)

T

27

3 级,白银级 (AF32)

3(闪存 – 011)

D

30

3 级,青铜级 (AF33)

3(闪存 – 011)

D、T

32

4 级

4(闪存覆盖 – 100)

-

34

4 级,黄金级 (AF41)

4(闪存覆盖 – 100)

T

36

4 级,白银级 (AF42)

4(闪存覆盖 – 100)

D

38

4 级,青铜级 (AF43)

4(闪存覆盖 – 100)

D、T

40

快速转发

5 (CRITIC/ECP1 – 101)

-

46

加速转发 (EF)

5 (CRITIC/ECP – 101)

D、T

48

控制

6(互连网控制 – 110)

-

56

控制

7(网络控制 – 111)

-


1
ECP:椭圆曲线群组

可对在任何接口和任何区域类型之间传输的流量执行 DSCP 标记(无例外)。DSCP 标记由访问规则通过 QoS 选项卡控制,可与 802.1p 标记配合使用,也可与 SonicOS 的内部带宽管理配合使用。

主题:
DSCP 标记和混合 VPN 流量

在诸多的安全措施和特性中,IPsec VPN 使用防止重放机制,其基础在于添加到 ESP 标头中的单调递增的序号。将丢弃具有重复序号的数据包,因为此类数据包不符合顺序标准。此类标准可管理故障数据包的处理。SonicOS 提供了 64 个数据包的重放窗口,即,如果用于安全关联 (SA) 的 ESP 数据包被 64 个以上的数据包延迟,将丢弃该数据包。

使用 DSCP 标记对遍历 VPN 的流量提供第 3 层 QoS 时应考虑该项。如果您的 VPN 隧道传输各种流量,一部分标签了 DSCP 高优先级(例如 VoIP),一部分标签了 DSCP 低优先级,或未标签/最大努力型(例如 FTP),则您的服务提供程序将优先处理高优先级 ESP 数据包的传输,然后再处理最大努力型 ESP 数据包。在特定流量条件下,这可能会导致最大努力型数据包被延迟 64 个数据包以上,从而导致被接收的 SonicWALL 的防止重放防御机制丢弃。

如果出现此类现象(例如低优先级流量过分重传),推荐您为高优先级和低优先级流量类创建单独的 VPN 策略。通过将高优先级主机(例如 VoIP 网络)置于各自的子网中可轻松完成。

配置 802.1p CoS 4 控制的负载

如果想要将 DSCP 标签 15 的入站映射从默认 802.1p 映射 1 更改为 802.1p 映射 2,则由于映射范围不能重叠,需要两个步骤才能完成。尝试分配重叠的映射会产生错误DSCP 范围已存在,或与其他范围重叠。首先,需要从映射到 802.1p CoS1 的当前终止范围中删除 15(将终止映射范围更改为从 802.1p CoS 1 到 DSCP 14),然后可将 DSCP 15 分配给 802.1p CoS 2 的起始映射范围。

QoS 映射

QoS 映射的主要目的是允许 802.1p 标签总是能够通过不支持 802.1p 的链路(例如 WAN 链路),方法为通过 WAN 链路发送之前将它们映射到对应的 DSCP 标签,然后在到达另一端时再从 DSCP 重映射到 802.1p:

图 44. QoS 映射

注:只有将映射作为访问规则的 QoS 选项卡操作,才能进行映射。映射表仅定义访问规则的映射操作将要使用的通信。

例如,根据默认表,值为 2 的 802.1p 标签将出站映射到值为 16 的 DSCP,DSCP 标签 43 将入站映射到 802.1 值 5

这些映射中的每一个都可以重新配置。如果想要将出站映射 802.1p 标签 4 从 DSCP 默认值 32 更改为 DSCP 值 43,则可以单击 4 – 可控负载配置图标,然后从下拉框中选择新至 DSCP值:

您可以单击重置 QoS 设置按钮,以恢复默认映射。

管理 QoS 标记

可在管理界面的防火墙 > 访问规则页面下的 QoS 选项卡中配置 QoS 标记。SonicOS 访问规则管理的 802.1p 和 DSCP 标记提供了 4 种操作:无、保留、显式和映射。默认 DSCP 操作为保留,默认 802.1p 操作为

下表说明了标记的两种方法中每个操作的行为:

 

表 124. QoS 标记:行为

操作

802.1p(第 2 层 CoS)

DSCP(第 3 层)

注释

与此类流量相匹配的数据包(按照访问规则定义)发送出出口接口时,将不添加任何 802.1p 标签。

DSCP 标签已显式设置(或重置)为零。

如果该类流量的目标接口是 VLAN 子接口,802.1q 标签的 802.1p 部分将显式设置为 0。如果该类流量指定用于 VLAN 且使用 802.1p 进行优先级排序,则应使用保留显式映射对此类流量定义特定的访问规则。

保留

将保留现有 802.1p 标签。

将保留现有 DSCP 标签值。

 

显式

可从将要显示的下拉菜单中分配显式 802.1p 标签值 (0-7)。

可从将要显示的下拉菜单中分配显式 DSCP 标签值 (0-63)。

如果 802.1p 或 DSCP 操作设置为显式,而另一个设置为映射,将先进行显式分配,然后根据该分配映射另一个。

映射

防火墙 > QoS 映射页面定义的映射设置将用于从 DSCP 标签映射到 802.1p 标签

防火墙 > QoS 映射页面定义的映射设置将用于从 802.1p 标签映射到 DSCP 标签。将显示其他复选框,以允许 802.1p 标记覆盖 DSCP 值***。选择该复选框将断言映射的 802.1p 值会覆盖客户端可能已设置的任何 DSCP 值。这可用于覆盖客户端自己设置的 DSCP CoS 值。

如果将映射设置为 DSCP 和 802.1p 的操作,映射将仅在一个方向进行:如果数据包来自 VLAN 且到达时拥有 802.1p 标签,DSCP 将从 802.1p 标签映射;如果数据包的目标为 VLAN,将从 DSCP 标签映射 802.1p。

相关示例,请参阅下图,其中提供了双向 DSCP 标签操作。

如果 HTTP 通过 192.168.168.100 的 Web 浏览器访问 10.50.165.2 的 Web 服务器,会使内部(负载)数据包和外部(封装 ESP)数据包标签为 DSCP 值 8。如果数据包来自于隧道的另一端,并被传输到 10.50.165.2,它们将使用 DSCP 标签 8。当 10.50.165.2 通过隧道将响应数据包发送回 192.168.168.100(从第一个 SYN/ACK 数据包开始)时,访问规则将使用 DSCP 值 8 标签传输到 192.168.168.100 的响应数据包。

该行为将应用到 DSCP 和 802.1p 标记的四个 QoS 操作设置。

该行为的一个实用性应用是为到达 VPN 区域的流量配置 802.1p 标记规则。虽然不能通过 VPN 发送 802.1 p 标签,但可以从隧道出口对通过 VPN 返回的回复数据包标签 802.1 p。这就要求物理出口接口的 802.1p 标签处于活动状态,且 [区域] > VPN 访问规则拥有“无”以外的 802.1p 标记操作。

确保 802.1p 与您相关的网络设备相兼容,且在适用的 SonicWALL 接口上启用 802.1p 标记后,即可开始配置访问规则来管理 802.1p 标签。

提及下图时,远程站点 1 网络可能具有两个访问规则配置,其配置如下:

 

表 125. 远程站点 1:访问规则配置示例

设置

访问规则 1

访问规则 2

常规选项卡

操作

允许

允许

源区域

LAN

VPN

目标区域

VPN

LAN

服务

VOIP

VOIP

LAN 主要子网

主站点子网

目标

主站点子网

LAN 主要子网

允许的用户

全部

全部

日程

始终打开

始终打开

启用日志

启用

启用

允许分片的数据包

启用

启用

Qos 选项卡

DSCP 标记操作

映射

映射

允许 802.1p 标识覆盖 DSCP 值

启用

启用

802.1p 标记操作

映射

映射

访问规则(管理 LAN>VPN)拥有以下效果:

来自 LAN 主要子网并将通过 VPN 发送至主站点子网VoIP 流量(按照服务群组定义)应针对 DSCP 和 802.1p 标签进行评估。

假设主站点上的防火墙已对返回流量进行 DSCP 标签(CoS = 48),则将在出口对返回流量使用 CoS = 6 的 802.1p 标签。

要检查第二个访问规则的效果(VPN > LAN),可查看主站点配置的访问规则。

 

表 126. 主站点:访问规则配置示例

设置

访问规则 1

访问规则 2

常规选项卡

操作

允许

允许

源区域

LAN

VPN

目标区域

VPN

LAN

服务

VOIP

VOIP

LAN 子网

远程站点 1 子网

目标

远程站点 1 子网

LAN 子网

允许的用户

全部

全部

日程

始终打开

始终打开

启用日志

启用

启用

允许分片的数据包

启用

启用

Qos 选项卡

DSCP 标记操作

映射

映射

允许 802.1p 标识覆盖 DSCP 值

启用

启用

802.1p 标记操作

映射

映射

来自远程站点 1 子网通过 VPN 发往 LAN 区域的 LAN 子网VoIP 流量(按服务群组定义)将命中入站 VoIP 呼叫的访问规则。到达 VPN 区域的流量将不包含任何 802.1p 标签,仅包含 DSCP 标签。