区分Internet和Local数据流的Qos实现

QoS

需求

区分广域网和局域网的流量控制

实现分析

假设sta1链接在ath00接口

可能的上行流量

可能的下行流量

需要给ath00, ath10, eth0 TX方向设置QoS

默认每个接口上创建两个静态类别,通过过滤器将广域网和局域网流量分在这两个类别里, 并在两个静态类别下创建另外两个子队列,在子队列下创建过滤器来区分STA

为ath00/ath10创建静态队列,类别和过滤器

  1. 为ath00创建HTB队列,默认类别1:30,为来自WAN的流量。
tc qdisc add dev ath00 root handle 1: htb default 30

  1. 为根队列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. 为类别创建过滤器, 类别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. 在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. 在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创建队列,类别和过滤器

  1. 为eth0创建队列,默认类别1:30为去往WAN的流量
tc qdisc add dev eth0 root handle 1: htb default 30

  1. 创建类别
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. 创建过滤器,类别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. 在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. 在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上

  1. 在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

  1. 创建过滤器
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上

  1. 在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

  1. 创建过滤器
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上

  1. 在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

  1. 创建过滤器
tc filter add dev eth0 protocol ip parent 31:0 prio 1 u32 match ip src \sta1 ip\ flowid 31:1100

  1. 在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

  1. 创建过滤器
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上

  1. 在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

  1. 创建过滤器
tc filter add dev ath00 protocol ip parent 31:0 prio 1 u32 match ip dst \sta1 ip\ flowid 31:100

Reference

  1. TC
  2. Openwrt QoS
  3. HTB
  4. Linux Advanced Routing and Traffic Control

nicephil@gmail.com – 2017-12-6

转载于:https://www.cnblogs.com/nicephil/p/8010840.html

区分Internet和Local数据流的Qos实现相关推荐

  1. 无盘服务器网卡qos,qos

    QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术.QoS的保 ...

  2. 802.11 - QoS Management

    前言 Wi-Fi越来越多地用于有各种QoS要求的应用和服务,为了提供可靠的服务交付和品质更高的体验, Wi-Fi QoS Management以WMM为基础,帮助AP和STA为已识别IP流量分配相关优 ...

  3. NR Qos 映射DRB

    LTE Qos机制: 1 UE发起请求后与核心网的PGW建立EPS承载. 2 基站测为每条EPS承载分配ERAB ID,每条E-RAB ID对应一个DRB,保障一类业务类型的Qos. LTE的Qos以 ...

  4. 【移动通信】5GC:5G的QoS (Quality of Service) 控制 服务质量管理

    Quality of Service Control QoS QoS框架 QFI Uplink/Downlink 用户平面协议框架 DRB&QoS 映射 5QI与5G QoS特征 QoS框架( ...

  5. FD.IO-VPP研究及使用四(Qos策略)

    目录 实验一:QoS流量限速 实验二:修改DSCP 其他 我个人对QoS的理解总结如下: 1.流量分类 我的理解就是根据流量的(二.三.四层)特征(组合)将其分成不同的类别,归纳起来可以如下图所示: ...

  6. 三、IPSec(Internet Protocol Security,互联网安全协议)

    3 IPSec(Internet Protocol Security,互联网安全协议) 3.1 概念 IPSec(Internet Protocol Security,互联网安全协议),是一组基于网络 ...

  7. javamail发送/回复邮件报错: Local address contains control or whitespace in string

    这篇博客主要是记录一下,发送邮件时,发件人和收件人在数据库中怎样存储,才是最好的. 先说一下我认为的最佳存储方式:昵称(可省)+空格(可省)+"<"+邮箱号+"&g ...

  8. 老猿学5G:多量纲计费与QoS的QCI、5QI、ARP、GBR和MBR

    ☞ ░ 前往老猿Python博文目录 ░ 一.多量纲计费 多量纲计费是与传统的计费模式相区别的一种计费模式,传统的计费基本上都是通过使用量.使用时长或包固定时长等方式计费,而多量纲计费是指在考虑以上方 ...

  9. rtp 多媒体流同步控制 实时传输协议 简介

    RTP(Real-time Transport Protocol)是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用.RTP的工作机理与RSVP不同,主要 ...

最新文章

  1. 用forif循环测量minst0-6的特征迭代次数曲线
  2. easyuI企业管理系统-实战三 添加功能
  3. USACO - 3.1.6 - Stamps
  4. python csv pandas_Python Pandas——Read_csv详解
  5. c#namespace
  6. 人类社会发明的第一台计算机是什么,第二周第一课概述计算机
  7. 入学年份 mysql_MySQl的学习1___概述
  8. 实现html文件和c# 交互
  9. 抖音视频怎么下载MP4格式怎么转换为MP3
  10. 笔记整理 之 ERROR 1336 (0A000)问题记录
  11. 鸟哥的Linux私房菜之Linux 的文件权限与目录管理(一)
  12. [高级]pdf生成(可水印)、pdf预览(可分页)、pdf打印:全栈一条龙方案
  13. KingbaseES R6 集群手工配置VIP案例
  14. 怦然心动(Flipped)-3
  15. 牛!程序媛一口气拿下BAT、美团、vivo、爱奇艺等公司Offer面经总结
  16. java实现的俄罗斯方块游戏--powered by dustin
  17. 住院病历的病历打印纸要求多大?
  18. mysql免安装版用法
  19. C++ 数据类型与基础
  20. 24.大数据学习之旅——spark手把手带你入门

热门文章

  1. 初二上册计算机编程入门先学什么,8年级以上学生必读,这项AP课程带你零基础入门编程!...
  2. Win10运行LoadRunner11录制脚本无法启动浏览器
  3. js实现表格列的位置拖拽
  4. 加拿大大西洋雇主担保移民 这个项目好申请吗?
  5. 上学歌计算机音乐数字乐谱,儿童歌曲上学歌简谱
  6. 洛谷P3387 【模板】缩点 (tarjan算法)
  7. csv文件示例_自己动手? -一个简单的CSV解析器示例
  8. 定时定点打卡活动策划使用小程序解决方案 greeting = “Good day“;
  9. 基于ssm框架的农产品扶农商农平台的设计与实现
  10. matlab中怎么贮存函数,MATLAB参数保存、调用