この章では、IPQoS 構成ファイルを有効化する方法および IPQoS 関連のイベントを記録する方法について説明します。
この章では、以下の内容について説明します。
次の表に、Solaris システムでの IPQoS の起動作業および保守作業を示します。 作業を実行する前に、IPQoS 構成ファイル内での QoS ポリシーの定義 (作業マップ)の記述に従って IPQoS 構成ファイルを完了しておく必要があります。
表 4–1 IPQoS の構成と保守 (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
1. システムで IPQoS を構成する |
ipqosconf ユーティリティを使用して、システムの IPQoS 構成ファイルを有効化する | |
2. Solaris 起動スクリプトを使用して、各システムのブート後にデバッグ済みの IPQoS 構成ファイルを適用する |
システムをリブートするたびに、IPQoS 構成ファイルが確実に適用されるようにする | |
3. syslog を使用した IPQoS のログ記録を有効にする |
エントリを追加して、syslog による IPQoS メッセージのログ記録を有効する | |
4. IPQoS に発生した問題を修正する |
エラーメッセージを利用して IPQoS の問題を解決する |
表 4–2 に示すエラーメッセージを参照 |
IPQoS 構成の有効化およびそのほかの操作には、 ipqosconf コマンドを使用します。
IPQoS 構成ファイルを読み取り、UNIX カーネル内で IPQoS モジュールを構成するには、ipqosconf ツールを使用します。次の手順では、Web サーバー用 IPQoS 構成ファイルの作成で作成したファイル /var/ipqos/Goldweb.qos を例として使用します。詳細については、ipqosconf(1M) のマニュアルページを参照してください。
IPQoS 対応のシステムでスーパーユーザーになります。
# /usr/sbin/ipqosconf -a /var/ipqos/Goldweb.qos |
ipqosconf により、指定された IPQoS 構成ファイル内の情報が Solaris カーネル内の IPQoS モジュールに書き込まれます。上の例では、/var/ipqos/Goldweb.qos の内容が現行の Solaris カーネルに適用されます。
-a オプションを指定して IPQoS 構成ファイルを適用すると、ファイル内のアクションが現行のセッションの間だけ有効になります。
新規 IPQoS 構成のテストおよびデバッグを行います。
UNIX ユーティリティを使用して、IPQoS の動作を追跡し、IPQoS 実装に関する統計を収集します。こうして、構成が期待どおりに機能するかどうかを調べます。
作業 |
参照先 |
---|---|
IPQoS モジュールの動作状況に関する統計を表示する | |
ipqosconf メッセージをログに記録する | |
現行の IPQoS 構成をリブート後も適用する |
リブート後にも IPQoS 構成を持続させるには、明示的に指定する必要があります。そのように指定しないと、システムのリブート後に現行の構成が適用されません。システムで IPQoS が適正に動作するときは、次の操作を実行してリブート後にも構成が持続するようにします。
IPQoS 対応のシステムにスーパーユーザーとしてログインします。
カーネルモジュール内に IPQoS 構成が存在することを確認します。
# ipqosconf -l |
構成がすでに存在する場合は、ipqosconf によって画面に表示されます。出力が表示されない場合は、新規構成の IPQoS カーネルモジュールへの適用方法の説明に従って構成を適用します。
IPQoS システムをリブートするたびに既存の IPQoS 構成が適用されるようにします。
# /usr/sbin/ipqosconf -c |
-c オプションを指定すると、現行の IPQoS 構成が、ブート時の構成ファイル /etc/inet/ipqosinit.conf に書き込まれます。
IPQoS ブート時のメッセージを記録するには、次に示す手順に従って /etc/syslog.conf ファイルを変更する必要があります。
IPQoS 対応のマシンでスーパーユーザーになります。
/etc/syslog.conf ファイルを開きます。
ファイルの最後に、次のエントリを追加します。
列の区切りは、空白ではなくタブを使用してください。
user.info /var/adm/messages |
このエントリを指定すると、IPQoS により生成されたブート時のメッセージがすべて /var/adm/messages ファイルに記録されます。
システムをリブートして設定を適用します。
システムのリブート後に /var/adm/messages を表示すると、次のような IPQoS ログメッセージが出力されます。
May 14 10:44:33 ipqos-14 ipqosconf: [ID 815575 user.info] New configuration applied. May 14 10:44:46 ipqos-14 ipqosconf: [ID 469457 user.info] Current configuration saved to init file. May 14 10:44:55 ipqos-14 ipqosconf: [ID 435810 user.info] Configuration flushed. |
また、IPQoS システムの /var/adm/messages ファイル内に、次のような IPQoS エラーメッセージが表示される場合もあります。
May 14 10:56:47 ipqos-14 ipqosconf: [ID 123217 user.error] Missing/Invalid config file fmt_version. May 14 10:58:19 ipqos-14 ipqosconf: [ID 671991 user.error] No ipgpc action defined. |
上記のエラーメッセージについては、表 4–2 を参照してください。
次の表では、IPQoS が生成するエラーメッセージおよびその解決策を示します。
表 4–2 IPQoS のエラーメッセージ
エラーメッセージ |
説明 |
解決方法 |
---|---|---|
Undefined action in parameter parameter-name's action action-name |
parameter-name に指定したアクション名が IPQoS 構成ファイル内に存在しない |
アクションを作成するか、あるいは存在する別のアクションをパラメータ内で参照させる |
action action-name involved in cycle |
IPQoS 構成ファイル内の action-name はアクション循環の一部である。これは IPQoS では許可されない |
アクション循環を調べ、IPQoS 構成ファイルからどちらかの循環参照を削除する |
Action action-name isn't referenced by any other actions |
ipgpc アクション以外で、他の定義済みアクションにより参照されないアクション定義が IPQoS 構成内にある。これは IPQoS では許可されない |
参照されていないアクションを削除するか、あるいは別のアクションに現在参照されていないアクションを参照させる |
Missing/Invalid config file fmt_version |
構成ファイルのフォーマットがファイルの最初のエントリに指定されていない。これは IPQoS では必須 |
IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法の説明に従ってフォーマットのバージョンを追加する |
Unsupported config file format version |
IPQoS がサポートしないフォーマットのバージョンが、構成ファイル内で指定されている |
フォーマットのバージョンを、Solaris 9 9/02 バージョンの IPQoS 実行に必要な fmt_version 1.0 に変更する |
No ipgpc action defined. |
構成ファイル内で、ipgpc クラシファイアのアクションが定義されていない。これは IPQoS では必須 |
IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法の説明に従って ipgpc のアクションを定義する |
Can't commit a null configuration |
ipqosconf -c を実行して空の構成をコミットしようとした。IPQoS は空の構成を許可しない |
構成ファイルを確実に適用してから構成をコミットする |
Invalid CIDR mask on line line_number |
構成ファイル内で、CIDR マスクの IP アドレスとして無効なアドレスを使用した |
マスク値を 1–32 (IPv4 の場合) および 1–128 (IPv6 の場合) の範囲内の値に変更する |
Address masks aren't allowed for host names line line_number |
構成ファイル内で、ホストの CIDR マスク値を定義した。これは IPQoS では許可されない |
マスクを削除するか、あるいはホスト名を IP アドレスに変更する |
Invalid module name line line_number |
構成ファイル内のアクション文に無効なモジュール名を指定した |
モジュール名のスペルに入力ミスがないか確認する。IPQoS モジュールについては、表 6–5 を参照 |
ipgpc action has incorrect name line line_number |
構成ファイル内で ipgpc アクションに付けた名前が、必須の ipgpc.classify ではない |
アクション名を ipgpc.classify に変更する |
Second parameter clause not supported line line_number |
構成ファイル内で、単一のアクションに対し 2 つのパラメータ句を指定した。これは IPQoS では許可されない |
アクションのパラメータすべてを結合して、単一のパラメータ句にする |
Duplicate named action |
構成ファイル内で、2 つのアクションに同じ名前を付けた |
どちらかのアクションの名前を変更するか、あるいは削除する |
Duplicate named filter/class in action action_name |
1 つのアクション内の 2 つのフィルタまたは 2 つのクラスに同じ名前を付けた。これは IPQoS 構成ファイルでは許可されない |
どちらかのフィルタまたはクラスの名前を変更するか、あるいは削除する |
Undefined class in filter filter_name in action action_name |
フィルタが、構成ファイル内のアクションで定義されていないクラスを参照する |
クラスを作成するか、あるいは既存のクラスへの参照に変更する |
Undefined action in class class_name action action_name |
クラスが、構成ファイル内で定義されていないアクションを参照する |
アクションを作成するか、あるいは既存のアクションへの参照に変更する |
Invalid parameters for action action_name |
構成ファイル内のパラメータのどれかが無効である |
名前付きのアクションで呼び出されるモジュールについては、IPQoS アーキテクチャと diffserv モデルのモジュールに関する説明を参照する。あるいは、ipqosconf(1M) のマニュアルページを参照する |
Mandatory parameter missing for action action_name |
アクションに必要なパラメータが構成ファイル内に定義されていない |
名前付きのアクションで呼び出されるモジュールについては、IPQoS アーキテクチャと diffserv モデルのモジュールに関する説明を参照する。あるいは、ipqosconf(1M) のマニュアルページを参照する |
Max number of classes reached in ipgpc |
IPQoS 構成ファイルの ipgpc アクションに、許可される数を超えたクラスを指定した。最大数は 10007 |
構成ファイルを確認して、不要なクラスを削除する。あるいは、/etc/system ファイルにエントリ ipgpc_max_classes class_number を追加して、クラスの最大数を引き上げる |
Max number of filters reached in action ipgpc |
IPQoS 構成ファイルの ipgpc アクションに、許可される数を超えたフィルタを指定した。最大数は 10007 |
構成ファイルを確認して、不要なフィルタを削除する。あるいは、/etc/system ファイルにエントリ ipgpc_max_filters filter_number を追加して、フィルタの最大数を引き上げる |
Invalid/missing parameters for filter filter_name in action ipgpc. |
構成ファイル内で、フィルタ filter_name に無効なパラメータが指定されているか、あるいはパラメータが不足している |
ipqosconf(1M) のマニュアルページで、有効なパラメータのリストを参照する |
Name not allowed to start with '!', line line_number |
アクション、フィルタ、またはクラスの名前が感嘆符 (!) で始まっている。これは IPQoS ファイルでは許可されない |
感嘆符を削除するか、あるいは、アクション、クラス、またはフィルタの名前を変更する |
Name exceeds the maximum name length line line_number |
構成ファイル内のアクション、クラス、またはフィルタの名前が、最大長の 23 文字を超えている |
アクション、クラス、またはフィルタの名前を短くする |
Array declaration line line_number is invalid |
構成ファイル内で、line_number 行のパラメータの配列宣言が無効である |
アクション文で呼び出される配列宣言の正しい構文については、IPQoS アーキテクチャと diffserv モデルを参照する。あるいは、ipqosconf(1M) のマニュアルページを参照する |
Quoted string exceeds line, line_number |
文字列の最後の閉じ引用符が同一行に存在しない。これは構成ファイルでは必須 |
引用符で囲まれた文字列を、構成ファイルの同一行内に収める |
Invalid value, line line_number |
構成ファイルの line_number に、パラメータとしてサポートされない値が指定されている。 |
アクション文で呼び出されるモジュールに指定可能な値については、IPQoS アーキテクチャと diffserv モデルのモジュールに関する説明を参照する。あるいは、ipqosconf(1M) のマニュアルページを参照する |
Unrecognized value, line line_number |
構成ファイルの line_number に、パラメータとしてサポートされない列挙値が指定されている |
パラメータの列挙値が適正であるかどうかを確認する。認識されない行番号のアクション文で呼び出されるモジュールについては、IPQoS アーキテクチャと diffserv モデルを参照する。あるいは、 ipqosconf(1M) のマニュアルページを参照する |
Malformed value list line line_number |
構成ファイルの line_number で指定された列挙が、仕様構文に適合しない |
アクション文で呼び出されるモジュールの正しい構文については、IPQoS アーキテクチャと diffserv モデルのモジュールに関する説明を参照する。あるいは、ipqosconf(1M) のマニュアルページを参照する |
Duplicate parameter line line_number |
重複したパラメータが line_number に指定されている。これは構成ファイルでは許可されない |
重複したパラメータのどちらかを削除する |
Invalid action name line line_number |
構成ファイルの line_number のアクションに、定義済みの名前 continue または drop を含む名前を付けた |
定義済みの名前を使用しないよう、アクションの名前を変更する |
Failed to resolve src/dst host name for filter at line line_number , ignoring filter |
構成ファイル内で、あるフィルタ用に定義された発信元または着信先アドレスを、ipqosconf が解釈処理できない。このため、このフィルタは無視される |
フィルタが重要な場合、あとで構成の適用を試みる |
Incompatible address version line line_number |
line_number 上の IP バージョンのアドレスが、構成ファイル内ですでに指定済みの IP アドレスのバージョンまたは ip_version パラメータと互換性がない |
競合する 2 つのエントリを変更して、互換性を持たせる |
Action at line line_number has the same name as currently installed action, but is for a different module |
システムの IPQoS 構成内にすでに存在するアクションのモジュールを変更しようとした。これは許可されない |
現行の構成をフラッシュしてから、新しい構成を適用する |