揭开Cisco NBAR 的神秘面纱:

NBAR (Network-Based Application Recognition) 的意思是网络应用识别。 NBAR是一种动态能在四层到七层发现协议的技术。它不同于ACL,仅仅依靠端口号进行对应用服务的判断,更加精准的是可以通过数据包本身的描述进行识别判断,该数据属于哪一种服务,可以对使用动态分配TCP/UDP端口号(如P2P下载软件)的应用程序和HTTP流量等进行分类。

实际上NBAR的应用原理在于对网络应用层面的监控,可以进行代码匹配来识别数据报的具体应用,例如FTP、WEB、BT、电驴等等。即便所应用的服务端口变化,NBAR也可以识别出来具体的服务。NBAR首先可以应用于网络监控,判断究竟在你的网内哪种服务占据着最主要的流量,以便于配合QOS来做流量的修整。

既然这么好的东东,我们怎么测试的她的能力了? 请看下文。

采用NBAR就能封杀BT和电驴的流量,为什么?关键时路由器靠什么东西,她又能发现当前传输的流量中就包含BT的流量,这得依靠一个强大特征库文件:PDLM(数据包描述语言模块),这个特征库文件,就好比是杀毒软件的病毒库,杀毒软件能识别某些文件属于恶意程序,病毒了,关键是她的病毒库--------

PDLM它是NBAR针对于网络高层应用的主要识别原理,从Cisco IOS 12.0之后引入了NBAR的概念,由于IOS的版本高低不同,较高的IOS已经内嵌支持bittorrent和eDonkey两种协议,如果您的设备目前没有能力发现BT和电驴的流量,主要是不支持这两个协议。可以在 CISCO的网站,使用CCO账号登陆,找到各种网络应用的PDLM,每个PDLM都是针对于一种服务的,它记载了关于判别一种应用服务的关键匹配代码。

作者已经下载完了,需要上传PDLM模块到路由器的flash或者nvram中

拓扑图:

第一步:上传之前的准备工作

norvel-network#dir /all

Directory of flash:/

1  -rw-    15824768          <no date>  3600_12_3(22)(fc2).bin

33030140 bytes total (17205308 bytes free)

norvel-network#show flash all

Partition   Size    Used      Free      Bank-Size  State          Copy Mode

1        32255K  15453K    16802K     8192K      Read/Write     Direct

System flash directory:

File  Length   Name/status

addr      fcksum  ccksum

1   15824768  3600_12_3(22)(fc2).bin

0x40      0x89AC  0x89AC

[15824832 bytes used, 17205308 available, 33030140 total]

32768K bytes of processor board System flash (Read/Write)

Chip    Bank    Code      Size      Name

1      1       01AD      2048KB    AMD   29F016

2      1       01AD      2048KB    AMD   29F016

3      1       01AD      2048KB    AMD   29F016

4      1       01AD      2048KB    AMD   29F016

1      2       01AD      2048KB    AMD   29F016

2      2       01AD      2048KB    AMD   29F016

3      2       01AD      2048KB    AMD   29F016

4      2       01AD      2048KB    AMD   29F016

1      3       01AD      2048KB    AMD   29F016

2      3       01AD      2048KB    AMD   29F016

3      3       01AD      2048KB    AMD   29F016

4      3       01AD      2048KB    AMD   29F016

1      4       01AD      2048KB    AMD   29F016

2      4       01AD      2048KB    AMD   29F016

3      4       01AD      2048KB    AMD   29F016

4      4       01AD      2048KB    AMD   29F016

norvel-network#copy tftp flash  //采用TFTP协议,复制TFTP文件到路由器flash中

Address or name of remote host []? 192.168.10.10  //TFTP服务器的IP地址

Source filename []? bittorrent.pdlm //上传支持BT协议的PDLM,该文件要求要事先放置在TFTP的根目录下

Destination filename [bittorrent.pdlm]?  //上传后的目的文件名

Accessing tftp://192.168.10.10/bittorrent.pdlm...

Erase flash: before copying? [confirm]n  //一定要选择NO,不格式化Flash,否则PDLM是上传到Flash中了,Flash中的其他的文件都被格式化了

