帯域幅はネットワークトラフィックのクラスに割り振られます。トラフィックはフィルタのセットを使って割り振られます。フィルタは、次の一部またはすべてを使用して定義されます。
発信元の IP アドレス
着信先の IP アドレス
IP プロトコル (TCP、UDP など)
TCP と UDP の発信元ポート
TCP と UDP の着信先ポート
TOS (Type of Service) 値
URL または URL のグループ
クラス定義は階層型であり、すべてのクラスには親のクラスがあります。たとえば、全体的な FTP トラフィック用のクラス (ftp) を定義し、pear というホストへの FTP トラフィック用のクラス (ftp-to-pear) を定義する場合、これらのクラスは、図 1-1 のような階層で接続されます。
この例では、ftp クラスは root クラスの子であり、ftp-to-pear クラスの親です。
Solaris Bandwidth Manager の設定では、1 つのインタフェースに対して、一部またはすべてのファクタがあらかじめ定義されているクラスのセットを指定します。また、各クラスに帯域幅 (%) と優先順位を割り振ります。クラスの優先順位は、1 (最高の優先順位) から 7 (最低の優先順位) までの整数です。
Solaris Bandwidth Manager にパケットが到達すると、分類機能によって、パケットプロトコル、TOS 値、URL 情報、発信元情報、および着信先情報が解析され、パケットがクラス待ち行列に割り振られます。パケットはこの待ち行列内で処理されるまで待機します。パケットを割り振ろうとした待ち行列がすでにいっぱいの場合、そのパケットは破棄されます。通常の再送によってそのパケットが再送信されることを意図しています。
スケジューラは、各クラスに対して設定されている帯域幅 (%) と各クラスの優先順位を使用して、クラス待ち行列が処理される順番を決定します。クラス待ち行列内では、パケットは先入れ先出し方式で処理されます。ネットワークトラフィックがクラスに割り振られている (帯域幅の) 最大値に到達すると、次に優先順位が高いクラスのパケットが処理されます。
各クラスには、一定の帯域幅 (%) が保護されています。この制限に到達すると、通常、そのクラスからはそれ以上のトラフィックは転送できません。しかし、ネットワークリンクが完全に使用されていない場合、クラスは一時的にその親クラスから帯域幅を借用し、割り振りを超える帯域幅でトラフィックを送信できます。
クラスに最大で使用可能な帯域幅を割り振ることによって、使用可能な帯域幅のすべてが借用されることのないように設定することも可能です。
root クラスとは、Solaris Bandwidth Manager のポリシーエージェントで自動的に作成される特別なクラスのことです。root クラスには、ユーザーが明示的に保証帯域幅を割り振ることはできません。root 以外のクラスに割り振られている帯域幅の合計が 100% に満たない場合、残りの帯域幅が root クラスに割り振られて、借用時に利用されたり、特定のクラスに割り振られていないトラフィックによって利用されたりします。
default クラスとは、オプションの特別なクラスのことです。分類機能で特定のクラスに割り振られていないパケットは default クラスに割り振られます。スケジューラは default クラスを他のクラスとまったく同様に扱います。
default クラスを定義しない場合、分類機能で特定のクラスに割り振られていないパケットは root クラスに割り振られます。
フローとは、ネットワーク上でのデータの完全な情報交換のことです。たとえば、ftp によるファイルの転送や、smtp によるメールメッセージの送信などです。
フローは、次の要素で識別されます。
使用されるインタフェース
発信元の IP アドレス
着信先の IP アドレス
IP プロトコル (TCP、UDP など)
発信元と着信先のポート (TCP と UDP)
IP の TOS (Type of Service) 値
URL
フロー統計の詳細については、「フロー」を参照してください。Java API を使用すると、フローの開始 、または、新しいフロー内におけるトラフィックの存在を検出し、そのフローのアカウントを取るように設定内容を更新するアプリケーションを作成できます。
Solaris Bandwidth Manager の設定情報とポリシー情報は、Sun Directory Services 3.1 などのディレクトリサービスに格納できます。このアプローチには、いくつかの利点があります。
Solaris Bandwidth Manager の複数のインスタンスの設定内容を 1 箇所、そのディレクトリから更新できる
ユーザー接続またはトラフィックフローの検出時に、設定内容を動的に更新できる。たとえば、RADIUS プロトコルによるリモートアクセスが使用されている場合など
多くのネットワーク、特に、ユーザーがダイアルアップ接続を行う環境や、ユーザーが移動する環境では、ユーザーと IP アドレスの間に恒久的なマッピングはありません。しかし、Sun Directory Services を使用している場合には、リモートユーザーが RADIUS ログインシーケンスを使ってネットワークに接続した場合、そのユーザーのディレクトリエントリをその時点での IP アドレスに更新できます。1 つのディレクトリにユーザーの情報や現在の位置を格納することによって、特定の IP アドレスに関連するユーザーを識別することが可能になります。この方法には、次の利点があります。
ネットワークの実際の使用率に従って、分類機能とスケジューラの設定を調整できる
個々のユーザーのアカウンティング情報を収集できる
Solaris Bandwidth Manager がディレクトリサービスと連携動作する方法についての詳細は、第 6 章「Solaris Bandwidth Manager でディレクトリサービスを使用する設定」を参照してください。
ほとんどの Web トランザクションはプロキシ Web サーバーと関係します。このプロキシは、実際の HTTP サーバーをユーザーから見えないようにします。プロキシの IP アドレスに基づいて Web トラフィックをクラス分けすると、実際のネットワークトラフィックを正確にとらえられません。Solaris Bandwidth Manager は URL を使って Web トラフィックを識別およびクラス分けできます。
IP パケットのヘッダーには TOS (Type Of Service) フィールドがあります。このフィールドは、本来、上位層がインターネット層に情報を提供し、パケット経路を最適化するために設計されました。このフィールドは、経路制御アルゴリズムと待ち行列アルゴリズムの両方で使用されます。
Solaris Bandwidth Manager には 2 つの TOS モードがあります。TOS マッチと TOS マークです。TOS マッチモードでは、パケットは TOS 値でクラス分けされます。TOS マークモードでは、パケットは別の情報でクラス分けされます。そして、新しい TOS 値が挿入され、既存の TOS 値が置き換えられます。挿入される TOS 値はそのクラス用に設定しておきます。TOS マッチモードと TOS マークモードは同時に使用できます。その場合、既存の TOS 値はパケットのクラス分けに使用されたあと、新しい TOS 値に変更されます。
Solaris Bandwidth Manager による TOS 値の使用は任意です。TOS 値を使用するかどうか、どちらのモードで使用するかなどを決定するモードの設定については、「インタフェースの定義」を参照してください。TOS モードを使用しない場合、TOS フィールドの値は変更されません。
ネットワークがどのように使用されているかを知ることで、ネットワークの使用率に従ったアカウントを管理できます。Solaris Bandwidth Manager は、アカウンティング用に使用できる統計を 2 セット提供します。
クラス統計 |
クラスごとの累積バイト数 |
フロー統計 |
フローごとの累積バイト数 |
Solaris Bandwidth Manager の統計機能を使用する方法については、第 8 章「統計情報」を参照してください。