跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:IP 服务 Oracle Solaris 10 1/13 Information Library (简体中文) |
1. Oracle Solaris TCP/IP 协议套件(概述)
5. 配置 TCP/IP 网络服务和 IPv4 寻址(任务)
25. Oracle Solaris 中的 IP 过滤器(概述)
第 6 部分IP 服务质量 (IP Quality of Service, IPQoS)
本节通过说明如何为高级 Web 服务器创建配置来介绍 IPQoS 配置文件。同时,本节还说明如何在其他配置文件中为托管个人 Web 站点的服务器配置完全不同的服务级别。这两台服务器是图 30-4 中所示网络示例的一部分。
以下配置文件定义了 Goldweb 服务器的 IPQoS 活动。此服务器可托管已经购买了高级 SLA 的公司 Goldco 的 Web 站点。
示例 31-1 高级 Web 服务器的 IPQoS 配置文件样例
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } class { name goldweb next_action markAF11 enable_stats FALSE } class { name video next_action markEF enable_stats FALSE } filter { name webout sport 80 direction LOCAL_OUT class goldweb } filter { name videoout sport videosrv direction LOCAL_OUT class video } } action { module dscpmk name markAF11 params { global_stats FALSE dscp_map{0-63:10} next_action continue } } action { module dscpmk name markEF params { global_stats TRUE dscp_map{0-63:46} next_action acct } } action { module flowacct name acct params { enable_stats TRUE timer 10000 timeout 10000 max_limit 2048 } }
以下配置文件定义了 Userweb 的 IPQoS 活动。此服务器托管具有低价位 SLA 或尽力服务 SLA 的个人 Web 站点。此服务级别保证 IPQoS 系统在处理来自更昂贵 SLA 的客户的通信之后,为“尽力服务”客户提供最佳的服务。
示例 31-2 尽力服务 Web 服务器的配置样例
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } class { name Userweb next_action markAF12 enable_stats FALSE } filter { name webout sport 80 direction LOCAL_OUT class Userweb } } action { module dscpmk name markAF12 params { global_stats FALSE dscp_map{0-63:12} next_action continue } }
您可以在任何最易于维护的目录中创建第一个 IPQoS 配置文件。本章中的任务使用目录 /var/ipqos 作为 IPQoS 配置文件的位置。下面的过程将构建示例 31-1 中介绍的 IPQoS 配置文件的初始段。
每个 IPQoS 配置文件都必须以版本号 fmt_version 1.0 开头,作为其第一个未注释的行。
此初始操作将开始生成组成 IPQoS 配置文件的 action 语句树。例如,/var/ipqos/Goldweb.qos 文件以初始 action 语句开头来调用 ipgpc 分类器。
fmt_version 1.0 action { module ipgpc name ipgpc.classify
开始启用 IPQoS 配置文件。
开始操作语句。
将 ipgpc 分类器配置为配置文件中的第一个操作。
定义分类器 action 语句的名称,此名称必须始终为 ipgpc.classify。
有关 action 语句的详细语法信息,请参阅action 语句 和 ipqosconf(1M) 手册页。
params { global_stats TRUE }
在 ipgpc.classify 语句中使用参数 global_stats TRUE 可收集此操作的统计信息。当在类子句定义中指定了 enable_stats TRUE 时,global_stats TRUE 还允许按类收集统计信息。
打开统计功能会影响性能。您可能需要收集有关新 IPQoS 配置文件的统计信息,以检验 IPQoS 是否正常运行。随后,可以通过将 global_stats 的参数更改为 FALSE 来关闭统计信息收集。
但是,全局统计信息是可以在 params 子句中定义的一种参数类型。有关 params 子句的语法信息和其他详细信息,请参阅params 子句和 ipqosconf(1M) 手册页。
class { name goldweb next_action markAF11 enable_stats FALSE }
创建类 goldweb 以标识要送达 Goldweb 服务器的通信。
指示 ipgpc 模块将 goldweb 类的包传递到 markAF11 操作语句。markAF11 操作语句将调用 dscpmk 标记器。
用于提取 goldweb 类的统计信息。但是,由于 enable_stats 的值为 FALSE,因此不会打开此类的统计信息。
有关 class 子句语法的详细信息,请参见class 子句 和 ipqosconf(1M) 手册页。
class { name video next_action markEF enable_stats FALSE }
创建类 video 以标识从 Goldweb 服务器传出的流视频通信。
指示 ipgpc 模块在 ipgpc 完成处理之后,将 video 类的包传递到 markEF 语句。markEF 语句将调用 dscpmk 标记器。
用于针对 video 类启用统计信息收集。但是,由于 enable_stats 的值为 FALSE,因此不会针对此类打开统计信息收集。
另请参见
要为您刚创建的类定义过滤器,请参阅如何在 IPQoS 配置文件中定义过滤器。
要为配置文件创建另一个类子句,请参阅如何创建 IPQoS 配置文件并定义通信类。
以下过程说明如何在 IPQoS 配置文件中为类定义过滤器。
开始之前
此过程假设您已经开始创建文件并已定义类。这些步骤将继续构建在中如何创建 IPQoS 配置文件并定义通信类创建的 /var/ipqos/Goldweb.qos 文件。
例如,在启用了 IPQoS 的服务器 Goldweb 上,应从 /var/ipqos/Goldweb.qos 中的以下 class 子句之后开始:
class { name video next_action markEF enable_stats FALSE }
filter { name webout sport 80 direction LOCAL_OUT class goldweb }
为过滤器提供名称 webout。
选择源端口 80 传出的通信,此端口是众所周知的用于 HTTP (Web) 通信的端口。
进一步选择从本地系统传出的通信。
标识过滤器所属的类,在此实例中为类 goldweb。
有关 IPQoS 配置文件中 filter 子句的语法信息和其他详细信息,请参阅filter 子句。
filter { name videoout sport videosrv direction LOCAL_OUT class video }
为过滤器提供名称 videoout。
选择源端口 videosrv 传出的通信,此端口是先前针对此系统上的流视频应用程序定义的端口。
进一步选择从本地系统传出的通信。
标识过滤器所属的类,在此实例中为类 video。
另请参见
要定义标记器模块的转发行为,请参阅如何在 IPQoS 配置文件中定义通信转发。
要定义计量模块的流控制参数,请参阅如何在 IPQoS 配置文件中配置流控制。
要激活 IPQoS 配置文件,请参阅如何将新配置应用于 IPQoS 内核模块。
要定义其他过滤器,请参阅如何在 IPQoS 配置文件中定义过滤器。
要从应用程序中为通信流创建类,请参阅如何为应用服务器配置 IPQoS 配置文件。
以下过程说明如何通过将类的单跳行为添加到 IPQoS 配置文件来定义通信转发。
开始之前
此过程假设您具有已定义类和过滤器的 IPQoS 配置文件。这些步骤将继续构建示例 31-1 中的 /var/ipqos/Goldweb.qos 文件。
例如,在启用了 IPQoS 的服务器 Goldweb 上,应从 /var/ipqos/Goldweb.qos 中的以下 filter 子句之后开始:
filter { name videoout sport videosrv direction LOCAL_OUT class video } }
请注意,此 filter 子句位于 ipgpc 分类器 action 语句的结尾。因此,需要使用闭花括号来终止过滤器,并使用第二个闭花括号来终止 action 语句。
action { module dscpmk name markAF11
调用标记器模块 dscpmk。
为 action 语句提供名称 markAF11。
先前定义的类 goldweb 包括 next_action markAF11 语句。分类器结束处理之后,此语句将通信流发送到 markAF11 操作语句。
params { global_stats FALSE dscp_map{0-63:10} next_action continue } }
对 markAF11 标记器 action 语句启用统计信息收集。但是,由于 enable_stats 的值为 FALSE,因此不会收集统计信息。
将 DSCP 10 指定给通信类 goldweb 的包头,标记器当前正在处理此通信类。
指示不需要对通信类 goldweb 的包进行进一步处理,并指示可以将这些包返回到网络流中。
DSCP 为 10 指示标记器将 dscp 映射中的所有项都设置为十进制值 10(二进制值 001010)。此代码点指示 goldweb 通信类的包遵守 AF11 单跳行为。AF11 保证 DSCP 为 10 的所有包都拥有低丢弃率、高优先级的服务。因此,对于 Goldweb 上高级客户的传出通信,将提供可用于保证转发 (Assured Forwarding, AF) PHB 的最高优先级。有关可能的 AF DSCP 表的信息,请参阅表 34-2。
action { module dscpmk name markEF
调用标记器模块 dscpmk。
为 action 语句提供名称 markEF。
params { global_stats TRUE dscp_map{0-63:46} next_action acct } }
用于针对类 video 启用统计信息收集,此类将选择流视频包。
将 DSCP 46 指定给通信类 video 的包头,标记器当前正在处理此通信类。
指示 dscpmk 模块在 dscpmk 完成处理之后,将类 video 的包传递到 acct action 语句。acct action 语句将调用 flowacct 模块。
在 DS 字段中,DSCP 为 46 指示 dscpmk 模块将 dscp 映射中的所有项都设置为十进制值 46(二进制值 101110)。此代码点指示 video 通信类的包受加速转发 (Expedited Forwarding, EF) 单跳行为的限制。
注 - 建议用于 EF 的代码点为 46(二进制值 101110)。其他 DSCP 将为包指定 AF PHB。
EF PHB 保证 IPQoS 系统和可识别区分服务的系统为 DSCP 为 46 的包提供最高优先级。流应用程序需要最高优先级的服务,这是在 QoS 策略中为流应用程序指定 EF PHB 的基本原因。有关加速转发 PHB 的更多详细信息,请参阅加速转发 (Expedited Forwarding, EF) PHB。
有关更多信息,请参阅如何在启用了 IPQoS 的网络中配置路由器。
另请参见
要开始收集通信流上的流记帐统计信息,请参阅如何在 IPQoS 配置文件中为类启用记帐。
要定义标记器模块的转发行为,请参阅如何在 IPQoS 配置文件中定义通信转发。
要定义计量模块的流控制参数,请参阅如何在 IPQoS 配置文件中配置流控制。
要激活 IPQoS 配置文件,请参阅如何将新配置应用于 IPQoS 内核模块。
要定义其他过滤器,请参阅如何在 IPQoS 配置文件中定义过滤器。
要从应用程序中为通信流创建类,请参阅如何为应用服务器配置 IPQoS 配置文件。
以下过程说明如何在 IPQoS 配置文件中对通信类启用记帐。此过程说明了如何为 video 类定义流记帐,有关该类的信息在如何创建 IPQoS 配置文件并定义通信类中进行了介绍。此类将选择流视频通信,此通信必须作为高级客户的 SLA 的一部分进行记帐。
开始之前
此过程假设您具有已定义类、过滤器、计量操作(如果适用)以及标记操作(如果适用)的 IPQoS 配置文件。这些步骤将继续构建示例 31-1 中的 /var/ipqos/Goldweb.qos 文件。
例如,在启用了 IPQoS 的服务器 Goldweb 上,应从 /var/ipqos/Goldweb.qos 中的以下 markEF action 语句之后开始。
action { module dscpmk name markEF params { global_stats TRUE dscp_map{0-63:46} next_action acct } }
action { module flowacct name acct
调用流记帐模块 flowacct。
为 action 语句提供名称 acct
params { global_stats TRUE timer 10000 timeout 10000 max_limit 2048 next_action continue } }
用于针对类 video 启用统计信息收集,此类将选择流视频包。
指定扫描流表以查找超时流的时间间隔(以毫秒为单位)。在此参数中,此时间间隔为 10000 毫秒。
指定最小时间间隔超时值。如果在超时时间间隔内未发现流的包,则表示流“超时”。在此参数中,包将在 10000 毫秒之后超时。
在流表中针对该操作实例设置活动流记录的最大数目。
指示不需要对通信类 video 的包进行进一步处理,并指示可以将这些包返回到网络流中。
另请参见
要在路由器上配置单跳行为,请参阅如何在启用了 IPQoS 的网络中配置路由器。
要激活 IPQoS 配置文件,请参阅如何将新配置应用于 IPQoS 内核模块。
要从应用程序中为通信流创建类,请参阅如何为应用服务器配置 IPQoS 配置文件。
尽力服务 Web 服务器的 IPQoS 配置文件与高级 Web 服务器的 IPQoS 配置文件稍有不同。以下过程以示例 31-2 中的配置文件为例。
fmt_vesion 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE }
/var/ipqos/userweb.qos 文件必须以局部 action 语句开头以调用 ipgpc 分类器。此外,action 语句还包含 params 子句,用于启用统计信息收集。有关 action 语句的说明,请参见如何创建 IPQoS 配置文件并定义通信类。
class { name userweb next_action markAF12 enable_stats FALSE }
创建名为 userweb 的类以转发来自用户的 Web 通信。
指示 ipgpc 模块在 ipgpc 完成处理之后,将类 userweb 的包传递到 markAF12 action 语句。markAF12 action 语句将调用 dscpmk 标记器。
用于针对 userweb 类启用统计信息收集。但是,由于 enable_stats 的值为 FALSE,因此不会针对此类收集统计信息。
有关此 class 子句任务的解释,请参见如何创建 IPQoS 配置文件并定义通信类。
filter { name webout sport 80 direction LOCAL_OUT class userweb } }
为过滤器提供名称 webout。
选择源端口 80 传出的通信,此端口是众所周知的用于 HTTP (Web) 通信的端口。
进一步选择从本地系统传出的通信。
标识过滤器所属的类,在此实例中为类 userweb。
有关此 filter 子句任务的说明,请参见如何在 IPQoS 配置文件中定义过滤器。
action { module dscpmk name markAF12
调用标记器模块 dscpmk。
为 action 语句提供名称 markAF12。
先前定义的类 userweb 包括 next_action markAF12 语句。分类器结束处理之后,此语句将通信流发送到 markAF12 action 语句。
params { global_stats FALSE dscp_map{0-63:12} next_action continue } }
对 markAF12 标记器 action 语句启用统计信息收集。但是,由于 enable_stats 的值为 FALSE,因此不会收集统计信息。
将 DSCP 12 指定给通信类 userweb 的包头,标记器当前正在处理此通信类。
指示不需要对通信类 userweb 的包进行进一步处理,并指示可以将这些包返回到网络流中。
DSCP 12 指示标记器将 dscp 映射中的所有项都设置为十进制值 12(二进制值 001100)。此代码点指示 userweb 通信类的包遵守 AF12 单跳行为。AF12 保证 DS 字段中的 DSCP 为 12 的所有包都拥有中丢弃率、高优先级的服务。
另请参见
要从应用程序中为通信流添加类和其他配置,请参阅如何为应用服务器配置 IPQoS 配置文件。
要在路由器上配置单跳行为,请参阅如何在启用了 IPQoS 的网络中配置路由器。
要激活 IPQoS 配置文件,请参阅如何将新配置应用于 IPQoS 内核模块。