こぼれネット

一般的にTCには2つのethのNICがあります。これを便宜的にeth1, eth2とします。上記のコマンドは、どの方向の帯域制限になりますか

tc コマンドの帯域制限 (tbfnetem) は 送信(アウトバウンド, egress) に適用されます。したがって、上記のコマンドは eth0 から外部に送信されるトラフィック に対して帯域制限が適用されます。


eth1, eth2 の場合の制限方向

eth1eth2 がある場合、それぞれのインターフェースに tc を適用すると、次のようになります。

つまり、各インターフェースから送信される通信に適用される ため、受信(ingress)には影響しません。


受信(ingress)側の帯域制限をしたい場合

tc は基本的に送信 (egress) に適用されるため、受信 (ingress) の帯域制限を行うには ingress qdisc を利用するか、ifb (Intermediate Functional Block device) を使います。

eth1 の受信帯域を 5Mbps に制限する場合

sh
# ifb デバイスを有効化
sudo modprobe ifb
sudo ip link set ifb0 up
# eth1 の受信トラフィックを ifb0 にリダイレクト
sudo tc qdisc add dev eth1 handle ffff: ingress
sudo tc filter add dev eth1 parent ffff: protocol all u32 match u32 0 0 action mirred egress redirect dev ifb0
# ifb0 に帯域制限を適用(受信制限)
sudo tc qdisc add dev ifb0 root tbf rate 5mbit burst 10kb latency 1ms

これにより、eth1 への受信トラフィック を 5Mbps に制限できます。


まとめ

したがって、最初のコマンドは eth0 の送信(egress)方向 に適用される帯域制限になります。

 

 

モバイルバージョンを終了