标签: tc

理解 tc qdisc 和 iperf

我正在尝试使用 限制带宽tc并使用iperf. 我是这样开始的:

# iperf -c 192.168.2.1
------------------------------------------------------------
Client connecting to 192.168.2.1, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.7 port 35213 connected with 192.168.2.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   830 MBytes   696 Mbits/sec
Run Code Online (Sandbox Code Playgroud)

两个实例通过以太网直接相连。

然后我设置了htb qdisc一个默认类以将带宽限制为 1mbit/sec:

# tc qdisc add dev bond0 root handle 1: htb default 12
# tc class add dev bond0 parent 1: classid 1:12 htb rate …
Run Code Online (Sandbox Code Playgroud)

tc

15
推荐指数
1
解决办法
1万
查看次数

桶大小 (tbf)

我已经阅读了很多次关于Linux 的令牌桶过滤器 (tbf) 的内容,但我仍然不完全理解我应该如何计算burstlatency参数,我很惭愧:(

我认为合理的延迟约为 50 毫秒。好的,但是 burst 应该取什么值?

手册页说:

后一种计算考虑了存储桶的大小、速率以及可能的峰值速率(如果设置)。这两个参数是互斥的。

那么,延迟与存储桶和过滤器有何关系?有计算公式吗?或者仅仅是“好吧,X 字节的突发和 Y 秒的延迟对我有好处”?

linux qos tc

12
推荐指数
2
解决办法
8593
查看次数

tc 桥接端口

我有一个 4 端口网桥:

root@Linux-Switch:~# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000024cd2cb0   no      eth0
                            eth1
                            eth2
                            eth3
Run Code Online (Sandbox Code Playgroud)

我的目标是限制eth2接口的上传速度。(eth0 是上行交换机的上行接口)。我一直在尝试通过 tc 和 iptables 来做到这一点。

# tried in both the filter table and mangle table
iptables -A FORWARD -t mangle -m physdev --physdev-in eth2 -j MARK --set-mark 5 

tc qdisc add dev eth0 root handle 1:0 htb default 2
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1mbit ceil 1mbit
tc class add dev eth0 parent …
Run Code Online (Sandbox Code Playgroud)

linux networking iptables bridge tc

8
推荐指数
1
解决办法
4888
查看次数

tc 显示输出说明

我发现沿着 tc 有用的 run watch,例如:

[root@router ~]# watch  -dc  tc -p -s -d  qdisc show dev eth0

    Every 2,0s: tc -p -s -d qdisc show dev eth0                                             Sat Oct 19 21:22:26 2013

qdisc prio 1: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 130714882 bytes 1107132 pkt (dropped 20379, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 30: parent …
Run Code Online (Sandbox Code Playgroud)

qos tc

6
推荐指数
1
解决办法
3万
查看次数

无法获得 tc 来限制网络流量

根据Linux 高级路由和流量控制 HOWTO 的这一部分,我无法tc限制计算机的网络速度。

路由器是摩托罗拉 SurfBoard 调制解调器,具有一些路由功能和防火墙。我想限制流量的机器是192.168.0.5,脚本也是从192.168.0.5运行的。

这是我对上面链接中的命令的改编/etc/NetworkManager/dispatcher.d/

#!/bin/sh -eu

# clear any previous queuing disciplines (qdisc)
tc qdisc del dev wlan0 root 2>/dev/null ||:

# add a cbq qdisc; see `man tc-cbq' for details
if [ $2 = up ]; then
    # set to a 3mbit interface for more precise calculations
    tc qdisc add dev wlan0 root handle 1: cbq avpkt 1000  \
        bandwidth 3mbit

    # leave 30KB (240kbps) …
Run Code Online (Sandbox Code Playgroud)

networking qos tc

6
推荐指数
1
解决办法
3944
查看次数

通过 iptables 设置数据包速率限制

我有一个由我的互联网提供商设置的数据包速率限制(每秒最多 10 个)。如果我想使用 AceStream 播放器,这是一个问题,因为如果我超过限制,我就会断开连接。

如何限制该程序的互联网访问?

我尝试了建议的命令:

iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

但我收到一条致命错误消息:

FATAL: Error inserting ip_tables (/lib/modules/3.2.0-67-generic/kernel/net/ipv4/netfilter/ip_tables.ko): Operation not permitted
iptables v1.4.12: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Run Code Online (Sandbox Code Playgroud)

具有管理员权限:

sudo iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

没有错误信息了。但它仍然无法正常工作,我断开连接。

命令行中是否有错误?还是我必须使用 iptables 的其他参数?

下面是当我超出提供程序的限制时我得到的实际消息。在此处输入图片说明

到目前为止,我尝试了不同的方法,但没有一个不起作用。

sudo iptables -A INPUT -p tcp --syn --dport 8621 -m connlimit --connlimit-above 10 …
Run Code Online (Sandbox Code Playgroud)

process iptables limit tc application

6
推荐指数
1
解决办法
3万
查看次数

IFB设备在Linux内核的数据包流中是如何定位的

我想知道以下设备在用于入口流量整形的数据包流中的确切位置

  • IFB:中间功能块

我想更好地了解数据包如何流向该设备,以及何时发生这种情况,以了解可以使用以下哪些过滤/分类方法:

  • tc filter ... u32 ...
  • iptables ... -j MARK --set-mark ...
  • iptables ... -j CLASSIFY --set-class ...

似乎很难找到关于这个主题的文档,任何可以找到官方文档的帮助也将不胜感激。

据我所知文档:

从已知的文档中,我解释了以下内容:

基本流量控制

figure 1
+-------+                 +------+
|ingress|   +---------+   |egress|
|qdisc  +--->netfilter+--->qdisc |
|eth0   |   +---------+   |eth0  |
+-------+                 +------+
Run Code Online (Sandbox Code Playgroud)

国际金融局?

tc filter add dev eth0 parent ffff: protocol all u32 match u32 0 0 …

iptables tc linux-kernel netfilter

6
推荐指数
1
解决办法
9167
查看次数

如何配置每个 IP 的 QoS?

我们已经说过,专用网络中的用户通过正在执行的地址( NAT)4连接到互联网。我必须配置为向用户提供访问权限,但对用户的带宽进行限制,而对其他用户则没有限制。Linux routerpublic IPnetwork address translationQoSInternet2

eth0:121.51.26.35
eth1:10.239.107.1
Run Code Online (Sandbox Code Playgroud)

eth0Linux Router一个10Mbps链接。eth1连接到switch4节点连接到switch。我想配置tc2 nodes仅限制一组用户的带宽(XyZ in picture)以仅3Mbps累积使用。(当1个用户下载/上传时,他/她必须收到3Mbps,但当3个用户同时下载/上传时,他们必须收到1MBps

首先请告诉我这个要求是否可以实现,如果是的话我该如何进行?

下面是拓扑图

在此输入图像描述

linux qos bandwidth tc nat

5
推荐指数
1
解决办法
3324
查看次数

TC(流量控制)控制带宽

我遇到了一个带宽脚本问题,我已经使用该脚本一段时间来限制端口上的传出带宽。

一开始它工作得很好,直到我想改变传出端口速度。我将其切换到更高的数字(200mbit 到 400mbit),然后重新启动了脚本。由于某种原因,新的带宽限制没有生效,旧的限制仍然存在。我将脚本设置为初始化服务。这就是代码的一部分。

# Interface
interface=eth0

# Define the upload, follow units can be
upload_limit=400mbit

start() {
    # Start the tc configuration and set all packets default to 10
    /sbin/tc qdisc add dev $interface root handle 1:0 htb default 10

    # Set default speed for all packets
    /sbin/tc class add dev $interface parent 1:0 classid 1:10 htb rate 1000mbit ceil 1000mbit prio 0
    # Set speeds for packets marked with 20
    /sbin/tc class add dev $interface parent 1:0 classid …
Run Code Online (Sandbox Code Playgroud)

iptables centos tc

5
推荐指数
1
解决办法
2781
查看次数

限制单个 HTTP 请求的带宽,同时不限制总带宽

看着一样的工具TCwondershaperHTB康卡斯特,所有这些工具似乎对网络接口的“连接组”中,或至少水平,为限制带宽操作。我想不是油门带宽一组连接,而是油门单个连接的最大速率。

具体来说:是否有可用的工具可用于调整单个 HTTP 请求的最大下载速率?

细节

我想要做的是模拟从 S3 上的存储桶中获取的慢速请求。我看到对于远离数据中心的请求,单个项目的下载通常很慢(<500 kb/s),但并行下载会产生 >5 mb/s 的下载速度。

我可能可以通过在这些请求中添加延迟来部分解决问题(这会减慢整个串行请求的速度,但不会减慢整体带宽),但更直接的解决方案会很棒。

networking tc

5
推荐指数
1
解决办法
2371
查看次数