基于 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 来标记您想要塑造的特定数据包。

接下来,创建所需的 mangle 表。

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/how-to-turn-the-raspberry-pi-into-a-shaping-wifi-router/

相关内容