系统管理指南:IP 服务

标记器模块

IPQoS 包括两个标记器模块:dscpmkdlcosmk。本节包含有关使用这两个标记器的信息。通常情况下,应使用 dscpmk,因为 dlcosmk 仅可用于具有 VLAN 设备的 IPQoS 系统。

有关 dscpmk 的技术信息,请参阅 dscpmk(7ipp) 手册页。有关 dlcosmk 的技术信息,请参阅 dlcosmk(7ipp) 手册页。

使用 dscpmk 标记器转发包

标记器将在分类器或计量模块处理了通信流之后接收这些流。标记器将使用转发行为标记通信。此转发行为是在流离开 IPQoS 系统之后要对流执行的操作。要对通信类执行的转发行为在单跳行为 (per-hop behavior, PHB) 中定义。PHB 为通信类指定优先级,指明该类流相对于其他类流的优先级。PHB 仅管理 IPQoS 系统的连续网络中的转发行为。有关 PHB 的更多信息,请参阅单跳行为

包转发是指在网络中将特定类的通信发送到下一个目的地的过程。对于诸如 IPQoS 系统的主机,会将包从主机转发到本地网络流。对于 Diffserv 路由器,会将包从本地网络转发到路由器的下一个跃点。

标记器使用 IPQoS 配置文件中定义的已知转发行为来标记包头中的 DS 字段。此后,IPQoS 系统和后续可识别 Diffserv 的系统便会按照 DS 字段中的指示转发通信,直到更改标记。要指定 PHB,IPQoS 系统应在包头的 DS 字段中标记值。此值称为区分服务代码点 (differentiated service codepoint, DSCP)。Diffserv 体系结构定义的两种转发行为是 EF 和 AF,它们使用不同的 DSCP。有关 DSCP 的概述信息,请参阅DS 代码点

IPQoS 系统读取通信流的 DSCP,并评估此流相对于其他传出通信流的优先级。然后,IPQoS 系统设置所有并发通信流的优先级,并根据优先级将每个流释放到网络中。

Diffserv 路由器接收传出通信流,并读取包头中的 DS 字段。使用 DSCP,路由器可以对并发通信流设置优先级并进行调度。路由器将按照 PHB 指示的优先级转发每个流。请注意,PHB 不能在网络的边界路由器之外应用,除非后续跃点上的可识别 Diffserv 的系统也可识别同一 PHB。

加速转发 (Expedited Forwarding, EF) PHB

加速转发 (Expedited forwarding, EF) 保证具有推荐 EF 代码点 46 (101110) 的包在释放到网络中时得到最佳处理。通常将加速转发比喻为租用线路。确保所有 Diffserv 路由器保证会优先处理具有 46 (101110) 代码点的包,将其路由到其目的地。有关 EF 的技术信息,请参阅 RFC 2598 "An Expedited Forwarding PHB"。

保证转发 (Assured Forwarding, AF) PHB

保证转发 (Assured forwarding, AF) 提供四种可以指定给标记器的不同转发行为类。下表显示了这些类、每个类的三个丢弃优先级以及与每个优先级关联的推荐 DSCP。每个 DSCP 都分别用其 AF 值、十进制值和二进制值表示。

表 37–2 保证转发代码点

 

类 1 

类 2 

类 3 

类 4 

低丢弃优先级

AF11 = 

10 (001010) 

AF21 = 

18 (010010) 

AF31 = 

26 (011010) 

AF41 = 

34 (100010) 

中丢弃优先级

AF12 = 

12 (001100) 

AF22 = 

20 (010100) 

AF32 = 

28 (011100) 

AF42 =  

36 (100100) 

高丢弃优先级

AF13 = 

14 (001110) 

AF23 = 

22 (010110) 

AF33 = 

30 (011110) 

AF43 = 

38 (100110) 

任何可识别 Diffserv 的系统均可将 AF 代码点用作向不同通信类提供区分转发行为的指南。

当这些包到达 Diffserv 路由器时,路由器便会评估包的代码点以及队列中其他通信的 DSCP。然后,路由器会转发或丢弃包,具体取决于可用带宽以及包的 DSCP 所指定的优先级。请注意,以 EF PHB 为标记的包保证比以各种 AF PHB 为标记的包优先使用带宽。

