Solaris Bandwidth Manager の主な構成要素は次のとおりです。
管理ツール batool は、帯域幅管理を設定するためのグラフィカルインタフェースを提供する。batool は、アプレットまたはアプリケーションとして、JavaTM Virtual Machine を持つネットワーク内の任意のマシンから実行できる。batool を使用すると、帯域幅管理スケジュールを作成したり、統計を表示したりできる
ポリシーエージェントは、設定内容を実装し、カーネルモジュールとの通信を処理する。ポリシーエージェントの動作についての詳細は、「ポリシーエージェント」を参照のこと
カーネルモジュールは、ユーザー空間内のツールからは STREAMS ドライバ /dev/ipqos として、IP スタックからは STREAMS モジュール ipqos として見える。カーネルモジュールは、分類機能とスケジューラから構成される
Java API を使用すると、Solaris Bandwidth Manager を設定し、Solaris Bandwidth Manager でディレクトリサービスを使用し、統計情報を収集するアプリケーションを作成できる。C Statistics API もある
SNMP エージェントを使用すると、Solstice(TM) Site Manager(TM) や Solstice Domain Manager(TM) など、任意の SNMP 管理ユーティリティで Solaris Bandwidth Manager を監視できる。SNMP エージェントはポリシーエージェントの構成要素
その他にも、Solaris Bandwidth Manager ソフトウェアを管理し、ネットワークを監視するためのコマンドとユーティリティがある
図 2-1 に、Solaris Bandwidth Manager のアーキテクチャを示します。
管理ツール batool を使って、Solaris Bandwidth Manager を設定できます。batool には 2 つのモードがあります。
オンラインモードでは、カーネルモジュールで使用中の設定内容を変更できる。オンラインモードは、ネットワークに問題が発生し、一時的な変更が即座に必要な場合に便利。現在の構成を保存するオプションもあり、現行の設定内容を保存するかしないか選択できる。オンラインモードを使用すると、変更を保存する前に、設定の結果を観察できる
オフラインモードでは、カーネルモジュールの現在の動作に影響を与えずに、設定内容を変更できる。オフラインモードは、ユーザーの作業を中断せずに設定内容を変更しておき、次に Solaris Bandwidth Manager を再起動した時点でその変更内容を有効にしたい場合に便利
管理ツール batool は、ポリシーエージェント経由でカーネルモジュールと通信します。batool はカーネルモジュールに設定内容の変更を送信し、カーネルモジュールは batool に統計情報を送信します。
batool の詳細と使用法については、第 5 章「batool による Solaris Bandwidth Manager の設定」を参照してください。Solaris Bandwidth Manager は設定ファイルを編集することによっても設定できます。あるいは、ディレクトリサービスからも設定できます。
ポリシーエージェントは Solaris Bandwidth Manager の通信ハブであり、他の構成要素との間で送受信される情報を制御し、これらの構成要素が運用するポリシーを制御します。ポリシーエージェントは Java Dynamic ManagementTM Kit フレームワークを使って実装されています。ポリシーエージェントは Java 管理 bean (m-bean) のセットとそれらのエクスポートしているインタフェースも含んでいます。ポリシーエージェントのアーキテクチャについての詳細は、付録 A 「ポリシーエージェントのアーキテクチャ」 を参照してください。
フローとは、ユーザーの視点から見ると、送信者と受信者との間における完結した情報交換のことです。たとえば、メールメッセージの送信や、Web ページのダウンロードなどです。
フローは、次の要素から定義されます。
使用されるインタフェース
発信元と着信先の IP アドレス
IP プロトコル (TCP、UDP など)
発信元と着信先のポート (TCP と UDP)
IP の TOS (Type of Service) 値
URL
TOS 値はフローの生存期間中に変更される可能性があるため、フローはあるクラスから別のクラスに移動できます。しかし、パケットの順番に影響を与える可能性もあるため、お勧めできません。
現在のすべてのフローについての情報はキャッシュに格納されます。パケットが到着すると、そのフローの特性とキャッシュ内の情報が比較されて、そのフローが既存のフローの一部であるのか、新しいフローが始まったのかが判断されます。フロー識別情報に加えて、キャッシュには次のような統計も記録されます。
送信されたパケット数
送信されたオクテット数
最初のパケットが到着したときのシステム稼働時間
最後のパケットが到着したときのシステム稼働時間
フロー内の最後のパケットが検出されてから 60 秒経過すると、フローは終了されます。この時間は変更できません。
クラスではなくフローを監視すると、より正確なネットワークの使用率をより細かいレベルで求めることができます。これによって、将来のネットワークの必要性をより正確に予測できます。また、このような情報はアカウンティングにも使用できます。
batool を使用すると、フローの統計を表示できます。第 8 章「統計情報」を参照してください。また、CISCO NetFlow プロトコルのバージョン 5 と互換性を持つ任意の課金パッケージとアカウンティングパッケージも使用できます。
IP パケットには TOS (Type Of Service) フィールドがあります。このフィールドの目的は、パケットが処理される方法を伝えることです。Solaris Bandwidth Manager はこの情報を使用して、パケットをクラス分けできます。また、Solaris Bandwidth Manager はこの情報を変更して、パケットが処理される方法に影響を与えることができます。
IP 仕様における TOS 定義の要約については、「IP 仕様の TOS」を参照してください。Solaris Bandwidth Manager が TOS と連携する方法については、「Solaris Bandwidth Manager と TOS」を参照してください。
IP 仕様では、IP パケットのヘッダーにおける TOS フィールドも定義されています。このフィールドは、パケットの経路制御を最適化する方法について、上位層プロトコルによってインターネット層へ情報提供するのに使用されることが想定されています。
ネットワークトポロジは、パケットの発信元と着信先との間に複数の経路が存在することを意味します。いくつかの経路は他の経路よりも信頼性が高く、また高価な (呼び出し設定料や使用料が高い) 経路や、低コストだが低速な経路もあります。パケットに最適な経路はアプリケーションやユーザーによって異なり、時刻など他の要素によっても変わる可能性があります。たとえば、リモートシステムを監視するシステム管理者の場合、コストに関係なく警報トラフィックをできるだけ迅速に受信する必要があります。これは警報トラフィックを経路指定するコストはシステム障害によるコストよりもはるかに低いためです。しかし、翌日の仕事に備えて終業時刻間際に同じリモートシステムから ftp で文書を入手する場合は、低コストで低速な経路で十分です。
インターネット層は、アプリケーションやユーザーに対して経路を最適化する方法に関して直接的な知識を持っていません。TOS 機能は、いかにパケットを最適に経路付けるかについてのヒントを提供するのに使用されることが想定されていました。これは、待ち行列アルゴリズムと経路制御アルゴリズムの両方に影響を与えます。TOS 機能には、3 ビットの優先度フィールドと 4 ビットの TOS フィールドがあります。優先度フィールドの設定値は、優先順位を示す次の値のうちの 1 つを示します。
Network Control
Internetwork Control
CRITIC/ECP
Flash Override
Flash
Immediate
Priority
Routine
次に、TOS フィールドに設定できる値を示します。
最小遅延
最大スループット
最大信頼性
金銭的な最小コスト
通常サービス
TOS 機能は従来、あまり使用されていませんでした。しかし、IETF (Internet Engineering Task Force) は、現在、TOS 機能の定義を変更し、その使用を推進しています。
TOS (Type of Service) 機能は IP プロトコルによって提供され、個々のパケットがインターネットを介して送信される方法を伝えます。TOS フィールドは、ゲートウェイ動作における経路制御アルゴリズムと待ち行列アルゴリズムを制御します。
TOS バイトには、優先度フィールド、TOS フィールド、および空のフィールドがあります。
優先度フィールドには、そのバイトの優先度を設定する 3 ビットの値が入る
TOS フィールドには、TOS マッチ値が入る。この値はパケットと比較される。この値は 16 進数値で表現される
MBZ (Must Be Zero) フィールドは現在使用されていない。0 に設定する必要がある
詳細は、P.Almquist 著の RFC 1349『Type of Service in the Internet Protocol Suite』を参照してください。
Solaris Bandwidth Manager は 2 つのモードで使用できます。サーバーモードと IP 透過モードです。
IP トラフィックの発信元であるホスト上では、サーバーモードで Solaris Bandwidth Manager を実行します。ホストが IP トラフィックの発信元であるのは、そのホストが WAN または LAN へのネットワーク接続を 1 つだけ持っている場合か、トラフィックのルーターである場合です。
帯域幅管理が設定されているインタフェースが初期化されるとき (通常はシステム起動時)、ipqos モジュールは IP とインタフェース間の IP スタック上にプッシュされます。Solaris Bandwidth Manager のポリシーエージェントは設定ファイルを読み取って、設定情報を ipqos モジュールにロードします。次に、ipqos モジュールは設定された定義に従って、すべてのトラフィックを処理します。
同じマシン上でファイアウォールが動作している場合、暗号化ソフトウェアが動作していないインタフェース上に Solaris Bandwidth Manager をインストールしてください。
LAN とルーター間にあるホスト上では、IP 透過モードで Solaris Bandwidth Manager を実行します。
このモードが IP 透過と呼ばれるのは、Solaris Bandwidth Manager が動作しているホストが IP ネットワークに完全に透過的であり、LAN に接続されたまったく別のマシンのように認識されるためです。LAN と WAN は、そのルーターだけで直接接続されているように動作します。各ホストのルーティングテーブルを変更する必要はありません。
カーネルには 3 つのモジュールがあり、LAN とルーター間でパケットを受信、フィルタ、分類、スケジュール管理、および転送を行います。図 2-6 に点線で、IP 透過モードにおけるデータの論理フローを示します。
ipqos1 |
システム起動時に autopush.ba と autopush_usr.ba によって IP スタックに実装される。このモジュールは LAN からホストに到着するパケットを監視するが、ホストマシン宛のパケットだけを処理する |
ipqos2 |
ポリシーエージェント起動時に実装される。このモジュールは LAN からホストに到着するパケットを監視して、フィルタし、カーネル内に振り分ける |
ipqos3 |
ポリシーエージェント起動時に実装される。このモジュールインタフェースは LAN または WAN からホストに到着したパケットを監視する。そして、分類、スケジュール管理する。設定ファイルのクラスはこのモジュールに格納される |
LAN から Solaris Bandwidth Manager が動作しているホストへ向けたトラフィックは、LAN インタフェースによって受信されます。
パケットの着信先 IP アドレスが Solaris Bandwidth Manager が動作しているホストである場合、そのパケットはすでに ipqos1 によって IP スタック上へ送られているため、ipqos2 では破棄されます。
パケットの着信先 IP アドレスが Solaris Bandwidth Manager が動作しているホストでない場合、次の条件に適合すれば、そのパケットはルーターへ直接転送されます。
IP パケットがルーター宛てである場合
パケットが IP パケットでなく、かつ、設定ファイル内で非 IP モードが direct に設定されている場合
パケットがマルチキャストパケットであり、マルチキャストモードが direct に設定されている場合
上記以外の場合、パケットは ipqos3 によって分類およびスケジュール管理されます。
WAN からのトラフィックは、ipqos3 と ipqos2 経由で LAN に転送されます。
ipqos3。次の状況下では、パケットは分類およびスケジュール管理されない
ipqos3 が着信トラフィックを制限するように構成されていない場合
マルチキャストパラメータが direct に設定されている場合
パケットが IP パケットでなく、かつ、非 IP モードが direct に設定されている場合
ipqos2。このモジュールは着信先 IP アドレスをチェックする。パケットが Solaris Bandwidth Manager が動作しているホスト宛ての場合、そのパケットは ipqos1 経由で IP スタックに送られる。それ以外の場合、パケットはその宛先に転送される
設定ファイルから設定できるのは ipqos3 だけです。そのため、設定ファイル内のインタフェースに対する参照はすべて、WAN インタフェースである必要があります。設定ファイル内のネットワークデバイスオプションを設定して LAN インタフェースを参照するには、次のどちらかの方法を使用します。
設定ファイル内のインタフェースセクションにある network キーワードを編集する
batool の「設定」の中の「インタフェース」ウィンドウを使用する
nonip_mode パラメータが direct に設定されている場合、非 IP トラフィックは ipqos をバイパスします。このようなパケットはフロー統計に記録されません。nonip_mode パラメータが ipqos に設定されている場合、トラフィックは default クラスに送られます。default クラスが設定されていない場合は root クラスに送られます。
サーバーモードでは、Solaris Bandwidth Manager はマルチキャストを他のトラフィックの種類と区別しません。ただし、Solaris Bandwidth Manager を IP 透過モードで使用している場合、ルーターがマルチキャストパケットを転送するかどうかはネットワーク構成によって異なるため、自動的に予測できません。
そのため、Solaris Bandwidth Manager がマルチキャストトラフィックを処理する方法を制御するための選択肢が 3 つあります。各ネットワークに最適な選択肢を選択してください。
ルーターによって転送されるすべてのトラフィックを ipqos モジュール経由で送る方法。これによって、転送されるトラフィックに帯域幅が割り振られることが保証される。ルーターが転送しないトラフィックは、ipqos モジュール経由ではなく、ルーターに直接送られる
そのトラフィックが転送されるかどうかに関わらず、ルーターはすべてのマルチキャストトラフィックを認識する必要がある。ルーターは、time-to-live が 2 未満のトラフィック、あるいは、ローカルサブネットだけに送信されるトラフィック (つまり、着信先アドレスが 224.0.0.0 から 224.0.0.255 の範囲内のトラフィック) を転送しない
すべてのマルチキャストトラフィックを、ipqos モジュール経由ではなく、ルーターに直接送る方法。この方法を使用できるのは、ルーターがマルチキャストトラフィックを転送しないことがわかっている場合だけ
マルチキャストパケットを破棄し、ルーターには送らない方法。つまり、ルーターはマルチキャストトラフィックを受信しないことを意図している