系统管理指南:IP 服务

第 32 章 IPQoS 介绍(概述)

通过 IP 服务质量 (IP Quality of Service, IPQoS),您可以控制、收集记帐统计信息并设置其优先级。还可以借助 IPQoS 为网络上的用户提供始终如一的服务水平。同时也可以管理通信来避免网络拥塞。

本章包含以下主题:

IPQoS 基本知识

IPQoS 实现了区分服务 (Differentiated Service, Diffserv) 体系结构,此体系结构由 Internet 工程任务组 (Internet Engineering Task Force, IETF) 的区分服务工作组定义。在 Oracle Solaris : OS 中,IPQoS 在 TCP/IP 协议栈的 IP 级别上实现。

何为区分服务?

通过启用 IPQoS,您可以为选定的客户和应用程序提供不同级别的网络服务。这些不同级别的服务统称为区分服务。您可以根据自己公司为客户提供的服务级别结构来向客户提供区分服务。还可以基于为网络上的应用程序或用户设置的优先级来提供区分服务。

提供服务质量涉及以下活动:

IPQoS 功能

IPQoS 具有以下功能:

何处获取有关服务质量的理论和实践的更多信息

您可以从印刷资料和联机资料中找到有关区分服务和服务质量的信息。

有关服务质量的书籍

有关服务质量的理论和实践的更多信息,请参阅以下书籍:

有关服务质量的互联网信息文档和标准 (Requests for Comment, RFC)

IPQoS 遵循以下 RFC 和 Internet 草案中介绍的规范:

提供服务质量信息的 Web 站点

IETF 的区分服务工作组维护着一个 Web 站点,该站点位于 http://www.ietf.org/html.charters/diffserv-charter.html,其中包含指向 Diffserv Internet 草案的链接。

路由器制造商(例如 Cisco Systems 和 Juniper Networks)的公司 Web 站点,这些站点介绍了如何在其产品中实现区分服务的信息。

IPQoS 手册页

IPQoS 文档包含以下手册页:

使用 IPQoS 提供服务质量

IPQoS 功能使得 Internet 服务提供商 (Internet service provider, ISP) 和应用程序服务提供商 (application service provider, ASP) 能够为客户提供不同级别的网络服务。利用这些功能,公司和教育机构可以为内部组织或主要应用程序设置服务优先级。

实现服务级别协议

如果您的组织是一个 ISP 或 ASP,则可以基于贵公司提供给客户的服务级别协议 (service-level agreement, SLA) 来配置 IPQoS。在 SLA 中,服务提供商保证客户能够获得基于价格结构的特定网络服务级别。例如,高价的 SLA 可以确保客户每天 24 小时都能获得最高优先级的所有类型网络通信。相反,中等价位的 SLA 只能保证客户在上班时间针对电子邮件的收发获得较高的优先级。其他所有通信在一天 24 小时内应具有中等优先级。

保证单个组织的服务质量

如果贵组织是一个企业或机构,则还可以为您的网络提供服务质量功能。您可以保证特定组或特定应用程序的通信能够获得较高或较低程度的服务。

服务质量策略介绍

您可以通过定义服务质量 (quality-of-service, QoS) 策略来实现服务质量。QoS 策略定义各种网络属性,例如客户或应用程序的优先级以及处理不同通信类别的操作。可以在 IPQoS 配置文件中实现组织的 QoS 策略。此文件可以配置驻留在 Oracle Solaris : 内核中的 IPQoS 模块。应用 IPQoS 策略的主机被视为启用了 IPQoS 的系统

QoS 策略通常定义以下内容:

当包传送到网络时,启用了 IPQoS 的系统将对包头进行评估。IPQoS 系统执行的操作由 QoS 策略确定。

设计 QoS 策略的任务在规划服务质量策略中进行介绍。

使用 IPQoS 提高网络效率

IPQoS 包含的功能可帮助您在实现服务质量的同时提高网络性能。在扩展计算机网络的同时,需要加强管理因用户和功能更强大的处理器的数量增加而产生的网络通信。过度使用网络所产生的一些症状包括丢失数据和通信拥塞。这两种症状都将导致响应速度降低。