Loading bittorrent.pdlm from 192.168.10.10 (via Ethernet0/3): !

[OK - 3100 bytes]

Verifying checksum...  OK (0x7C83)

3100 bytes copied in 0.332 secs (9337 bytes/sec)

norvel-network#show flash //查看flash确认已经上传成功

System flash directory:

File  Length   Name/status

1   15824768  3600_12_3(22)(fc2).bin

2   3100     bittorrent.pdlm

[15827996 bytes used, 17202144 available, 33030140 total]

32768K bytes of processor board System flash (Read/Write)

按照上面的相同方法,如果您的设备flash空间已经满了,无法存放PDLM,你可以按同理

将PDLM上传到NVRAM中,PDLM文件本身都比较小,不用担心占用太多的空间

norvel-network#dir nvram:

Directory of nvram:/

25  -rw-        3612                   <no date>  startup-config

26  ----           5                    <no date>  private-config

1  -rw-           0                    <no date>  ifIndex-table

2  ----          12                    <no date>  persistent-data

30712 bytes total (24995 bytes free)

norvel-network#copy tftp nvram:

Address or name of remote host []? 192.168.10.10

Source filename []? eDonkey.pdlm

Destination filename [eDonkey.pdlm]?

Accessing tftp://192.168.10.10/eDonkey.pdlm...

Loading eDonkey.pdlm from 192.168.10.10 (via Ethernet0/3): !

[OK - 3492 bytes]

3492 bytes copied in 9.784 secs (357 bytes/sec)

也可以上传到NVRAM中

norvel-network#dir nvram:

Directory of nvram:/

25  -rw-        3612                   <no date>  startup-config

26  ----           5                    <no date>  private-config

1  -rw-           0                    <no date>  ifIndex-table

2  ----          12                    <no date>  persistent-data

3  -rw-        3492                  <no date>  eDonkey.pdlm

30712 bytes total (20899 bytes free)

上传完毕切记需要保存,保存到闪存中,防止无意间重启丢弃PDLM

norvel-network#write memory

第二步:通过IP NBAR命令加载PDLM模块到内存中,并使用Class-map来对流量进行分类标记,使用Policy-map对分类的流量给定丢弃的策略,并最终应用在连接Internet的接口下

//采用ip nbar 命令从flash中加载BT和电驴的模块,如果IOS已经支持这两种协议,则无需上传PDLM,也无需使用此命令

norvel-network(config)#ip nbar pdlm flash:bittorrent.pdlm

norvel-network(config)#ip nbar pdlm flash:eDonkey.pdlm

//使用Class-map对流量进行分类,Class-map的名字为BT

“match-any”匹配上其中一种流量,就执行分类

“match-all” 匹配所有流量,才分类

norvel-network(config)#class-map match-any BT

//Match 对象很多,可以ACL或者协议等

norvel-network(config-cmap)#match protocol bittorrent

norvel-network(config-cmap)#match protocol edonkey

//流量已经分类,使用Policy-map的目的是针对这些分类的流量给定一个什么样的策略。

这里先定义policy-map 的名字为Deny-BT 名称可以是任意字符

norvel-network(config)#policy-map Deny-BT

//在Policy-map中关联Class-map 的名字

norvel-network(config-pmap)#class BT

//policy-map给这些满足分类流量的策略是丢弃,你可以做做限速,可以让下载BT,但是速度限制20Kbps

norvel-network(config-pmap-c)#drop

//要使用NBAR必须启用 Cisco 快速转发

norvel-network(config)#ip cef

//在接口下要调用Policy-map 的策略

norvel-network(config)#int e0/2

//开启接口下NBAR发现协议的功能

norvel-network(config-if)#ip nbar protocol-discovery

//把策略应用E0/2的出方向

norvel-network(config-if)#service-policy output  Deny-BT

第三步:在路由器上检查配置

Show class-map

Show Policy-map

Show policy-map interface e0/2

norvel-network#sh class-map

Class Map match-any BT (id 2)

Match protocol bittorrent

Match protocol edonkey

Class Map match-any class-default (id 0)

