每个 IP 的 HTB 流量整形 - Ubuntu 服务器

每个 IP 的 HTB 流量整形 - Ubuntu 服务器

在询问之前我已经尽力了,但仍然很挣扎。

我正在运行 10.04 ubuntu 服务器,它有一个速度较快的 8 驱动器 Raid5 阵列,其中设有多个 samba 共享点。

该机器仅用作近线 samba 文件服务器。

文件被传输到这里,然后合并到网络上的另一台服务器上以实现实时访问,所以我需要实现一些流量整形。

我的目标是阻止每个客户端使用超过 200mbps 的千兆管道连接到交换机。

到目前为止,我已经设法使用 HTB 做到这一点,但是却遇到了障碍。

使用下面的命令,我可以限制离开接口的流量,但我想为每个客户端雕刻单独的 200mbit 管道,而不是将接口的总体流量限制为 200mbit。

sudo /sbin/tc qdisc del dev eth1 root

sudo /sbin/tc qdisc add dev eth1 root handle 1:0 htb default 10

sudo /sbin/tc class add dev eth1 parent 1:0 classid 1:10 htb rate 200mbps ceil 200mbps prio 0

sudo tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10

有人可以帮忙吗?

我读到有一种方法可以通过 Shorewall 根据 IP 执行此操作,但所需的内核扩展并不存在于标准 ubuntu 内核中 - 而且我找不到有关修补以实现所需功能的任何信息。

我并不是一名网络管理员,实际上我是一名电影技术员,工作内容非常繁重。

非常感谢任何想法。

答案1

要对每个 IP 设定 200Mbit 的限制,您必须添加一个类并使用 IP 进行过滤;我希望我的记忆没有问题:

tc qdisc add dev eth0 root handle 1: htb  
for ((  i = 2 ;  i <= 10;  i++  ))
do
tc class add dev eth0 parent 1:0 classid 1:$i htb rate 200Mbps 
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 1.2.3.$i flowid 1:$i
done

您也可以使用 htb 工具,因为它更容易理解。

相关内容