




已阅读5页,还剩56页未读, 继续免费阅读
(微电子学与固体电子学专业论文)嵌入式网络设备配置管理系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
e 塞交通太堂亟鲎焦j 金塞空塞趟墅 中文摘要 摘要:以路由器、交换机为主的嵌入式网络设备在数据通信领域起着举足轻重的 作用,支撑着整个计算机网络的运行。专门应用于数据通信的软件平台是嵌入式 网络设备的核心技术所在。本文将要讨论的配置管理系统是数通软件平台的一个 必不可少的组成部分,数通软件平台的运行和扩展都需要配置管理系统的支持。 从广义上讲,配置管理系统包括了终端接入系统,命令处理系统,配置文件 管理系统,信息交互系统等。而狭义上的配置管理系统主要是指命令处理系统, 例如:命令行系统,s n m p ( s i m p l en e t w o r km a n a g e m e n tp r o t o c 0 1 ) 网管系统,w e b 配置管理系统等等。本文所要讨论的是狭义上的配置管理系统,且重点分析最有 代表性的命令行系统和s n m p 网管系统的工作原理和各自的特点。并为两种配置 系统的融合提出一种稳定高效的解决方案。 考虑到目前高端的分布式网络设备软件平台过于复杂,为了将嵌入式网络设 备配置管理系统分析得比较透彻,本文只针对集中式网络设备的软件平台进行讨 论。配置管理系统对分布式网络设备的支持会放在后续的研究工作中进行。 关键词:嵌入式;路由器;交换机;配置管理:命令行;s n m p 分类号:t n 9 1 5 0 5 ;口3 9 3 0 7 j e 立銮适厶堂亟堂位逾塞 旦s 卫坠盟 a b s t r a c t a bs ,r r a c t : n ee m b e d d e dn e t w o r ke q u i p m e n t ss u c ha st h er o u t e r s ,t h es w i t c h e s ,w h i c h s u p p o at h er u n n i n go ft h ew h o l en e t w o r k ,h a v eb e e np l a y i n ga ni m p o r t a n tr o l ei nt h e f i e l do fd a t ac o m m u n i c a t i o n 1 1 l es o f t w a r ep l a t f o r ma p p l i e dt od a t ac o m m u n i c a t i o n a m o n g n e t w o r k si so ft h ec o r et e c h n i q u eo fe m b e d d e dn e t w o r ke q u i p m e n t i ng e n e r a l ,t h ec o n f i g u r a t i o ns y s t e mi n c l u d e sf o l l o w i n gs y s t e m s :t h et e r m i n a l s y s t e m ,t h ec o m m a n dp r o c e s s i n gs y s t e m ,t h ec o n f i g u r a t i o nf i l em a n a g e m e n ts y s t e ma n d t h ei n f o r m a t i o np r o c e s s i n gc e n t e rs y s t e m ,e t c i nas e n s e ,t h ec o n f i g u r a t i o ns y s t e m i m p l y st h ec o m m a n dp r o c e s s i n gs y s t e m ,s u c ha st h ec o m m a n d l i n es y s t e m ,t h es n m p ( s i m p l en e t w o r km a n a g e m e n tp r o t o c 0 1 ) n e t w o r km a n a g e m e n ts y s t e ma n dt h ew e b c o n f i g u r a t i o ns y s t e m ,e t c i nt h i sp a p e r ,t h ec o m m a n dp r o c e s s i n gs y s t e mi sm a i n l y d i s c u s s e d ,w i t ht h ee m p h a s i so nt h ep r i n c i p l e so ft h et y p i c a lc o m m a n dl i n es y s t e ma n d t h es n m pn e t w o r km a n a g e m e n ts y s t e m a l s o ,as t a b l ea n de f f i c i e n tm e t h o di sp r o p o s e d t os o l v et h ep r o b l e mo ft h ec o m b i n a t i o no fc o n f i g u r a t i o ns y s t e m s c o n s i d e r i n gt h ec o m p l e x i t yo ft h es o f t w a r ep l a t f o r mu s e di na d v a n c e dd i s t r i b u t e d n e t w o r ke q u i p m e n t ,w eo n l yd i s c u s st h ec e n t r a l i z e ds o f t w a r ep l a t f o r mi nt h i sp a p e ri n o r d e rt og i v ea ni n t e n s i v ea n a l y s i so ft h ec o n f i g u r a t i o ns y s t e m t h ei s s u eo fs u p p o s i n g d i s t r i b u t e dn e t w o r ke q u i p m e n ti nc o n f i g u r a t i o ns y s t e mw i l lb es t u d i e di no u rf u t u r e w o r k k e y w o r d s :e m b e d d e d ;r o u t e r ;s w i t c h ;c o n f i g u r a t i o n ;c o m m a n dl i n e ;s n m p c l a s s n o :t n 9 1 5 0 5 ;t p 3 9 3 0 7 致谢 自2 0 0 5 年下半年前往华为3 c o m 技术有限公司北京研究所进行工程实践的一 年多来,本人一直致力于数据通信设备平台软件配置管理系统的开发和维护工作。 并确立了与工作密切相关的研究课题。 本论文从开题到装订工作都是在我的恩师郑陶雷副教授的悉心指导下完成 的,郑老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响。前往华 为3 c o m 公司工程实践也得到了郑老师的鼎力支持。在我面对公司巨大的工作压 力和狼性竞争氛围的时候,是郑老师孜孜不倦的教导和热心的鼓励给予了我战胜 一切困难的信心和动力,致使我能够坚持到最后,并圆满地完成了课题研究的任 务。在此衷心感谢两年来郑老师对我的关心和指导。 同时还要感谢华为3 c o m 技术有限公司为我的课题所提供的实践平台和技术 支持。感谢系统部汪勇、王睿、胡小龙等专家对我的细心栽培和技术指导。 还需要特别感谢的是博士生导师袭正定教授和北电网络公司产品经理王利辰 先生,他们在论文开题阶段提出了许多宝贵意见,推进了课题的前行:也要特别 感谢中软战略客户部总经理孙迎新高工表示会参加本论文的答辩,在此对三位的 大力协助表示衷心的感谢。 此外,系主任刘章发教授为改善实验室科研条件做出了很大的努力,并且在 学习上和生活上都给予了我很多关心和帮助,在此向刘老师表示衷心的谢意。 在我校外实习期间,校内的许多事务都不便亲自办理,黄启军、胡晓霞、李 植、王潇等同学给予了我极大的帮助,热心地代办了许多事情,在我的课题研究 和论文撰写工作中也提出了许多建议,在此向他们表达我的感激之情。 最后还要感谢我的家人和朋友,他们的理解和支持使我能够在学校专心完成 我的学业,在此衷心的感谢大家。 e 塞奎道厶生亟笙僮论塞i l 直 1 引言 随着i t 技术的发展和互连网的普及,网络设备对人们来说已经不再陌生。在 众多网络设各中以路由器、交换机为主的嵌入式网络设备在整个数据通信领域起 着举足轻重的作用。 早期的联网设备基本上都是用集线器,集线器由于其速度慢、传输数据量小 等缺点而无法满足计算机的发展水平,已逐渐被淘汰。交换机早期由于价格昂贵 很少被个人或者小型网吧使用,只有在大型局域网组网时才会使用到。随着计算 机技术的进步,交换机的价格已大幅度降低,目前所使用的网络互连设备绝大多 数都是交换机。交换机又分为非网管型交换机和网管型交换机,网管型交换机是 可以配置和管理的,相对来说更加先进。现在大型网络使用的都是网管型交换机, 通过对交换机的配置,可以将一个局域网划分成若干个子网,各子网可以相互独 立、互不通讯,也可以按用户制定的规则通讯;可以控制端口的数据流量、协议 类型等;还可以提供线路冗余、消除网络瓶颈等。路出器主要用于企业网与骨干 网、骨干网与骨干网互联,由于路由器通常支持多种路由协议,而且具备流量控 制、q o s 、防火墙等各种丰富的特性,它必须经过专业人员的配置才能够正常工 作。由此可见,配置管理系统对于交换机、路由器等嵌入式网络设备来说是至关 重要的组成部分之一。 1 1 嵌入式网络设备硬件体系结构 交换机和路由器是典型的嵌入式网络设备,其硬件架构与计算机系统极其相 似,大致上都由主控c p u 、存储器、以及外围电路三大部分组成。目前高端交换 机和路由器普遍采用了分布式系统架构,多个c p u 并行工作,大大提高了业务性 能。本文仅对比较典型的集中式网络设备进行讨论。 1 1 ,1交换机体系结构 交换机系统主要由控制平面、配置平面和转发平面三部分构成,其功能模型 如图1 1 所示。 7 j e 壅銮道盔堂亟堂僮论塞i l 直 图1 1 交换机功能模型框图 其中,转发平面主要负责根据设定的m a c 地址表项以及i p 路由表项转发报 文。报文从一个端口进入设备后或者从一个端口输出( 单播报文) ,或者从多个端 口输出( 多播或广播报文) ,或者被丢弃,或者被本地吸收。输出报文的内容可能 不变也可能有所改变。这些都是转发平面需要完成的工作。 控制平面主要控制报文在转发平面如何转发,控制手段主要是操作各种表项, 如:m a c 地址表,路由表,a c l 规则表。 配置平面主要实现对设备信息的查询,控制设备的运行行为,例如配置条 静态路由等等。典型的配置手段有串口、t e l n e t 、网管系统、w e b 。配置平面是本文 将要重点讨论的内容。 典型集中式交换机硬件结构如图1 2 所示。 圈1 2 集中式交换机硬件体系结构 c p u 是整个交换机系统的管理中心、控制中心,同时它还承担少量转发平面 的功能,比如处理协议报文、本地报文以及交换芯片无法处理的报文。其控制方 式主要通过程序来完成。 交换芯片是交换机的核心部件,报文的二层交换、三层路由以及a c l 和q o s 部是由交换芯片来完成的。这就是交换机的交换性能远高于传统路由器( 通过c p u 8 e 豆窑垣厶堂亟堂焦监塞i l 直 转发报文) 的原因。交换芯片主要通过读写片内寄存器来实现控制。 内存不用多说,它是任何嵌入式系统不可缺少的部分,运行的程序以及大量 的数据表项都会存放到内存里面。 f l a s h 和b o o t r o m ( 也是f l a s h ) 都是非易失性存储设备。b o o t r o m 中用来存放 系统的启动代码,即嵌入式系统中经常提到的b o o t l o a d e r ,由它来引导主程序的加 载以及基本硬件环境的驱动。f l a s h 中保存的就是主程序,通常会比较大。 逻辑部件通常是c p l d ,它用来实现其它部件无法完成的功能如w a t c h d o g 控 制,单板复位,存储产品信息( 单板类型、硬件版本) 等。 p h y 部件主要完成数据的串并转换以及物理信号与报文数据的转换。其控制 方式为m d i o 总线读写。 1 1 2路由器体系结构 与交换机类似,路由器在硬件结构上也由以下几个基本模块构成:处理器, 内存模块,电源模块,串口模块,外部总线,系统控制模块等等。 最早的集中式路由器的硬件结构如图1 3 所示。 图1 3 集中式路由器典型硬件架构 每个接口卡实现链路层的功能,把系统和每个外围链路相连。分组包通过共 享总线( 一般都是p c i 总线) 传送到c p u ,由c p u 进行转发判断,然后再传到外 围链路及物理接口。 随后出现的分布式路由器总体架构没有太大的变化,但是接口板功能较之集 中式路由器中的接口卡有了很大的改进。接口板上有自己独立的c p u ,可以在接 口板上处理分组包,进行转发判断,分组包可被立即转发到出接口。这种结构的 好处是每个分组只经过次总线,提高了系统吞吐量,i 面中心c p u 只用于保存其 e 塞窑适盔芏亟堂缱途塞i l 言 它c p u 中的转发路由表,进行控制报文的处理以及实现中心系统管理功能。其缺 点是转发判断用软件实现,系统性能受c p u 速度的限制。系统总的带宽依然有限, 总线由所有带宽共享。 第三代路由器即交换式路由器吸取了交换机的优点引入硬件转发部件,并用 c r o s s b a r 取代共享总线,多个接口卡可以实现同时互相通信,极大的提高了系统吞 吐量。 1 2 网络设备平台软件体系结构 随着以太网交换机和路由器功能的增强以及性能的提高,其软件规模也在不 断扩大。目前,中低端路由器和交换机的代码规模已经达到上百万行,某些高端 设备已经达到千多万行甚至更多。随着新增需求的不断开发,这些嵌入式网络 设备的代码量将有增无减。然而,软件规模的壮大对软件在各个硬件平台上的可 移植性提出了新的要求。将数百万行代码从一台设备移植到其它各种设备上,其 任务量是相当巨大的。考虑到每个数据通信产品都需要一些相同的特性,例如: 命令行、网管、t c p i p 协议栈等,把这些特性纳入一个公共的平台中不仅可以节 约成本,而且系统更加容易稳定,于是软件平台化的思想孕育而生。软件平台化 的核心思想有两点:一是要为上层软件屏蔽硬件及操作系统的差异;二是要保证 各种新增特性可以自由裁剪与合入,且不会影响软件整体功能的运行。这样一来, 软件的移植与新特性的开发工作量将大大降低。 从客户的角度看,统一的平台为用户提供了统一的维护界面,降低了用户的 维护成本和人员培训成本。目前,以c i s c o 为首的数据通信公司都在其生产的交换 和路由设备上实现了软件的平台化。事实上平台软件已经成为了嵌入式网络设备 的核心技术所在。 平台化的系统软件所在的系统层次如图1 4 所示 图1 4 平台化软件系统所在的系统层次 驱动软件负责对硬件的实际操作,对公共平台屏蔽了硬件和产品的细节差异。 e 塞窑堑叁堂亟茎位论塞 i l 言 平台软件主要关注软件处理流程,例如协议的处理等等。平台已经定义了完整的 驱动软件接口函数,驱动软件的主要任务就是实现平台定义的这些驱动接口。 平台软件从本质上讲应归于操作系统的范畴,其结构与p c 或者服务器上的操 作系统极其相似,都包含了操作系统内核,文件系统,网络组件,用户交互界面 等等;所不同的是,网络设备的平台软件是专用于数据通信领域的操作系统,它 提供了强大的网络特性,包括数据转发,i p 路由,防火墙,接口管理等组件。目 前比较先进的平台软件基本架构如图1 5 所示。 固囡园囡 圆囡区亟习固 区困困 i网络转发引擎( 革播转发、多插转发) lii li i 快速转发安全及防火墙服务质量保证 图1 5 数通平台软件基本架掏 本文所要研究的配置管理系统是平台软件中一个非常重要的部分,其内容几 乎贯穿整个系统。对于用户而言,配置管理系统主要用于为用户提供人机交互接 口,在用户终端和设备之间建立友好的信息传递通道。对于平台软件内部而言, 它主要为软件其它模块提供编程接口和模块配置的解决方案。 圈固 j e 哀銮适叁堂亟堂值盈塞i l 直 1 3 网络设备的配置管理 1 3 1配置管理的基本概念 交换机和路由器的运行离不开软件的支持。所谓配置,就是指软件运行的环 境,包括全局变量、全局结构、指针等等。从硬件的角度来讲,进行配置就是对 寄存器或者内存单元进行特定的设置。 配置管理主要研究实现配置的方法,为用户提供方便,可靠,高效的配置工 具接口,完成对网络设备的功能设置。 起初,网络设备为用户提供的配置管理工具只有基于命令行的配置终端。后 来随着网络规模的发展,设备数量的增多,命令行终端不能满足对网络设备的集 中式管理,由此出现了基于s n m p 的网管配置工具和网络数据库等。 命令行接n ( c u ) 是用户与操作系统或应用程序之间的一种基于文本的命令 接口。它通过输入命令来实现对系统的管理和维护,并接收系统的响应。c l i 是 商业化电信网络设备中必备的管理控制方法,它通过一个普通的串口应用程序或 t e l n e t 外壳( s h e l l ) 程序使用键盘输入命令来实现对设备的管理和监控。尽管业界 流行的基于图形用户接n ( g t n ) 的管理方式可以简洁、直观地完成对系统的配置 与管理,但是对于软件开发人员或系统管理员而言,c l i 对于处理重复性或非常 规问题更为有效。现阶段以c i s c o 路由器为代表的嵌入式网络设备几乎都支持某 种形式的c u 。 s n m p 网管工具是利用s n m p ( 简单网络管理协议) 把对网络设备的配置管 理抽象为对各种配置管理对象的g e t 、s e t 等标准操作。s n m p 网管只是一种配置工 具的内部实现机制,其外部人机接口可以为g u i 、w e b 等多种方式。这种基于 s n m p 的配置管理方式相对于c l i 来说更加灵活、方便,尤其能够较高效地完成 集群网络设备的配置管理工作。 1 3 2配置管理系统的发展 用户接口( u i ) 是用户配置管理网络设备的环境。u i 的实现方法有多种,从界 面上来说,u i 有命令行、w e b 浏览器和网管配置工具等。目前几乎所有的商用嵌 入式网络设备都提供了命令行用户接口,即通过t e l n e t 或超级终端等输入命令的 管理接口,与基于w e b 的用户接口或图形化界面的配蜀工具相比,命令行接口不 需要考虑页面设计或功能分组,因此更适合于整个产品开发阶段和早期功能测试 阶段。从控制方式来说,u i 有集中式和分布式之分,通常集中式u i 的命令解析由 j e 立窑道盔堂亟堂位i 盆奎i 直 命令解析器完成,分布式u i 的命令解析由各个功能模块自行完成。集中式u i 使 得命令的设计开发和命令的实现相互独立,增加了代码的可重用性,提高了软件 的开发效率。集中式u i 还使命令的设计开发与硬件平台无关,与路由器使用的操 作系统无关,实现了“一次编程,到处运行”,从而大大降低了命令设计开发人员 的工作量。 然而,随着配置管理工具的增多,设备中每个功能模块需要支持的配置接口 也就相应地增多。这给配置管理的实现增加了复杂度。而且当要新增一个配置工 具时,每个功能模块都要进行修改,增加一个新的接口,这将是一个繁琐的工程。 1 4 课题研究的内容与目标 本课题旨在研究在现有配置管理系统中增加一种配置平面层,通过该层来屏 蔽不同配置工具产生的命令之间的差异,使各目标模块只需要处理一种格式的配 置消息,即支持一种统一的配置接口,这样将为新业务软件支持各种配置系统人 机接口减轻负担。此外,采用分层架构的软件设计降低了模块之间的耦合度,平 台软件的可维护性将大大提高。 本论文的主要研究工作包括以下几个方面: 从整体上把握嵌入式网络设备软硬件架构,重点关注配置管理模块在整个系 统中的位置,以及与各模块之间的关系。 研究典型配置管理系统的工作原理,为配置平面层的添加做好模块间的衔接 工作,重点研究动态命令行系统和s n m p 网管配置系统。 基于面向对象的设计思想,设计配置管理平面层,将常规的配置命令转换为 对配置对象的操作,实现配置工具层与配置目标层的隔离。 1 5 论文结构安排 第l 章对嵌入式网络设备的软硬件平台进行概述,引出配置管理系统的概念, 并对配置管理系统的地位和作用以及发展状况进行简要介绍。 第2 章介绍命令行系统的基本概念,对命令行系统的工作原理进行重点分析。 第3 章介绍s n m p 协议基本内容,重点分析s n m p 网管配置系统的结构组 成和工作原理。 第4 章从配置管理系统融合的角度提出配置管理平面的设计思想,并详细阐 述配置管理平面的设计实现。 第5 章尉本课题进行总结,进一步展望配置管理系统对分布式系统的支持。 2 基于命令树的命令行系统 2 1 命令行系统简介 交换机、路由器等网络设备的用户接i = 1u l ( u s e ri n t e r f a c e ) 是用户配置管理设备 的环境。u i 的实现方法有多种,从界面上来说,u i 有命令行、w e b 浏览器和网管 配置工具等。目前几乎所有的商用嵌入式网络设备都提供了命令行用户接口 c l i ( c o m m a n d l i n ei n t e r f a c e ) ,即通过t e l n e t 或超级终端登录输入命令的管理接1 3 。 与基于w e b 的用户接口或图形化界面的网管配置工具相比,c l i 不需要考虑页面 设计或功能分组,因此更适合于整个产品开发阶段和早期功能测试阶段。从控制 方式来说,u i 有集中式和分布式之分,通常集中式u i 的命令解析由命令解析器完 成,分布式u i 的命令解析由各个功能模块自行完成。集中式u i 使得命令的设计 开发和命令的实现相互独立,增加了代码的可重用性,提高了软件的开发效率。 集中式u i 还使命令的设计开发与硬件平台无关,与所使用的操作系统无关,从而 大大降低了命令设计开发人员的工作量。 2 1 1命令行系统的基本组成 命令行系统一般由四个基本部分组成:通信协议、命令s h e l l 、命令解析引擎 和命令树,如图2 1 所示。 通信协议是用户和设备之间的通信机制。最熟悉的机制是d o s 和u n i x 操作 系统中使用的控$ 1 j 台( c o n s o l e ) 方式。c o n s o l e 是一个物理接口,其协议本身只是 用户使用与串口相连的键盘给系统发送命令的一种方法。t e l n e t 协议是另一个普 遍使用的通信协议。在t e l n e t 方式下,通过t c p i p 连接输入,输出信息。t e l n e t 属于t c p i p 网络体系的应用层协议,相对于c o n s o l e 方式,其最大的好处就是支 持远程登录,用户不用亲自来到网络设备跟前就能对其进行配置。然而,使用t e l n e t 方式的前提是设备必须已经配置好了有效的i p 地址,用户终端与设备能够路由可 达。因此,对设备的首次配置一般都由c o n s o l e 配置方式或者启动配置文件恢复方 式来完成。 1 4 图2 1 命令行系统结构框图 命令s h e l l 源于d o s 和u n i x 操作系统,是指用户用来编辑命令和向系统发 出命令的环境。它依赖通信协议接收来自用户的信息并执行适当的操作,将执行 操作产生的输出结果直接发送到用户指定的设备。一般来说命令s h e l l 都是一个任 务,从用户登录就一直存在,当用户退出登录后释放。命令s h e l l 并不参与命令的 解析,它只负责对用户输入的字符串进行识别,若遇到快捷键则直接进行处理不 用进一步解析,否则将用户输入的字符串交给命令解析引擎进行解析。此外,命 令s h e l l 还负责用户的登录认证以及退出登录的控制。 命令解析引擎和命令树是整个命令行系统的核心部分。所谓命令解析引擎是 指将用户输入的命令字符转化为命令操作的机制;而命令树是所有命令信息的集 合。命令解析引擎对用户输入的命令字符在命令树中进行匹配,若匹配成功则将 匹配的命令信息以消息的形式发送给对应的业务模块去执行具体的操作。本章在 后续部分将重点介绍命令解析引擎的工作原理以及命令树的基本构造。 2 1 2 命令行的基本概念 1 命令模板与命令模式 命令模板是一组命令原型的描述集合,用于对不同用途的命令进行分类管理。 比如,对以太网接口进行配置的各种命令均注册在以太网接口命令模板下,而对 j e 丞至适太堂亟堂焦途塞笙王佥佥越笪金金益丕统 o s p f 协议的各种配置命令均存在于o s p f 路由协议命令模板下。 命令模式是对命令模板的命令集合进行适当裁剪后形成的实际应用形式。命 令模板本身不能直接对命令进行操作,只有通过派生命令模式的方式才能完成对 其所描述命令的应用。命令模板与命令模式是“类”与“实例”的关系。 命令模式的存在保证类型相同的物理接口或者逻辑接口可以具有相同的命令 集合,但是可以设置各自的工作方式,而不会影响到同属性的其它接口。命令模 式可以随着逻辑和物理接口的变化、动态路由协议的启动和停止运行等动态添加 和删除,但是它所唯一对应的命令模板却不会删除。可以看出,命令的动态隐藏 只能针对于某一个命令模式。 比如,可以由s e r i a l 模板派生出s e r i a l i o o 和s e r i a l i o 1 两个命令模式,使它 们分别对应于物理接口s e r i a l i o o 和s e r i a l i o 1 。现在s e r i a l i 0 ,0 封装x 2 5 协议, 而s e r i a l i o 1 封装p p p 协议,因此在封装的同时要隐藏其它的链路层协议的相关 命令。对于s e r i a l i o o 和s e r i a l i o 1 两个命令模式来说,它们都是由s e r i a l 模板派 生而来,但是对于命令的使用方式却各不一致。 对于用户而言,命令模板对应于命令视图,即用户进入哪种命令视图就只能 使用这种命令视图对应命令模板下的命令。 2 命令元素 命令元素是命令的最小组成单元,它包括命令关键字和命令参数两种类型。 例如,为一个三层接1 2 配置i p 地址的命令:i pa d d r e s si p _ a d d ri p _ m a s k ,前两个命 令元素i pa d d r e s s 即为关键字,i p _ a d d r 为要设置的i p 地址,i pm a s k 为要设置的子 网掩码。 一般来说命令元素有它自己的数据结构,其数据成员包括元素类型、对应参 数标识、过滤条件、关键字返回条件、关键字返回值,以及中英文解释信息等等。 3 命令线索 命令线索主要用于表达组成命令的各个元素之间的关系。它能够表达一个或 多个元素的可选、必选、循环属性以及各个元素的前驱、后继、并列关系等等。 它是一条命令组织结构的抽象描述。一条命令的线索由单独一个线索表达式来表 达。 线索表达式的形式类似于i e 则表达式。在线索表达式中命令元素由一个$ 符号与该元素在命令元素描述向量中的索引的组合来表示,例如$ 1 表示第一 个元素,该元素所对应的信息结构位于描述向量的第一个单元:【】表示括号中 的元素是可选的, ) 表示括号中的元素是必选的,而且钿和 可以嵌 套使用:i 表示左右两边的元素足并列关系,它可与【】或 ) 配合使用。 e 基窑垣盔堂亟主堂位j 金塞基王佥全挝的佥全短丕红 2 2 命令树的构造 2 2 1命令树的基本结构 典型的命令树的结构如图2 2 所示:首先有一个根节点,它是所有命令的入口, 其下有若干命令模式节点,代表不同的命令模式。每个命令模式节点下面就以树 的形式挂接着该模式下所有命令的集合,而该命令树每一个节点又代表命令中的 每一个命令元素。相同等级的相同关键字元素合并成为一个节点,以节省存储空 间。 r o o t 图2 2 命令树的典型结构 从模式节点下的第一个节点沿着命令树的特定路径向下到达一个叶子节点为 止构成一条完整命令。例如,在接c l ( i n t e r f a c e ) 模式下,一条配置e t h e r n e t 接口的 i p 地址的命令:“i pa d d r e s s i pa d d r i p _ m a s k ”,是由命令树中四个节点来表示。“i p ” 节点是e t h e r n e t 模式下的一个子节点,“a d d r e s s ”是i p 节点的一个子节点,如此 类推。当用户在接口模式下输入该命令时,解析引擎( p a r s e r ) 将遍历接l z l 模式下的 命令树分支,首先找到节点“i p ”,然后是“a d d r e s s ”、“i pa d d r ”和“i p”,_mask 由于“i p _ m a s k ”是一个叶子节点,与本命令相关联的回调函数将会被调用,并将 执行结果发送给用户。 2 2 2动态命令树生成策略 e 基銮适太堂亟堂焦监室基王佥佥越殴佥全i 王丕统 不同类型的通信设备,如服务器、交换机、路由器等,其体系结构和用途差 异极大,因而它们所支持的命令集也千差万别。即便是同一类型的产品,如路由 器,其不同型号的性能差别也会导致命令集的不同。这些都对c l i 管理软件的通 用性及灵活性提出了较高的要求。目前各大通信设备厂商的数通产品均实现了命 令树的动态生成。 一般来说命令行的动态注册包含了三大要素: 1 定义命令元素的描述信息 动态注册一条命令首先必须填充该命令所有命令元素的数据结构各域的内 容,包括元素类型、对应参数标识、过滤条件、关键字返回条件、关键字返回值, 以及中英文解释信息等等。 2 定义命令的附加信息 定义命令的附加信息主要包括命令的扩展命令元素的定义,对于交换机还可 以定义堆叠环境下命令的执行属性( 单播、多播) 等。 扩展命令元素是指命令的运行对于系统某些环境变量有依赖,需要将这些环 境变量以参数的形式传递给命令处理回调函数进行处理。常见的扩展命令元素有: 当前用户所在的命令模式名,命令的u n d o 标识等等。 3 定义命令线索 定义命令线索即描述组成命令的各个元素之问的关系。通常以参数的形式传 递给命令注册接口。 命令注册接口的基本工作流程如图2 3 所示: 首先通过传入注册接口的模板索引参数找到指定的命令模板。 然后检查命令线索的合法性,例如有无命令元素的重复引用。根据命令线索 以及命令元素集合生成该命令的命令树,将该命令的元素集合加入到所属的命令 模板的元素集合中,并返回头元素。 将新生成的命令树分解成所有可组合的命令,返回一个命令组合向量。 对分解后的每个命令的组合进行冲突检测,即在所要注册的命令模板下,对 分解后的每个命令在命令树中进行匹配。若没有匹配成功,证明模板下没有同一 命令。 记录命令的信息并且加入到模板的命令信息集合中,包括:交互函数,扩展 命令元素向量,命令级别,超时等等。 将新生成的命令树插入到命令模板。 检测新加入的每一条命令能否被检测到,如果没有匹配成功则说明命令自身 有问题。 至此,一条命令线索的注册就完成了。 图2 3 命令注册:亡作流程 2 3 命令解析引擎的工作原理 2 3 1基本数据结构 命令解析引擎普遍使用了一种向量数据结构用于存放待匹配的字符串以及一 些中问匹配结果。向量数据结构的定义如下: t y p e d e f s t r u c tv e c t o r u l o n gu l u s e d m a x ;窜已用最大睢元号。 e 塞塞适塞堂亟鲎僮途塞基王金佥挝的佥金征丕筮 u l o n gu l a l l o c e d m a x ;,已分配的最大单元号8 v o i d - p i n d e x ; p 向量单元地址数组s v e c t o rs ; t y p e d e f v e c t o rs 8 p v e c t o r _ s ; u l u s e d m a x 是指p i n d e x 中已经有多少个单元被赋值了。u l a l l o c e d m a x 表示 p i n d e x 的数组长度为u l a l l o c e d m a x + l 。可以通过p i n d e x u l l n d e x 来访问向量各个 单元的地址,u l l n d e x 必须在0 到u l u s e d m a x 之间。 2 3 2命令解析步骤 命令解析的基本步骤大致分为如下几步: 1 首先将用户输入的命令字符串分片,形成一个字符串向量u s e r v e c 。分片 的原则是以空格为分隔符,遇到回车换行即结束分片。 2 获取用户所在视图对应命令模扳所有的命令第一级关键字的命令元素原 型,以每个关键字作为一个命令的开始,从而形成一个命令组合向量c m d v e c t o r l , 每一个组合是一个命令原型。 3 初始化字符串向量指针u l l n d e x = 0 。 4 取出u s e r v e e 的第u l l n d c x 个字符串,分别与命令组合向量c m d v e c t o r l 中 的每一个命令组合的第u l l n d e x 个元素匹配,将不匹配的命令组合从组合向量 c m d v e c t o r l 中删除。 。 5 备份命令组合向量c m d v e c t o r l 到c m d v e c t o r 2 ,清空c m d v e c t o r l 。 6 分别从命令组合向量c m d v e c t o r 2 中取出每一个命令组合,找出该命令组 合的所有下一级命令元素,如果没有下一级元素就添加一个临时元素“ ”,将 这些元素分别追加到当前组合的末尾,形成新的命令组合并加入到c m d v c c t o r l 中。 7 将u l l n d e x 加l 后转至第4 步执行,直到匹配完字符串向量u s e r v e c 的所有 字符串,即:u l l n d e x = u s c r v c c u l u s e d m a x 。 8 捡查匹配结果,在命令组合c m d v e c t o r l 中查找最后一个元素名称是“ ” 的组合个数,如果是1 则匹配成功。 整个过程可用图2 4 表示: e 夏至塑盔堂亟堂筐迨塞基王金金扭曲金金i 王丕统 n 0 图2 4 命令解析引擎工作流程 e 塞窑适盔堂硒主堂僮迨塞s 丝丛啜簦醒星丕缔 3s n m p 网管配置系统 3 1s n m p 网管配置系统的基本组成 s n m p ( s i m p l en e t w o r km a n a g e m e n tp r o t o c 0 1 ) 是被广泛接受并投入使用的工 业标准,它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上 的任何节点检索信息,进行修改,寻找故障,完成故障诊断,容量规划和报告生 成。它采用轮询机制,提供最基本的功能集。最适合小型、快速、低价格的环境 使用。它只要求无连接的传输层协议u d p ,受到许多网络产品的广泛支持。 s n m p 网管配置系统包括两个部分:网络管理站( 也叫管理进程,n m s ) 和 被管的网络单元( 也叫被管设备) 。被管设备种类繁多,例如:路由器、x 终端、 终端服务器和打印机等。这些被管设备的共同点就是运行t c p i p 协议。被管设备 端相关的软件叫做代理程序( a g e n t ) 或代理进程。 其中网管站( n m s ) 一般都是带有彩色监视器的工作站,可以显示所有被管 设备的状态( 例如连接是否掉线、各种连接上的流量状况等) 。它向网络设备发送 各种查询报文并接收来自被管设备的响应及陷阱( t r a p ) 报文,将结果显示出来。 代理( a g e n t ) 是驻留在被管设备上的一个进程,负责接收、处理来自网管站 的请求报文,然后从设备上其他协议模块中取得管理变量的数值,形成响应报文, 返送给n m s 。在一些紧急情况下,例如状态发生改变,呼叫成功的时候,a g e n t 会主动通知n m s ( 发送t r a p 报文) 。 基于t c p i p 的网络管理包含3 个组成部分: 1 一个管理信息库m i b ( m a n a g e m e n ti n f o r m a t i o nb a s 0 。管理信息库包含所有 代理进程的所有可被查询和修改的参数。在r f c l 2 1 3 中定义了第二版的m i b ,叫 做m i b 1 1 。 2 关于m 1 b 的一套公用的结构和表示符号。它被称作管理信息结构: s m i ( s t r u c t u r eo fm a n a g e m e n ti n f o r m a t i o n ) ,在r f c l l 5 5 中定义。例如:s m i 定义 计数器是一个非负整数,它的计数范围是0 4 2 9 4 9 6 7 2 9 5 ,当达到最大值时,又从 d 开始计数。 3 管理进程和代理进程之间的通信协议,即本文将讨论的简单网络管理协议 s n m p ( s i m p l en e t w o r km a n a g e m e n tp r o t o c 0 1 ) ,在r f c l l 5 7 中定义。尽管可以在传 输层采用各种各样的协议,但是在s n m p 中,用的最多的协议还是u d p 。 s n m p 网管配置系统的结构如图3 1 所示。 e 塞銮适叁堂亟堂僮迨塞 s 奠丛囝萱醒置丕筮 3 2s n m p 协议简介 图3 1s n m p 网管配置系统框图 s n m p 就是用来规定n m s 和a g e n t 之间是如何传递管理信息的应用层协议。 它在t c p i p 协议族中的位置如图3 2 所示: s n m p ( 用到a s n 1 抽象语法记法) u d p i p 链路层协议 硬件 图3 2s n m p 在t c p i p 协议族中的位置 s n m p 定义了5 种类型的报文: 1 ) g e t r e q u e s t 操作:从代理进程处提取一个或多个参数值。 2 ) g e t n e x t r e q u e s t 操作:从代理进程处提取一个或多个参数的下一个参数值。 3 ) s e t r e q u e s t 操作:设置代理进程的一个或多个参数值。 4 ) g e t ,r e s p o n s e 操作:返回或设置代理进程的参数值。这个操作足由代理进程 发出的,它是对前面3 种操作的响应。 5 ) t r a p 操作:代理进程主动发出的报文,通知管理进程有某些事情发生。 e 立銮遁太堂亟堂僮论塞s 奠m 圆筐理置丕蕴 前面的3 个操作是由管理进程向代理进程发出的。后面两个是代理进程发给 管理进程的。图3 3 描述了这5 种操作。 s n m p 管理进程s n m p 代理进程 g e t r e s p o n s e 7 u d p 端口1 6 1 g e t n e x t 。r e q u e s t g e t r e s p o n s eu d p 端口1 6 1 s e t r e q u e s t g e t - r e s p o n s e 7 u d p 端口1 6 1 t r a p u d p 端口1 6 2 图3 3 s n m p 的5 种操作 管理进程发出的前面3 种操作采用u d p 的1 6 1 端1 2 。代理进程发出的t r a p 操 作采用u d p 的1 6 2 端口。由于收发采用了不同的端口号,所以一个系统可以同时 为管理进程和代理进程。 封装成u d p 数据报的5 种操作的s n m p 报文格式如图3 4 所示。 在图中,我们仅仅对i p 和u d p 的首部长度进行了标注。这是由于:s n m p 报文的编码采用了a s n 1 和b e r ,这就使得报文的长度取决于变量的类型和值。 关于a s n 1 和b e r 的内容将在后面介绍。这里只介绍各字段的内容和作用。 版本字段是0 。该字段的值是通过s n m p 版本号减去1 得到的。显然0 代表 s n m p v l 。 表3 1 显示了各种p d u 对应的值( p d u 即协议数据单元,也就是分组) 。 共同体字段是一个字符串。这是管理进程和代理进程之间的口令,足明文格 式。默认的值是p u b l i c 。 对于g e t 、g e t - n e x t 和s e t 操作,请求标识字段由管理进程设置,然后由代理进 程在g e t r e s p o n s e 中返回。这个字段的作用是使管理进程能够将代理进程发出的响 应和管理进程发出的查询进行匹配,并允许管理进程对一个或多个代理进程发出 多个请求,并且从返回的众多应答中进行分类。 业夏銮适盔生躯堂缱途塞 s 盟丛圜筐醒置丕纽 i p 首 u d p版本 共 p d u 请求差错状态差错名 值名值 i 部首部 ( o ) 同类型标识 ( 0 - 5 ) 索引称 称 体 ( 0 3 ) p d u企代理 t r a p 特定时问戳名称值 l 斧 业地址类型代码 ( 0 - 6 ) 图3 4 s n m p 报文的格式 p d u 类型名称 0 g e t r e q u e s t 1 g e t - n e x t r e q u e s t 2 g e t - r e $ p o n s e 3 s e t - r e q u e s t 4 t r a p 表3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年芜湖广济医院招聘20人考前自测高频考点模拟试题及答案详解(有一套)
- 2025贵州安顺市黄果树旅游区教育事务管理服务中心招聘公益性岗位人员1人模拟试卷有答案详解
- 2025广西来宾市投资促进局招聘后勤服务控制数人员1人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025呼伦贝尔爱心医院招聘37人模拟试卷及完整答案详解
- 2025北京首都师范大学实验小学招聘2人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年西南交通美术真题及答案
- 2025年学生保险考试试题及答案
- 2025年知识的建构考试题及答案
- 2025广东深圳市市场监督管理局遴选第五批专业化职业化食品安全检查员(食品经营)考前自测高频考点模拟试题附答案详解(完整版)
- 2025年数控中级考试试题及答案
- 心源性休克病人的护理
- 如何落实责任制整体护理
- 家政中介服务线上平台运营方案
- 2025-2026学年华中师大版(2024)小学体育与健康一年级(全一册)教学设计(附目录P123)
- 第13课 美丽中国我的家(教学课件)小学二年级上册 统编版《道德与法治》新教材
- 北师大版(2024)二年级上册《参加欢乐购物活动》单元测试卷(含解析)
- 2025城管执法考试题及答案
- 医学影像科危急值管理规范
- 2026年中考历史复习:非选择题 答题技巧
- 多肉教学课件
- 茅台镇酱酒文化课件
评论
0/150
提交评论