最近,我正在研究Linux的QOS实用程序-- TC,今天我在Linux上遇到了带宽限制脚本中的以下两种状态:
tc filter add dev eth0 parent 1: prio 1 protocol ip u32 \
match ip tos 0x68 0xff match ip protocol 0x11 0xff flowid 1:1
tc filter add dev eth0 parent 1: prio 1 protocol ip u32 \
match ip tos 0xb8 0xff match ip protocol 0x11
在我的网络中,我试图通过基于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
在我的网络中,我试图通过基于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
我希望降低特定网络流量的优先级,特别是在我的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还有一些不清楚的地方:
如何使这条规则正常工作?
我目前正在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
我目前正在使用以下脚本:
#!/bin/bash
#
# tc uses the following units when passed as a parameter.
# kbps: Kilobytes per second
# mbps: Megabytes per second
# kbit: Kilobits per second
# mbit: Megabits per second
# bps: Bytes per second
# Amounts of data can be specified in:
# kb or k: Kilobytes
我正在使用两个虚拟机(主机和目标)调试linux内核.通过串口/dev/ttyS0连接。
主机
命令行使用--> <--高亮显示。
--> root@tony-VirtualBox:~/linux# gdb ./vmlinux <--
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/g
我已经编写了一个脚本,可以通过Ubuntu18.04.5LTS上的ts工具限制我的带宽。
问题是,即使上传速度被正确地限制在我对脚本的限制,下载速度也不会受到限制,我也不明白为什么。
这是链接
#!/bin/bash
# Full path to tc binary
TC=$(which tc)
interface=ens33
interface_speed=100mbit
ip=192.168.42.130 # The IP address bound to the interface
download_limit=512kbit
upload_limit=1mbit
我有一台主机,它有两个NIC,因此可以将其视为网关,两个网络端口桥接。然后我让两个网络接口的入口流量重定向到IFB,然后执行IFB的流量控制,但它不起作用,为什么?上面提到的两个网卡,一个是广域网端口,另一个是局域网port.They网桥。我的脚本如下:
#!/bin/sh
WAN=eth6
LAN=eth7
ifbdev=ifb0
#enable ifb interface
modprobe ifb numifbs=1
ip link set dev $ifbdev down
#add tc rules for WAN port
tc qdisc del dev $WAN roo