Match any

norvel-network#show policy-map

Policy Map Deny-BT

Class BT

drop

norvel-network#show policy-map int e0/2

Ethernet0/2

Service-policy input: Deny-BT

Class-map: BT (match-any)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: protocol bittorrent

0 packets, 0 bytes

5 minute rate 0 bps

Match: protocol edonkey

0 packets, 0 bytes

5 minute rate 0 bps

drop

Class-map: class-default (match-any)

8133 packets, 7734590 bytes

5 minute offered rate 182000 bps, drop rate 0 bps

Match: any

Service-policy output: Deny-BT

Class-map: BT (match-any)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

Match: protocol bittorrent

0 packets, 0 bytes

5 minute rate 0 bps

Match: protocol edonkey

0 packets, 0 bytes

5 minute rate 0 bps

drop

Class-map: class-default (match-any)

13273 packets, 871872 bytes

5 minute offered rate 31000 bps, drop rate 0 bps

Match: any

第四步: 安装BT和电驴测试 NBAR的效果,软件安装就不多说了,下一步就可以,这些软件的安装包中,都捆版了很多广告软件,安装时请谨慎选择。

第五步:找到下载好的BT种子,记好了,一定要是BT种子文件,这是产生的下载流量才可以被PDLM所识别,如果是HTTP下载,无法触发Bittorrent的流量

第六步:验证效果,如果不在E0/2下,调用Policy-map策略,开启BT下载,可以看到该接口发现了很多BT的流量,BT流量非常疯狂

norvel-network#sh ip nbar protocol-discovery int e0/2

Ethernet0/2

Input                    Output

Protocol                 Packet Count             Packet Count

Byte Count               Byte Count

5 minute bit rate (bps)  5 minute bit rate (bps)

------------------------ ------------------------ ------------------------

http                     33963                    24384

33559299                 6041847

292000                   67000

bittorrent               4326                     7868

2204807                  3092548

46000                    5500

第七步:接口下调用Policy-map 策略,检查接口Drop包的数量,5分钟内丢弃了10000

norvel-network#sh policy-map int e0/2

Ethernet0/2

Service-policy output: Deny-BT

Class-map: BT (match-all)

1290 packets, 150864 bytes

5 minute offered rate 10000 bps, drop rate 10000 bps

Match: protocol bittorrent

drop

Class-map: class-default (match-any)

27006 packets, 5211833 bytes

5 minute offered rate 97000 bps, drop rate 0 bps

Match: any

第八步:为了更好的看一下 丢弃的效果,我们暂时把接口下的策略取消掉,来观察BT的下载速度是否在“猛涨”

norvel-network(config)#policy-map Deny-BT

norvel-network(config-pmap)#class BT

norvel-network(config-pmap-c)#no drop

关闭丢弃的策略,BT的下载速度开始上涨了,

你可以多观察几分钟,只要你的带宽够大,种子资源够活跃,这“变态下载”速度会越来越快。

第九步:启用NBAR策略,封杀BT的流量,我们观察BT下载速度,在一分一秒的降低,几分钟之后的0KB/S,而且一直这样持续。

说明NBAR封杀BT的流量,现象成功了

norvel-network(config)#policy-map Deny-BT

norvel-network(config-pmap)#class BT

norvel-network(config-pmap-c)#drop

而且下载速度哪里一直保持的是0KB/S

下载的流量经过路由器是全被丢弃了。

norvel-network#sh policy-map int e0/2

Ethernet0/2

Service-policy input: Deny-BT

Class-map: BT (match-all)

   8448 packets, 3672204 bytes

      5 minute offered rate 26000 bps, drop rate 27000 bps

Match: protocol bittorrent

drop

转载于:https://blog.51cto.com/hackerjx/254564

