张晓明,赖 辉
(中航西安飞机工业集团股份有限公司,陕西 西安 710089)
随着航空电子系统的高速发展,AFDX高速网络已逐渐成为航电系统的主干网络架构。AFDX网络是一种全双工交换式以太网,支持10 Mbps和100 Mbps可配置[1]。AFDX网络通常包含1台AFDX交换机,各个网络终端设备通过交换机进行数据通信。由于现代航电系统极其复杂,终端设备数量多、类型多,维护起来十分麻烦。为了实现对AFDX网络终端设备的统一管理,并监控其工作状态,必须采用一种标准的、相对简单且容易实现的协议。
简单网络管理协议(Simple Network Management Protocol,SNMP)是由互联网工程任务组(Internet Engineering Task Force,IETF)定义的一套网络管理协议[2]。SNMP基于UDP协议进行数据通信,在应用层完成网络设备之间参数设置、状态监控、故障报告等。
SNMP采用特殊的客户机/服务器模式,即管理进程/代理进程模型。管理进程与代理进程通过请求应答模式完成网络管理。目前,SNMP协议存在3个版本,其中,SNMPv2应用最为广泛。因此本文主要论述SNMPv2。
SNMPv2中定义了7种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Get-Bulk、Inform、TrapV2。Get-Request、Get-Next-Request、Get-Bulk和Set-Request是由管理进程发送到代理侧的161端口的。Get-Response和TrapV2是由代理进程发给管理进程的,其中,TrapV2由代理进程发送到管理进程的162端口,用于主动上报事件,但管理进程并不进行应答。Inform与TrapV2的不同在于代理进程上报事件后管理进程还要进行应答确认,如图1所示。
图1 SNMP的报文类型
任何一个被管理的资源都表示成一个对象,称为被管理对象[3]。MIB是被管理对象的集合。MIB数据对象以一种树状分层结构进行组织,每个被管理对象都有一个唯一的对象标识符(OID),其中,用户自定义的数据对象应存储在enterprise节点下。根据实际需求分类管理,如图2所示。
图2 MIB数据对象结构
SNMP使用的编码方法是BER(Basic Encoding Rule)。BER是一种编码规格说明,描述如何将ASN.1类型的值编码成字节串(string of octets)的方法。丁青峰等[4]详细描述了BER编解码的方法,本文不再赘述。
AFDX网络管理中一般由一个端系统作为管理进程,其他端系统作为代理进程,如图3所示。管理进程和代理进程之间的通信主要有2种模式:第一种是请求应答模式,即管理进程通过Get、Set等消息类型查询或设置代理进程的参数。第二种是主动上报模式,即代理进程检测到故障事件或周期性上报自身的运行状态。AFDX网络管理主要包括状态监控、构型管理、故障管理和配置管理。
图3 AFDX网络结构
根据实际需求,定义基于MIB库的参数,包括网络终端和交换机2部分。对于网络终端,定义的参数包括:设备标识号、软件版本号、发送计数、接收计数、CRC错误计数、在线状态、工作总时间、上电BIT、周期BIT、维护BIT、端口状态等。对于交换机,定义的参数包括:硬件配置、软件配置、交换机模式、端口错误计数、端口状态、交换机状态、故障码、上电BIT、周期BIT、维护BIT等。
2.2.1 AFDX 端系统上下网查询
上下网查询是指对网络终端的工作状态进行管理,如果终端设备能完成正常的通信功能,则该设备称为在线状态;反之,该设备定义为离线状态。端系统的MIB库具有一个表示该设备在线状态的参数。Bit31表示设备的在线状态。Bit0~Bit30表示分区的在线状态。设备或分区应用软件周期性地设置MIB库中的在线状态参数。如果应用软件功能正常,相应位设置为1;否则,设置为0。如果端系统宿主机采用分区技术[5],则相应分区应用软件周期设置相应分区所对应的位;如果宿主机不采用分区技术,则应用软件设置Bit31。管理进程周期性向代理进程发送get-request命令,查询在线状态参数,分为2种情况:第一,代理进程连续3次不响应命令,即管理进程接收应答超时,管理进程应判断代理进程(即端系统)处于离线状态;第二,管理进程接收到代理进程的应答,根据参数值相应位的值即可判断设备或分区的在线状态。
2.2.2 AFDX交换机上下网查询
交换机MIB库具有一个表示交换机操作模式的参数。管理进程周期性向代理进程发送get-request命令,查询交换机操作模式参数,同样分为2种情况:第一,代理进程连续3次不响应命令,即管理进程接收应答超时,管理进程应判断代理进程(即交换机)处于离线状态;第二,管理进程接收到代理进程的应答,根据参数值相应位的值即可判断交换机的在线状态。
2.2.3 在线信息上报
管理进程通过周期性查询,可以判断比较代理进程的在线状态变化情况。当离线变化到在线或在线变化到离线时,将各设备的状态信息上报给维护系统,维护系统将该信息存储、记录,并发送给相应的显示处理模块。
2.2.4 网络管理权切换
如果AFDX网络设置2台网络管理机,其中一台网络管理机作为主管理机,另一台作为备份管理机,主管理机具有对整个网络进行管理的权利。一方面,主管理机周期性查询获取整个网络端系统的状态;另一方面,主管理机周期性地通过inform消息向备份管理机发送网络状态,以便主管理机故障时,备份管理机“平滑”地接管网络管理权利。当主管理机故障时,停止向备份管理机发送inform命令,备份管理机连续3个周期接收不到inform命令,将主动接管网络管理权,执行网络管理功能。
2.3.1 通信故障的判断
交换机周期查询该段时间内的错误参数值。如果错误参数值与该段时间内接收计数的比值不小于0.5,则说明该通信错误已演变为一种故障;否则,该错误为一种瞬间错误,交换机只作记录,不进行任何处理。交换机的故障包括通信错误演变成的故障和自检测发现的故障。当交换机的故障状态发生改变时(正常变为故障或故障变为正常),交换机的代理进程应通过TrapV2消息主动上报故障信息[6]。故障信息采用8字节数据表示,其中,前2个字节表示故障或正常,紧接着的2个字节表示故障编码,每个故障编码代表一个预定义的故障模式,后4个字节表示故障时间,利用TrapV2消息,可以同时上报多个故障信息,如图4所示。
图4 故障编码
2.3.2 故障信息上报
管理进程收到代理进程返回的故障信息后,将故障信息按照先进先出(FIFO)的原则存储在非易失存储器中。故障首次发生时需送往维护系统,上报首次检测到故障的时间;同一故障再次发生时,只更新故障发生次数并上报故障持续时间。
交换机和各端系统的配置信息由管理进程上报给维护系统。配置信息包括硬件部件号、软件版本信息和配置表版本信息。管理进程应通过get-request操作查询交换机和各端系统的硬件部件号、软件版本信息和配置表版本信息。交换机和各端系统的代理进程通过get-response操作响应管理进程的查询操作。
本文详细介绍了SNMPv2协议的报文类型、MIB信息库以及BER编码等基本原理。在AFDX网络中,实现了状态监控、构型管理、故障管理和配置管理等网络管理功能。结果表明:利用SNMP协议不仅能够实时监控AFDX网络终端工作状态,而且具有成本低、通用性高、实现容易等特点,有效解决了AFDX网络终端设备的维护管理问题。