在我的网络中,我试图通过基于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
我有一个问题,了解tc行为,特别是如何工作的qdisc删除。我的主要问题是为什么tc qdisc没有删除附加的过滤器?我做了:
tc qdisc add dev eth ingress
tc qdisc add dev eth parent ffff....
tc filter add dev eth protocol ip....
tc qdisc del dev eth root
最后一条命令应该删除qdisc及其附带的过滤器,但当我删除时
tc filter show dev eth
过滤器仍然存在。我是否做错了什么,还是只能通过命令tc filter del...删除筛选器?
我有一台主机,它有两个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
我已经编写了一个脚本,可以通过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
我目前正在使用以下脚本:
#!/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
我试图给我的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
我有一个bash脚本,我想要全局启用set -e。
但是,与其一直禁用它和重新启用它,我想知道是否有一种有选择地禁用错误处理的方法。例如,从systemd运行的命令可以预先加上减号,以忽略错误。巴什有等价物吗?
例如:
#!/bin/bash
set -e
WAN_IF=eth2
# Ignore error on next line
tc qdisc del dev ${WAN_IF} root
# I want errors to stop the script on this line
tc qdisc add dev ${WAN_IF} root handle 1: htb d
我正在尝试对从某个进程组生成的数据包进行优先级排序,以便首先从PC中选择要传输的数据包。我的目标是通过使用cgroups和tc来实现这一点,但它似乎不起作用。
首先我在ubuntu上设置cgroup,如下所示:
modprobe cls_cgroup # load this module to get net_cls
mkdir /sys/fs/cgroup/net_cls # mount point
mount -t cgroup net_cls -onet_cls /sys/fs/cgroup/net_cls/
mkdir /sys/fs/cgroup/net_cls/foo #
是否有人知道是否可以使用TC从一个源接口镜像多个接口?我做了以下工作:
我做的第一件事是使用tc qdisc add dev e101-001-0 handle ffff: ingress 在输入接口上创建一个入口队列。
如果您需要删除qdisc,您可以使用tc qdisc del dev e101-001-0 [ root | ingress ]进行删除。
用tc -s qdisc ls dev e101-001-0创建带有句柄ffff的队列
接下来,我们希望用tc filter add dev e101-001-0 parent ffff: protocol all u32 match
我希望模拟一组在主机不同端口上运行的服务的延迟。我想模拟不同服务的不同延迟,在给定的主机上可能有许多延迟,希望没有任何限制。
我发现唯一能做到这一点的方法是使用prio qdisc。下面是一个例子:
IF=eth0
tc qdisc add dev $IF root handle 1: prio bands 16 priomap 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# this loop is only a sample to make the example runnable; values will vary in practice
for handle in
我正试着在我的拱形盒上使用这个tc脚本。
具体来说,第一行(大致等于tc qdisc add dev eth0 root handle 1: htb default 3 )在RTNETLINK answers: Operation not permitted中失败
我又买了几个,还有几个We have an error talking to the kernel。
我四处搜索,没有人提到tc依赖于另一个包来使用htb,我使用它与./script.sh start在站点上指定的完全一样。与sudo一起运行的结果是相同的。
在arch linux上使用tc与htb的下一步行动是什么?