在询问之前我已经尽力了,但仍然很挣扎。
我正在运行 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 工具,因为它更容易理解。