IPに基づくトラフィックシェーピング帯域幅とレイテンシ

IPに基づくトラフィックシェーピング帯域幅とレイテンシ

レイテンシと帯域幅を別々に調整する方法はわかっています。帯域幅については、

wondershaper etho0 100 100

レイテンシーのために実行できる

tc qdisc add dev eth0 root netem delay 200ms

ただし、シェーピングを特定の IP 接続に制限し、レイテンシと帯域幅を同時にシェーピングする必要があります。

これどうやってするの?

答え1

tcを使って次のように帯域幅を調整することができます。

このクラスは特定のアドレスを特定の速度に整形します。また、そのようにマークされたパケットがこのルールを通過するようにフィルターを設定する必要があります。

tc class add dev eth0 parent 1:1 classid 1:5 htb rate 256kbps ceil 256kbps prio 1
tc filter add dev eth0 parent 1:0 prio 1 handle 5 fw flowid 1:5

クラスが設定されたら、シェーピングする特定のパケットをマークするために iptables を設定する必要があります。

次に、必要なマングル テーブルを作成します。

iptables -t mangle -N shaper-out
iptables -t mangle -N shaper-in

iptables -t mangle -I PREROUTING -i eth0 -j shaper-in
iptables -t mangle -I POSTROUTING -o eth0 -j shaper-out

次に、特定の IP アドレスを形成するために必要なマークを設定します。マーク 5 は 256 に形成されるマークです。
iptables -t mangle -A shaper-out -s 10.0.0.5 -j MARK --set-mark 5
iptables -t mangle -A shaper-in -d 10.0.0.5 -j MARK --set-mark 5

これにより、10.0.0.5 が 256kbps に整形されるはずです。

参考(私のブログ) -http://sirlagz.net/2013/01/27/raspberry-pi を wifi ルーターに変える方法/

関連情報