如何使用Bandwidth Controller来实现带宽控制

网络
由于ISA Server 2000带宽控制功能的不足及配置的复杂,在ISA Server 2004中取消了这一功能,如果你要限制用户使用的带宽,只能通过限制线程来实现。不过,通过Bandwidth Controller或者SoftPerfect Bandwidth Manager,你可以轻松的控制用户可以使用的实时带宽。在这篇文章中,我给大家介绍如何使用Bandwidth Controller来实现带宽控制。

在ISA Server 2000中,带宽管理功能是通过设置优先级来实现,但是管理员更多的是希望限制用户可以使用的实时带宽,并且ISA Server 2000中的带宽管理功能难以理解和部署,所以在ISA Server 2004中,微软取消了带宽管理功能,如果你要限制用户使用的带宽,只能通过限制线程来实现。目前ISA Server的插件中,还没有可以限制用户实时带宽的。不过,已经有其他软件能够实现这一点:Bandwidth Controller和SoftPerfect Bandwidth Manager。SoftPerfect Bandwidth Manager在How to :使用SoftPerfect Bandwidth Manager来实现带宽控制一文中已经进行了介绍,在这篇文章中我给大家介绍Bandwidth Controller,在此文撰写时它的***版本为0.31b,你可以在http://www.isacn.org/info/info.php?sessid=&infoid=236下载30天的试用版。

和KNM(Kerio Network Monitor)一样,Bandwidth Controller是通过在所有网络适配器上加载专用驱动来实现对带宽的控制,不过它的驱动也没有通过微软的认证,在安装过程中会出现未通过Windows徽标测试的警告,忽略即可。在我们的实际使用过程中,Bandwidth Controller还是比较稳定的;不过在高可靠性要求的环境,我还是建议你使用限制线程来限制用户的带宽,毕竟越少的服务意味着越高的稳定性。

Bandwidth Controller必须安装在网关上,否则不能实现其功能。它的配置和ISA是完全独立的,你必须在ISA中部署防火墙策略允许内部用户访问外部网络,然后再在Bandwidth Controller中部署过滤规则来限制用户的实时带宽。

下图是我们的试验网络拓朴结构,ISA防火墙作为边缘防火墙,连接内部网络和Internet;Istanbul(61.139.0.8/24)为Internet上的一台Web/FTP服务器。

在这个实验中我将使用Bandwidth Controller来限制ISA防火墙的下行和上行带宽,已在ISA防火墙的防火墙策略中允许了本地主机到外部网络的所有协议;各计算机的TCP/IP设置如下,此试验中不涉及DNS解析,DNS服务器均设置为空:

ISA防火墙外部接口:

IP:61.139.0.1/24

DG:61.139.0.8

Istanbul:

IP:61.139.0.8/24

DG:None

在这篇文章中我们将按照以下步骤进行试验:

安装和初始化Bandwidth Controller;

建立***条过滤规则:限制ISA防火墙下行速率为50KB/s;

建立第二条过滤规则:限制ISA防火墙上行速率为200KB/s;

测试。#p#

安装和初始化Bandwidth Controller

在安装Bandwidth Controller之前,你必须对你所拥有的带宽进行正确的量化。可能很多朋友会说,我的带宽是10Mb/s或者100Mb/s,这些都只是网络接口的理论数值而已,并不是你真正拥有的实际带宽。我建议你通过闲时(例如凌晨4点~6点)使用FTP连接到你的ISP的服务器(***是和你外部接口同子网的服务器,或者离你外部接口跳数较近的服务器,但是对方一定要有足够的带宽)进行上传下载来量化你的带宽,当然有条件时使用其他测试工具如NetIQ Chariot等,测试出更为精确的数值更好。

下图是我分别使用HTTP下载和FTP下载、上传得出的我的外部连接的上行下行带宽数值。我的HTTP下载速率为2.12MB/s,Ftp下载速率为3036.85KB/s,上传速率为5060.66KB/s。HTTP下载速率更慢,忽略不计。

现在就需要将这个KB/s折算Kb/s了,本来1Byte等于8bit,但是在网络传输过程中,由于校验码及其他传输开销,我建议你使用倍数10来进行折算,再适当扩大一点,折算后,我所拥有的下行带宽大约是31,000Kb/s,上行带宽大约是51,000Kb/s。

注意:在这个试验中,我只是简单的通过ftp命令来进行测试。但是你在商业环境中使用时,请使用专业的FTP客户端,另外请多测试几次,并使用其中***的数值。

现在我们可以安装Bandwidth Controller了,双击下载的BandwidthControllerSetup.exe进行安装,安装过程比较简单,在此我就不多说了。只是在安装网络核心驱动时,在弹出的未通过Windows徽标测试的警告对话框上点击仍然继续。

在安装好后,Bandwidth Controller会要求你对所拥有的带宽进行设定,在弹出的要求配置带宽对话框上点击确定;

