tc

我可以在哪里放置 tc 过滤器?
tc

我可以在哪里放置 tc 过滤器?

我和室友各有一个 Raspberry Pi 路由器。带宽分配如下: 1:0(htb) | 1:1(16mbit/s) / \ 1:2(8mbit/s) 1:ffff(8mbit/s) 如果我添加过滤器,其父(tc filter add dev wlan0 parent 1:0 protocol ip prio 1 handle 0x0002 fw flowid 1:2)级为 1:0 ,它工作得很好。但是,如果我添加过滤器,其类为 1:1 ,该命令不会报告任何错误,但...

Admin

为什么这个 TC 脚本不起作用
tc

为什么这个 TC 脚本不起作用

我们的应用有三类流量,每类流量涉及三个端口。我们想通过 TC 按端口号限制流量,所以我写了一个简单的 TC 脚本进行测试,但是脚本并没有像我预期的那样工作。 下面是我设置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 1M...

Admin

基于 TCP 序列的 TCP 数据包过滤器
tc

基于 TCP 序列的 TCP 数据包过滤器

我需要根据特定的 TCP 序列或(可选)有效负载内容构建一个具有非常精确的数据包丢失的测试环境。我不知道如何使用 tc 或 iptables 来实现这一点。我应该使用什么工具? 谢谢。 ...

Admin

我们如何使用 tc 设置可变节流带宽值?
tc

我们如何使用 tc 设置可变节流带宽值?

我正在构建一个网络应用程序,需要测试其在各种带宽下的行为。 这个问题是这问题。我成功地针对不同的带宽速率集测试了我的应用程序。 此外我现在想测试应用程序在执行过程中带宽速率发生变化的情况。 我认为可以手动/使用 bash 脚本(以编程方式添加或删除 qdiscs)等完成相同的操作。 但是,如果存在一个 tc 命令,我可以简单地提供一系列带宽值,应用程序就会切换到随机速率进行下一次数据包传输,这将非常有用。 附言:我对 tc 还很陌生,因此相对详细的解释/链接会很有帮助。谢谢! ...

Admin

如何增加传入流量的延迟?
tc

如何增加传入流量的延迟?

为了进行持续测试,我希望 apache 服务器至少以 20ms 的延迟提供静态文件。 我尝试寻找一个 apache 配置设置或者具有类似功能的插件,但是失败了。 tc 和 iptables 的组合可能有效,但我只找到了一种基于传出端口添加延迟的方法(每个客户端都不同)。 变量 如果=低 IFSPEED=100Mbps #从 sudo /sbin/ethtool $IF 获取 延时=1000毫秒 # # 创建有类 HTB 对象树 # sudo /sbin/tc qdisc 添加 dev $IF 句柄 1: root htb # # 创建一个有类子桶...

Admin

Linux 流量控制: qdisc mq
tc

Linux 流量控制: qdisc mq

在我的 Linux 系统上我看到了这个: # ip link list .... 2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 .... 是什么qdisc mq?在http://lartc.org/lartc.html我只找到有关 IMQ 的信息。 本指南的示例中也有qdisc noop和qdisc noqueue,但没有关于它们的详细信息。 ...

Admin

限制物理接口的带宽,将10G链​​路变为1G链路
tc

限制物理接口的带宽,将10G链​​路变为1G链路

