Solaris Bandwidth Manager 1.6 のシステム管理

第 4 章 設定ファイルの編集

この章では、Solaris Bandwidth Manager の設定ファイルを、テキストエディタを使って直接編集する方法を説明します。batool を使って設定ファイルを編集する方法については、第 5 章「batool による Solaris Bandwidth Manager の設定」を参照してください。

Solaris Bandwidth Manager のメイン設定ファイルでは、次の定義が指定されます。

このような定義には必須パラメータと任意パラメータがあり、どちらもサイトの要件に合わせて編集できます。

また、設定に必要であれば、エージェント属性ファイルも編集できます。

設定内容を編集するためには、Solaris Bandwidth Manager が動作しているマシンに root としてログインするか、スーパーユーザーになる必要があります。

設定の概要

Solaris Bandwidth Manager を設定するには、クラスのグループを作成する必要があります。これらのクラスはネットワークトラフィックの処理方法を決定するのに使われます。クラスはフィルタによって定義されます。フィルタはトラフィックを特定のクラスに割り振るために使われ、いくつかの要素から構成されます。そのため、クラスを作成する前に、必要なフィルタの要素とフィルタの両方を作成する必要があります。すべてのクラスは特定の物理インタフェースに割り当てられます。そのため、設定で使用したいインタフェースも定義する必要があります。

Solaris Bandwidth Manager の構成ファイルには、前方参照は入れられません。そのため、次の順に定義を構成する必要があります。

この章では、設定情報を格納するファイルとディレクトリを説明します。また、ファイルを直接編集することによって、設定を指定する方法を説明します。

設定ファイルとディレクトリ

/etc/opt/SUNWconn/ba/ba_config.location ファイルは、現在使用している設定ファイルの位置を示します。設定ファイルの位置を指定する方法を次に示します。

Solaris Bandwidth Manager のポリシーエージェントは起動時に ba_config.location に指定されているファイルを読み取ります。 ba_config.location が存在しないか、読み取ることができない場合、ポリシーエージェントは設定ファイルが ba.conf であると仮定します。ポリシーエージェントの実行中に設定を変更した場合、ポリシーエージェントは設定を読み取り直します。「動的再設定」を参照してください。

/etc/opt/SUNWconn/ba ディレクトリには、次のファイルも格納されています。

設定ファイルの形式

Solaris Bandwidth Manager の設定ファイルには、帯域幅をネットワークトラフィックに割り振るために使用される一般的な設定パラメータといくつかの定義が入っています。これらの定義の順番は任意ですが、他の定義を前方参照することはできません。

設定ファイルには、次の項目についての定義が入っています。

定義の終わりは、次の定義の始まりを示すキーワードかファイルの終了 (EOF) で示されます。定義には、キーワードとその値のペアが連続して含まれます。クラス名とフィルタ名は 20 文字以内である必要があります。

いくつかのキーワードは、1 つの値しか指定できないが、1 つのサブセクションに複数回現れることができます。他のキーワードは、コンマで区切って複数値を指定できます。コンマは値の中に指定できません。キーワードの値の一覧が 1 行を超える場合、バックスラッシュ (¥) を継続文字として使用してください。バックスラッシュは、行の最後の文字でなければ値の中に指定できます。行の最後の文字の場合、バックスラッシュは継続文字として扱われます。