在带宽控制选项对话框,首先你必须设定接口的速率。这个地方需要注意的是,对于你的外部和内部接口,上行(发送)带宽和下行(接收)带宽刚好是相反的,请你一定记住这一点。Bandwidth Controller是控制连接到Internet的带宽的,你定义的接口速率是指的此接口通往Internet的速率,而不管此接口是否直接连接到Internet。外部接口是直连到Internet的,它的上下行速率是我们在上面计算出的速率。但是对于其他没有直连到Internet的接口(如内部网络接口)呢,这个数值又是怎么计算的呢?它的上下行速率是和直连到Internet的接口(外部接口)的上下行速率刚好相反的,Why?因为对于内部网络和Internet之间的通信而言,内部网络发送给Internet的数据是ISA防火墙从内部接口(非直连到Internet的接口)接收,然后从外部接口(直连到Internet的接口)发送的,而从Internet发送给内部网络的数据是ISA防火墙从外部接口接收的,然后从内部接口发送的。

根据上面我们的计算,对于外部接口,我们上行带宽为51,000 kbps,下行带宽为31,000 kbps。点击外部接口,然后在右边的发送带宽文本框中填入51,000,在下面的接收带宽文本框中填入31,000。

而对于内部接口,填入相反的数值。

默认情况下Bandwidth Controller会过滤通往所有网络的数据。我们没有必要让它对内部网络中的数据进行过滤,所以勾选不要过滤本地通信,然后在IP地址范围中输入内部网络的地址10.2.1.0到10.2.1.255。下面的Manager框定义了管理窗口的一些选项,根据你的喜好进行选择,然后点击确定。

***在Bandwidth Controller关于在任务栏托盘区运行的提示上点击确定,

我们对它的安装和初始化就完成了。#p#

建立***条过滤规则:限制ISA防火墙下行速率为50KB/s

运行Bandwidth Controller,在管理窗口中点击新建过滤,

在弹出的欢迎使用过滤添加向导页,点击下一步;

然后在名字和适配器页,在上面的名字栏我输入过滤规则名字为Limit Localhost Download rate to 50KB/s。下面的选择网络适配器栏你一定要注意,你必须选择过滤规则所针对的主机到达Internet的路径上(无论是作为源还是目的)离Bandwidth Controller的最近的一个适配器。例如,如果我想限制内部网络中的主机的下载速率,内部网络中的主机到达Internet的路径是内部网络->ISA防火墙内部接口->ISA防火墙外部接口->Internet,它离Bandwidth Controller最近的接口是内部接口,所以此时就应该选择内部接口。由于我是想对本地主机进行限制,本地主机到达Internet的路径是ISA防火墙外部接口->Internet,所以我们该选择外部接口。选择外部接口,然后点击下一步;

在最小和***速率页,输入此过滤规则设置的最小速率和***速率,单位都是Byte/s。最小速率是Bandwidth Controller为此过滤规则保留的带宽,无论当前连接线路是否拥挤,Bandwidth Controller会保证此规则拥有此最小带宽,所以此最小速率必须小于你的网络到达Internet的对应流向的实际带宽,而不管哪个接口;此条过滤规则是我限制本地主机从Internet下载,因此对应流向的实际带宽是外部接口的下行速率31,000kbps,折算为3100KB/s。如果是想限制内部网络中的主机进行下载,数据流向为 Internet->ISA防火墙外部接口->ISA防火墙内部接口->内部网络主机,那么对应的网络连接是内部接口的上行(发送)速率,也是31,000kbps。而***速率是Bandwidth Controller允许此过滤规则使用的***带宽,当连接线路空闲时,Bandwidth Controller允许此规则使用比最小速率更高的带宽,直至***速率。为了便于测试,我全部填入50000,即大约50KB/s。点击下一步;

注意:为什么我说是大约50KB/s呢,因为1K=1024,50000/1024≈48.83K,所以用户的实际速率大概是48.8KB/s。

在优先级和重要性页,选择优先级和输入重要性。Bandwidth Controller中的优先级为9级,***为9;当网络连接拥塞时,Bandwidth Controller会优先考虑优先级高的数据,而优先级低的数据只有在具有空闲带宽时才会进行传输,这点对VoIP数据非常有用。而重要性是用于决定空余带宽的使用的,Bandwidth Controller将此过滤规则的重要性除以所有过滤规则的重要性的总和,然后将空余带宽按比例分配给对应的过滤规则。例如,我有两条过滤规则,一条的重要性是5,另外一条的重要性是3,那么前者可以获得5/(5+3)=5/8的空闲带宽,而后者可以或者3/8的空闲带宽。我选择优先级为9,输入重要性为5后点击下一步继续;

在协议和方向页,协议我建议大家选择IP协议,不过你也可以选择TCP/UDP,然后定义端口,这样过滤规则就只会应用到对应的服务。下部的方向非常重要,如果是限制内部网络中的主机下载,那么在前面网络适配器选择内部接口后,在此你应该选择发送,因为数据是从内部接口发送出去的;在此因为我是限制本地主机下载,它是从外部接口获取数据的,所以我在前面选择外部接口,然后在此选择接收。点击下一步;