揭秘Cisco NBAR封杀BT和电驴下载相关推荐

  1. Cisco_NBAR封杀BT和电驴下载

    NBAR(Network-Based Application Recognition) 的意思是网络应用识别. NBAR是一种动态能在四层到七层发现协议的技术.它不同于ACL,仅仅依靠端口号进行对应用 ...

  2. 破解Vista下载线程限制 让BT和电驴飙起来

    <script language='javascript' src='http://www.shiqiaotou.com/donetk/Header.js'></script> ...

  3. 打造linux下bt、电驴、ftp一体服务器

    打造个人专用bt.电驴.ftp一体服务器 操作系统选择了Debian 4.0(etch),当服务器当然要用linux了,稳定嘛~ 下载地址: [url=http://debian.cn99.com/d ...

  4. Vista破解TCP/IP线程数为BT、电驴提速(转)

    Windows vista破解TCP/IP的线程数为BT.电驴提速,这个问题是Vista之家团队接到的最多的问题,解决这个问题,首先要下载一个补丁: 补丁下载: 如何replace: 输入兩个comm ...

  5. 一个基于BCH的付费电驴下载的设想

    作者新浪微博:中本蒜-袁维 感觉不比ipfs和joystream差 ​​​刚刚吃饭,想到了一个付费下载的解决方案,可以把电驴和BCH结合在一起. 虽然目前有ipfs和joystream,但是前者似乎也 ...

  6. 《明日世界》电驴下载放出

    2010年1月10日,我应CSDN西安程序员俱乐部邀请,为广大西安的程序员们做了题目为<明日世界-云端计算下的程序设计需求>的主题演讲. 这应该是一个比较新颖的话题,我自己也在不断学习中, ...

  7. Visual Studio.net 2005 简体中文版[电驴下载]

    Visual Studio.net 2005 简体中文版[电驴下载] 中文名称:Visual Studio .net 2005 简体中文版 英文名称:Visual studio 2005 Team S ...

  8. 目前还存活的多个电驴下载站点

    0.http://www.emule-project.net/ 这个不用说了,emule官方,没有它就没有下面的所有一切,德国人开的.只提供官方版emule软件,没有资源下载.秉承理念"eM ...

  9. 目前还存活的多个电驴下载站点!电驴达人收藏

    目前还存活的多个电驴下载站点!电驴达人收藏(2011更新) 0.http://www.emule-project.net/ 这个不用说了,emule官方,没有它就没有下面的所有一切,德国人开的.只提供 ...

最新文章

  1. Open3d学习计划—高级篇 8(网格变形)
  2. 函数组:SDIFRUNTIME
  3. C语言12变21,【C语言】21-结构体
  4. webwork2.2.4+spring配制方式总结
  5. Docker - command in docker container
  6. Ubuntu 18.04安装CUDA(版本10.2)和cuDNN
  7. linux初始化root密码
  8. maven ant_如何在Maven中运行Ant目标?
  9. BLIP:用更干净更多样的数据进行多模态预训练,性能超越CLIP!代码已开源!...
  10. python tensorflow 文本提取_如何在tensorflow中保存文本分类模型?
  11. SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析
  12. html判断用户名的合法性,javascript简单判断输入内容是否合法的方法
  13. python之decorator理解
  14. Android的深度定制版阿里云os(Android的山寨)
  15. mac 安装selenium 教程
  16. CAD中插入外部参照字体会变繁体_为什么CAD插入外部参照时会提示错误无效?
  17. 最新v6.0 tgroupon分销系统源码+TGROUPON卖货系统 ECSHOP+ECTOUCH内核
  18. 由于高精度事件计时器(HPET)驱动过时导致AMD机器装Win10的卡死蓝屏问题记录
  19. 数值计算笔记-部分主元消去cholesky分解
  20. 拍卖系统业务演进过程(一)

热门文章

  1. Android--2048游戏
  2. 微内核redox快速运行
  3. 前海征信大数据算法:风险概率预测
  4. 继电器与LED小夜灯结合实现控制小夜灯循环亮灭
  5. 只需几十行代码就可绘制酷炫的数据大屏,这个可视化框架真的绝了
  6. 郭敏:兰海高速事故并非偶然,历次整治为何不起作用?
  7. 在一个路由器上连接另外一个路由器
  8. 第三讲 创建Win7虚拟机
  9. 如何使用ClickHouse实现时序数据管理和挖掘?
  10. 【Edraw Max教程】如何快速创建精美的组织结构图