目前常用的办法是:
方法1、采用Cisco公司的nbar来限制;
配置步骤如下:
------------定义Class-map-------------;
!
class-map match-all bittorrent
match protocol bittorrent
class-map match-all edonkey
match protocol edonkey
!
注意:如果match protocol命令里没有bittorrent、edonkey选项,那么说明你的IOS版本还没有包括此协议,此时你需要到Cisco网站上下载bittorrent.pdlm、edonkey.pdlm文件,上传到路由器上,然后定义这种协议:
ip nbar pdlm bittorrent.pdlm
ip nbar pdlm edonkey.pdlm)
------------定义policy-map-------------;
!
policy-map limit-bt
class bittorrent
drop
class edonkey
drop
!
------------应用到接口上--------------;
!
interface f0/0
service-policy input limit-bt
service-policy output limit-bt
!
说明:这种方法使用后对一些p2p软件确实起作用,但目前Cisco只定义了少数几个协议(bittorrent、edonkey、kazaa2、gnutella、napster、winmx、fasttrack等),不能覆盖所有的此类软件,这有待于Cisco的继续努力;
方法2、采用ACL方法;
我们可以采用以下方式来配置ACL,一种是开放所有端口,只限制bt的端口,配置如下;
!
access-list 101 deny tcp any any range 6881 6890
access-list 101 deny tcp any range 6881 6890 any
access-list 101 permit ip any any
!
说明:这种方法有其局限性,因为现在有的p2p软件,端口可以改变,封锁后会自动改端口,甚至可以该到80端口,如果连这个也封,那网络使用就无法正常工作了;
另外一种方式是只开放有用的端口,封闭其他所有端口;
!
access-list 101 permit tcp any any eq 80
access-list 101 permit tcp any any eq 25
access-list 101 permit tcp any any eq 110
access-list 101 permit tcp any any eq 53
access-list 101 deny ip any any
!
说明:此方法是对网络进行严格的控制,对简单的小型网络还可行,而如果是大型网络,数据流量又很复杂那么管理的难度将非常大;
还有一种方式是对端口是3000以上的流量进行限速;因为多数蠕虫病毒和p2p的端口都是大于3000的,当然也有正常的应用是采用3000以上的端口,如果我们将3000以上的端口封闭,这样正常的应用也无法开展,所以折中的方法是对端口3000以上的数据流进行限速,例如:
------------定义Class-map--------------;
!
class-map match-all xs
match access-group 101
!
------------定义policy-map-------------;
policy-map xs
class xs
police cir 1000000 bc 1000 be 1000 conform-action transmit exceed-action drop violate-action drop
!
------------定义ACL--------------------;
!
access-list 101 permit tcp any any gt 3000
access-list 101 permit udp any any gt 3000
!
------------应用到接口上---------------;
interface f0