一、什么是NBAR?
NBAR的全称是Network−Based Application Recognition,译为基于网络的应用识别。它可以对使用动态分配TCP/UDP端口号的应用程序和HTTP流量等进行分类.在使用NBAR的时候 要先启用CEF特性.
二、NBAR的缺陷
首先,NBAR不能在以下几种逻辑接口上使用:
1、快速以太网信道.
2、使用了隧道或加密技术的接口.
3、SVI.
4、拨号接口.
5、多链路PPP(MLP).
揭开
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
|
转载于:https://blog.51cto.com/yuxin/331773