Articles of tc

我需要它模拟一个特定的IP延迟到某个端口

我需要模拟一个stream量减慢到某个服务。 这意味着我需要在特定的端口上减慢连接。 我有这个脚本,在所有的端口上引入了一个特定的IP延迟,但其他服务在该系统上运行,我不能放慢速度。 echo "simulating slowdown infrstructure on interface $DEV to IP:$IP for port:$PORT"; tc qdisc del dev $DEV root tc qdisc add dev $DEV handle 1: root htb tc class add dev $DEV parent 1: classid 1:15 htb rate 1000Mbps tc qdisc add dev $DEV parent 1:15 handle 11 netem delay 4000ms 2000ms distribution […]

使用tc命令在多个接口上复制数据包

我有很多的GRE接口(即ppp0,ppp1,…)。 我想复制并发送通过这些接口的数据包到一个虚拟的接口,如虚拟的一些过程。 我必须使用tc命令。 我的tc命令如下: tc qdisc add dev ppp0 ingress tc filter add dev ppp0 parent ffff: \ protocol all prio 2 u32 \ match u32 0 0 flowid 1:1 \ action mirred egress mirror dev dummyone 对于传出stream量 tc qdisc replace dev ppp0 parent root handle 10: prio tc filter add dev ppp0 parent 10: […]

限制两个stream量来源的带宽,但不是其中之一

有2个来源的交通 他们中的第一个不应该受到任何阻碍,它应该能够抽取尽可能多的可用stream量。 另一方面,第二个方面应该限制在一起,使它们在一起不能超过一定的限度。 也就是说,他们可以超过它,但它不应该是第二个来源的“错误” – 在这种情况下,所有的交通是由第一个来的。 用tc可以做到这一点吗? 现在有一个解决scheme来限制两者的stream量: tc qdisc add dev eth0 root handle 1: htb default 101 tc qdisc add dev eth1 root handle 1: htb default 101 tc class add dev eth0 parent 1: classid 1:1 htb rate 50000kbit tc class add dev eth1 parent 1: classid 1:1 htb rate 50000kbit tc […]

使用qdisc和tc对ipset进行带宽整形

我正在尝试使用这些教程1,3,2 1做一个ipset的带宽控制。 而这个脚本 。 我已经修改它以获得ipsetnames。 这是我的bandwithshaing脚本。 TC=/sbin/tc IF=wlan0 # Interface DNLD=1mbit # DOWNLOAD Limit UPLD=1mbit # UPLOAD Limit IP1="myIPset1" # Host IP IP2="myIPset2" U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32" start() { $TC qdisc add dev $IF root handle 1: htb default 30 $TC class add dev $IF parent 1: […]

每个IP的HTBstream量整形器 – 用户下载速度在高峰期下降

我有Oracle Linux服务器与最新的内核-3.8.13 ….在服务器去stream量整形和一些iptables规则。 服务器有三个Intel i350-T2双千兆位networking适配器。 通过3个接口连接到接口接口。总结3Gbit上行和3Gbit看我们的networking(3Gbit吞吐量通过服务器)。 现在通过服务器,从13个不同子网/ 24/25/26/27的不同子网中为大约1600个用户(或更多)工作。 在高峰时段,总结下载用户stream量不超过2Gbit。 内存是免费的。 CPU未加载。 但用户下载速度降低了2-3倍。 从用户上传速度没有问题,如应该是。 上传stream量不超过900Mbit。 在高峰期平安不增长。 我不知道问题在哪里。 如果我做HTB停止,用户得到大的速度没有问题。 它显示了什么问题不是硬件或上行链路。 我可以提供完整的HTBconfiguration,但是这是19k行。 我被剪掉了。 谁能帮我纠正还是找错? 我不是HTB规则大师。 #!/ bin / sh的 TC = / sbin目录/ TC FI =是 #一些一般的初始化 $ TC qdisc del dev bond0 root 2> / dev / null $ TC qdisc del dev bond1 root 2> / […]

使用TC和代理的Linuxstream量整形

