この節では、IPQoS 構成ファイル各部の詳細を説明します。IPQoS のブート時にアクティブになるポリシーは、/etc/inet/ipqosinit.conf ファイルに格納されています。このファイルは編集可能ですが、新しい IPQoS システムの場合、別の名前で構成ファイルを作成するのが最善の方法です。IPQoS 構成の適用作業およびデバッグ作業については、第 4 章「IPQoS の起動と保守(手順)」を参照してください。
次の例に、IPQoS 構成ファイルの構文を示します。この例では、次の表記上の規則に従います。
computer-style type - 構成ファイル各部を説明する構文情報。このテキストは、入力しない
bold type - IPQoS 構成ファイルに入力する必要のあるリテラルテキスト。たとえば、IPQoS 構成ファイルは、常に fmt_version で始める必要がある
italics type - 構成に関する記述的情報に置き換える可変テキスト。たとえば、action_name または module_name は、常に構成に関する情報で置き換える必要がある
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 文を使用して、IPQoS アーキテクチャと diffserv モデルに示されたさまざまな IPQoS モジュールを呼び出します。
IPQoS 構成ファイルを新規作成する場合、必ずバージョン番号から始める必要があります。ついで、次のアクションを追加して、クラシファイアを呼び出す必要があります。
fmt_version 1.0 action { module ipgpc name ipgpc.classify } |
action { name action_name module module_name params_clause | "" cf_clauses }
文 |
定義 |
---|---|
name action_name |
アクションに名前を付ける |
module module_name |
呼び出す IPQoS モジュールを特定する。モジュールは、表 6–5 に示したモジュールのどれかでなければならない |
params_clause |
クラシファイアが処理するパラメータ (グローバル統計、次に処理するアクションなど) を指定する |
cf_clauses |
クラス句またはフィルタ句のゼロ以上のセット |
モジュール定義は、アクション文のパラメータを処理するモジュールを示します。IPQoS 構成ファイルには、次のモジュールを含めることができます。
表 6–5 IPQoS モジュール
モジュール名 |
定義 |
---|---|
ipgpc |
IP クラシファイア |
dscpmk |
IP パケット内で DS コードポイント作成に使用するマーカー |
dlcosmk |
VLAN デバイスで使用するマーカー |
tokenmt |
トークンバケットメーター |
tswtclmt |
タイムスライディングウィンドウメーター |
flowacct |
フローアカウンティングモジュール |
IPQoS 構成内の残りのクラスを定義するには、次の構文を使用します。
class { name class_name next_action next_action_name } |
特定のクラスに関する統計情報取得を有効にするには、最初に ipgpc.classify アクション文でグローバル統計を有効にする必要があります。詳細については、アクション文を参照してください。
クラスに関する統計を有効にしたいときは、enable_stats TRUE 文を使用します。 クラスの統計を収集する必要がない場合は、enable_stats FALSE を指定します。あるいは、 enable_stats 文を削除してもかまいません。
IPQoS 対応ネットワーク上のトラフィックは、特に定義しなければ「デフォルトクラス」になります。
フィルタは、トラフィックフローをクラスに分類するセレクタで構成されます。これらのセレクタは、クラス句で作成されたクラスのトラフィックへ適用する条件を、明確に定義します。パケットがもっとも高い優先順位のフィルタのセレクタすべてに一致する場合、パケットはそのフィルタのクラスのメンバーと見なされます。ipgpc クラシファイアで使用可能なセレクタについては、表 6–1 を参照してください。
IPQoS 構成ファイル内でフィルタを定義するには、「フィルタ句」を使用します。フィルタ句の構文を次に示します。
filter { name filter_name class class_name parameters (selectors) }
params 句には、アクション文で定義されたモジュールの処理方法が含まれます。params 句の構文を次に示します。
params { parameters params_stats | "" } |
params 句では、モジュールに適用するパラメータを使用します。
params 句の params_stats 値は、global_stats TRUE または global_stats FALSE になります。global_stats TRUE 命令は、グローバル統計を呼び出したアクション文に関する UNIX スタイルの統計を有効にします。kstat コマンドを使用して、統計情報を表示できます。クラス単位の統計を有効にする前に、アクション文の統計を有効にする必要があります。