我希望给定的网卡表现得像较慢的网卡。例如,如果我笔记本电脑中的 1G 接口实际上是 100M 或 10M 接口。当然,实现这一点的方法之一是找出我以前的旧 10mbit 集线器,并将其用于此目的。 tc我确信有“软件解决方案”可以解决此问题。事实上,该命令和功能似乎tbf能够做到这一点。 不幸的是,我并没有完全理解实现上述内容的概念。似乎需要进行一些数学运算,以考虑假定的链接速度/sys/class/net/*/speed、可能的 MTU/sys/class/net/*/mtu以及系统的滴答率。我不确定现在“当前”发行版内核是否仍需要后者(例如,我有CONF...

Admin

尽管我仅使用 tc 命令来定位传入数据包,但传入和传出的数据包都会延迟
tc

尽管我仅使用 tc 命令来定位传入数据包,但传入和传出的数据包都会延迟

我想使用 tc 命令延迟来自特定 IP 的传入数据包。我试过 sudo tc qdisc add dev eth0 root handle 1: prio sudo tc qdisc add dev eth0 parent 1:3 handle 10: netem delay 500ms sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 10.20.30.400 flowid 1:3 这奇怪地增加了传入和传出请求的延迟,尽管从技术上讲它应该增加传出请求的延迟...

Admin

§ 8.5 基于 IP 的共享/分割带宽
tc

§ 8.5 基于 IP 的共享/分割带宽

我有一台带宽为 100 Mbps 的服务器。 具有动态 IP 的客户端可以连接到 Web 服务器并下载大文件 最多有10 个客户端可以同时下载 我保证为每个客户提供 10 Mbps 的带宽 我需要使用tc允许他们在单独下载时使用所有带宽,或者在下载客户端 > 1 时平等共享带宽 从未与tc 我想到了: tc qdisc del root dev ens3 default 10 tc qdisc add dev ens3 root handle 1: htb rate 100mbps tc class add dev ens3 parent 1: cla...

Admin

如何基于虚拟桥的物理接口进行QoS(流量控制)处理?
tc

如何基于虚拟桥的物理接口进行QoS(流量控制)处理?

我有一个需求,需要根据路由器的不同接口来进行流量速率限制,比如控制ssid1的上传速率为10mbps,下载速率为20mbps,lan1的上传速率为30mbps,下载速率为50mbps……上行接口为eth1,所有下行接口都抽象成虚拟网桥br-lan(包括ssid1、ssid2、lan1……)。 现在我尝试使用tc工具来限制流量速率,使用iptables的physdev模块来标记来自不同物理接口的流量,并使用标记的值来限制eth1的qdisc中某个物理接口的上传速度。 当前网桥情况如下(eth0.2对应lan1): root@cpe:~# brctl show ...

Admin

使用 OVS 端口进行入口流量整形
tc

使用 OVS 端口进行入口流量整形

我有一个这样的 ovs 拓扑: h1 | | [SW 1] / \ / \ [SW 2] [SW 3] \ / \ / [SW 4] | | h2 流量从 h1 发送到 h2。我想这样做:正常流量将进入路径:sw1 -> sw2 -> sw4。但是,如果流量速率超过 300kbit/s,速率超标的流量将通过路径 sw1 -> sw3 -> sw4。我知道 o...

Admin

接口上所有会话的流量控制
tc

接口上所有会话的流量控制

在连接到 1G 端口的接口上,我想限制所有用户/会话的单独下载速度不超过 20Mbits。我的意思是,如果其中两个用户尝试同时使用带宽,则每个用户都应该能够获得 20Mbits。 我将其用于不同的应用程序。一个是 Openvpn 用户管理。因此,让我们考虑一下界面tun0。似乎在 Ubuntu 服务器机器上,最好的方法是使用tc界面tun0。 我尝试像这样设置我的塑造场景: tc qdisc add dev tun0 root handle 1:0 htb tc class add dev tun0 parent 1:0 classid 1:1 htb ra...

Admin

如何在 Ubuntu 中设置 IP 范围内每个 IP 的速度限制
tc

如何在 Ubuntu 中设置 IP 范围内每个 IP 的速度限制

我想要的是: 我已经设置了一个 openvpn 服务器,并希望 10.8.0.0/21 范围内的客户端将其速度限制为每个 IP 10mbit总限制为 100mbit。 wan interface : eth0 openvpn interface : tun0 clients ip range : 10.8.0.0/21 我做了什么: 我已经使用以下配置设置了 tc 过滤器。 tc 过滤规则: tc qdisc add dev eth0 root handle 1: htb default 10 tc class add dev eth0 pare...

Admin

在 Linux 中使用 cgroup 和 tc 似乎并不完全符合我的要求:10 倍差异
tc

在 Linux 中使用 cgroup 和 tc 似乎并不完全符合我的要求:10 倍差异

我正在使用在互联网上各处(包括 ServerFault)找到的“标准”方式来尝试限制进程的带宽,使用 cgroups 和 tc。 我在实践中看到,我设定的限制tc在实践中将会增加大约 10 倍,请看此屏幕截图: 我将 设置rate为ceil100kbit(不是 100kbps),因此我期望看到下面的 wget 显示大约 10 千字节每秒。但我看到的却是 500kBps。 如果我将 htp 速率更新为 100每秒(每秒 100 千字节)我看到我的速率飙升至 10兆字节/秒,是原来的 100 倍: tc class change dev ens3 classi...

Admin