协调网络中所有 IPQoS 系统和 Diffserv 路由器之间的包标记,确保包按预期方式转发。例如,假定网络中的 IPQoS 系统使用 AF21 (010010)、AF13 (001110)、AF43 (100110) 和 EF (101110) 代码点标记包。这样,便需要将 AF21、AF13、AF43 和 EF DSCP 添加到 Diffserv 路由器上的相应文件中。

有关 AF 代码点表的技术说明,请参阅 RFC 2597。路由器制造商 Cisco Systems 和 Juniper Networks 在其 Web 站点上提供了有关设置 AF PHB 的详细信息。您可以使用此信息来为 IPQoS 系统和路由器定义 AF PHB。此外,路由器制造商的文档包含在其设备上设置 DS 代码点的说明。

为标记器提供 DSCP

DSCP 的长度为 6 位。DS 字段的长度为 1 字节。定义 DSCP 时,标记器将使用 DS 代码点来标记包头的前 6 个重要的位。其余的 2 个次要的位将不会使用。

要定义 DSCP,您可以在标记器操作语句中使用以下参数:


 dscp_map{0-63:DS_codepoint}

dscp_map 参数是包含 64 个元素的数组,此数组将使用 (DSCP) 值进行填充。dscp_map 用于将传入 DSCP 映射到 dscpmk 标记器要应用的传出 DSCP。

必须采用十进制表示法为 dscp_map 指定 DSCP 值。例如,必须将 EF 代码点 101110 转换为十进制值 46,结果为 dscp_map{0-63:46}。对于 AF 代码点,必须将表 37–2 中所示的各种代码点转换为十进制表示法,以便与 dscp_map 一起使用。

dlcosmk 标记器用于 VLAN 设备

dlcosmk 标记器模块在数据报的 MAC 头中标记转发行为。只能在具有 VLAN 接口的 IPQoS 系统上使用 dlcosmk

dlcosmk 会向 MAC 头中添加称为 VLAN 标记的四字节。VLAN 标记包括由 IEEE 801.D 标准定义的 3 位用户优先级值。了解 VLAN 的可识别 Diffserv 的交换机可以读取数据报中的用户优先级字段。801.D 用户优先级值实现服务类 (class-of-service, CoS) 标记,这些标记为商业交换机所熟知和了解。

您可以通过定义下表中列出的服务类标记,在 dlcosmk 标记器操作中使用用户优先级值。

表 37–3 801.D 用户优先级值

服务类 

定义 

尽力服务 

后台 

备用 

出色服务 

受控负载 

少于 100 ms 延迟的视频 

少于 10 ms 延迟的视频 

网络控制 

有关 dlcosmk 的更多信息,请参阅 dlcosmk(7ipp) 手册页。

具有 VLAN 设备的系统的 IPQoS 配置

本节介绍一个简单网络方案,说明如何在具有 VLAN 设备的系统上实现 IPQoS。此方案包括两个由交换机连接的 IPQoS 系统:machine1machine2machine1 上的 VLAN 设备的 IP 地址为 10.10.8.1machine2 上的 VLAN 设备的 IP 地址为 10.10.8.3

以下用于 machine1 的 IPQoS 配置文件说明了标记通过交换机到 machine2 的通信的简单解决方案。


示例 37–2 具有 VLAN 设备的系统的 IPQoS 配置文件

fmt_version 1.0
action {
        module ipgpc
	      name ipgpc.classify

        filter {
                name myfilter2
                daddr 10.10.8.3
                class myclass
        }

        class {
                name myclass
                next_action mark4
        }
}

action {
        name mark4
        module dlcosmk
        params {
                cos 4
                next_action continue
		global_stats true
        }
}

在此配置中,所有来自 machine1 并且目标为 machine2 上的 VLAN 设备的通信都将被传送到 dlcosmk 标记器。mark4 标记器操作指示 dlcosmk 向 CoS 为 4 的 myclass 类数据报中添加 VLAN 标记。用户优先级值 4 指示两台计算机之间的交换机应该为来自 machine1myclass 通信流提供受控负载转发。