过去,系统管理员通过增加带宽来处理网络通信问题。通常,链路上通信级别变化很大。使用 IPQoS,您可以管理现有网络上的通信并帮助评估哪些位置需要进行扩展以及是否必须进行此扩展。

例如,对于一个企业或机构,必须保持高效的网络以避免出现通信瓶颈。还必须确保某个组或应用程序占用的带宽不能多于为它分配的带宽。对于 ISP 或 ASP,您必须管理网络性能以确保客户获得他们付款级别的网络服务。

带宽如何影响网络通信

您可以使用 IPQoS 控制网络带宽,以及可由充分利用的网络链路或设备传输的最大数据量。QoS 策略应设置带宽的使用优先级,以便为客户或用户提供服务质量。使用 IPQoS 计量模块,您可以度量并控制启用了 IPQoS 的主机上各种通信类之间的带宽分配。

在有效管理网络上的通信之前,您必须回答以下有关带宽使用的问题:

使用服务类设置通信的优先级

要实现服务质量,需要分析网络通信以确定要将通信分为哪几个分组。然后,将各个分组归入具有单独特征和单独优先级的服务类中。这些类构成了设置组织 QoS 策略所依据的基本类别。服务类表示想要控制的通信组。

例如,提供商可以根据变化的价格结构提供白金级、黄金级、白银级和青铜级服务。白金 SLA 可以保证以 ISP 为客户托管的 Web 站点为目标的传入通信获得最高优先级。因此,客户 Web 站点的传入通信可以是一个通信类。

对于企业来说,您可以创建基于部门需求的服务类。或者,可以创建基于网络通信中特定应用程序的优势的类。以下是某企业的一些通信类的示例:

区分服务模型

IPQoS 包含以下模块,这些模块是 RFC 2475 中定义的区分服务 (Differentiated Service, Diffserv) 体系结构的一部分:

IPQoS 在 Diffserv 模型中添加了以下增强功能:

本节介绍由 IPQoS 使用的 Diffserv 模块。要设置 QoS 策略,您需要了解这些模块及其名称和用法。有关各个模块的详细信息,请参阅IPQoS 体系结构和 Diffserv 模型

分类器 (ipgpc) 概述

在 Diffserv 模型中,分类器从网络通信流中选择包。通信流由一组在以下 IP 数据包头字段中具有相同信息的包组成:

在 IPQoS 中,这些字段称为 5 元组

IPQoS 分类器模块名为 ipgpcipgpc 分类器将通信流整理到基于在 IPQoS 配置文件中配置的特征的各个类中。

有关 ipgpc 的详细信息,请参阅分类器模块

IPQoS 类

是一组具有类似特征的网络流。例如,ISP 可以将类定义为代表为客户提供的不同服务级别。ASP 可以将提供不同级别服务的 SLA 定义为各种应用程序。对于 ASP 的 QoS 策略,类可能包含送达特殊目标 IP 地址的传出 FTP 通信。还可以将公司外部 Web 站点的传出通信定义为一个类。

将通信分类是规划 QoS 策略的重要组成部分。使用 ipqosconf 实用程序创建类的过程实际上就是配置 ipgpc 分类器的过程。

有关如何定义类的信息,请参见如何定义 QoS 策略类

IPQoS 过滤器

过滤器是包含称为选定器参数的规则集。每个过滤器都必须指向一个类。IPQoS 根据每个过滤器的选定器来匹配包,从而确定此包是否属于该过滤器的类。您可以使用各种选定器过滤包,例如,IPQoS 5 元组和其他常用参数:

例如,简单过滤器可能包含值为 80 的目标端口。于是 ipgpc 分类器将选择所有送达目标端口 80 (HTTP) 的包并按照 QoS 策略中的指示处理这些包。

有关创建过滤器的信息,请参见如何在 QoS 策略中定义过滤器

计量器(tokenmttswtclmt)概述

在 Diffserv 模型中,计量器按类跟踪通信流的传输速率。计量器通过评估流的实际速率与配置的速率的符合程度来确定相应的结果。计量器会根据通信流的结果来选择后续操作。后续操作可能包括将包发送到其他操作或将包返回到网络而不进行进一步处理。

IPQoS 计量器确定网络流是否符合在 QoS 策略中为其所属的类定义的传输速率。IPQoS 包括两种计量模块:

这两种计量模块可识别三种结果: 红色、黄色和绿色。在参数 red_action_nameyellow_action_namegreen_action_name 中定义针对每种结果所采取的操作。

此外,还可以将 tokenmt 配置为可识别颜色。可识别颜色的计量实例使用包大小、DSCP、通信率和配置的参数来确定结果。计量器使用 DSCP 将包的结果映射到绿色、黄色或红色。

有关为 IPQoS 计量器定义参数的信息,请参阅如何规划流控制

标记器(dscpmkdlcosmk)概述

在 Diffserv 模型中,标记器使用反映转发行为的值来标记包。标记是将一个值放入包头以指示如何将此包转发到网络的过程。IPQoS 包含两种标记器模块:

有关针对 QoS 策略实现标记器策略的信息,请参见如何规划转发行为

流记帐 (flowacct) 概述

IPQoS 将 flowacct 记帐模块添加到 Diffserv 模型中。您可以使用 flowacct 来收集有关通信流的统计信息,并根据客户的 SLA 为客户开帐单。流记帐对容量规划和系统监视也非常有用。

flowacct 模块可与 acctadm 命令一起使用来创建记帐日志文件。基本日志包括 IPQoS 5 元组和两个其他属性,如下所示:

您还可以收集有关其他属性的统计信息,如记录有关通信流量的信息,以及 flowacct(7ipp) 和 acctadm(1M) 手册页中所述。

有关规划流记帐策略的信息,请参见如何规划流记帐

通信如何流过 IPQoS 模块

下图显示传入通信可能用以经过某些 IPQoS 模块的路径。

图 32–1 通信流经过 Diffserv 模型的 IPQoS 实现

图形(表示流的图表)后面的文字。

此图展示了启用 IPQoS 的计算机上常见的通信流顺序:

  1. 分类器从包流中选择所有符合系统 QoS 策略中过滤条件的包。

  2. 然后针对下一步要采取的操作评估选定的包。

  3. 分类器将所有不需要流控制的通信发送到标记器。

  4. 将流控制的通信发送到计量器。

  5. 计量器强制执行已配置的速率。然后,计量器为流控制的包指定一个通信符合值。

  6. 然后评估流控制的包以确定是否所有包都需要记帐。

  7. 计量器将所有不需要流记帐的通信发送到标记器。

  8. 流记帐模块收集有关已接收包的统计信息。然后,此模块将包传送到标记器。

  9. 标记器为包头指定一个 DS 代码点。此 DSCP 指示可识别 Diffserv 的系统必须应用于包的单跳行为。

启用了 IPQoS 的网络上的通信转发

本节介绍在启用了 IPQoS 的网络上转发包所涉及的元素。启用了 IPQoS 的系统会处理网络流上将系统 IP 地址作为目标地址的所有包。之后,此 IPQoS 系统会对包应用其 QoS 策略以建立区分服务。

DS 代码点

DS 代码点 (DS codepoint, DSCP) 在包头中定义任何可识别 Diffserv 的系统应针对已标记包采取的操作。Diffserv 体系结构为所要使用的启用了 IPQoS 的系统和 Diffserv 路由器定义了一组 DS 代码点。Diffserv 体系结构还定义了一组称为转发行为的操作,这些操作与 DSCP 相对应。启用了 IPQoS 的系统使用 DSCP 标记包头中 DS 字段的优先位。当路由器收到带有 DSCP 值的包时,便会应用与此 DSCP 关联的转发行为。然后,会将此包释放到网络。


注 –

dlcosmk 标记器不使用 DSCP。相反, dlcosmk 使用 CoS 值来标记以太网帧标题。如果计划在使用 VLAN 设备的网络上配置 IPQoS,请参阅标记器模块


单跳行为

在 Diffserv 术语中,指定给 DSCP 的转发行为称为单跳行为 (per-hop behavior, PHB)。PHB 定义已标记的包获得的相对于可识别 Diffserv 的系统上其他通信的转发优先级。此优先级最终确定启用了 IPQoS 的系统或 Diffserv 路由器是转发还是丢弃已标记的包。对于转发的包,此包在到达目的地的途中遇到的每个 Diffserv 路由器都应用相同的 PHB。但也有例外的情况,那就是其他 Diffserv 系统更改了 DSCP。有关 PHB 的更多信息,请参阅使用 dscpmk 标记器转发包

