每个校园网络的管理者对管理的网络都有不同的理解,因此,对于BT下载的控制方式也不尽相同。但归根结底无非是两种做法,一是"堵",即通过技术手法隔离BT,杜绝一切BT流量;二是"疏",即在特定的范围、时间内可以使用BT,允许流量通过,满足大家的需求。
限制浏览BT网站
BT网站很多,但考虑到BT下载的特点:下载的人数越多,速度越快;种子越多,速度越快。只有比较热门BT网站的Torrent文件下载的人才会比较多,一般的BT网站去的人就比较少,下载的人数也少,除非他能忍受每秒几K的速度。因此针对比较热门的BT网站,获得服务器地址后就可以到核心服务器上对该地址进行封锁。以Cisco设备为例,具体命令为:
access-list 102 deny tcp any 202.103.9.83 0.0.0.0
这种方法使用access-list命令来控制,实现起来比较容易。但由于BT网站比较多而且层出不穷,因而access-list命令的条数会因为BT服务器的数量增加而增加,随着access-list命令条数的增多路由器的负荷也随之增加。从实际操作上来看,BT的种子网站众多,而且无需固定的服务器,要想监控,难度也很大,技术上难以实现。
封闭BT下载端口
解决BT对局域网的危害,最彻底的方法是不允许进行BT下载,BT一般使用TCP的6881~6889的端口,网络管理员可以根据网络流量的变化进行判断,在网关中将特定的种子发布站点和端口封掉,在BT下载软件中的Track中可以获得这些信息;但是现在大多数BT软件可以修改端口号,因此网管可以根据实际情况,利用访问控制列表在不影响正常业务的情况下尽可能将封闭的端口范围扩大,把一些特定的种子发布站点和端口进行封闭。以Cisco设备为例,具体命令为:
access-list 101 deny tcp any any range 6880 6890
access-list 101 deny tcp any range 6880 6890 any
access-list 101 permit ip any any
接着进入相应的端口,输入ip access-group 101 out 使访问控制列表生效配置之后,网络带宽就会马上释放出来,网络速度得到提升。
这种方法也使用access-list命令来控制,实现起来比较容易。但是由于BT可以自由变换端口,这样一来,势必要封堵大量的端口,封闭了端口必然影响了网络的应用。有的网络管理员甚至仅仅打开80、53、21、25、110等常用端口而封闭其他所有端口。
加载PDLM模块
使用Cisco公司出品的PDLM模块可以省去我们配置路由策略的工作,封锁效果非常好。上文介绍的两种方法,一个是对数据包的目的地址进行封锁,一个是对数据包使用的端口进行封锁,虽然在一定范围内有效,但不能起到全面禁止BT的作用,通过PDLM+N BAR的方法来封锁BT就存在这个问题了。
Cisco在其官方网站上提供了三个PDLM模块,分别为KAZAA2.pdlm,bittorrent.pdlm和emonkey.pdlm,可以用来封锁KAZAA、BT、电驴。在此我们以封锁BT下载为例。
建立一个TFTP站点,将bittorrent.pdlm复制到该站点,在核心路由器中使用ip nbar pdlm tftp://TFTP站点的IP/bittorrent.pdlm命令加载bittorrent.pdlm模块。
接下来设置路由策略,具体命令如下:
class-map match-any bit
BIT
match protocol bittorrent
准!
policy-map limit-bit
//创建一个POLICY-MAP名为LIMIT-BIT
class bit
//要求符合刚才定义的名为BIT的CLASS-MAP
drop
//如果符合则丢数据包!
interface gigabitEthernet0/2
//进入网络出口那个接口
service-policy input limit-bit
//当有数据包进入时启用LIMIT-BIT路由策略
service-policy output limit-bit
//当有数据包出的时候启用LIMIT-BIT路由策略
如果不想每次启动路由器时都要手工加载TFTP上的bittorrent.pdlm,可以把这个PDLM文件上传到路由器的Flash中,然后选择TFTP服务器的IP地址即可。值得提醒大家的是,封锁KAZAA或者是EDONKEY时,在路由器配置中将"match protocol后的bittorrent替换为KAZAA2或者EDONKEY即可,其他配置和封锁BT一样,通过NBAR加载PDLM模块法封锁BT软件后,已经完全断绝了BT流量,网络速度也恢复到以前的稳定值了。
限制NAT的单用户连接数
在Cisco IOS 12.3(4)T 后的IOS软件上支持NAT的单用户限制,即可以对做地址转换的单个IP限制其NAT的表项数,因为P2P类软件如BT的一大特点就是同时会有很多的连接数,从而占用了大量的NAT表项,因此应用该方法可有效限制BT的使用,比如我们为IP 10.1.1.1设置最大的NAT表项数为200;正常的网络访问肯定够用了,但如果使用BT,那么很快此IP的NAT表项数达到200,一旦达到峰值,该IP的其他访问就无法再进行NAT转换,必须等待到NAT表项失效后,才能再次使用,这样即有效地保护了网络的带宽,同时也达到了警示的作用。
例如限制IP地址为10.1.1.1的主机NAT的条目为200条,配置如下:
ip nat translation max-entries host 10.1.1.1 200
如果想限制所有主机,使每台主机的NAT条目为200,可进行如下配置:
ip nat translation max-entries all-host 200
使用HTTP代理过滤应用层协议
当BT客户端下载时,必须进行Tracker查询,Tracker通过HTTP的GET命令的参数来接收信息,而响应给对方(下载者)的是Bencoded编码的消息。在HTTP请求报文中,携带了BT的特征值User-Agent:BitTorrent。
针对该情况,网络管理员可以通过一些安全管理设备以及流量管理设备,甚至网络管理系统软件,过滤特定的应用层数据包(如HTTP数据包),然后根据BT数据包中的关键字(BitTorrent),从HTTP数据包中过滤BT数据包。
控制整体BT下载流量
将整体BT下载的流量控制在某个范围内。如整个校园网络可以使用的BT下载流量设定为1Mbps。校园网络剩余的其他网络带宽资源可以给关键业务或者其他非关键业务使用,有效地防止BT下载侵吞大量网络带宽资源。以Cisco设备为例,具体命令为:
access-list 130 remark bt
access-list 130 permit tcp any any range 6881 6890
access-list 130 permit tcp any range 6881 6890 any
rate-limit input access-group 130 712000 8000 8000 conform-action transmit exceed-action drop
rate-limit output access-group 130 712000 8000 8000 conform-action transmit exceed-action drop
限制或禁止在特定时间段内的BT下载
校园网络工作时间内限制或者禁止BT下载,这样工作时间内不会有BT下载流量和关键业务竞争,也充分保护了校园网络关键业务。同时,在非工作时间,校园网络也可以自行利用高速的网络资源。以Cisco设备为例,具体命令为:
time-range test
periodic daily 20:00 to 23:00
access-list 130 permit tcp any any range 6881 6890 time-range test
access-list 130 permit tcp any range 6881 6890 any time-range test
保证关键业务专用动态带宽
将校园网络关键业务划分到专用动态带宽中间,BT下载使用剩余带宽,避免两者竞争。
某些特定校园网络会使用BT下载提供服务。对于这样的校园网络,由于BT下载具有很高的侵略性,因此需要使用保护机制来保障其他关键业务的正常运行。网络管理员可以通过一些管理软件(如当前国内较为流行的聚生网管之类的)或者网络硬件配置,针对应用流进行较细粒度的速率限制,例如将BT用户下载的优先级限制为5(0最高,7最低),带宽限制为64kbps。这样可以确保BT软件使用的同时不会影响其他业务的开展,充分保护这些应用。剩余的网络资源可以全部提供给BT下载使用。
关于网络上关于"封杀BT"问题上的争论,仁者见仁,智者见智。总的来说,BT是P2P技术在解决大容量文件的问题上是一种很好的解决方案,它代表着网络发展的一种趋势,是网络资源共享的一种倾向。至于如何对待,在不同的单位不同的场合因根据具体情况具体分析,封杀不是唯一的办法,更不是最终的解决方案。