在源地址页定义规则应用到的源地址,这个必须根据你的要求小心的进行设置。由于我们是限制本地主机下载,而不管它从哪儿下载(对于限制内部网络中主机下载同理);所以我选择忽略源地址,然后点击下一步;

在目的地址页,这个地方就应该输入本地主机的地址了,由于Internet是发送到本地主机的外部接口61.139.0.1,所以我选择IP地址,然后输入此IP地址(限制内部网络中的主机下载同理)。点击下一步;

在***的正在完成新建过滤规则向导页,点击完成,此时,我们***条过滤规则就建立好了。#p#

建立第二条过滤规则:限制ISA防火墙上行速率为200KB/s

现在我们来建立第二条规则,限制ISA防火墙的上行速率为200KB/S,再次点击新建过滤按钮,在弹出的欢迎使用过滤添加向导页,点击下一步;

然后在名字和适配器页,在名字栏输入过滤规则名字为Limit Localhost upload rate to 200KB/s。接口选择原理同***条规则,选择外部接口(如果是限制内部网络中的主机上传则选择内部接口)后点击下一步;

在最小和***速率页,输入此过滤规则设置的最小速率和***速率,原理同***条规则。我均输入200000(大约为200KB/S),然后点击下一步;

在优先级和重要性页,选择优先级和输入重要性,接受默认设置,点击下一步继续;

在协议和方向页,选择IP协议。下部的方向就需要仔细考虑了,对于本地主机来说,限制上传就是限制它发送数据,但是对于内部网络中的主机来说,却是接收,Why?因为Bandwidth Controller是从内部网卡上接收到内部网络中的主机发送到Internet的数据的。在此我是限制本地主机发送数据,所以选择发送,点击下一步;

在源地址页定义规则应用到的源地址,由于我们是限制本地主机发送数据,所以源地址为本地主机连接Internet的外部接口(对于限制内部网络中主机上传同理);所以我选择IP地址,然后输入外部接口的IP地址61.139.0.1,然后点击下一步;

在目的地址页定义规则应用到的目的地址,由于我们是限制本地主机上传,而不管它上传到哪儿(对于限制内部网络中主机上传同理);所以我选择忽略目的地址,然后点击下一步;

在***的正在完成新建过滤规则向导页,点击完成,此时,我们第二条过滤规则就建立好了。

此时,我们的两条规则都建立好了,如下图所示。Bandwidth Controller的过滤规则是即时生效的,并且是从上到下执行***条匹配的过滤规则。你可以右击过滤规则选择上移、下移来调整过滤规则的顺序。

 #p#

测试

现在我们可以进行测试了。先测试HTTP下载,下面两张图分别是正在下载和下载完成时IE和Bandwidth Controller中的过滤规则的状态信息;

 

可以看出,Bandwidth Controller成功的把带宽控制在50000B/s(48.8KB/s)左右。

然后我们再测试一下FTP上传,下面两张图分别是正在上传和上传完成时Ftp和Bandwidth Controller中的过滤规则的状态信息;

 

 

可以看出,Bandwidth Controller也成功的把带宽控制在200000B/s(196KB/s)左右。

至此,我们的试验就成功结束了。Bandwidth Controller是ISA防火墙带宽控制能力不足的一个很好的补充,不过,Bandwidth Controller也不仅仅限制ISA环境,在任何需要带宽限制的环境,Bandwidth Controller都可以大显身手。

另外在使用的过程中,发现了BC的一个问题:由于BC所有规则的数据包缓冲区为500个数据包,当出现数据包缓冲区被占满时(例如你限制用户的速率为一个很低的值,而此客户又不断的大量发送数据包,那么这500个数据包缓冲区会很快被占满),BC会丢弃所有接收到的数据包,这样会导致其他客户也不能正常的访问。对于这种情况,请提高BC限制的速率,或者不在BC中做限制。

责任编辑:佟健 来源: ISA中文站
相关推荐

2011-03-16 09:05:29

iptablesNAT

2013-06-20 09:03:21

流量管理局域网管理网络管理

2023-07-31 10:24:29

云计算开源

2009-11-11 16:13:19

路由器协议

2009-12-31 11:00:23

全业务接入网

2010-01-04 17:30:08

2023-10-25 10:21:24

浏览器HTTP请求

2017-09-12 14:46:54

2011-09-13 18:14:10

路由器上网控制

2013-05-14 10:44:19

混合云Windows AzuApp Control

2013-04-07 10:00:18

2024-01-04 16:11:32

公共云云计算

2010-05-24 10:23:34

实现MySQL

2010-04-20 10:39:04

网络访问控制网络安全NAC

2021-01-12 10:22:45

JavaScript并发控制前端

2021-04-07 06:00:18

JavaScript 前端并发控制

2016-10-24 09:09:48

AnsibleVagrantFedora

2021-11-22 09:00:00

后端开发CMS

2023-02-03 11:40:49

机器学习分析情感

2020-02-17 16:28:49

开发技能代码
点赞
收藏

51CTO技术栈公众号