Articles of tc

tcstream量限制/整形/节stream/pipe制在Linux的ipv6问题

我设法发现了一个有趣的问题:我没有得到适当的ipv4stream量的限制,而是与ipv6完美配合。 自从我阅读这篇文章后,这对我来说没什么意义: http : //lartc.org/howto/lartc.adv-filter.ipv6.html 我已经简化到下面的bash脚本来做我的限制: #!/bin/bash set -x DOWNLINK=375 UPLINK=375 DEV=eth0 # clean existing down- and uplink qdiscs tc qdisc del dev $DEV root tc qdisc del dev $DEV ingress ###### uplink tc qdisc add dev $DEV root handle 1: htb default 20 # Add the classes tc class add dev $DEV parent 1: […]

基于私有目标IP地址的Linux收入过滤

我试图在我的OpenWRT框中设置一个QoS脚本,以便来自Internet的stream量被分类为低prio类和高prio类。 stream量分类的标准是在家庭networking中的目的IP地址,即私有IP地址。 特别是如果stream量的IP = 192.168.1.22它应该去一个低prio,否则高prio。 为了实现以前我将所有到达我的eth1接口的互联网stream量redirect到一个IFB设备,在那里我实现stream量整形。 不过,我现在面临的问题是,所有的交通都是上高级的。 为了做这个过滤,我使用iptables来设置传入stream量上的标记,我想这是我在做错误的地方。 我在“mangle”表中插入我的过滤规则,在这里我尝试了PREROUTING,FORWARD和POSTROUTING链,但是在任何这些链中都不起作用。 任何帮助表示赞赏。 最好的祝福 丹尼尔 我在这里附上我正在使用的脚本: # Variable definition ETH=eth1 IFB=ifb1 IP_LP="192.168.1.22/32" DL_RATE="900kbit" HP_RATE="890kbit" LP_RATE="10kbit" TC="tc" IPTABLES="iptables" # Loading the required modules insmod ifb insmod sch_htb insmod sch_ingress insmod ipt_IMQ insmod act_mirred insmod act_connmark insmod cls_u32 insmod cls_fw insmod em_u32 # Bringing up the $IFB interface, and redirecting […]

如何使用TC(stream量整形)减慢和共享传入的networkingstream量

我试图减慢传入数据包的特定程序,而第二个将有完全访问未使用的带宽。 换句话说,我想控制networking带宽共享,以便优先于另一个应用程序。 这是我目前的configuration,从https://github.com/rfrail3/misc/blob/master/tc/traffic-control.sh发现 : # Set up a virtual interface modprobe ifb ip link set dev ifb0 up # Set up eth0 in order to redirect incoming packets tc qdisc add dev eth0 handle ffff: ingress # Filter to make the packet going on ifb0 tc filter add dev eth0 protocol ip parent ffff: u32 […]

使用ifbredirect的stream量整形

我想用ifb来为多个虚拟接口执行一些整形。 但是,我不知道如何告诉ifb接口出口到专门的出口接口 现在vnet0 – >镜像动作镜像 – > ifb0 我想build立以下 vnet0→镜像动作镜像到ifb0→filter匹配到eth4 我注意到默认情况下,所有的数据包都被丢弃在ifb0接口上。 我尝试了从ifb0到eth4的入口镜像操作,但没有数据包正在转发。

使用tc的百分比dynamic带宽控制

有谁知道如果tc(iproute2)可以用来百分比当前可用的带宽? 我们正在使用可用带宽频繁变化的GPRS连接。 我想达到的是以下几点: 出口到端口x:可用带宽的60% 出口到端口y:可用带宽的30% 所有其他出口stream量:可用带宽的10% 通过使用tc,我设法通过使用htb qdisc来实现这个方向,并创build了3个类,速率为60/30/10 kbps。 通过使用100kbs的上限,类可以使用100kbs以下的任何可用带宽(如果可用的话),但从不会更多。 然而,这种静态configuration的带宽并不是一种适用于我们的解决scheme,因为我们的带宽变化很大,我们不想configuration天花板。 我们的目标是尽可能使用可用的带宽。 理想情况下,我们不想以字节/秒为单位configuration速率,但是以百分比表示。 这是可能的吗? 我看了一下prio qdisc,但那里的文档真的很缺乏。 谢谢!

