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

上传人:b****6 文档编号:7302862 上传时间:2023-01-22 格式:DOCX 页数:19 大小:720.20KB
下载 相关 举报
如何使用Bandwidth Controller来实现带宽控制.docx_第1页
第1页 / 共19页
如何使用Bandwidth Controller来实现带宽控制.docx_第2页
第2页 / 共19页
如何使用Bandwidth Controller来实现带宽控制.docx_第3页
第3页 / 共19页
如何使用Bandwidth Controller来实现带宽控制.docx_第4页
第4页 / 共19页
如何使用Bandwidth Controller来实现带宽控制.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

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

《如何使用Bandwidth Controller来实现带宽控制.docx》由会员分享,可在线阅读,更多相关《如何使用Bandwidth Controller来实现带宽控制.docx(19页珍藏版)》请在冰豆网上搜索。

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

如何使用BandwidthController来实现带宽控制

如何使用BandwidthController来实现带宽控制

在ISAServer2000中,带宽管理功能是通过设置优先级来实现,但是管理员更多的是希望限制用户可以使用的实时带宽,并且ISAServer2000中的带宽管理功能难以理解和部署,所以在ISAServer2004中,微软取消了带宽管理功能,如果你要限制用户使用的带宽,只能通过限制线程来实现。

目前ISAServer的插件中,还没有可以限制用户实时带宽的。

不过,已经有其他软件能够实现这一点:

BandwidthController和SoftPerfectBandwidthManager。

SoftPerfectBandwidthManager在Howto:

使用SoftPerfectBandwidthManager来实现带宽控制一文中已经进行了介绍,在这篇文章中我给大家介绍BandwidthController,在此文撰写时它的最新版本为0.31b,你可以在http:

//www.isacn.org/info/info.php?

sessid=&infoid=236下载30天的试用版。

和KNM(KerioNetworkMonitor)一样,BandwidthController是通过在所有网络适配器上加载专用驱动来实现对带宽的控制,不过它的驱动也没有通过微软的认证,在安装过程中会出现未通过Windows徽标测试的警告,忽略即可。

在我们的实际使用过程中,BandwidthController还是比较稳定的;不过在高可靠性要求的环境,我还是建议你使用限制线程来限制用户的带宽,毕竟越少的服务意味着越高的稳定性。

BandwidthController必须安装在网关上,否则不能实现其功能。

它的配置和ISA是完全独立的,你必须在ISA中部署防火墙策略允许内部用户访问外部网络,然后再在BandwidthController中部署过滤规则来限制用户的实时带宽。

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

在这个实验中我将使用BandwidthController来限制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

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

安装和初始化BandwidthController;

建立第一条过滤规则:

限制ISA防火墙下行速率为50KB/s;

建立第二条过滤规则:

限制ISA防火墙上行速率为200KB/s;

测试。

安装和初始化BandwidthController

在安装BandwidthController之前,你必须对你所拥有的带宽进行正确的量化。

可能很多朋友会说,我的带宽是10Mb/s或者100Mb/s,这些都只是网络接口的理论数值而已,并不是你真正拥有的实际带宽。

我建议你通过闲时(例如凌晨4点~6点)使用FTP连接到你的ISP的服务器(最好是和你外部接口同子网的服务器,或者离你外部接口跳数较近的服务器,但是对方一定要有足够的带宽)进行上传下载来量化你的带宽,当然有条件时使用其他测试工具如NetIQChariot等,测试出更为精确的数值更好。

下图是我分别使用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客户端,另外请多测试几次,并使用其中最大的数值。

现在我们可以安装BandwidthController了,双击下载的BandwidthControllerSetup.exe进行安装,安装过程比较简单,在此我就不多说了。

只是在安装网络核心驱动时,在弹出的未通过Windows徽标测试的警告对话框上点击仍然继续。

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

在带宽控制选项对话框,首先你必须设定接口的速率。

这个地方需要注意的是,对于你的外部和内部接口,上行(发送)带宽和下行(接收)带宽刚好是相反的,请你一定记住这一点。

BandwidthController是控制连接到Internet的带宽的,你定义的接口速率是指的此接口通往Internet的速率,而不管此接口是否直接连接到Internet。

外部接口是直连到Internet的,它的上下行速率是我们在上面计算出的速率。

但是对于其他没有直连到Internet的接口(如内部网络接口)呢,这个数值又是怎么计算的呢?

它的上下行速率是和直连到Internet的接口(外部接口)的上下行速率刚好相反的,Why?

因为对于内部网络和Internet之间的通信而言,内部网络发送给Internet的数据是ISA防火墙从内部接口(非直连到Internet的接口)接收,然后从外部接口(直连到Internet的接口)发送的,而从Internet发送给内部网络的数据是ISA防火墙从外部接口接收的,然后从内部接口发送的。

根据上面我们的计算,对于外部接口,我们上行带宽为51,000kbps,下行带宽为31,000kbps。

点击外部接口,然后在右边的发送带宽文本框中填入51,000,在下面的接收带宽文本框中填入31,000。

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

默认情况下BandwidthController会过滤通往所有网络的数据。

我们没有必要让它对内部网络中的数据进行过滤,所以勾选不要过滤本地通信,然后在IP地址范围中输入内部网络的地址10.2.1.0到10.2.1.255。

下面的Manager框定义了管理窗口的一些选项,根据你的喜好进行选择,然后点击确定。

最后在BandwidthController关于在任务栏托盘区运行的提示上点击确定,

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

