首页 > 范文大全 > 正文

网络协议论文:网络协议的设定与实践刍议

开篇:润墨网以专业的文秘视角,为您筛选了一篇网络协议论文:网络协议的设定与实践刍议范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

作者:刘霁莹 单位:中国电子科技集团公司第三十研究所

对于每一个会话流程,发起方都会随机产生不同的会话序列号,接收方可根据这个字段来进行抗重放处理,如果收到连续2条(或以上)的会话号与包序列号同时相同的消息,则将相同的消息丢弃,并产生告警。通过该方式,可防止非法的攻击者接入到网络中对系统进行攻击。新型管理信息库的借鉴与设计(TLV)SNMP的管理信息库(ManagementInformationBase,MIB),是设备所维护的全部被管理对象的结构集合,按照层次式树形结构进行组织。RFC1155所定义的MIB树结构(图略)。在这种树形结构中,mgmt对象可以标识为{iso(1)rog(3)dod(6)internet(1)mgmt(2)},或者记为“1.3.6.1.2”,这种标识叫做对象表示符,用于命名一个对象,它还表示了如何在MIB内访问该对象。在internet节点下定义了4个子树,其中,mgmt用于标识在IAM承认的文档中定义的对象;private用于标识单方面定义的对象,到现在为止,在private下只定义了一个子树(enterprise(1)),供应商可以使用给他们分配的企业号在下面建立子树。子树下的对象称为叶子节点,例如sysName(1.3.6.1.2.1.1.5)[1]。在安全网络管理协议的设计中,引入了“TLV”的概念来代替管理信息库。TLV是TypeLengthValue的缩写,表示“类型•长度•值”。对于一个复杂的被管设备,其管理项目部分可以由多个TLV管理属性组合而成,不同的属性,都有一个特定的T值,例如电路板工作状态(TLV)、温度状态(TLV)、端口号(TLV)、端口状态(TLV)等。被管设备中不同的管理属性都是由各种TLV项目组合而成。TLV的数据结构可以采用通用的方式进行封装和解析,当被管设备的管理内容发生变化时,只需要在程序或配置文件中添加对应的TLV宏定义即可,无需对程序结构进行改动。管理程序要实现对这些复杂属性的管理,只需要在配置文件中定义好与协议相符的TLV属性,然后采用通用的方法构造出需要交互的数据,最终,一个会话流程就可以完成与被管设备复杂的数据交互过程,在一定程度上可有效简化管理流程,提高管理效率。

安全性在系统中,网管设备发起的每条命令,会获取本机的MAC地址,采用定制的鉴别算法进行计算产生认证码,填入到安全协议的认证码字段中。被管设备收到消息时,进行双重认证:第一,根据消息中的源节点号获得本地存储的合法MAC地址,采用相同的算法进行计算产生认证码后,与接收消息中的认证码进行比较,由此来判断发送方的身份合法性;第二,从IP头中获取MAC地址与本地存储的合法MAC地址进行比较,如果不一致,则认为是非法设备的数据包,由此可有效防治非法设备接入到网络中冒充网管对网络发起攻击。在数据安全方面,加密算法采用定制的高速加密算法,密钥由发送方和接收方动态协商产生,安全性强于SNMPv3协议。另外,对需要加密的数据字段进行CRC32校验,产生4字节的校验码。然后对整个数据字段(含校验码)进行加密处理,解密时,对解密出来的明文数据包和校验值进行验证,如果验证不符,丢弃该包。由此可有效防止数据在传输过程中被篡改。TLV引入的优势下面分别使用SNMPMIB和TLV来描述一块电路板的状态,通过比较来体现TLV引入的几种优势。该电路板为XXX设备的主控板,它的状态中包含了自身的工作状态、板子上的端口数目及对应端口的状态。主控板板卡状态mib描述(图略)。在private->enterprise下建立自己设备的私有信息库,xxxDeviceStatus表示“XXX设备状态”,mainboardStatus表示“主控板板卡状态”,portstateTable为一个表结构,用于描述端口的一系列属性。当在一次SNMP操作内查询数据时,只能引用叶子节点对象,而不能引用子树对象。因此,要查询主控板板卡状态所有的属性,首先需要2次get查询命令完成对叶子节点(例如boardState)的查询;其次,对于端口属性的查询,由于该表结构中无法体现出端口数量,管理程序只能在发送完第一次的get查询后,反复调用getNext查询命令,直到不再返回。从这一次的管理实现流程上看是相当繁琐的,如果在板卡状态中增加了管理属性,在查询流程中还会增加get查询命令的调用。另外,如果要描述另一种板卡的板卡状态,则需要在xxxDeviceStatus下另建分支,即使两种板卡的管理属性完全相同,也无法用相同的mib对象来描述。因此,采用SNMP的mib来描述被管设备的管理属性,不利于扩展。采用安全网络管理协议查询主控板板卡状态时,只需要在设备类型、操作编码、模块单元和管理项目字段填好指定的编码,发送一个查询命令,端则会按照协议规定的格式将各个TLV属性组装好返回给管理端,这极大地简化了管理流程。管理端可根据规定的协议格式定义好相关的配置文件,收到查询应答消息后,只需按照配置文件中定义的各个TLV的T值,进行解析,即可得到返回的板卡状态信息。当板卡状态管理内容需要扩展时,只需增加新的TLV属性的定义和相关的配置文件,无需改动程序,程序的扩展性得到了增强。另外,这些TLV属性也可以在其他设备类型或模块单元中使用,减少重复定义,管理程序只需要修改相应的设备类型或模块单元字段的编码内容,就可以实现对其他设备或其他板卡的状态查询。提高传输效率前面提到,SNMPv3引入了安全机制,在一定程度上提高了SNMP协议的安全性,但是SNMPv3管理流程却变复杂了。为网络抓包工具捕获的一个完整的SNMPv3协议流程。可以看出,一条get或set命令流程,使用SNMPv3协议,需要两个回合的交互流程:第一个回合为探测包交互,管理端向端发送一个探测包,端收到后返回本机的引擎ID、时间ID等信息;第二个回合是命令的交互,管理端将收到的各项ID信息带入协议头中,向端发送get或set命令,端收到后将信息应答返回给管理程序。计算一下,使用SNMPv3协议来查询前面描述的交换机板卡状态(例如该板卡上有2个端口),则需要发送3次get查询命令和1次getNext查询命令。而每条命令都有4条数据包的交互,因此,完成该板卡状态的查询,管理程序和被管设备之间总共会有16条数据包的交互。如果其管理属性有所扩展,或者端口数量有所增加,则还会相应地增加管理程序和被管设备之间的数据传输量。而使用安全网络管理协议来实现交换机板卡状态的查询,只需要一个交互流程,2条数据包就可完成,极大地提高了传输效率。目前,该协议已在系统中得到了大规模实际应用,效果良好。

利用认证码来鉴别网管设备身份的合法性,支持抗重放攻击,提高了网络管理的安全性,有效实现了网管信息的安全传输;采用TLV集合方式来描述被管设备的属性,既丰富了管理内容,又可提高程序结构的扩展性和适应性。在复杂的系统中管理各种不同类型的被管设备,尤其是管理内容频繁变化的被管设备时,TLV的引入,在有效简化协议解析处理过程的同时,也提高了管理效率。