この記事では、Linuxでネットワーク帯域を制限する方法について詳しく解説します。具体的なコード例とその詳細解説、応用例を多数含めています。
はじめに
ネットワーク帯域の制限は、サーバーの負荷調整やネットワークトラフィックの制御に有用です。Linuxでは`tc`(Traffic Control)というコマンドラインツールを使用することで、独自の帯域制限ルールを設定することが可能です。
基本的な帯域制限の設定
`tc`コマンドの基礎
`tc`コマンドはLinuxに標準でインストールされているツールで、多機能なネットワーク帯域制御を行えます。
sudo tc qdisc add dev eth0 root tbf rate 512kbit latency 50ms burst 1540
上記のコードは、`eth0`というネットワークインターフェースで、512kbit/sの帯域制限を設定しています。`latency`と`burst`はそれぞれ遅延と突発トラフィックの設定です。
コードの詳細解説
– `sudo`: 管理者権限でコマンドを実行
– `tc qdisc add`: Traffic Controlのサブコマンドでキューイングディシプリン(qdisc)を追加
– `dev eth0`: 対象となるネットワークインターフェースを指定
– `root`: ルートqdiscを設定
– `tbf`: Token Bucket Filterという帯域制御アルゴリズムを使用
– `rate 512kbit`: 制限速度を512kbit/sに設定
– `latency 50ms`: バッファの遅延を50msに設定
– `burst 1540`: 突発トラフィックを1540バイトまで許可
応用例
1. 一時的な帯域制限の解除
sudo tc qdisc del dev eth0 root
帯域制限を一時的に解除するためのコードです。
2. 特定のIPアドレスに対する帯域制限
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.2/32 flowid 1:1
特定のIPアドレス(192.168.1.2)に対して帯域制限を設定します。
3. ポート番号での制限
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:1
ポート80(HTTP通信)に対する帯域制限を設定します。
4. 帯域制限の一覧表示
sudo tc qdisc show dev eth0
現在の帯域制限の設定を一覧表示します。
5. 制限の変更
sudo tc qdisc change dev eth0 root tbf rate 1mbit latency 20ms burst 1540
すでに設定された帯域制限を変更するためのコードです。
まとめ
Linuxでのネットワーク帯域制限は、`tc`コマンドを使って柔軟かつ効率的に行うことができます。上記の基本的な設定と応用例を参考に、独自のネットワーク帯域制限を設定してみてください。
コメント