您的位置:首页 > 移动开发 > IOS开发

IOS的NBAR特性概述

2009-04-19 18:15 274 查看
NBAR(Network-Based Application Recognition,基于网络的应用识别)是一种流量分类引擎,能够通过数据包本身的描述识别该数据属于何种应用服务。在CISCO IOS的12.0(5)XE2引入了该特性。通常NBAR会用于辅助CISCO IOS的QOS(服务质量),由NBAR将通过路由器的流量进行流量分类,CISCO IOS根据分类结果对不同类别的流量实施QOS特性。

NBAR能够动态的寻找并分类通过路由器的四到七层流量中的协议,可以识别动态分配TCP和UDP端口号的有状态应用(如P2P类文件共享程序),可以识别常用的TCP和UDP协议的端口号及其他类型的三层协议、包含在应用层数据里的命令等。NBAR还可以用于识别***流量,并在确认流量为恶意流量之后,进行丢弃。

通过和数据包描述语言模块(PDLM)配合,NBAR可以拥有更加强大的功能。PDLM是已经定义好的用于增强NBAR网络协议分析和应用的识别能力的模块,在CISCO官方网站上提供了很多已经定义好的PDLM,可以使用CCO号登陆CISCO网站进行下载。通过加载PDLM可以增强NBAR的能力,而不需要重装CISCO IOS软件。下载到需要的PDLM模块文件后,可以使用TFTP方式COPY模块到路由器的FLASH中,然后使用ip nbar pdlm [模块名] 命令进行加载。PDLM还允许管理员自定义协议和端口号对特定的流量进行审查。

使用NBAR功能,首先要在路由器启动CISCO快速转发功能,然后根据需要审查的流量使用class-map建立审查分组(类), 可以具体的定义需要审查何种应用类型,数据包长度,连接地址等。完成了流量分类,就可以通过定义policy-map来指定各种流量对应的安全规则,比如对于***流量进行丢弃,使用带宽管制对可疑流量进行带宽限制。最后需要在接口下启用流量策略。

NBAR也有很多缺陷,例如不支持HOST或MINE的匹配类型,不支持非IP流量,不支持组播或其他非CEF的交换模式,不支持被分片的数据包等。NBAR特性不被逻辑接口支持,包括快速以太网信道、TRUNK接口、交换虚接口等。

配置NBAR的基本步骤:(包括两大步:定义流量分类class-map和定义行为policy-map)

1.启用CEF特性:

Aiko(config)#ip cef

2.把流量分类,定义class map:

Aiko(config)#class-map [match-all|match-any] {map-name}

3.定义NBAR要匹配的协议:

Aiko(config-cmap)#match protocol {protocol}

4.设置policy map:

Aiko(config)#policy-map {policy-name}

5.调用class map:

Aiko(config-pmap)#class {class-map}

6.设置策略:

Aiko(config-pmap-c)#{action}

7.把策略应用在接口上:

Aiko(config-if)#service-policy {input|output} {policy-map}

NBAR配置实例:
使用NBAR阻止TELNET流量。



R1的基本配置:
Router(config)#hostname R1
R1(config)#interface s0/0
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2

R2的基本配置:
Router(config)#hostname R2
R2(config)#interface s0/1
R2(config-if)#ip address 10.0.0.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.1

配置TELNET登录密码:
R1(config)#line vty 0 15
R1(config-line)#password cisco
R1(config-line)#login
R1(config-line)#exit

定义审查类
R1(config)#class-map telnet
R1(config-cmap)#match protocol telnet 匹配所有的telnet流量
R1(config-cmap)#exit

定义行为
R1(config)#policy-map telnet
R1(config-pmap)#class telnet
R1(config-pmap-c)#drop 定义行为为丢弃
R1(config-pmap-c)#exit
R1(config-pmap)#exit

作用在接口下:
R1(config)#interface s0/0
R1(config-if)#service-policy input telnet
R1(config-if)#exit

测试:
R2#telnet 10.0.0.1
Trying 10.0.0.1 ...
% Connection timed out; remote host not responding
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