如何设置一个netem盒子

我试图根据延迟,带宽等因素来模拟不同的networking条件。 我发现Netem是模拟不同networking条件的最好方法。 所以我想要的networking设置如下。 所以Netem框应该有两个网卡,它必须连接两个以太网连接(eth0和eth1)。 我有几个问题需要澄清。 1)我们可以使用服务器的交叉电缆连接到Netem盒吗? 或者它是不同的VLAN。 2)根据我的理解,客户端将访问eth0和Netem框将所有的数据包转发到eth1和相同的服务器到网关箱通信。 所以我想澄清客户端是否可以直接连接到服务器IP(相同的networking),或者客户端只与Netem盒子对话,这样它会将数据包转发到服务器?

在Linux中限制每个连接的带宽

我真的不能谷歌,这让我感到惊讶,但也许我只是看错了方向…我想限制每个TCP连接的带宽,即。 所有的连接都来到一个单一的接口,使用相同的源地址,具有相同的目的地端口,每个连接应限制在例如。 5 Mbit / s。 这个想法是模拟数百个使用一个20 Gbit / s接口的DSL线路较慢的用户。 我想必须有一种方法来标记属于特定连接的所有数据包的唯一标记,然后使用此标记来限制速度,但我从来没有以这种方式使用iptables / tc: 非常感谢您的任何build议! 托马斯

在linux路由器的形状dropbox与tc和iptables

我局域网中的另一台机器正在上传到Dropbox,并使我的互联网连接的上传带宽饱和。 当这种情况发生时,我的平均时间为8.8.8.8,时间为3000-6000毫秒。 当dropbox不上传我的ping到8.8.8.8是45ms。 我试图简单地减慢和降低转发stream量到/从我的Linux路由器的Dropboxstream量。 我已经尝试了两个略有不同的指南,并没有任何成功。 我认为造成混淆的一个因素是,Dropbox的stream量似乎每隔一两分钟就会加速并减速。 我没有访问Dropbox上传的机器,所以我看不到为什么stream量高了几分钟,然后低了几秒钟,振荡。 也许它上传了许多文件,每个文件之间都有一个暂停。 我已经根据3个略有不同的指南在线做了3次尝试。 我的理解是1:30是最低优先级的stream量类,这是我想要的Dropbox。 更新:我稍微调整了这一点,以形成我从我自己的电脑上运行的下载。 限速工作如预期。 但是现在我必须testing上传。 尝试1 #!/bin/bash tc qdisc add dev br0 root handle 1:0 htb default 1 tc class add dev br0 parent 1:0 classid 1:30 htb rate 64kbps ceil 128kbps prio 0 tc filter add dev br0 parent 1:0 prio 0 protocol ip handle 30 […]

使用iptables,ipset和tc(–match-set和–set-mark)进行stream量整形

我认为应该是一个相当直接的stream量整形问题,我有一些麻烦。 我有一个Ubuntu(16.04)服务器,充当路由器/ NAT。 我想让大多数用户使用2mbps的互联网,同时将一些设备限制在512kbps。 我有一个ipset节stream设备的列表。 我试图–mark-set来自这些设备的数据包,以便tc可以通过stream量整形来标记它们。 我目前的设置是: tc qdisc del root dev $LAN tc qdisc add dev $LAN root handle 1: htb default 20 tc class add dev $LAN parent 1: classid 1:1 htb rate 6mbit burst 15k tc class add dev $LAN parent 1:1 classid 1:10 htb rate 5mbit burst 15k tc class add […]

Bash脚本 – 交通塑造

嘿所有,我想知道如果你能看看我的剧本,并帮我添加一些东西, 我怎样才能find我有多less个活动的以太网端口? 以及如何过滤1个以太网端口 我如何得到这个做一个IP地址范围? 一旦我有一些ethenet端口,我需要添加stream量控制到每一个 #!/bin/bash # Name of the traffic control command. TC=/sbin/tc # The network interface we're planning on limiting bandwidth. IF=eth0 # Network card interface # Download limit (in mega bits) DNLD=10mbit # DOWNLOAD Limit # Upload limit (in mega bits) UPLD=1mbit # UPLOAD Limit # IP address range of the machine […]