日期:2016-03-13  浏览次数:3694 次

前言:虽然原来写过如何使用BWM和BC来控制带宽,但是过去由于条件限制,写的是如何限制ISA防火墙本身,至于如何限制内部客户还需要读者自己理解一下,因此一直都在想再写一个更为详细的介绍。可惜,伴随着BWM的越来越强大和稳定,BC却逐渐的没落了,虽然BC是我所接触的第一款带宽控制软件,对它还是有一定感情,但是我现在也已经不使用BC了 :( 。

你是否遇到过因为有人下载资源(特别是使用BT这种杀手级的带宽耗尽大户)而耗尽带宽导致其他客户不能访问Internet或访问非常慢的情况?可能你和我一样,对于这种耗尽带宽的人是深恶痛绝的吧。在不便封锁的时候(例如内部客户使用HTTP/FTP下载),限制用户所使用的带宽是最好的办法,在此再次为大家郑重推荐一款优秀的、强大的带宽控制软件-BWM。

 

SoftPerfect Bandwidth Manager(下文简称BWM)是一个具有强大功能的带宽管理软件,它可以安装在任何基于Windows的网关上来控制用户所使用的带宽。本文撰写时的最新版本为2.5,你可以在官方网站(http://www.softperfect.com/products/bandwidth/)或者ISA中文站上下载30天的试用版。

BWM主要具有以下特点:

  • 规则使用灵活,支持规则的优先级、单向或双向通讯和指定所允许的最大传输速率;

  • 规则元素可以根据IP、MAC地址、协议、端口、网络接口、计划时间指定;

  • 支持限额控制;

  • 对于最终用户是透明的,无需用户安装任何客户端软件;

  • 可以监视每条规则运行的状态和细节;

  • 支持远程管理;

在这篇文章中我将给大家演示如何使用BWM来控制用户所使用的带宽,演示所使用的网络拓朴结构如下图所示,Istanbul上安装了ISA防火墙,作为内部网络和外部网络之间的边缘防火墙,再通过Router连接到Internet;在这篇文章中,我将在Istanbul上安装BWM并限制内部网络客户Munich所使用的下行和上行带宽。

各计算机的TCP/IP设置如下,在进行试验之前已经确认了网络连接工作正常:

Istanbul(ISA防火墙):

WAN192(External Inferface):

  • IP:192.168.1.201/24

  • DG:192.168.1.1

  • DNS:192.168.1.1

LAN10(Internal Inferface):

  • IP:10.2.1.1/24

  • DG:None

  • DNS:None

 

Munich(LAN Client):

  • IP:10.2.1.8/24

  • DG:10.2.1.1

  • DNS:192.168.1.1

 

 

安装和初始化BWM

安装BWM之前,计算机需要满足以下要求:

  • 操作系统为Windows NT 4.0、Windows 2000、Windows XP或Windows 2003 Server,但是在Windows NT 4.0上安装时不支持使用桥接功能;

  • 硬盘至少具有4MB剩余空间;

  • 具有一个网络连接;

在安装BWM之前你应该对你所拥有的带宽进行正确的量化,只有在正确了解你所拥有的带宽的前提下,你才能正确的在网络中部署带宽控制。

双击bwmsetup.exe进行安装,在弹出的欢迎使用BWM安装向导页,点击下一步

协议授权页,选择我接受协议,然后点击下一步

选择目的位置页,接受默认安装路径,点击下一步

选择安装组件页,默认情况下为同时安装系统服务管理工具,你可以根据你的需要进行选择。BWM支持远程管理,所以你可以仅安装管理工具来远程控制其他安装了BWM系统服务的服务器(BWM使用TCP端口87018702进行远程管理,你需要在被控制的服务器上开放这两个端口)。在此我接受默认设置,点击下一步

选择开始菜单目录页,点击下一步

准备安装页,点击安装按钮;

正在完成BWM安装向导页,点击完成,此时BWM会重启计算机。

 

计算机重启后以管理员身份登录,然后运行BWM管理控制台,在登录对话框中,默认是连接到本地主机,密码为空,点击确定进入;如果你想连接到其他服务器,则直接在连接到主机栏输入对方的IP地址或者域名即可,输入域名时需确保可以正确解析;

首先我们需要初始化一下BWM,点击文件菜单下的设置

在弹出的选项对话框中,你可以在常规标签修改速率显示的单位、登录管理控制台的密码以及双击某个规则时打开它的状态还是它的属性;

高级标签,设置数据传输缓存队列的大小,默认为500,此缓存用于存储超过带宽限制的数据包,通常情况下保持默认即可;然后勾选Transmit short TCP ACK frames with no queue,这样BWM会让具有ACK标志的大小为54~60字节的TCP数据包优先通过,而不需要排队。然后点击确定,BWM的初始化就完成了。

 

创建单条带宽控制规则

在BWM中,你可以创建单条带宽控制规则或同时创建一批带宽控制规则,在此我先介绍创建单条带宽控制规则。例如,我现在想要创建一个带宽控制规则限制内部客户Munich10.2.1.8)的TCP/UDP下载速率为30KB/s,首先,我们需要明确此带宽控制规则所使用的相关元素。想象一下当内部客户Munich下载Internet上的资源时,数据流向是怎么样的?当Munich下载Internet上的资源时,数据流向是Internet->Router->Istanbul外部接口->Istanbul内部接口->Munich,最终是从Istanbul的内部接口发送至Munich。我们应该尽可能的在靠近数据流向源头的地方进行限制,但是,由于Munich是私有IP地址,在访问Internet时是通过网关Istanbul进行了NAT,因此,我们不能在Istanbul的外部接口上进行限制,我们只能在Istanbul的内部接口上进行限制。

现在我们就可以创建带宽控制规则了,点击规则菜单下的添加规则

在弹出的添加规则对话框,输入规则名字为Limit Munich's download rate to 30KB/s,在方向框选择流出,然后在传输速率限制框,选择Bytes/sec,然后输入30720(30 KB=30×1024=30720 B),协议选择为TCP and UDP,在规则应用到的接口框,选择连接到Munich的内部接口LAN10

点击标签,由于只是限制Munich下载,而不限制它从哪儿下载,所以源地址选择为任何IP地址,源端口为任意

再点击目的标签,目的地址选择为单个IP地址,然后输入Munich的IP地址10.2.1.8,目的端口选择为任意,然后点击确定

高级标签,你可以设置此规则启用的计划时间,你需要预先创建计划时间(时间表)才能使用。当使用计划时间时,规则根据计划时间的定义来启用和禁用,规则的状态只是一个指示器,而不能再手动启用或禁用此规则;

最后点击确定,此时规则就建立好了,如下图所示:

 

 

创建组

如果你需要将规则应用到不连续的IP地址范围,那么你可以使用是IP地址、MAC地址和IP地址范围的组合,你需要预先创建组才能在带宽控制规则中使用。

要创建组,点击工具菜单下的IP/MAC组

然后在弹出的组管理器对话框上点击新建按钮;

在弹出的新建组对话框上,输入组的名字,然后点击添加按钮,你可以添加IP地址、IP地址范围或MAC地址;

添加好了,点击确定

然后在组管理器对话框上点击关闭

此时你就可以在带宽控制规则中使用了。

 创建计划时间

你可以通过计划时间来启用带宽控制规则,例如,你可以允许用户在工作时间中使用更高的下载速率(某条在工作时间启用的带宽控制规则,允许用户下载速率为200KB/s),而在下班后只能使用更低的下载速率(某条在下班时间启用的带宽控制规则,允许用户下载速率为50KB/s),你同样需要预先创建计划时间后才能在规则中使用。要创建计划时间,点击工具菜单下的时间表管理器

然后在弹出的时间表管理器对话框上点击新建按钮;

在弹出的添加时间表对话框上,输入时间表的名字,选择时间范围后点击右键,选择启用选择的范围

此时,选择范围变成绿色的,这表明在这些范围中将启用规则,然后点击确定,然后在时间表管理器对话框上点击关闭

此时,在带宽控制规则中就可以使用此时间表了。当使用计划时间时,规则根据计划时间的定义来启用和禁用,而不能再手动启用或禁用此规则。

 

 

配置限额规则

在BWM中提供了一种特殊的规则,称之为限额规则,它是这样工作的:规则中定义一个初始速率、一个限额速率和一个限额总量,在流量没有超过限额总量时,用户的速率为初始速率;当用户的流量超过限额总量时,则限制为限额速率。此限额总量可以配置为一天内、一周内或一月内的流量总额。

例如我想建立一条限额规则,限制Munich的下载速率,当Munich一天内的下载流量没有超过10 MB时,允许它的下载速率为200KB/s,如果超过10 MB则将其下载速率限制为50 KB/s。创建限额规则的步骤如下,首先点击工具菜单下的限额管理器

限额管理器对话框,点击新建

添加限额对话框,输入限额规则的名字,在此我命名为Limit Munich's Quota to 10 MB,然后在初始速率栏输入204800(200KB=200 ×1024=204800),限额速率栏输入51200(50KB=50 ×1024=51200),在下部的限额条件栏中的传输超过栏输入10(此单位是MB),然后时间范围选择为一天内

默认情况下限额规则只是应用到单向带宽控制规则,即限额总量要么针对下载流量,要么针对上传流量。如果你想要针对双向带宽控制规则,即想要设置限额总量为下载流量和上传流量的总和,则点击高级按钮,选择为Sum of incoming and outgoing volumes,然后点击确定;最后在添加限额对话框点击确定

然后在限额管理器对话框,点击关闭

然后,你就可以在带宽控制规则中的传输速率限制属性中选择为限额,再选择相应的限额项即可,此时,此规则即变成限额规则。

 

创建一批带宽控制规则

你还可以同时为针对连续的IP地址范围创建一批带宽控制规则,例如,在此我想创建一批规则,限制10.2.1.8~10.2.1.10这三个内部客户的上传速率为15 KB/s。同样,我们首先需要明确此带宽控制规则所使用的相关元素。想象一下当内部客户10.2.1.8~10.2.1.10上传数据到Internet时,数据流向是怎么样的?当内部客户上传数据到Internet时,数据流向是内部客户->Istanbul内部接口->Istanbul外部接口->Router->Internet。我们应该尽可能的在靠近数据流向源头的地方进行限制,因此,我们同样应该在Istanbul的内部接口上进行限制。

要创建一批带宽控制规则,点击规则菜单下的添加一批规则

在弹出的添加规则向导第1页,在基础规则名栏,输入这批规则的基础名字,在此我输入为Limit internal clients upload rate,然后在传输方向栏选择流入,因为内部客户是将数据发送给Istanbul的内部网络接口。在传输速率限制栏选择Bytes/sec,然后输入15360(15 KB=15×1024=15360 B),点击下一步

添加规则向导第2页,选择协议为TCP and UDP,然后在规则应用到的接口框,选择连接到内部网络的的接口LAN10,点击下一步

添加规则向导第3页,输入应用到的IP地址范围10.2.1.8~10.2.1.10,然后在指代IP地址栏接受默认的选择,点击下一步

添加规则向导第4页,接受默认的源端口为任意,点击下一步

添加规则向导第5页,由于我并不限制内部客户上传到哪儿,于是接受默认的所有IP地址,点击下一步

添加规则向导第6页,接受默认的所有端口,点击下一步

添加规则向导第7页,在此我不使用计划时间,直接点击下一步

最后在添加规则向导第8页,点击应用按钮,此时,BWM将创建列出的带宽控制规则,

创建好的带宽控制规则如下图所示,BWM按照从上到下的顺序执行第一条匹配的规则,你可以右击规则选择上移下移来调整规则的优先级。

 

 

桥接

BWM还提供了一个桥接的功能,和Windows系统中的桥接类似,BWM可以在桥接的网络接口之间转发数据。BWM只支持在以太网接口上进行桥接,并且在Windows NT 4.0系统中安装时不支持桥接功能。配置桥接的步骤如下:

点击工具菜单下的桥接

在弹出的以太网桥接对话框上点击添加按钮;

然后在弹出的以太网适配器桥接对话框,选择要桥接的网络适配器,点击确定,最后在以太网桥接对话框上点击关闭按钮即可。

 测试

现在我们来测试一下BWM的带宽控制功能,首先,在没有启用BWM进行带宽管理时,内部客户Munich访问Internet上的某台主机的下载速率为86 KB/s左右,如下图所示,

而上传速率为32 KB/s左右。

现在我们来启用BWM的带宽控制功能,在BWM中创建的规则如下图所示,其中限制Munich的下载速率为30 KB/s、上传速率为15 KB/s。

此时再在Munich上访问相同主机进行测试,下载速率稳定在30 KB/s左右,如下图所示。

你在BWM双击此带宽控制规则来查看规则实时状态,如下图所示,

上传速率也同样稳定在15 KB/s左右,如下图所示,

规则实时状态如下图所示,

 

现在我修改限制Munich下载的规则为限额规则,当Munich一天内的下载流量没有超过1 MB时,允许它的下载速率为50 KB/s,如果超过1 MB则将其下载速率限制为25 KB/s,如下图所示:

将规则修改为限额规则,如下图所示:

现在再在Munich上测试下载,当下载的总量并未超过限额总量所设置的1 MB时,下载速率稳定在50 KB/s左右,如下图所示,

但是当下载总量超过限额总量时,下载速率稳定在25 KB/s左右,如下图所示,

此时,测试圆满完成。

BWM中的规则处理方式

最后谈一下BWM中的规则处理方式,BWM对经过它的每一个数据包进行分析,如果具有匹配的带宽控制规则,则将规则应到此数据包,反而言之,如果没有规则匹配数据包,则BWM不会对数据包进行带宽控制;BWM按照从上到下的顺序执行第一条匹配的规则,因此位置越高的规则具有越高的优先级,你可以在BWM中调整规则的优先级。

需要注意的是,BWM没有额外允许本地网络中的数据传输,例如上面创建的限制内部客户和所有IP地址的通讯的带宽控制规则将应用到内部客户和所有IP地址的通讯,包括内部客户和网关的通讯在内。通常情况下,不应限制内部客户和网关之间的通讯,你可以采用以下两种方法之一进行处理:

  • 在带宽控制规则中明确限制内部客户到某些IP地址范围的通讯;

  • 创建一个不限制本地网络内的通讯的带宽控制规则,并且设置为具有更高的优先级(放置在其他带宽控制规则的前面);但是如果内部客户通过访问网关上的代理服务来访问外部网络时,你需要仔细的考虑是否需要此规则。

另外,BWM中提供了两个配置实例:

  • 用户是通过ICS或NAT连接到Internet的,你想要去限制用户访问Internet的速度,那么建立如下过滤规则: 
    Rule #1: Protocol TCP/UDP, Source: 192.168.0.1, Destination: Any IP Address. 
    Rule #2: Protocol TCP/UDP, Source: 192.168.0.2, Destination: Any IP Address. 
    Rule #3: Protocol TCP/UDP, Source: 192.168.0.3, Destination: Any IP Address. 
    这个环境和本文中的测试环境基本一样。上面的一个规则就明确定义了对应源地址的用户访问Internet的速度限制,没有规则定义的其他用户不受速度的限制,如果你想限制大量的用户的时候你可以应用规则去源地址的范围。

  • 用户是通过代理服务器方式来连接到Internet的,你想要去限制用户访问Internet的速度,那么建立如下过滤规则: 
    Rule #1: Protocol TCP/UDP, Source: 192.168.0.1, Destination: local host, proxy server port. 
    Rule #2: Protocol TCP/UDP, Source: 192.168.0.2, Destination: local host, proxy server port. 
    Rule #3: Protocol TCP/UDP, Source: 192.168.0.3, Destination: local host, proxy server port. 
     

作为一款强大的带宽管理软件,BWM能够很好的控制用户所使用的带宽,并且具有限额控制的特性,非常推荐你使用