防火墙带宽控制技术的研究与实现

时间:2025-04-05

防火墙带宽控制技术的研究与实现

摘要随着网络应用的不断丰富,人们对网络服务质量提出了更高的要求,带宽控制则日益受到人们的关注。本文深入研究了linux系统下的带宽控制工具tc,以及htb队列规定,针对防火墙中不同的应用和服务,实现了带宽控制。

关键词 qos;tc;htb;队列;分类;过滤规则

1 引言

近年来,网络带宽不断扩大,但是依然无法满足网络应用的要求。为此,带宽控制逐渐为人们所关注。一般说来,企业内部网络有足够的带宽可以使用。但是,企业接入internet的带宽是有限的。为了提高网络带宽的利用率,保证用户关键性业务的正常运行,越来越多的企业和组织意识到了带宽控制的重要性。

qos,即质量服务,是网络中的一种安全机制, 用来解决网络延迟和阻塞等问题。带宽控制是实现qos的重要组成部分,它根据源/目的端口(服务类型)、源/目的地址等数据包的关键字段,对网络带宽进行分类,限制每个分类中数据包发送的速率,从而达到控制网络流量,保障关键业务带宽的目的。

防火墙是目前最有效、使用最广泛的网络安全产品,它处于网络的边界处,而这里也是实现带宽控制最合适的位置。本文深入分析了linux下的带宽控制工具tc,并且结合最新的htb队列规定和iptables工具,给出了在防火墙上实现带宽控制的具体实现。

2 linux下的带宽控制工具tc

tc(traffic control),即带宽控制,是linux中功能强大的带宽控制工具。通过tc,可以很方便地管理网络带宽,实现qos。tc拥有数据包分类、优先级设定、数据共享、输入和输出流量限制等多种功能。

2.1 tc的结构

tc共分为三个模块:队列规定模块、分类模块和过滤模块。它们之间的关系如图1所示,队列规定模块是tc实现的基础,在这个模块中封装了其它两个模块。而分类和过滤规则是实现tc的主体。

2.1.1 队列

每一个网络接口上都可以绑定一个队列规定,用于控制经过这个接口的数据流。它把一条物理链路模拟成几条更慢的链路或者把发出的不同类型的流量模拟成不同的连接。linux内核中支持的队列规定有许多。有些是不可以分类的,如fifo,pfifo-fast,red,sfq,tbf,另一些是可以分类的,如cbq、htb、优先级队列规定。其中,cbq和htb的功能最为丰富,它们可以为每个模拟链路设置优先级,优先级高的先发送;还可以实现链路共享,当一个分类上的带宽空闲时可以借用给其它的分类;还有突发流量控制,速率限制等。如果一个接口上没有绑定任何队列,则使用默认的fifo队列。

2.1.2 分类

在一个队列上必须有一个主干分类,它拥有全部的带宽。在主干分类上可创建多个分类,每个分类可以再创建它们的子类,以此类推,但是每一个子类只能有一个父类。它们的主要作用是将数据流依据各种条件进行分类,便于对它们进行控制。针对各个不同的网络接口可创建相同的分类,但是同一个接口上的分类不能相同。每个分类都分配了一定的带宽值,属于同一个父类的所有子类的带宽总和不能超过父类的带宽值。分类就好像是为数据包建立了几条通道,而数据包的流向则由过滤规则来决定。

2.1.3过滤规则

防火墙带宽控制技术的研究与实现

图1 队列规定、分类和过滤模块三者的关系

2.2 tc的实现原理

tc将流经网络接口的数据放入一个队列中,对它们进行分类,并根据过滤规则把数据包放入每个分类的分队列中,通过控制每个分队列数据包发送的速率来限制每个分类的带宽。

首先,tc在网络接口处绑定一个队列规定,并为这个队列创建多个分类,如果需要,还可以为每个分类创建多个子分类,每个子分类都有一个数据包分队列,它们形成了一个树型的结构(如图1)。同属一个父类的各个分类之间可以互相共享带宽,当然在创建分类时也可以设置为不共享自己的带宽。

其次,针对每个分类,设置一条或多条过滤规则与它相对应。当数据包进入分类后,相应的过滤规则根据数据包的各个字段或者标志位进行匹配,这些字段或者标志位中,有的是数据包创建的时候就有的,如源、目的端口,源、目的地址等;有些是在数据包进入系统时由iptables命令设置的(用以区分不同的数据流),如mark值。当一个数据包被匹配后就会对它执行相应的判决,决定这个数据包是丢弃、延迟还是继续流入下一层分类。

最后,所有没有被丢弃,需要通过网络接口发送的数据包都会被放入某个子类的分队列中等待发送。tc按照不同的速率到每个队列中取出数据包,交给网络接口进行发送。每个分队列都有它的优先级,优先级高(设置的数值低)的队列先发送,当优先级高的队列中的数据包全部发送完毕后,再发送优先级低的。也可以为分队列设置其它排队方法,防止优先级高的队列长期占用网络接口。

3 带宽控制在防火墙中的实现

3.1 队列的选择

对于防火墙来说,选择一个功能强大,适合具体应用环境的队列规定有助于提高系统实现带宽控制的成功率和精确度。相对于其它的队列规定,cbq和htb提供了分类、链路共享、限速等丰富的功能,是构建带宽控制模块的首选队列。

cbq作为一个经历长久考验的排队算法,它功能强大,且较 …… 此处隐藏:791字,全部文档内容请下载后查看。喜欢就下载吧 ……

防火墙带宽控制技术的研究与实现.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219