通信量に上限を設定したい場合、色々な仕組みがあります。NW機器で経由する通信を制御するのがわかりやすいですが、今回はOSの機能で実装します。
やりたいこと
利用する通信量に上限を設定して帯域制御する
(参考)IPQoS
https://docs.oracle.com/cd/E24845_01/html/819-0380/ipqos-intro-1.html
(参考)実現したいことと同事象
https://serverfault.com/questions/265084/solaris-express-11-ipqos-how-to-set-up?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
設定を追加する
OSの確認
$ cat /etc/release
Oracle Solaris 10
・・・略
QoSの設定が入っているか確認する
# rootユーザで実施
$ ipqosconf -l
$
設定を記載したテキストファイルを作成
fmt_version 1.0
action {
module ipgpc
name ipgpc.classify
params {
global_stats TRUE
}
class {
name hlimit
next_action check
enable_stats FALSE
}
filter {
name hlimit
if_name {インターフェースの名前}
class hlimit
}
}
action {
module tokenmt
name check
params {
committed_rate 102400
committed_burst 102400
peak_rate {通信量の上限をbpsで入力する}
peak_burst 102400
red_action_name drop
green_action_name continue
yellow_action_name continue
global_stats TRUE
}
}
設定の反映
# rootユーザで実行
$ /usr/sbin/ipqosconf -a /var/ipqos.qos
$ ipqosconf -l
→設定値が標準出力に出る
動作
制御を掛けたインターフェースを使って通信した場合
peak_rateの設定値を上限として通信量が制御できます。
solaris10は2005年にリリースされたとのことで、2018年現在利用する状況は非常に少ないかと思いますが、solaris10で稼働しているホストにおいてOS層で帯域制御したい場合は利用できる機能です。