如果你在负责一个小型网络,无论这个网络是你的家庭网络还是一个小型企业网络,或早或晚你都会面临这个问题:一小部分用户占据了你的大部分带宽资源。罪魁祸首通常是使用迅雷下载工具或BT软件的人。游戏玩家和视频用户通常会成为受影响最大的人。
多数家用宽带路由缺乏强大带宽管理功能
你或许会认为,这是路由器厂商的一个挣钱的机会,它们可以通过提供带宽控制功能来让自己的产品卖的更好一些,但是,实际情况上带宽控制功能却被多数路由器厂商所忽略。
只有一小部分公司在其产品中提供带宽控制功能,D-Link是其中一家,它使用了Ubicom的StreamEngine自动QoS(服务质量)技术。但是StreamEngine主要是一个上行带宽优化器,专注于让实时通信优先于其它类型的网络通信,实时通信包括游戏、VOIP和其它依靠实施传输数据包的应用。
需要你做的就是选中"TrafficShaping",然后由路由器在完成其余工作。多数用户还会选上"AutomaticUplinkSpeed"选项,该选项可以让路由器每次重启的时候自动探测实际上联的速度。我禁用了这个选项,然后在ManualUplinkSpeed中设置了我的上联速度,因为我不希望它每次重启都要执行一遍探测工作。
另外,你还可以使用ADDGameFuelRules选项来手动设定上联通信的优先级。不过要使用这个功能,你需要知道应用所使用的端口号。通过ActiveSessions界面,你可以非常轻松的看到哪些端口需要设置高优先级。不过现在多数P2P应用软件都具有改变端口的功能,因此你通常很难通过这个功能来真正过滤它们。
不久前,Linksys在其个人路由器中增加了一个手动上联QoS设定功能。不过,这个控制需要手动设置,而且它也只能用于上联通信。不过,Linksys提供两个相当不错的功能,可以让你根据客户端(MAC地址)来控制带宽优先级,以及设定物理交换端口。但是,这些控制同样是仅对上联有效,因此不能真正的控制某个客户端占用所有下载带宽。
m0n0wall的流量整形(TrafficShaping)功能一直被很多朋友当作带宽控制工具来使用,但是,实事求是的讲,我认为它的规则、队列和管道的概念过于复杂,因此我希望能找到一个现成的产品来实现简单易用的带宽控制。
不过,最近看了一个朋友的一篇文章后,我决定开始尝试一下pfSense。pfSense是源自于m0n0wall的一个操作系统,它可以运行在一台单独的计算机上,而不是可以仅仅运行在一个嵌入式单片机上。
我下载了1.2版的pfSense,并且在我的DellInspiron4100笔记本(赛扬1G,512内存)上进行了简单的试用,尽管由于我的机器配置较低使用起来感觉有些慢,不过通过一些简单的实验我发现它可以非常漂亮的实现带宽的控制。
当然,由于我把我的笔记本当作一台路由器用,因此我首先要具有第二个以太网口。pfSense检测到了4100的3Comcompatible3c905C网卡作为内部网卡,但是它不能检测到LinksysPCM20010/100Cardbus以太网卡。在查阅了pfSense的硬件兼容列表后,我购买了一个D-LinkDFE-690TXD网卡,一切正常了。
pfSense安装完毕后,我使用Jperf进行一个快速吞吐率检查,发现LAN>WAN和WAN-LAN都具有90多Mbps的带宽。我不可能在这儿对pfSense进行所有功能的全面试用,但是它的确有一些令人印象深刻的功能。即使你不能把它像DD-WRT、Tomato那样加载到一个路由器中,从它的功能你可以明白为什么m0n0wall具有如此广泛的用户群。
pfSense甚至具有不同的皮肤,不过我只是使用了它的默认皮肤(如图4所示)。如果你更习惯使用m0n0wall的左侧菜单条的风格,你可以切换到"pfSense"皮肤。
流量整形(TrafficShaper)功能在Firewall菜单下,当你第一次使用它的时候会有一个向导来帮助进行设置。通过该向导,可以为常见应用自动配置规则、队列和管道,并且可以分类管理。你可以非常轻松的实现带宽控制的设定,而且可以对它们修改或复制来创建新的设置。
第一个屏幕要求你输入实际的互联网上行和下行网速。这个地方我建议你输入你所测到的实际带宽的80%。举个例子来说,如果我的ADSL连接的带宽是"3Mbps/640Kbps",那么我可以输入2500和350(Kbps)。然后你可以点击VOIP屏幕,这儿只有两个控制选项,Provider和你希望保证VOIP应用可以使用的带宽(Bandwidth)。
接下来一个屏幕是PenaltyBox,这是控制带宽的第一个强大功能。如图5所示,可以仅仅根据IP地址(你可以输入多个IP地址)实现简单的控制,设定上行或下行的带宽控制。
尽管PenaltyBox功能非常简单,它只是限定进出一个IP地址的所有通信的带宽。但是它也可以让那些喜欢修改端口来躲避带宽控制的用户不再不受约束。
接下来是PeertoPeer向导。这个控制同样非常简单;通过设置上行和下行带宽来限制众多p2p应用程序。注意,这儿的P2PCatchAll选项要慎用。
一旦你选择了这个功能,除非你另外有一个更高优先级的规则来设定其它应用带宽不受限制,所有通信都将受该带宽限制的约束,换句话说,该选项把所有的通信都当为p2p来处理。
下一个向导屏幕是网络游戏(NetworkGames),该功能可以用来提升不同游戏的优先级。在这个屏幕上你无需设定一个带宽;只需要选中你希望优先保证的游戏即可。
最后一个向导"RaiseorLowerOtherApplications(提高或降低其它应用程序的优先级)"屏幕带有详细的功能描述。你可以针对不同的应用程序来提高或降低优先级。
完成该向导后,规则和队列就已经被自动创建了。如果你感觉还有什么没有设定好,只需再次运行该向导;你会发现它会记住你之前的选择。
测试、修改pfSense规则
为了真正查看pfSense是否能够真正限制BitTorrent所使用的带宽,我在某台计算机上安装了BitTorrent6.1,然后选择一个文件开始下载。你可以从图9中看到我在启用该规则后的带宽对比。
当我重新设定了状态后,BitTorrent客户端花费了一点时间来重新建立下载链接。从上图中可以看出经过短时间的缓慢上升,下载带宽恢复到我设定的新的100Kbps的下行带宽限制。
修改pfSense规则
一旦你通过向导创建了基本的规则后,你可以编辑或拷贝它们来满足你的需要。你只需通过导航访问Firewall:Shaper:Rules就可以重新查看图6所示的屏幕,选择你想编辑或拷贝的规则,然后点击相应的图标。当你的鼠标移动到一个图标上时,会弹出一个提示窗口告诉你该图标的用途。所示的是中第三条规则的编辑界面。尽管这个屏幕上的内容非常多,多数情况下,你只需要修改目的端口的范围(DestinationPortRange)。由于这是一条针对BitTorrent的规则,因此我将它设定为6881到6999.如果你想修改这个端口,只需要输入新的端口号,然后点击保存按钮即可。
每一条规则都具有一个Target域,来设定匹配规则的数据包被发送到哪个队列。要想为不同的应用创建一个新的规则,只需要去找一个使用了具有你想设定带宽的队列的规则,然后拷贝它,并修改目的端口范围(DestinationPortRange)为新应用程序所使用的端口。保存之后,重设States,你就完成了新规则的建立和应用。
注意:pfSense中规则的执行顺序是和位置有关的,是从列表中自上而下执行。因此你应该将限制性更强的规则放在宽松规则的前面,否则限制性更强的规则将不会被执行。这就是为什么在图6中我选择了P2PCatchAll选项后将BitTorrent规则放在列表的比较靠前的位置。
你也可以对已有的队列进行调整,并创建一个新的规则,但是进行这种设置你要非常谨慎。
找出要限制的应用程序的端口
如果你不知道想要限制的应用程序所使用的端口该怎么办?或者说有时候用户修改了应用程序的端口号或使用了一个代理,这时候限定标准端口将不再有用。除了把它们放到PenaltyBox中外,你还可以使用PFtop来查看通信状态。
PFtop是一个小型网管工具,可以实时显示OpenBSD的数据包过滤器pf的实时状态和规则统计数据。它也被用在pfSense平台上。你可以使用pfSense中的Diagnostics:ExecuteShellCommand功能(如图11)来快速检查实时通信连接状态。这个模式只是让你查看默认的试图和分类,因此它的功能非常有限。尽管如此,你还是可以看到最活跃的连接,可以发现下载次数最多的连接的信息。
结束语
在本篇文章中,我只是简单的介绍了pfSense的流量整形(TrafficShaping)功能,实际上它还有很多功能可以帮助真正的把局域网管理起来。
如果你有一台空闲的计算机,再加上一点点耐心,我相信你会发现pfSense是一个非常强大的网管工具。
关键词标签:软路由,pfSense
相关阅读
热门文章 路由器地址大全-各品牌路由设置地址各品牌的ADSL与路由器出厂默认IP、帐号、密Nslookup命令详解-域名DNS诊断站长装备:十大网站管理员服务器工具软件
人气排行 各品牌的ADSL与路由器出厂默认IP、帐号、密码路由器地址大全-各品牌路由设置地址腾达路由器怎么设置?腾达路由器设置教程ADSL双线负载均衡设置详细图文教程路由表说明(详解route print)网管员实际工作的一天用此方法让2M带宽下载速度达到250K/S左右网管必会!了解交换机控制端口流量
查看所有0条评论>>