Articles of tc

如何通过htb / sfq调整TC速率参数以获得最佳性能?

我是使用tc / htb的新手,我只是复制/粘贴脚本在… http://lartc.org/howto/lartc.cookbook.ultimate-tc.html 在办公室网关上运行 原因是阻止大量下载,上传,P2P和video使SSH连接和网页浏览速度太慢。 networking看起来像: 局域网 – >(eth0)linux网关(eth1) – > DSL调制解调器 网关也为LAN客户端做NAT。 在脚本的顶部,您可以设置上行和下行速度(以千比特为单位)和设备。 我们的ADSL是1.5m DL / 256k UL。 所以我设置了如下的值: DOWNLINK=1000 UPLINK=220 DEV=eth1 我所知道的是,这些值应该比“完全”DSL带宽“有点”低,但我不知道如何计算最佳值。 我假设如果价值太低,我会过度限制总吞吐量,如果它太高,我会阻止正确排队。 我的问题是:我使用哪些工具,经验法则或计算,find速率参数的最佳值?

对网关进行stream量整形以停止stream氓

我是stream量整形的新手,但我需要一个快速简单的整形。 我有一个免费的互联网服务在我的地方使用WiFi。 所有wwwstream量已被路由到透明代理。 我们有一个10Mbps的连接,而我们平时的客户端大约是100-130个客户端。 内部接口是eth1,外部是eth0。 问题是人们开始滥用我们的服务,用多个连接下载客户端下载很多东西,从而窒息了我们的带宽并给其他用户带来问题。 http数据可以正常stream通,因为有些服务来自我们的代理服务器,但是HTTPS有连接问题。 有时我看到一个IP地址打开了40个连接,同时下载10个文件。 我曾试图把鱿鱼maxconn 4,但maxconn有问题的Firefox最大连接到达错误时不时。 所以,现在当我看到一些人开始这样做的时候,我所能做的就是禁止那个用户。 所以我认为我应该静态限制所有的客户端每个IP最大64kbps,尽pipe有多less连接,除了只有youtube 360​​p电影电影应该运行得很好。 我计划为youtube以外的用户使用2mbps,为youtube使用8mbps。 这是我目前的脚本 tc qdisc add dev eth0 handle 1: root htb default 11 tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 8mbit tc class add dev eth0 […]

tcng&tc hiercharchy

让我来解释一下我正在做的事情,我们有一条10Mbps线路进入,我们想把它分成3个3Mbps的部分,由每个子网定义,然后在这些子网中的一个子网中有我们想要的然后分配每个特定的数量。 (所以他们的3Mbps,可能有5x256kbps 3×1.5Mbps等等) 所以在我的testing环境中,我只是试图让它有正确的inheritance类率和一切,我一直在尝试使用tc和tcng,这里是一个示例tcng应该限制为192.168.30.132到256kbps,但是事实并非如此,相反,它获得了连接的全部连接速度,甚至连htb里面的10Mbps类都没有。 然而,如果我从这个例子中删除$ tennents1,它将提供正确的512kbps的子网,而不是一个完整的链接。 dev eth1 { egress { class ( <$tennents> ) if ip_src/24 == 192.168.30.0 ; class ( <$tennent1> ) if ip_src/32 == 192.168.30.132 ; htb ( ) { class ( rate 10Mbps, ceil 10Mbps ) { $tennents = class ( rate 512kbps, ceil 512kbps ) { $tennent1 = class ( […]

tc u32匹配协议在最近的内核 – 在哪里讨论?

我一直在使用2.6.26内核的Debian; 现在我已经开始为我的需求testing2.6.32了。 我注意到,u32filter的行为有所不同,即“ protocol 802.1q ”。 为了发现这个趋势,我已经在3.0.0-12内核的Ubuntu服务器上运行了我的testing。 而且我发现我根本无法通过VLAN ID匹配数据包: # this worked in 2.6.26: /sbin/tc filter add dev world0 parent 1:0 prio 100 protocol 802.1q \ u32 match u16 0x0ed8 0x0fff at -4 \ flowid 1:fe51 所以,这是序言。 我想问问哪里是讨论这些问题的最佳地点? – 看来LARTC列表是非常不活跃的。 我不是程序员,所以我几乎不相信我应该深入LKML … 谢谢! UPDATE 我已经build立了3.2.11(最新的稳定),在我所有的testing中,似乎不可能捕获任何协议,但ip (或all ,这似乎与ip现在相当)。 但是,当捕获ip或any它似乎不可能匹配VLAN标签或类似的东西,价值也是负值。

在stream量控制规则中定义一个明确的父节点

在stream量控制中,过滤规则中的显式父声明是否会覆盖stream程定义? 例如; tc qdisc add dev eth0 root handle 1: htb default 20 tc class add dev eth0 parent 1: classid 1:1 htb rate 200mbit ceil 200mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 80mbit ceil 200mbit tc class add dev eth0 parent 1:1 classid 1:20 htb rate 80mbit ceil 200mbit […]

htb与内部gred如何设置filter达到DP

我想创build一个qos htb类,在这个类中有一个gred队列。 如何为gred队列中的每个红色队列添加一个工作filter? 我试过的是: DEV=lo SOMEGREDETTINGS="limit 60KB min 15KB max 45KB burst 20 avpkt 1000 bandwidth 1Mbit probability 0.02" tc qdisc del dev $DEV root > /dev/null tc qdisc add dev $DEV root handle 1:0 htb tc class add dev $DEV parent 1:0 classid 1:1 htb rate 1Mbit ceil 1Mbit tc class add dev $DEV […]

为什么TC规则树中的父类不工作

TC规则脚本中的父类不起作用,因为它保证! 有人能告诉我我的脚本有什么问题吗? 这里是关于我的问题的一些细节: 从“ Linux高级路由和stream量控制HOWTO ”的“9.5.4.4。configuration示例”一章中,我们看到可以通过指定一个父类来限制子类的总速率,即使子类的总和比父类的总和还要大类。 但是我在我的机器上试过了,只是发现它不能按预期工作。 下面是我的脚本,SecureCRT使用22端口。 父类将80和22端口限制为100KB,子类别分别限制为60KB和80KB。 # tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 10Mbit \ avpkt 1000 cell 8 # tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit \ rate 800kbit weight 80kbit prio 8 allot 1514 cell 8 maxburst 20 \ avpkt 1000 […]

我们有多less个filter – LINUX QOS

我正在使用TC在Linux服务器上做Qos。 根据tc工具的语法,filter的句柄必须在800 :: 001和800 :: FFF之间。 而因为0XFFF等于4095的十进制,所以我们最多只能有4095个filter,这是真的吗?

是否有可能将多个端口连接到TCfilter?

我需要通过端口限制带宽/速率,作为服务器,将有成千上万的端口。 由于tcfilter的限制,我想知道是否有可能多个独立的端口共享一个相同的filter。 例如,假设我们有10个端口,它们是11000,12000,…和20000,我们可以将这些端口填充到同一个tcfilter吗?

只在Tx上使用tc(stream量控制)在Linux中丢包

我知道可以使用tc在Linux机器中引入丢包。 例如: tc qdisc change dev eth0 root netem loss 10% 但是,是否可以指定丢包发生的stream量方向? 我希望在接收时没有丢包,但为了testing目的,发送时有10%的丢包。