我希望降低特定网络流量的优先级,特别是在我的Linux服务器中使用tc,特别是tc-u32。换句话说,所有其他流量都必须比具有指定IP-proto的流量具有更高的优先级。
我试图应用这个tc筛选规则来降低发送ICMP通信量的优先级:
tc f a dev eno1 parent 1: prio 2 u32 match ip protocol 1 0xff
但是它返回这个错误:
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
在这种情况下,我对tc还有一些不清楚的地方:
如何使这条规则正常工作?
我正在创建一个单独的网络堆栈,我正在使用libpcap,或者特别是pcap_inject函数直接将数据包发送到链路层。但是,当我查看tc -s qdisc show dev eth0命令时,我看到我发送的数据包正在向队列发送的数据包中计数。所以我的问题是,pcap_inject是否调用linux的流量控制层来发送数据包?还是直接发送到设备驱动程序?
提前感谢
我目前正在linux中进行流量整形。我们有一个客户端连接到运行nat和dhcp的服务器。我们要做的是限制客户机/客户端的上传和下载速度。
然而,只有下载限制工作。
下载限制(脚本的一部分)工作
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30000kbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.101/32 flowid 1:4
上传限制(脚本的一部分)
tc class add dev eth1 parent
我试图给我的OpenVPN一些带宽限制。例如,我希望每个用户给10 and /S上传和下载。我尝试了下面的答案(新用户连接时自动调用脚本,带宽会形成连接),但似乎没有改变限制。
这是我的server.conf:
port 1194
proto udp
dev tun
user openvpn
group nobody
script-security 2
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push
我试图减缓特定程序的传入数据包,而第二个程序将完全访问未使用的带宽。换句话说,我想控制网络带宽共享,以便将一个应用程序优先于另一个应用程序。
下面是我从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 ff
在使用cgroups和tc时,我遇到了一些问题。
我正在尝试给一个特定的进程增加延迟。下面的代码不起作用。但我不知道哪里错了(甚至什么是对的)。
# Set up net_cls to make
modprobe cls_cgroup
mount -t cgroup -o net_cls none /sys/fs/cgroup/net_cls
# Create a new CGroup called 'high-latency'
mkdir /sys/fs/cgroup/high-latency
# All packets originating from this CG
因为我还记得我和我们公司的一个特别的合作伙伴上传带宽的问题,我还在调查为什么.
我注意到主网络接口上的流量控制有一些奇怪的行为,并问自己是否应该是问题的根源。
以下是"/sbin/tc -s -d class show dev eth0“命令的返回,该命令仅在第9个队列上显示大量丢弃的数据包(其他队列没有丢弃数据包):
类mq :9根发送740545290948字节870754148 pkt (下降35373,上限0请求30919)
请有人向我解释清楚这意味着什么,如果这是个问题,我该如何纠正?
非常感谢!
在我的网络中,我试图通过基于Linux的软件桥来确定流量的优先级。当我在本地(在承载桥的机器上)生成流量时,流量被正确地排序。但是,“远程”通信量(来自通过桥接器的其他节点)没有被排序(向所有发件人分配相同的带宽)。也许有人知道原因?
桥为I350网络适配器设置如下(Linux5.1.81-Manjaro #1 SMP抢占孙俊9 20:44:14 UTC 2019 x86_64 GNU/Linux):
brctl addbr br0
ip link set dev enp1s0f0 promisc on
ip link set dev enp1s0f1 promisc on
ip link s
我们有许多应用程序运行在服务器网络中的同一台服务器机器上。我们希望将应用程序的带宽限制在特定值。以下是一些选择:
suppose we have three apps: A, B, and C.
1) Use Linux (kernel 2.6) QoS Utilities to limit the bandwidth of
these three applications.
2) Develop our own application to limit the bandwidth.
当然,首选的是第一个,但是我们需要知道Linux提供的q