コメント行も含めることができます。コメント行はハッシュ記号 (#) で始まります。ハッシュ記号で始まる行はすべてコメントとして扱われます。ただし、ハッシュ記号は値の中に指定できます。コメント行の中では、どのような文字も使用できます。

設定ファイルを編集するためには、root である必要があります。

一般的な設定パラメータ

設定ファイルには、次のような一般的なパラメータが含まれます。

URL グループの定義

URL グループの定義は、1 つまたは複数の URL (Uniform Resource Locator) のリストです。

形式

url_group   name
                     url   url_address

次の文字は制限されており、パーセント記号 (%) のあとにアスキーコードとして入力する必要があります。

文字 

アスキーコード 

25 

40 

3A 

2C 

23 

スラッシュ文字 (/) はパスの一部としてだけ使用できます。

url_group   web_sun_group
            url   http://www.sun.com/*.html
            url   http://www.sun.com/*.gif
            url   http://*:8080/‾mylogin
            url   ftp://ftp.sun.com/*

ホストグループの定義

ホストグループは、IP アドレス (ドット形式) またはホスト名のリストです。ホスト名は、Solaris Bandwidth Manager が動作しているシステム上にあるホストのデータベースによって解釈処理されます。

形式

host_group   name
             address   address_list
          

host_group   grp_sales
             address   134.xxx.yyy.1, 134.xxx.yyy.2
host_group   grp_paris
             address   125.xxx.yyy.1, 125.xxx.yyy.2, apple, pear,¥
                       orange
          

サブネットグループの定義

サブネットグループは、IP アドレス (ドット形式) またはネットワーク名のリストです。ネットワーク名は、Solaris Bandwidth Manager が動作しているシステム上にあるホストのデータベースによって、またはネットワークテーブルによって解釈処理されます。サブネットグループにはサブネットマスクも含まれます。

形式

subnet_group   name
               address   address_list
               mask      subnet_mask

subnet_group   grp_nets
               address   129.xxx.yyy.0, plum
               mask      225.225.225.0

サービスの定義

サービスの定義は、アプリケーション層の用語で定義されるサービス (という概念) と、実際に使用されるプロトコルとポートの間にマッピングを提供します。サービスの定義には、PIM、RSVP、IGMP などの制御プロトコルも含まれます。 /opt/SUNWconn/ba/lib/services.def ファイルには、いくつかのサービスが事前定義されています。「完全な設定」には、事前定義されているサービスが示してあります。

形式

service   name
          protocol   protocol
          ports      local_port,remote_port

service   tv
          protocol   tcp
          ports      2023,*
          ports      2024,*
          ports      *,2023
          ports      *,2024

フィルタの定義

フィルタには、ローカルの情報、リモートの情報、およびサービスが入っています。フィルタは、パケットのクラスを決定するために使用されます。フィルタには、URL 情報と TOS 値も入っています。

形式

filter   name
         local
                         type      type
                         local_info
         remote
                         type      type
                         remote_info
         url
                         type      urltype
                         url_info
        tos_match        tos_match
        tos_match_mask   tos_match_mask
        service          service

filter   filter1
         local
                         type      host
                         address   apricot
         remote
                         type      host_group
                         name      grp_sales
         tos_match       0x03
         tos_match_mask  0x0F
         service         ftp,http
filter   filter2
         local
                         type      subnet_group
                         name      grp_nets
         remote
                         type      subnet
                         address   129.xxx.yyy.0
                         mask      255.255.255.0
         url
                         type      url_group
                         name      web_sun_group
         service         http

インタフェースの定義

インタフェースの定義は、Solaris デバイス名、そのフロー方向、および関連付ける帯域幅を指定します。

形式

interface   name
            rate         bandwidth
            activate     status
            router_addr  router_addr
            router_mac   router_mac
            network      network_device
            multicast    multicast
            nonip_mode   non_ipmode

IP 透過モード

Solaris Bandwidth Manager を IP 透過モードで使用する場合、キーワード router_addrnetwork、および router_mac を指定する必要があります。

IP 透過モードでは、次のパラメータは任意です。

interface   qe0_out
            rate         512000
            activate     enabled
            router_addr  134.xxx.yyy.3
            router_mac   809xxxxx
            network      le0
            multicast    all
            nonip_mode   ipqos

クラスの定義

クラスの定義は、クラスのパラメタを含みます。パケットをこのクラスに分類する要因となるフィルタも含みます。

形式

class   name
        parent             parent_class
        interface          interface
        bandwidth          bandwidth
        max_bandwidth      max_bandwidth
        priority           priority
        bandwidth_bps      bandwidth_bps
        max_bandwidth_bps  max_bandwidth_bps
        tos_mark           tos_mark
        tos_mark_mask      tos_mark_mask
        flow_events        flow_events
        filter             filter

class   test_class
        parent             root
        interface          qe0_out
        bandwidth          35
        max_bandwidth      45
        priority           3
        tos_mark           0x07
        tos_mark_mask      0x0F
        flow_events        ip_source
        filter             filter1,filter2

TOS (Type of Service) 値

Solaris Bandwidth Manager は、次のような方法で TOS バイトを使用します。

表 4-1 TOS 値とその意味

1000 

最小遅延 

0100 

最大スループット 

0010 

最大信頼性 

0001 

金銭的な最小コスト 

0000 

通常サービス 

フィルタ内の分類基準は、tos_match パラメータと tos_match_mask パラメータで定義されます。tos_match_mask は、TOS バイトのどのビットをチェックする必要があるかを定義するビットマスクです。tos_match はチェックする値です。

たとえば、TOS フィールドで「最小遅延」ビットが設定されていて「金銭的な最小コスト」ビットが設定されていない (つまり、xxx 1xx0x である) すべてのパケットをフィルタにかけるには、tos_match_mask を 000 1001 0 (0x12) に設定し、tos_match を 000 1000 0 (0x10) に設定する必要があります。

クラス内では、tos_mark_mask パラメータと tos_mark パラメータが使用されます。tos_mark_mask は、TOS バイトのどのビットを変更するかを定義するビットマスクです。tos_mark は適用する値です。

エージェント属性ファイルの形式

エージェント属性ファイルを編集するには、Solaris Bandwidth Manager が動作しているシステムへの root アクセス権が必要です。このファイルは agent.properties と呼ばれ、/etc/opt/SUNWconn/ba ディレクトリ内にあります。エージェント属性ファイルには、次のパラメータが入っています。

設定の例

この節では、「設定の計画の例」に基づいて、設定ファイルの例をいくつか紹介します。

IP 透過モードでのインタフェースの設定

図 4-1 ロンドンのサイトにおける IP 透過の設定

Graphic

IP 透過モードでは、Solaris Bandwidth Manager が動作しているホストは、トラフィックの発信元 (通常は LAN) とルーターの間に位置します。図 4-1 に示すホスト上では、Solaris Bandwidth Manager 用に qe1_out インタフェースを設定し、ネットワークデバイスとして le0 を指定しています。たとえば、次のようになります。


interface   qe0_out
            rate          512000
            activate      enabled
            router_addr   123.xxx.yyy.1
            network       le0
            router_mac    809xxxxx
            multicast     all

上記設定に加えて、LAN へのネットワークインタフェース用に標準の IP インタフェースを設定する必要があります。この設定は、ブート時にインタフェースを IP スタックに挿入するために必要です。/etc/hostname.interfacename というファイルを作成して、このインタフェースの IP アドレスへの参照を作成します。


注 -

WAN 側にはネットワークインタフェースを設定してはなりません。ifconfig -a を実行して、このインタフェースへの参照が存在しないことを確認してください。


サーバーモードでのインタフェースの設定

図 4-2 パリのサイトにおけるインタフェースの設定

Graphic

この例では、Solaris Bandwidth Manager が動作しているホストはルーターとして動作しており、2 つのインタフェースがあります。le0 は、ロンドンにネットワークトラフィックを送信するときに使用するインタフェースです。ipdptp1 は、ボンにネットワークトラフィックを送信するときに使用する PPP インタフェースです。どちらのインタフェースの設定も、通常のサーバーモード設定です。たとえば、次のようになります。


interface   le0_out
            rate       263144
            activate   enabled
interface   ipdptp1_in
            rate       65536
            activate   enabled

論理インタフェース

図 4-3 論理インタフェースの構成

Graphic

Solaris Bandwidth Manager は物理インタフェース (le0) のレベルで動作して、le0:1le0:2 などの論理インタフェースを認識しません。IP 設定に論理インタフェースが含まれるサイトでは、クラス階層を使って、ネットワークトラフィックを宛先のサブネットに従って分割します。そして、各サブネットに対するトラフィックを別々に管理します。図 4-3 は、2 つの論理インタフェースを持つ設定を示しています。設定ファイルには、le0 インタフェースの定義と、subnet1 クラスと subnet2 クラスのフィルタとクラスの定義が入っています。たとえば、次のようになります。


filter    subnet1
          remote
                   type            subnet
                   address         123.xxx.yyy.0
                   mask            255.255.255.0
 
filter    subnet2
          remote
                   type            subnet
                   address         123.xxx.zzz.0
                   mask            255.255.255.0
 
interface le0
                   rate            263144
                   activate        enabled
 
class     subnet1
                   parent          root
                   interface       le0_in
                   bandwidth       60
                   priority        3
                   max_bandwidth   100
                   filter          subnet1
 
class     subnet2
                   parent          root
                   interface       le0_in
                   bandwidth       40
                   priority        3
                   max_bandwidth   100
                   filter          subnet2                  

完全な設定

次のファイルは、「設定の計画の例」で説明したパリのサーバー用の設定を実装します。2 つのフィルタ (imap と smtp) で email クラスを定義していることに注意してください。


# Sample configuration file for Paris site
 
 
 
version 1.6
timeout 30
 
#Subnet Group definitions
 
subnet_group bonn
        address         129.xxx.xxx, 129.xxx.yyy
        mask            225.225.225.0
 
subnet_group paris
        address         129.yyy.xxx, 129.yyy.yyy, 129.yyy.zzz
        mask            225.225.225.0
 
subnet_group london
        address         129.zzz.xxx, 129.zzz.yyy
        mask            225.225.225.0
 
#Filter definitions
 
filter http_to_london
        local
                type    subnet_group
                name    paris
        remote
                type    subnet_group
                name    london
        service         http
 
filter telnet
        service         telnet
 
filter imap
        service         imap
 
filter http_to_bonn
        local
                type    subnet_group
                name    paris
        remote
                type    subnet_group
                name    bonn
        service         http
filter snmp
        service         snmp
 
filter http
        service         http
 
filter ftp
        service         ftp
 
filter smtp
        service         smtp
 
#Interface defintions for qe0_out
 
interface qe0_out
        rate            128000
        activate        enabled
 
 
#Class definitions for interface qe0_out
 
class ftp
        interface       qe0_out
        parent          root
        filter          ftp
        bandwidth       15
        priority        7
        max_bandwidth   15
 
class email
        interface       qe0_out
        parent          root
        filter          imap, smtp
        bandwidth       20
        priority        7
        max_bandwidth   20
 
class snmp
        interface       qe0_out
        parent          root
        filter          telnet
        bandwidth       5
        priority        1
        max_bandwidth   5
 
class telnet
        interface       qe0_out
        parent          root
        filter          telnet
        bandwidth       30
        priority        1
        max_bandwidth   30
 
class http
        interface       qe0_out
        parent          root
        filter          http
        bandwidth       20
        priority        5
        max_bandwidth   20
 
class http_bonn
        interface       qe0_out
        parent          http
        filter          http_to_bonn
        bandwidth       5
        priority        3
        max_bandwidth   5
 
class http_london
        interface       qe0_out
        parent          http
        filter          http_to_london
        bandwidth       10
        priority        3
        max_bandwidth   10
 
class default
        interface       qe0_out
        bandwidth       0
        priority        7
        max_bandwidth   0
 
#Interface definition for qe0_in
 
interface qe0_in
        rate            128000
        activate        enabled
 
#Class definition for interface qe0_in
 
class default
        interface       qe0_in
        bandwidth       100
        priority        7
        max_bandwidth   100