Articles of tc

重置队列规则回到默认的pfifo_fast之一?

我试图暂时设置一个限速排队规则,稍后再删除它: # /sbin/tc qdisc add dev eth1 root tbf rate 600kbit latency 50ms burst 1540 # /sbin/tc qdisc del dev eth1 root 不幸的是,这完全删除了队列纪律,并且在队列被删除后阻止了传出的数据传输工作。 我希望能够将队列规则重置为默认值: qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 但是看起来不像pfifo_fast qdisc可以手动创build: # /sbin/tc […]

使用tc将数据包延迟到只有一个IP地址

我是使用tc和netem的新手 。 我想延迟发送到特定IP地址的数据包。 但是,下面的命令会导致系统中的所有数据包被延迟,而不仅仅是IP地址1.2.3.4: tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: prio tc qdisc add dev eth0 parent 1:1 handle 2: netem delay 500ms tc filter add dev eth0 parent 1:0 protocol ip pref 55 handle ::55 u32 match ip dst 1.2.3.4 flowid 2:1 我的猜测是,我最后需要一些全面的filter来指定所有剩余的stream量不应该经过netem。 但是我什么都不能工作。 我将如何得到这个工作?

Linux TC类/filter编号

我目前正在为ISP级公司制定stream量调整解决scheme,并且出现了一个有趣的(仁慈的哲学)问题。 看看系统应该处理的端点数量(大概在20K左右),我有点担心当我需要策略/塑造更多用户的stream量时会发生什么。 因为我正在使用HFSC整形树(请参阅tc-hfsc,大多数情况下HTB更像冷却器),所以我需要使用更多的ClassID(显然每个用户至less有一个networking)。 我发现的问题是,TC ClassID是有限的 – 他们是16位数字,这给我一个可能的最大64k用户由此解决scheme塑造。 同样,如果我想要有效pipe理TCfilter(例如不使用“flush all technique”),我需要能够删除或修改单个filter条目。 (我正在使用类似于LARTC [1]中的哈希表)。 再一次,似乎正在处理这个唯一的方法是使用单独的优先级来编号所有的filter(tc filter add dev … prio 1)。 没有其他的参数可以用于这个目的,可惜的是,prio也是16位的。 我的问题是:是否存在一些扩大可用“标识符空间”的好方法,例如“tc class”命令的32位clsid,以及“tc filter”的32位优先级(或任何其他修改句柄)命令? 非常感谢, -MK (顺便说一句,我希望这不会去“64K用户应该是足够的每个人”场景…)

tc u32 – 如何在最近的内核中匹配L2协议?

我有一个很好的整形器,在linux网桥上build立了哈希filter。 简而言之, br0连接external和internal物理接口,VLAN标记的数据包被“透明地”桥接(我的意思是没有VLAN接口)。 现在,不同的内核做不同的事情。 我可以错误的确切的内核版本范围,请原谅我。 谢谢。 2.6.26 所以,在debian中,2.6.26及以上(我相信达2.6.32)—这个工作: tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \ u32 ht 1:64 match ip dst 192.168.1.100 flowid 1:200 在这里,“内核”与0x8100“协议”字段中的两个字节相匹配,但将ip数据包的开始计数为“零位”(对于我的英文,如果我有点不清楚,那么抱歉)。 2.6.32 再次,在debian(我没有build立香草核),2.6.32-5 —这个工作: tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \ u32 ht 1:64 match ip dst 192.168.1.100 at 20 flowid […]

Tc:入口pipe制和ifb镜像

我正在尝试在Linux网关上设置stream量整形。 脚本需要定制,因为我有多个LAN接口。 因此,为了塑造LAN端,我打算创build一个ifb伪设备,如下所示: modprobe ifb ip link set dev ifb0 up /sbin/tc qdisc add dev $WAN_INTERFACE ingress /sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 从上面提到的要点回购脚本有这些行: /sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress /sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip […]