トラフィック制御の仕組みと種類(その3)UNIX USER2005年3月号「ネットワークトラフィックを制御せよ Part1」より転載

Part1では、トラフィック制御機構のアプローチについて紹介する。主に、トラフィック制御を行う場所や、パケットを処理する際のキューイング方式などを解説する。

» 2005年03月02日 09時00分 公開
[広瀬雄二(東北公益文科大学),UNIX USER]

現在利用できるトラフィック制御の実装

 前述した制御方式は、数多くあるものの一部といって良い。OSで使用可能なネットワーク制御ツールによって、どのようなトラフィック制御方式を実装しているかは異なっている。いずれの場合も、実装している方式をうまく組み合わせて目的とするQoS管理を行うわけだ。

 以下、代表的なトラフィック制御機構について解説しておこう。

IPFW――FreeBSD

 FreeBSDのパケットフィルタリングツールであるIPFWでは、カーネルオプションとして、

options         DUMMYNET

を組み込むか、あるいはカーネルモジュールdummynet.koをロードすることで、dummynetによる帯域制御が利用可能*となる。

 IPFW+dummynet*では、Packet ShapingとWF2Q+による帯域制御をサポートしている。

PF――OpenBSD/NetBSD/FreeBSD 5.x

 PFでは、パケットキューイングの統合的な実装であるALTQ*と一体化して、パケットフィルタリングだけでなく、トラフィック制御も可能*になっている。PFは比較的新しいパケットフィルタツールであり、OpenBSD以外にFreeBSDとNetBSDにも取り込まれたことを受け、今後利用の幅が広がっていくと予想される。

 PF経由で呼ばれるALTQでは、制御方式としてPRIQ、CBQ、HFSC(Hierarchical Fair Service Curve)が利用できる。ALTQを単体利用する場合は、さらにRED(Random Early Drop)、RIO(RED with IN/OUT)など選択肢が増える。これらの詳細については、次のURLを参照してほしい。

http://www.csl.sony.co.jp/person/kjc/kjc/software.html#ALTQ

iproute2――Linux

 Linuxカーネルに含まれるIP接続に関する制御用フレームワークiproute2でも、トラフィック制御の機能が利用可能だ。トラフィック制御関連の設定を行うものとしては、tcコマンドが用意されている。

 iproute2で利用できる制御方式には、CBQ、RED、TBF(Token Bucket Filter)、SFQ(Stochastic Fairness Queueing)、HTB(Hierarchical TBF)など、一般的なものから独自に実装されたアルゴリズムまで多数存在する。この中の使用頻度の高いものについては、以下のサイトに解説があるので参考にしていただきたい。

http://www.lartc.org/ (英語)

http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/ (日本語)

パケットフィルタとの効果的な組み合わせを

 WANに接続している機器では、パケットフィルタによって不正アクセスを未然に防ぐというのはもはや常識だろう。ただ、パケットフィルタの場合、特定のホストからのアクセスを禁止/許可の2値しか選べない。その中間的な選択肢として、「○○へのアクセスが多くて仕方ないが、全面禁止してしまうのは忍びない。少し遅くしようか」といった設定もできるのがトラフィック制御の良い点でもある。積極的にサービスを公開しつつ、DoSや突発的なアクセス過多に対する耐性も考慮したサーバー環境を構築していきたい。

このページで出てきた専門用語

帯域制御が利用可能

カーネルオプションとして「options IPFIREWALL」も必要だが、/etc/rc.confで「firewall_enable=YES」と指定しておけば、自動的にカーネルモジュールipfw.koがロードされる。したがって、ipfwによるファイアウォール機能を利用している場合、自動的に組み込まれているはずだ。

IPFW+dummynet

FreeBSD 5.xでは、IPFW2。

ALTQ

Alternate Queueing for BSD UNIXの略で、各キューイング方式を実装するためのフレームワーク。詳細はこちらを参照。

トラフィック制御も可能

詳細は、http://www.openbsd.org/faq/pf/ja/http://www.openbsd.org/faq/pf/ja/queueing.htmlを参照。


Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.

注目のテーマ