<b>Linux流量掌握中的HTB行列成立与过滤</b>[Linux安全]
本文“<b>Linux流量掌握中的HTB行列成立与过滤</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
众所周知,在互联网诞生之初都是各个高校和科研机构彼此通讯,并没有Linux流量掌握方面的考虑和计划,IP协议的原则是尽大概好地为全部数据流服务,差别的数据流之间是平等的.但是多年的实践表明,这种原则并非最抱负的,有些数据流应当得到分外的照护, 比方,远程登录的交互数据流应当比数据下载有更高的优先级.
针对差别的数据流采纳差别的战略,这种大概性是存在的.并且,随着研究的发展和深化, 人们已经提出了各种差别的管理情势.IETF已经公布了几个尺度, 如综合服务(Integrated Services)、辨别服务(Diferentiated Services)等.其实,Linux内核从2 2开始,就已经实现了相关的流量掌握功效.本文将介绍Linux中有关流量掌握的相关概念, 用于Linux流量掌握的工具TC的利用办法,并给出几个有代表性实例.
1、相关概念
由此可以看出, 报文分组从输入网卡(进口)接纳进来,经过路由的查找, 以肯定是发给本机的,还是需求转发的.假如是发给本机的,就直接向上递交给上层的协议,比方TCP,假如是转发的, 则会从输出网卡(出口)发出.网络流量掌握普通发生在输出网卡处.固然在路由器的进口处也可以举行流量掌握,Linux也具有相关的功效, 但普通说来, 由于我们无法掌握自己网络之外的设备, 进口处的Linux流量掌握相对较难.本文将集合介绍出口处的流量掌握.流量掌握的一个基本概念是行列(Qdisc),每个网卡都与一个行列(Qdisc)相接洽, 每当内核需求将报文分组从网卡发送出去, 城市首先将该报文分组增添到该网卡所配置的行列中, 由该行列决意报文分组的发送次序.因此可以说,全部的Linux流量掌握都发生在行列中,具体流程图见图1.
图1报文在Linux内部流程图
有些行列的功效是非常简单的, 它们对报文分组实施先来先走的战略.有些行列则功效复杂,会将差别的报文分组举行列队、分类,并按照差别的原则, 以差别的次序发送行列中的报文分组.为实现这样的功效,这些复杂的行列需求利用差别的过滤器(Filter)来把报文分组分成差别的类别(Class).这里把这些复杂的行列称为可分类(ClassfuI)的行列.普通, 要实现功效强盛的Linux流量掌握, 可分类的行列是必不可少的.因此,类别(class)和过滤器(Filter)也是流量掌握的别的两个重要的基本概念.图2所示的是一个可分类行列的例子.
图2多类别行列
由图2可以看出,类别(CIass)和过滤器(Filter)都是行列的内部构造, 并且可分类的行列可以包含多个类别,同时,一个类别又可以进一步包含有子行列,大概子类别.全部进入该类别的报文分组可以根据差别的原则放入差别的子行列或子类别中,以此类推.而过滤器(Filter)是行列用来对数据报文举行分类的工具, 它决意一个数据报文将被分配到哪个类别中.
2、利用TC
在Linux中,Linux流量掌握都是通过TC这个工具来完成的.普通, 要对网卡举行流量掌握的配置,需求举行以下的步骤:
◆ 为网卡配置一个行列;
◆ 在该行列上成立分类;
◆ 按照需求成立子行列和子分类;
◆ 为每个分类成立过滤器.
在Linux中,可以配置很多范例的行列,比方CBQ、HTB等,此中CBQ 对比复杂,不简单理解.HTB(HierarchicaIToken Bucket)是一个可分类的行列, 与其他复杂的行列范例相比,HTB具有功效强盛、配置简单及简单上手等长处.在TC 中, 利用"major:minor"这样的句柄来标识行列和类别,此中major和minor都是数字.
关于行列来说,minor老是为0,即"major:0"这样的情势,也可以简写为"major: 比方,行列1:0可以简写为1:.需求注意的是,major在一个网卡的全部行列中必须是惟一的.关于类别来说,其major必须和它的父类别或父行列的major相同,而minor在一个行列内部则必须是惟一的(因为类别必定是包含在某个行列中的).举个例子,假如行列2:包含两个类别,则这两个类别的句柄必须是2:x这样的情势,并且它们的x不能相同, 比方2:1和2:2.
下面,将以HTB行列为主,结合需求来报告TC的利用.假定eth0出口有100mbit/s的带宽, 分配给WWW 、E-mail和Telnet三种数据流量, 此中分配给WWW的带宽为40Mbit/s,分配给Email的带宽为40Mbit/s, 分配给Telnet的带宽为20Mbit/S.
需求注意的是, 在TC 中利用下列的缩写表示呼应的带宽:
◆ Kbps kiIobytes per second, 即"千字节每秒 ;
◆ Mbps megabytes per second, 即"兆字节每秒 ,
◆ Kbit kilobits per second,即"千比特每秒 ;
◆ Mbit megabits per second, 即"兆比特每秒 .
以上是“<b>Linux流量掌握中的HTB行列成立与过滤</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |