系统管理指南:IP 服务

IPQoS 配置文件

本节包含有关 IPQoS 配置文件各部分的完整详细信息。IPQoS 引导时激活的策略存储在文件 /etc/inet/ipqosinit.conf 中。尽管您可以编辑此文件,但是对于新 IPQoS 系统而言,最佳做法是创建具有不同名称的配置文件。有关应用和调试 IPQoS 配置的任务,请参见第 34 章

有关 IPQoS 配置文件的语法,请参见示例 37–3。此示例使用以下约定:


示例 37–3 IPQoS 配置文件的语法

file_format_version ::= fmt_version version

action_clause ::= action {
     name action-name
     module module-name
     params-clause |  ""
     cf-clauses
}
action_name ::= string
module_name ::= ipgpc | dlcosmk | dscpmk | tswtclmt | tokenmt | flowacct 

params_clause ::= params { 
     parameters
     params-stats |   ""
     }
parameters ::=    prm-name-value parameters |  ""
prm_name_value ::= param-name param-value

params_stats ::= global-stats boolean

cf_clauses ::= class-clause cf-clauses |
               filter-clause cf-clauses | ""

class_clause ::= class {
     name class-name
     next_action next-action-name
     class-stats | ""
                 }
class_name  ::= string
next_action_name  ::= string
class_stats ::= enable_stats boolean
boolean ::= TRUE | FALSE

filter_clause ::= filter {
                name filter-name
                class class–name
                parameters
                }
filter_name ::= string

剩余部分介绍 IPQoS 配置文件的各个主要部分。

action 语句

您可以使用 action 语句来调用IPQoS 体系结构和 Diffserv 模型中介绍的各种 IPQoS 模块。

当您创建 IPQoS 配置文件时,必须始终以版本号开始。然后,您必须添加以下 action 语句来调用分类器:


fmt_version 1.0

action {
    module ipgpc
    name ipgpc.classify
}

在分类器 action 语句后面跟有 params 子句或 class 子句。

对于所有其他 action 语句,请使用以下语法:

action {
name action-name
module module-name
params-clause | ""
cf-clauses
}
name action_name

为操作指定名称。

module module_name

标识要调用的 IPQoS 模块,此模块必须为表 37–5 中的模块之一。

params_clause

可以为要处理的分类器参数,例如全局统计信息或者要处理的下一个操作。

cf_clauses

一组零或者更多的 class 子句或 filter 子句。

模块定义

模块定义指示哪个模块要处理 action 语句中的参数。IPQoS 配置文件可以包括以下模块。

表 37–5 IPQoS 模块

模块名称 

定义 

ipgpc

IP 分类器 

dscpmk

用于在 IP 包中创建 DSCP 的标记器 

dlcosmk

用于 VLAN 设备的标记器 

tokenmt

令牌桶计量器 

tswtclmt

时间滑动窗口计量器 

flowacct

流记帐模块 

class 子句

您可以为每个通信类定义一个 class 子句。

可以使用以下语法定义 IPQoS 配置中的其余类:


class {
     
      name class-name
      next_action next-action-name
}      

要针对特定类启用统计信息收集,必须先在 ipgpc.classify action 语句中启用全局统计信息。有关更多信息,请参阅action 语句

当需要针对某一类打开统计信息收集时,请使用 enable_stats TRUE 语句。如果不需要收集类的统计信息,则可以指定 enable_stats FALSE。或者,可以删除 enable_stats 语句。

未专门定义的启用了 IPQoS 的网络中的通信将归入缺省类中。

filter 子句

过滤器由多个将通信流分类的选定器构成。这些选定器专门定义应用于在类子句中创建的类的通信的条件。如果包与最高优先级的过滤器的所有选定器相匹配,则此包被视为此过滤器类的成员。有关可以与 ipgpc 分类器一起使用的选定器完整列表,请参阅表 37–1

可以使用 filter 子句在 IPQoS 配置文件中定义过滤器,此子句的语法如下:

filter { 
       name filter-name
       class class-name 
       parameters (selectors)
       }

params 子句

params 子句包含操作语句中定义的模块的处理指令。可以针对 params 子句使用以下语法:


params {
           parameters
           params-stats | ""
       }

params 子句中,可以使用适用于模块的参数。

params 子句中的 params-stats 值可以是 global_stats TRUEglobal_stats FALSEglobal_stats TRUE 指令将针对调用全局统计信息的 action 语句启用 UNIX 样式统计信息。可以使用 kstat 命令来查看该统计信息。按类启用统计信息之前,必须先启用 action 语句统计信息。