PHB 的目标是为邻近网络上的通信类提供指定量的网络资源。您可以通过 QoS 策略达成此目标。定义 DSCP,以指示当通信流离开启用了 IPQoS 的系统时通信类的优先级。优先级的范围可以从高优先级/低丢弃率到低优先级/高丢弃率。

例如,您的 QoS 策略可以为一个通信类指定一个保证低丢弃 PHB 的 DSCP。然后,此通信类从所有可识别 Diffserv 的路由器中接收一个低丢弃优先级 PHB,这可保证此类包的带宽。您可以向 QoS 策略中添加可为其他通信类指定不同优先级的其他 DSCP。Diffserv 系统将根据包的 DSCP 指示的优先级,为优先级较低的包提供带宽。

IPQoS 支持两种类型的转发行为:加速转发和保证转发,这两种行为在 Diffserv 体系结构中定义。

加速转发

加速转发 (expedited forwarding, EF) 单跳行为可确保所有带有与 EF 相关的 DSCP 的通信类都被赋予最高优先级。带有 EF DSCP 的通信无需排队。EF 具有低丢失、低延迟和低抖动等特征。建议的 EF DSCP 为 101110。标记为 101110 的包在通过可识别 Diffserv 的网络、路由器一直到目的地的途中享有低丢弃优先级。向享有高价 SLA 的客户或应用程序指定优先级时,使用 EF DSCP。

保证转发

保证转发 (assured forwarding, AF) 单跳行为提供了四种不同的转发类,您可以将这些类指定给包。每种转发类都提供三种丢弃优先级,如表 37–2 中所示。

各种 AF 代码点都提供为客户和应用程序指定不同服务级别的能力。对于 QoS 策略,可以在规划该策略时设置网络上通信和服务的优先级。然后向具有优先级的通信指定不同的 AF 级别。

Diffserv 环境中的包转发

下图显示了某公司内联网的一部分,该环境局部启用了 Diffserv。在此方案中,网络 10.10.0.010.14.0.0 上的所有主机都启用了 IPQoS,并且这两个网络上的本地路由器均可识别 Diffserv。但是,没有针对 Diffserv 配置中间网络。

图 32–2 跨越可识别 Diffserv 的网络跃点的包转发

图形(表示流的图表)后面的文字

下面的步骤将跟踪此图中显示的包的流。这些步骤开始于源自主机 ipqos1 的包进程。然后,这些步骤连续通过若干跃点,一直到达主机 ipqos2

  1. ipqos1 上的用户通过运行 ftp 命令来访问相隔三个跃点的主机 ipqos2

  2. ipqos1 将其 QoS 策略应用于产生的包流。接着,ipqos1 成功地对 ftp 通信进行分类。

    系统管理员为所有源自本地网络 10.10.0.0 的传出 ftp 通信创建一个类。ftp 类的通信指定有 AF22 单跳行为: 二类,中等丢弃优先级。为 ftp 类配置通信流速率 2Mb/sec。

  3. ipqos-1 计量 ftp 流来确定此流是否超出确定的速率 2 Mbit/sec。

  4. ipqos1 上的标记器使用 010100 DSCP(与 AF22 PHB 对应)标记传出 ftp 包中的 DS 字段。

  5. 路由器 diffrouter1 接收 ftp 包。然后,diffrouter1 检查 DSCP。如果 diffrouter1 发生拥塞,将丢弃标记有 AF22 的包。

  6. ftp 通信将根据在 diffrouter1 的文件中为 AF22 配置的单跳行为转发到协议中的下一个跃点。

  7. ftp 通信遍历网络 10.12.0.0,一直到达不能识别 Diffserv 的 genrouter。这样,此通信便可获得“尽力服务”转发行为。

  8. genrouterftp 通信传送到网络 10.13.0.0,其中通信由 diffrouter2 接收。

  9. diffrouter2 可以识别 Diffserv。因此,此路由器根据路由器策略中为 AF22 包定义的 PHB 将 ftp 包转发到网络。

  10. ipqos2 接收 ftp 通信。然后,ipqos2 提示 ipqos1 上的用户输入用户名和口令。