3基于NETCONF网络管理架构
3.1基于NETCONF管理端
管理端一共包含3个模块,如图1所示,分别是交互界面.管理消息处理层、会话通信层.交互界面负责与管理员进行信息交互.消息处理层是管理端的核心模块,负责将管理消息封装成基于NETCONF的管理报文,并传送给会话通信层.另外还负责验证收到的报文
格式,解析出操作结果.内容层封装是根据采用的数据模型对报文进行封装.操作层封装、RPC封装则根据用户选择的操作类型将报文封装到相应的RPC报文中去.会话通信层对应NETCONF逻辑模型中传输层,负责将管理消息传输给消息转换器,并等待消息转换器的响应,将响应结果返回给消息处理层.
3.2消息转换器架构
本文的消息转换器基于Web Service进行通信.基于对XML的广泛接受,web Service成为使用标准传输、编码和协议来交换信息的应用程序.选择Web Service作为管理端与消息转换器之间报文的传递,符合在物联网下网络管理消息传递的特性要求,更容易实现跨平台、跨设备、跨网络对网络设备的监管.
消息转换器对发送过来的管理报文进行相应转换,使得网络管理端可以与不同类型的代理端进行通信,消息转换器以Web Service的方式发布,实现与管理端交互,并且直接与物联网环境下不同类型的代理进行信息交互.
消息转换器的整体架构如下页图2所示.主要分为三个功能模块,即消息分类器SNMP,报文转换模块,其它代理报文转换模块.
3.2.1 NETCONF-SNMP管理消息转换
负责将NETCONF管理报文转换为SNMP管理报文的转换器主要由6个模块构成,分别是请求分析器、MIB-XML翻译器、XML DOM、XML询问器、trap处理模块(由trap接收器.trap分析器和trap过滤器组成)以及报文生成器.
请求分析器结合XMLSchema判断管理报文的合法性,并且结合操作类型映射表提取操作类型.MIB-XMIL翻译器负责将SMI MIB转换为XML,转换后的XML,可以实现查找操作对象对应的OID,和操作对象的映射.XML DOM是转换器的核心,对XML文件进行分析,将得到的设备地址、操作类型,操作对象OID等,传给SNMP轮询器,还负责接收trap,实现trap中参数映射后,传递给XML报文生成器.SNMP轮询器将得到的参数包装成SNMP PDU传给SNMP代理,并且接受来自SNMP代理的响应.为了减少管理端与转换器之间的通信流量,对SNMP trap处理上采用过滤机制,trap处理器由3个模块组成,将接收到的trap进行分类,并建立分级制度来判断紧急程度,最后过滤掉一些重复或者失效的trap报文,并传递给XML DOM 报文生成器生成相应的响应报文或通知报文后传给NETCONF管理端.物联网网关
NETCONF-SNMP转换器也可以实现对ANMP代理的兼容性,这在于ANMP使用与SNMP相同的PDU格式,而且同样使用UDP作为传输协议来发送ANMP消息,在数据收集和控制方面,ANMP扩展了SNMP MIB以便记录Ad Hoc网络特有的信息.若要对ANMP代理进行管理,首先管理端载入对应的MIB文件,消息分类器判断管理报文中的地址,
若对应的是 ANMP代理时,将管理报文传给转换器,可以实现对ANMP代理对应设备的有效管理.
3.2.2对其他网络管理协议的支持
考虑到物联网环境下存在少量其他网络管理协议,本文加入了一种支持其他网络管理协议的理论构架,下面对这种架构进行阐述.
如图2所示,架构主要有四部分组成,分别是数据表、适配器、消息产生器、Trap接收器.其中三个数据表和三个适配器是架构的关键,设备信息表记录代理的相关信息,用以区分管理端与哪个代理通信;私有数据表将NETCONF的属性映射为代理的私有属性;操作表则将NETCONF的操作类型映射为代理的私有操作类型.报文适配器实现报文格式对应;传输适配器负责转换器与多种代理进行通信; trap适配器则负责代理如何主动与管理端进程通信,通知管理进程有某些事情发生.物联网网关
当管理端与代理通信时,转换器首先载入该代理的XML配置文件,生成三个数据表,分别是设备信息表、操作类型表、私有数据表.通过数据表生成上述三个适配器的具体实现,适配管理器负责初始化适配器并在合适的时候调用适配器.在适配管理器的协调下,消息产生器就能将管理端传递过来的NETCONF配置报文通过适配器转化为代理能够识别的PDU,返回的PDU也能通过管理消息产生器转换为基于NETCONF的响应报文.
3.3代理端架构设计
目前Cisco , Juniper等网络设备生产商都实现了基于RFC4741的代理,并嵌入到了它们最新的路由器当中.
NETCONF采用XML进行数据传输和模块表达,具有较强的可扩展性,网络设备提供商可以使用此协议获取、设置所有的配置数据,适合物联网下的不同类型设备快速添加和高效管理.这些功能很大一部分依赖于代理端的实现,如何将基于NETCONF的代理端有效应用到不同类型的网络设备,并对其进行网络管理是一个迫切需要解决的问题,这关系到NETCONF在物联网网络管理的生命力.本文将代理分为三
种类型,分别是SNMP代理、NETCONF代理和其他代理.
本节结合物联网的特征分析了NETCONF代理架构设计,按照RFC4741中规定,一个基本的NETCONF代理分四层结构来设计.另外代理必须完成对能力特性、三种数据库状态和事件通知的支持,基于NETCONF的代理架构如图3所示.
会话通信层负责与管理端交互,代理端启动后会监听来自管理端的管理消息.消息处理器接受来自会话通信层的管理消息后,能够解析出操作类型和操作对象并传给操作处理器,也能将操作处理器操作后的结果封装成基于NETCONF的响应报文.操作处理器执行消息处理器解析出来的具体操作.管理对象信息库中配置信息状态分为3个阶段,对应3种数据库状态:运行状态( running)、启动状态( start up)和候选状态( candidate).能力( capabilities)是NETCONF的新特性,这种特性允许客户端发现服务端支持的协议扩展集,“能力”的提出丰富了基本操作集,增加新的操作使代理端扩展性得到提高.被管理设备将能力集传递给管理数据库存储,在管理端发出“HELLO”报文后,传递给管理端以告知管理端被管设备支持的协议扩展集.通知(Notification)模块负责将被管理设备主动发出的消息传递给消息处理器,再由消息处理器封装后,通过会话通信层传递给管理端.
本文并没有将重点放在讨论“能力”和“通知”这种两种特性上,但这两种特性对于将NETCONF应用到物联网环境中至关重要,因为物联网环境需要“能力”来支持可扩展性,“通知”来支持对被管设备的实时监控,这也是我们未来工作讨论的重点.
关键词:物联网网关