我有一个Linux框被用作路由器。 它有2个接口,一个连接到互联网(它使用NAT),一个连接到本地networking服务多台计算机。 我想用'tc'来形成从本地计算机上传到互联网的stream量(上传),并根据IP地址警告每台计算机进入(下载)的stream量。 通常情况下,我会添加一个出口整形器和一个入口警察到外部接口,问题是我有一个鱿鱼代理坐在本地计算机连接到服务器,以访问networking。 如果我用iptables标记数据包离开本地networking接口,那么对于networkingstream量来说没有任何区别,因为当squid拦截并在另一个端口上创build自己的networking连接时,标记会丢失。 同样,监pipe传入的stream量不起作用,因为networkingstream量总是注定要鱿鱼,所以我不能匹配的IP地址。 到目前为止,我已经成功地完成了90%的工作,通过向内部接口添加外出成形器,从而根据IP限制每台本地计算机的下载速度。 这当然不会节省线速度,它只是创build一个队列,以便每台电脑只看到一定的下载速度。 对于上传,我将数据包标记为离开本地networking,并在外部接口的出口使用一个整形器来形成它们,但这不适用于来自鱿鱼的networkingstream量。 有没有其他人遇到类似的问题,或知道如何我可以塑造具有目的地端口80的上传stream量,当鱿鱼是拦截它?

tc没有看到标记的数据包

服务器有2个接口: eth1,地址为13.0.0.254/24 eth0,地址为172.20.203.4/24。 它在这两个networking之间路由stream量。 任务是将这两个networking之间的带宽限制为1Vbit / sec,但不限制服务器和networking主机之间的带宽(即限制所有数据包通过FORWARD) iptables -t mangle -A POSTROUTING -s 13.0.0.0/24 -d 172.20.203.0/24 -j MARK –set-mark 0x0001 iptables -t mangle -A POSTROUTING -s 172.20.203.0/24 -d 13.0.0.0/24 -j MARK –set-mark 0x0002 # eth1 tc qdisc add dev eth1 root handle 1:0 htb default 2 tc class add dev eth1 parent 1:0 classid 1:1 […]

如何给传入stream量添加延迟?

为了持续testing的目的,我希望有一个Apache服务器提供至less20毫秒延迟的静态文件。 我试图find一个类似的能力,但失败的Apacheconfiguration设置或插件。 tc和iptables的组合可能工作,但我只find一个方法来添加基于传出端口的延迟(这是每个客户端不同)。 variables IF = 1.0 IFSPEED = 100Mbps#从sudo / sbin / ethtool $ IF获取 DELAY = 1000毫秒 # #创buildHTB对象树 # sudo / sbin / tc qdisc add dev $ IF handle 1:root htb # #用classid创build一个有类的子桶 # sudo / sbin / tc class add dev $ IF parent 1:classid 1:11 htb rate $ IFSPEED […]

这两个QOS脚本语句是什么意思

我正在研究最近Linux-TC的QOS工具,今天我在Linux上遇到了两个来自带宽限制脚本的陈述: tc filter add dev eth0 parent 1: prio 1 protocol ip u32 \ match ip tos 0x68 0xff match ip protocol 0x11 0xff flowid 1:1 tc filter add dev eth0 parent 1: prio 1 protocol ip u32 \ match ip tos 0xb8 0xff match ip protocol 0x11 0xff flowid 1:1 这是什么意思,说“匹配ip tos 0x68 0xff匹配ip协议0x11 […]

为什么这个TC脚本不工作

我们的应用程序有三类stream量,每种types的stream量都有三个端口。 我们希望通过端口号来限制stream量,所以我做了一个简单的TC脚本来testing,但是这个脚本并不像我想象的那样工作。 下面是我用来设置TC的shell命令。 预期的结果是,SecureCRT和Apache(SecureCRT使用22端口,Apache使用80端口)的下载速率将被限制在100K / S,但是我们得到的实际结果是下载速率保持不变 – 约5MB / s。 tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 1Mbit avpkt 1000 cell 8 tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 1Mbit rate 1Mbit weight 100kbit prio 5 allot 1514 cell 8 maxburst 20 […]