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