区分Internet和Local数据流的Qos实现
区分Internet和Local数据流的Qos实现
需求
区分广域网和局域网的流量控制
实现分析
假设sta1链接在ath00接口
可能的上行流量
可能的下行流量
需要给ath00, ath10, eth0 TX方向设置QoS
默认每个接口上创建两个静态类别,通过过滤器将广域网和局域网流量分在这两个类别里, 并在两个静态类别下创建另外两个子队列,在子队列下创建过滤器来区分STA
为ath00/ath10创建静态队列,类别和过滤器
- 为ath00创建HTB队列,默认类别1:30,为来自WAN的流量。
tc qdisc add dev ath00 root handle 1: htb default 30
- 为根队列1:,创建一个根类,和两个子类别,1:30, 1:31,它们不独占带宽,按照1:1借用最大带宽
tc class add dev ath00 parent 1:0 classid 1:1 htb rate 500mbit ceil 500mbit burst 150k
tc class add dev ath00 parent 1:1 classid 1:30 htb rate 12kbit ceil 500mbit burst 150k
tc class add dev ath00 parent 1:1 classid 1:31 htb rate 12kbit ceil 500mbit burst 150k
- 为类别创建过滤器, 类别1:31来自LAN的流量
tc filter add dev ath00 protocol ip parent 1:0 prio 3 u32 match ip src 10.0.0.0/8 flowid 1:31
tc filter add dev ath00 protocol ip parent 1:0 prio 2 u32 match ip src 172.16.0.0/12 flowid 1:31
tc filter add dev ath00 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.0/16 flowid 1:31
- 在1:30下创建个子队列30:,并为子队列创建默认类别, 来自WAN的流量默认进入301:队列
tc qdisc add dev ath00 parent 1:30 handle 30: htb default 30
tc class add dev ath00 parent 30:0 classid 30:1 htb rate 500mbit ceil 500mbit burst 150k
tc class add dev ath00 parent 30:1 classid 30:30 htb rate 12kbit ceil 500mbit burst 150k
tc qdisc add dev ath00 parent 30:30 handle 301: sfq perturb 10
- 在1:31下创建个子队列31:,并为子队列创建默认类别, 来自LAN的流量默认计入311:队列
tc qdisc add dev ath00 parent 1:31 handle 31: htb default 30
tc class add dev ath00 parent 31:0 classid 31:1 htb rate 500mbit ceil 500mbit burst 150k
tc class add dev ath00 parent 31:1 classid 31:30 htb rate 12kbit ceil 500mbit burst 150k
tc qdisc add dev ath00 parent 31:30 handle 311: sfq perturb 10
为eth0创建队列,类别和过滤器
- 为eth0创建队列,默认类别1:30为去往WAN的流量
tc qdisc add dev eth0 root handle 1: htb default 30
- 创建类别
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 500mbit ceil 500mbit burst 150k
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 12kbit ceil 500mbit burst 150k
tc class add dev eth0 parent 1:1 classid 1:31 htb rate 12kbit ceil 500mbit burst 150k
- 创建过滤器,类别1:31为去往LAN的流量
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 10.0.0.0/8 flowid 1:31
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 172.16.0.0/12 flowid 1:31
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.0/16 flowid 1:31
- 在1:30下创建个子队列30:,并为子队列创建默认类别, 来自WAN的流量默认进入301:队列
tc qdisc add dev eth0 parent 1:30 handle 30: htb default 30
tc class add dev eth0 parent 30:0 classid 30:1 htb rate 500mbit ceil 500mbit burst 150k
tc class add dev eth0 parent 30:1 classid 30:30 htb rate 12kbit ceil 500mbit burst 150k
tc qdisc add dev eth0 parent 30:30 handle 301: sfq perturb 10
- 在1:31下创建个子队列31:,并为子队列创建默认类别, 来自LAN的流量默认计入311:队列
tc qdisc add dev eth0 parent 1:31 handle 31: htb default 30
tc class add dev eth0 parent 31:0 classid 31:1 htb rate 500mbit ceil 500mbit burst 150k
tc class add dev eth0 parent 31:1 classid 31:30 htb rate 12kbit ceil 500mbit burst 150k
tc qdisc add dev eth0 parent 31:30 handle 311: sfq perturb 10
为sta1创建上行WAN流量限速,在eth0 30: qdisc上
- 在eth0的30: qdisc(dst是WAN流向WAN的流量)类别下创建子类别30:100,限速(src是sta1)1mbit
tc class add dev eth0 parent 30:1 classid 30:100 htb rate 12kbit ceil 1mbit burst 15k
- 创建过滤器
tc filter add dev eth0 protocol ip parent 30:0 prio 1 u32 match ip src \sta1 ip\ flowid 30:100
为sta1创建下行WAN流量限速,在ath00 30: qdisc上
- 在ath00的30: qdisc(src是WAN,从WAN过来的流量)类别下创建子类别30:1,限速(dst是sta1)1mbit
tc class add dev ath00 parent 30:0 classid 30:1 htb rate 1mbit ceil 1mbit burst 15k
- 创建过滤器
tc filter add dev ath00 protocol ip parent 30:0 prio 1 u32 match ip dst \sta1 ip\ flowid 30:1
为sta1创建上行LAN流量限速,在eth0 31:, ath00/ath10 31: qdisc上
- 在eth0的31: qdisc(dst是LAN的,流向LAN的数据)类别下创建子类别31:1100,限速(src是sta1的)1mbit
tc class add dev eth0 parent 31:1 classid 31:1100 htb rate 12kbit ceil 1mbit burst 15k
- 创建过滤器
tc filter add dev eth0 protocol ip parent 31:0 prio 1 u32 match ip src \sta1 ip\ flowid 31:1100
- 在ath00/ath10的31: qdisc(src是LAN,从LAN过来的流量)类别下创建子类别31:1100,限速(src是sta1的)1mbit
tc class add dev ath00 parent 31:1 classid 31:1100 htb rate 12kbit ceil 1mbit burst 15k
- 创建过滤器
tc filter add dev ath00 protocol ip parent 31:0 prio 1 u32 match ip src \sta1 ip\ flowid 31:1100
为sta1创建下行LAN流量限速,在ath00 31: qdisc上
- 在ath00的31: qdisc(src是LAN的,从LAN过来的流量)类别下创建子类别31:1,限速(dst是sta1的)1mbit
tc class add dev ath00 parent 31:1 classid 31:100 htb rate 12kbit ceil 1mbit burst 15k
- 创建过滤器
tc filter add dev ath00 protocol ip parent 31:0 prio 1 u32 match ip dst \sta1 ip\ flowid 31:100
Reference
- TC
- Openwrt QoS
- HTB
- Linux Advanced Routing and Traffic Control
nicephil@gmail.com – 2017-12-6
转载于:https://www.cnblogs.com/nicephil/p/8010840.html
区分Internet和Local数据流的Qos实现相关推荐
- 无盘服务器网卡qos,qos
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术.QoS的保 ...
- 802.11 - QoS Management
前言 Wi-Fi越来越多地用于有各种QoS要求的应用和服务,为了提供可靠的服务交付和品质更高的体验, Wi-Fi QoS Management以WMM为基础,帮助AP和STA为已识别IP流量分配相关优 ...
- NR Qos 映射DRB
LTE Qos机制: 1 UE发起请求后与核心网的PGW建立EPS承载. 2 基站测为每条EPS承载分配ERAB ID,每条E-RAB ID对应一个DRB,保障一类业务类型的Qos. LTE的Qos以 ...
- 【移动通信】5GC:5G的QoS (Quality of Service) 控制 服务质量管理
Quality of Service Control QoS QoS框架 QFI Uplink/Downlink 用户平面协议框架 DRB&QoS 映射 5QI与5G QoS特征 QoS框架( ...
- FD.IO-VPP研究及使用四(Qos策略)
目录 实验一:QoS流量限速 实验二:修改DSCP 其他 我个人对QoS的理解总结如下: 1.流量分类 我的理解就是根据流量的(二.三.四层)特征(组合)将其分成不同的类别,归纳起来可以如下图所示: ...
- 三、IPSec(Internet Protocol Security,互联网安全协议)
3 IPSec(Internet Protocol Security,互联网安全协议) 3.1 概念 IPSec(Internet Protocol Security,互联网安全协议),是一组基于网络 ...
- javamail发送/回复邮件报错: Local address contains control or whitespace in string
这篇博客主要是记录一下,发送邮件时,发件人和收件人在数据库中怎样存储,才是最好的. 先说一下我认为的最佳存储方式:昵称(可省)+空格(可省)+"<"+邮箱号+"&g ...
- 老猿学5G:多量纲计费与QoS的QCI、5QI、ARP、GBR和MBR
☞ ░ 前往老猿Python博文目录 ░ 一.多量纲计费 多量纲计费是与传统的计费模式相区别的一种计费模式,传统的计费基本上都是通过使用量.使用时长或包固定时长等方式计费,而多量纲计费是指在考虑以上方 ...
- rtp 多媒体流同步控制 实时传输协议 简介
RTP(Real-time Transport Protocol)是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用.RTP的工作机理与RSVP不同,主要 ...
最新文章
- 用forif循环测量minst0-6的特征迭代次数曲线
- easyuI企业管理系统-实战三 添加功能
- USACO - 3.1.6 - Stamps
- python csv pandas_Python Pandas——Read_csv详解
- c#namespace
- 人类社会发明的第一台计算机是什么,第二周第一课概述计算机
- 入学年份 mysql_MySQl的学习1___概述
- 实现html文件和c# 交互
- 抖音视频怎么下载MP4格式怎么转换为MP3
- 笔记整理 之 ERROR 1336 (0A000)问题记录
- 鸟哥的Linux私房菜之Linux 的文件权限与目录管理(一)
- [高级]pdf生成(可水印)、pdf预览(可分页)、pdf打印:全栈一条龙方案
- KingbaseES R6 集群手工配置VIP案例
- 怦然心动(Flipped)-3
- 牛!程序媛一口气拿下BAT、美团、vivo、爱奇艺等公司Offer面经总结
- java实现的俄罗斯方块游戏--powered by dustin
- 住院病历的病历打印纸要求多大?
- mysql免安装版用法
- C++ 数据类型与基础
- 24.大数据学习之旅——spark手把手带你入门
热门文章
- 初二上册计算机编程入门先学什么,8年级以上学生必读,这项AP课程带你零基础入门编程!...
- Win10运行LoadRunner11录制脚本无法启动浏览器
- js实现表格列的位置拖拽
- 加拿大大西洋雇主担保移民 这个项目好申请吗?
- 上学歌计算机音乐数字乐谱,儿童歌曲上学歌简谱
- 洛谷P3387 【模板】缩点 (tarjan算法)
- csv文件示例_自己动手? -一个简单的CSV解析器示例
- 定时定点打卡活动策划使用小程序解决方案 greeting = “Good day“;
- 基于ssm框架的农产品扶农商农平台的设计与实现
- matlab中怎么贮存函数,MATLAB参数保存、调用