RK356X网口限速
1. 参考资料
Linux 上的虚拟网络接口,主要要了解一下 IFB,对输入的流量进行整形
IFBwiki介绍《Linux 高级路由与流量控制手册》关于各种队列
Queue和排队规则Queueing Disciplines的介绍Linux 流量控制
Traffic Control关于
Ingress和Egress的介绍关于
HTB - Hierarchical Token Bucket队列的介绍https://arthurchiao.art/blog/lartc-qdisc-zh/#55-htbhierarchical-token-bucket层级令牌桶
HTB 官方介绍
2. 内核配置
开启
IFB - Intermediate Functional Block support, 这个会影响下行限速功能,如果只需要限制上行即出站的流量,也可不启用此模块

将
Networking support > Networking options > QoS and/or fair queueing这一页的内容全部选中,可以选择编译进内核或作为外部模块,开机时加载;- 其中
TBF - Token Bucket Filter,这个会影响上行限速功能

- 其中
3. tc工具移植
RK3566 SDK 中
busybox集成的 tc 工具过于简陋,不支持流量整形,需要重新移植 tc 工具tc工具是
iproute2中的一个组件,获取iproute2源码,我选择使用 5.18.0版本https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.18.0.tar.gz
编译环境:
Ubuntu20.04进入源码目录,执行
configureiproute2-5.2.0$ ./configure
修改
config.mk中的ARCC,指定交叉编译工具链修改
config.mk, 取消HAVE_SELINUXHAVE_ELFHAVE_MNLHAVE_CAP这几个宏定义

编译
iproute2-5.2.0$ make clean && make
查看编译得到的 tc工具是不是目标平台格式的文件

使用这个 tc工具替换 RK3566 中的
/sbin/tc
3. 限速测试
上行限速,限个
500kbps试试tc qdisc add dev eth0 root tbf rate 500Kbit latency 50ms burst 15kb
使用
iperf3上行测速,限速成功

下行限速,需要借助一个虚拟网口
ifb0来实现# 创建一个虚拟网口ifb0,用于流量重定向和整形
ip link add ifb0 type ifb
ip link set dev ifb0 up # 将网口eth0入站流量重定向到ifb0
# 在eth0上添加一个入站队列qdisc
tc qdisc add dev eth0 handle ffff: ingress
# 在eth0上添加一个过滤器,将所有IP包都重定向到网口ifb0上
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 # 在网口ifb0上添加一个HTB队列
tc qdisc add dev ifb0 root handle 1: htb default 10
# 创建一个类class,匹配这个类的流量将被限制为500kbps
tc class add dev ifb0 parent 1: classid 1:1 htb rate 500Kbit
# 创建一个过滤器,将ifb0上的所有流量都匹配到上一步创建的类上
tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1
使用
iperf3下行测速,限速成功

RK356X网口限速的更多相关文章
- tc令牌桶限速心得
一.实验拓扑与实验现象 实验拓扑如图所示,在①号机上发送数据,③号机上接受数据,同时在④号机的eth1与eth2网口限制速率为115200kbps,命令如下 tc qdisc add dev eth1 ...
- C#限速下载网络文件
代码: using System; using System.Collections.Concurrent; using System.Collections.Generic; using Syste ...
- PHP 文件限速下载代码
php 文件限速下载代码 <?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QU ...
- Nginx 限速模块一览
为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施. 一.http 请求并发连接数模块:ngx_http_limit_conn_module 这个模块可以设置每个定义的变量(比如客户 ...
- PHP文件可限速下载代码
<?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QUERY_STRING&qu ...
- dm9000网口收发控制以及mac地址过滤设置
目的 :完成网口收发调试 过程 : 1.网口初始化,根据芯片数据手册配置 2.网口发数,先向DM9000中的TX FIFO存入数据,然后出发发送寄存器完成发送: 3.网口接收 . ...
- Nginx限速遇到的问题
公司使用的是Nginx做文件服务器,最近服务器流量增大,老板提出要给每个客户端进行限速. 在Nginx中进行限速配置: http { limit_zone one $binary_remote_add ...
- nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
geo指令使用ngx_http_geo_module模块提供的.默认情况下,nginx有加载这个模块,除非人为的 --without-http_geo_module.ngx_http_geo_modu ...
- 百度云管家 5.3.6 VIP破解不限速版下载分享|百度云管家破解提速
百度云管家PC客户端v5.3.6绿色版本,属于VIP破解不限速版.百度网盘为您提供文件的网络备份.同步和分享服务.空间大.速度快.安全稳固,支持教育网加速,支持手机端.它支持便捷地查看.上传.下载云端 ...
- SCP 和 rsync限速以及用法
rsync限速以及用法 -- :: 标签:限速 rsync 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xficc.blog. ...
随机推荐
- JMeter非GUI模式执行,jtl文件请求与响应数据为空?这里有答案!
JMeter非GUI模式执行,jtl文件请求与响应数据为空?这里有答案! 问题描述 在使用JMeter进行性能测试时,很多用户会选择非GUI(图形用户界面)模式来执行测试,因为这样可以减少客户端的负担 ...
- mysql外部访问踩坑
起因 项目用.Net开发,在mac上运行,可能是版本问题,想试试在windows下部署,就用parallels起了个windows,但windows却无法连接宿主mac上的mysql,最后折腾了一天才 ...
- min-max 容斥(最值反演)学习笔记
min-max 容斥,又名最值反演(我其实更喜欢后面这个名字),是一种常用的反演思想. 引入 在皇后游戏一题中,我们曾经证明过 \(\max(a,b)-a-b=-\min(a,b)\). 我们尝试推广 ...
- 【忍者算法】从生活到代码:解密链表大数相加的美妙算法|LeetCode第2题"两数相加"
从生活到代码:解密链表大数相加的美妙算法 从超市收银说起 想象你是一个超市收银员,正在计算两位顾客的购物总和.每位顾客的商品都按照从个位到高位的顺序摆放(比如54元就是先放4元商品,再放50元商品). ...
- 【COM3D2Mod 制作教程(4)】实战!制作身体部分(上)
[COM3D2Mod 制作教程(4)]实战!制作身体部分(上) 教程介绍 现在正式进入实战教程环节,我会以我的实际制作过程详尽的教授每个细节,也因此受限于篇幅大小,"实战!制作身体部分&qu ...
- 2022美亚杯个人赛wp(纯文字思路)
2022美亚杯个人赛wp(纯文字思路) vc镜像密码CZDGm#&2_Ns$7wSMn%ZGr7xntcHS7d5uFta#Up9544jx_cvP$uFM7?pTDa*jN&QyFD ...
- Mermaid Live Editor 如何调整方向
在 Mermaid Live Editor 中,默认情况下,流程图和序列图等都是按照从左到右的方向来布局的.但是,如果你想要创建一个从上到下(纵向)布局的图形,你可以使用 TD(Top-Down,即从 ...
- wxpython 文件重命名报错提示os.rename WinError 2]系统找不到指定的文件‘
原因:重命名需要把文件路径带上 源码: for file in files: print(file) os.rename(file, file.replace(beforename, afternam ...
- windows 10 平台使用命令行批量获取一个文件夹下所有文件的路径
1 打开命令行, 定位路径到指定磁盘 2 使用cd命令定位到指定路径 3 输入以下命令, 想要的结果就保存在了filename.txt中 dir /b/s filename.txt 结果:
- DevOps - DevOps基础概念梳理
目录 DevOps DevOps的好处与价值 可能的几个关注点 DevOps能力环 DevOps与持续集成.持续交付 一个完整的过程 典型的CICD流水线过程 DevOps黄金思维圈 初见 一些图示 ...