网络通信 频道

局域网中限速方法总结

  【IT168专稿】局域网内为何要进行限速,因为如果不加以限制的话,即使增加再多的互联网出口带宽也会被局域网内各种各样的网络应用消耗掉,而限速的目的就是限制对于网络的滥用,从而使出口带宽维持在一个比较合理的水平,从而达到既保证网内用户可以正常的使用网络,又节省单位的互联网出口费用开支,所以说网络限速是一个网管员必备的素质。本文从网络限速的思路和具体实现方法入手,说明一下具体的实施办法。

  一、限速思路

  (一)能够进行限速的前提

  在进行网络限速前,实际上我们先想做局域网内的流量监控,只有对局域网中各台交换机的端口流量(甚至是各类网络应用)有一个全面的了解,才能够制定出限速的标准以及具体实施方案。比如我们就利用MRTG软件针对单位中的核心交换机为CISCO3550和下挂的CISCO29系列交换机作了实时的流量监控(如图1所示)。

图1 通过MRTG监控CISCO交换机的端口流量

  对每一个端口(相对应一个或一组用户)的用量情况都有了一个清晰的了解,这样通过观察,得出哪些用户(即哪个端口)的流量大,对带宽的占用多,就可以着手进行限速方案的制定了。

  (二)限制,而不是拒绝

  我们进行网络限速,是限制局域网用户对于网络的滥用,而不是不让用户使用网络,因此我们不论是从端口还是从应用层面做限速,就要遵循这个思路。

  (三)目标

  目标是什么,最终目标是使现有的带宽可以满足目前局域网的带宽需求,具体到我们单位,我们租用了100M互联网出口,局域网内有几十个单位的用户,这几十个单位有免费用户,也有付费用户。在进行网络限速时我们当然应该优先保证付费用户的带宽,当然免费用户中有一部分用户也要特殊照顾。在对某个端口(对应一个单位用户)实际限速操作时,我们先通过MRTG生成的流量图了解这个单位的日常带宽使用情况,限速后削去明显高出的波峰即可(即类似歌手大奖赛时出掉一个最高分),然后将带宽维持在一个以前统计出的平均值上即可,这样设置后被限速的用户基本上没有感觉(网速不会明显变慢),但是我们的目的也达到了。

  (四)要至上而下,制定缜密的限速规划

  最后要强调一点,网络限速可以从网络接入的底层实施,但是一定要从网络的顶层规划,这样做一是可以保证限速的效果,二来也将可能出现的网络故障限制在一个可控的范围内,另外关于交换机配置存盘的时机也很有讲究,我们一般是这样做的,进行限速操作前先存一次交换机的配置(保留好当前正常工作状态),限速操作完成,进行观察,确认对网络没有影响后,等一两天以后再执行保存交换机配置的操作(等足够长的时间,确认没有产生网络故障再存盘),这一措施是非常有效的,及时的故障处理措施保证了我们进行网络限速期间没有引起新的网络故障,保证了网络的正常运行。

  二、具体实现方法

  具体实现方法又分两大类,一类是通过交换机限速进行端口限速,另一类是通过限制某些特定的网络应用限速(比如专门限制BT和网络电视等的使用)。

  (一)基于交换机的限速

  1、接入层交换机的限速

  接入层交换机也叫做楼幢交换机或桌面型交换机,它们位于网络的最底层,直接接入终端用户(家庭或办公用户),一般来说这类交换机很廉价,也没有什么管理功能,但是也有一些交换机可以满足我们进行端口限速的要求(当然价格也要略高一点)。此类交换机进行端口限速往往很直接,有的甚至可以通过图形界面,用下拉菜单的模式很直观的设置几十K至100M的端口速率,不过本例中还是通过CLI来实现,是一款DLINK的二层可管理交换机:DES-3026,设置方法如下:

  DES-3026:4#config bandwidth_control 1-10 rx-rate 64

  command:config bandwidth_control 1-10 rx_rate 64

  Note:To perform precise bandwidth control,it is required to enable the flow

  control to mitigate the retransmission of TCP traffic.

  Success

  这样我们就将这台交换机的1-10端口的接收速率设置为64kbps。

  2、汇聚层交换机

  朋友们可能会问了,既然接入层的交换机的端口限速功已经做得很好了,那我们全部使用这样的交换机进行组网行不行,答案是否定的,我们在汇聚层还是要使用更高档次的交换机。因为在汇聚层工作的交换机,除了稳定性以外,还有一个很重要的技术指标,那就是背板带宽,它决定了这台交换机是否可以实现线速转发。如果判断交换机的背板带宽够不够用呢?计算方法如下:端口数*相应端口速率*2(全双工模式),举例来说,一台24口的交换机,端口均需工作在100M,那么背板带宽至少需要:24*100*2=2.4G,而CISCO29系列交换机的背板带宽都在8G以上,满足线速转发是没有问题的。 但是目前我们还没有找到在CISCO29系列交换机上进行端口限速的方法。

  3、核心层交换机

  核心层的交换机除了要支持VLAN、TRUNK、ACL等等功能外,它最核心的功能就是要保证各个端口间的快速数据转发,因此它们上面的端口限速往往不是简单设置一个数值就OK了,总体来说要分四个步骤:

  1)建立一个访问控制列表(ACL);

  2)建立一个类(CLASS),并在这个类上引用刚建立的那个访问控制列表(ACL);

  3)建立一个策略(POLICY),在这个策略上指定相应的带宽,并引用相应的类;

  4)将这个策略应用具体的端口上。

  具体操作如下:

  CISCO3550交换机:

  1、在交换机上启动QOS

  Switch(config)#mls qos //在交换机上启动QOS

  2、定义访问控制列表

  Switch(config)#access-list 1 permit 10.59.0.0 0.0.255.255 //针对10.59/16这个网段进行上行流量控制

  Switch(config)#access-list 101 permit ip any 10.59.0.0 0.0.255.255 //针对10.59/16这个网段进行下行流量控制

  3、定义类,并和上面定义的访问控制列表绑定

  Switch(config)# class-map xsup //定义上行的类,并绑定访问列表1

  Switch(config-cmap)# match access-group 1

  Switch(config-cmap)# exit

  Switch(config)# class-map xsdown

  Switch(config-cmap)# match access-group 101 //定义下行的类,并绑定访问列表101

  Switch(config-cmap)# exit

  4、定义策略,把上面定义的类绑定到该策略

  Switch(config)# policy-map xsup //定义上行的速率为1M,超过的丢弃

  Switch(config-pmap)# class xsup

  Switch(config-pmap-c)# trust dscp

  Switch(config-pmap-c)# police 1000000 1000000 exceed-action drop

  Switch(config)# policy-map xsdown //定义下行的速率为1M,超过的丢弃

  Switch(config-pmap)# class xsdown

  Switch(config-pmap-c)# trust dscp

  Switch(config-pmap-c)# police 1000000 1000000 exceed-action drop

  Switch(config-pmap-c)# exit

  5、在接口上运用策略

  Switch(config)# interface fa0/1

  Switch(config-if)# service-policy input xsup

  Switch(config)# interface fa0/24

  Switch(config-if)# service-policy input xsdown //24口为上行接口

  华为3552交换机:

  1、sys

  [ZXJF_3552]acl name xs advanced //建立名为xs的高级ACL

  [ZXJF_3552-acl-adv-chen]rule 1 permit ip source 10.67.0.0 0.0.255.255 //允许67网段的主机通过

  [ZXJF_3552-acl-adv-chen]q

  2、sys

  [ZXJF_3552]int e0/1

  [ZXJF_3552-Ethernet0/1]packet-filter inbound ip-group xs//在1口上激活了ACL“xs”

  3、sys

  [ZXJF_3552]int e0/1

  [ZXJF_3552-Ethernet0/1]traffic-limit inbound ip-group xs 10240 1280000 1280000 //对1口上接收的流量速率限制为10M=10240kbps。

  [ZXJF_3552-Ethernet0/1]traffic-shape 10400 192 //对1口上发送的流量速率限制为10M=10400kbps,突发尺寸192kbytes。

  当我们这样做好以后,局域内的带宽使用就会被有效的限制下一个数量级,比如原来日常8、90M的带宽使用就会降到6、70M了。

  当然我们也可以挖掘一下核心层交换机的高级应用,比如通过限制某些端口通过的方式来限制某些网络应用(比如迅雷下载),但实际限制起来的效果并不是太好,因为迅雷此类的程序其实使用了很复杂的网络协议,但靠限制某些端口是很难把它搞定的,所以还是要靠专业流控设备。

  (二)基于应用的限速

  基于专业流控设备的限速,本文中我们以一款测试过的流控设备说明一下实现方法,这款设备位于我们单位局中的硬件防火墙和宽带用户管理设备之间,可以针对某一类应用限速,比如我们要对全网中的P2P下载做一个限带,上/下行不能超过10M,就可以这样来做。

  1、在“对象管理”中选择“P2P下载”。从图2可以看到P2P下载中包含了很多的应用程序,比如常用的“eDonkey”、“迅雷”等。

图2 P2P下载中所包含的应用程序

  2、在“策略管理”中新建一个通道

  本例中我们新建了一个名为“p2p限制”的通道,并设置通道的带宽为10M,如图3所示。

图3 在“策略管理”中新建数据通道

  3、在“流量控制”-“策略组”中新建一个策略,在“数据路径”中选择“网桥1->双向”,在“应用协议”中选择“P2P下载”,在“动作/通道”中选择“p2p限制”。这样就在局域网中将所有应用P2P的下载所占用的带宽限制到10M,如图4所示。

图4 新组一个策略组

  实践证明这种基于网络应用的限速也是管用的,我们只在网络中限制了P2P下载这一类应用,没有做交换机的端口限制,也成功的将带宽的占用减少了20M左右,从而保证了网页浏览、收发邮件等应用的正常进行。

0
相关文章