建立第一条过滤规则:

限制ISA防火墙下行速率为50KB/s

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

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

然后在名字和适配器页,在上面的名字栏我输入过滤规则名字为LimitLocalhostDownloadrateto50KB/s。

下面的选择网络适配器栏你一定要注意,你必须选择过滤规则所针对的主机到达Internet的路径上(无论是作为源还是目的)离BandwidthController的最近的一个适配器。

例如,如果我想限制内部网络中的主机的下载速率,内部网络中的主机到达Internet的路径是内部网络->ISA防火墙内部接口->ISA防火墙外部接口->Internet,它离BandwidthController最近的接口是内部接口,所以此时就应该选择内部接口。

由于我是想对本地主机进行限制,本地主机到达Internet的路径是ISA防火墙外部接口->Internet,所以我们该选择外部接口。

选择外部接口,然后点击下一步;

在最小和最大速率页,输入此过滤规则设置的最小速率和最大速率,单位都是Byte/s。

最小速率是BandwidthController为此过滤规则保留的带宽,无论当前连接线路是否拥挤,BandwidthController会保证此规则拥有此最小带宽,所以此最小速率必须小于你的网络到达Internet的对应流向的实际带宽,而不管哪个接口;此条过滤规则是我限制本地主机从Internet下载,因此对应流向的实际带宽是外部接口的下行速率31,000kbps,折算为3100KB/s。

如果是想限制内部网络中的主机进行下载,数据流向为Internet->ISA防火墙外部接口->ISA防火墙内部接口->内部网络主机,那么对应的网络连接是内部接口的上行(发送)速率,也是31,000kbps。

而最大速率是BandwidthController允许此过滤规则使用的最大带宽,当连接线路空闲时,BandwidthController允许此规则使用比最小速率更高的带宽,直至最大速率。

为了便于测试,我全部填入50000,即大约50KB/s。

点击下一步;

注意:

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

在优先级和重要性页,选择优先级和输入重要性。

BandwidthController中的优先级为9级,最高为9;当网络连接拥塞时,BandwidthController会优先考虑优先级高的数据,而优先级低的数据只有在具有空闲带宽时才会进行传输,这点对VoIP数据非常有用。

而重要性是用于决定空余带宽的使用的,BandwidthController将此过滤规则的重要性除以所有过滤规则的重要性的总和,然后将空余带宽按比例分配给对应的过滤规则。

例如,我有两条过滤规则,一条的重要性是5,另外一条的重要性是3,那么前者可以获得5/(5+3)=5/8的空闲带宽,而后者可以或者3/8的空闲带宽。

我选择优先级为9,输入重要性为5后点击下一步继续;

在协议和方向页,协议我建议大家选择IP协议,不过你也可以选择TCP/UDP,然后定义端口,这样过滤规则就只会应用到对应的服务。

下部的方向非常重要,如果是限制内部网络中的主机下载,那么在前面网络适配器选择内部接口后,在此你应该选择发送,因为数据是从内部接口发送出去的;在此因为我是限制本地主机下载,它是从外部接口获取数据的,所以我在前面选择外部接口,然后在此选择接收。

点击下一步;

在源地址页定义规则应用到的源地址,这个必须根据你的要求小心的进行设置。

由于我们是限制本地主机下载,而不管它从哪儿下载(对于限制内部网络中主机下载同理);所以我选择忽略源地址,然后点击下一步;

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

点击下一步;

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

建立第二条过滤规则:

限制ISA防火墙上行速率为200KB/s

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

然后在名字和适配器页,在名字栏输入过滤规则名字为LimitLocalhostuploadrateto200KB/s。

接口选择原理同第一条规则,选择外部接口(如果是限制内部网络中的主机上传则选择内部接口)后点击下一步;

在最小和最大速率页,输入此过滤规则设置的最小速率和最大速率,原理同第一条规则。

我均输入200000(大约为200KB/S),然后点击下一步;

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

在协议和方向页,选择IP协议。

下部的方向就需要仔细考虑了,对于本地主机来说,限制上传就是限制它发送数据,但是对于内部网络中的主机来说,却是接收,Why?

因为BandwidthController是从内部网卡上接收到内部网络中的主机发送到Internet的数据的。

在此我是限制本地主机发送数据,所以选择发送,点击下一步;

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

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

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

此时,我们的两条规则都建立好了,如下图所示。

BandwidthController的过滤规则是即时生效的,并且是从上到下执行第一条匹配的过滤规则。

你可以右击过滤规则选择上移、下移来调整过滤规则的顺序。

测试

现在我们可以进行测试了。

先测试HTTP下载,下面两张图分别是正在下载和下载完成时IE和BandwidthController中的过滤规则的状态信息;

 

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

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

 

 

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

至此,我们的试验就成功结束了。

BandwidthController是ISA防火墙带宽控制能力不足的一个很好的补充,不过,BandwidthController也不仅仅限制ISA环境,在任何需要带宽限制的环境,BandwidthController都可以大显身手。

另外在使用的过程中,发现了BC的一个问题:

由于BC所有规则的数据包缓冲区为500个数据包,当出现数据包缓冲区被占满时(例如你限制用户的速率为一个很低的值,而此客户又不断的大量发送数据包,那么这500个数据包缓冲区会很快被占满),BC会丢弃所有接收到的数据包,这样会导致其他客户也不能正常的访问。

对于这种情况,请提高BC限制的速率,或者不在BC中做限制。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1