研究の過程で,イーサネット(Gbitイーサ)で接続してデスクトップPC間の帯域を制限する必要があった.
CentOS6環境におけるやり方はネットにあったが,CentOS7の環境におけるやり方がなかったので書きます.
(※CentOS7で動作確認できたよ~って話で,CentOS6のときのやり方とさして変わりません)
#STEP1(下準備1)
- (参考サイト) http://good-stream.com/goodstream/qos/cbq.html
- 以下のコマンドでcbq.initをダウンロードします
# wget http://jaist.dl.sourceforge.net/sourceforge/cbqinit/cbq.init-v0.7.3
- 配置
# mv cbq.init-v0.7.3 /etc/init.d/cbq.init
# chmod 755 /etc/init.d/cbq.init
# chkconfig --add cbq.init
#STEP2(下準備2)
-
本来ならば設定ファイル(STEP3で登場)を設定して,cbq.initをstartさせれば動くが,cbq.init内のfindコマンドの書式がおかしくてエラー(オプション -maxdepthについて)をはくと思います
- cbq.init内の -maxdepthオプションを全て削除
-
(参考サイト) http://memo-off.blogspot.jp/2012/06/linuxcentos.html
#STEP3(設定ファイル作成)
-
defaultで/etc/sysconfig/cbq/cbq-0000.exampleファイルがあるので削除/退避
-
適当にcbq-100.testみたいなファイル名で/etc/sysconfig/cbq/直下に作成
- ※ファイル名の書式はcbq.initにコメントとして記述されているのでそちらを参考に
-
ここでは約90Mbpsに帯域制限する場合の設定を行う
- 各パラメータの意味や設定例 http://hogem.hatenablog.com/entry/20110212/1297699361
cbq-100.test
DEVICE=enp3s0,1000Mbit,100Mbit
RATE=90Mbit
WEIGHT=9Mbit
PRIO=5
RULE=192.168.12.0/24
#90Mbps
- ここでCentOS6との違いはDEVICE名である
- CentOS6 DEVICE = eth0 , CentOS7 DEVICE=enp3s0
- ※デバイス名を調べるコマンド nmcli deviceコマンド等(http://www.unix-power.net/centos7/network.html)で調べると良い
#STEP4(帯域制限をかける)
# service cbq.init start nocache
- これで帯域制限(今回は約90Mbps)がかかる
#おまけ
- 念のため,iperfツールを使って通信性能を計測したところ86Mbps(約90Mbps)となっていたので,正しく帯域制限できたといえる