基于链路层发现协议(lldp)的物理网络拓扑发现

基于链路层发现协议(lldp)的物理网络拓扑发现

ID:34124306

大小:221.16 KB

页数:3页

时间:2019-03-03

上传者:jjuclb
基于链路层发现协议(lldp)的物理网络拓扑发现_第1页
基于链路层发现协议(lldp)的物理网络拓扑发现_第2页
基于链路层发现协议(lldp)的物理网络拓扑发现_第3页
资源描述:

《基于链路层发现协议(lldp)的物理网络拓扑发现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

\.网络通讯与安全......电脑知识与技术基于链路层发现协议(LLDP)的物理网络拓扑发现曾干(国防科技大学机电工程与自动化学院,湖南长沙410073)摘要:阐述了基于IEEE新标准802.1AB链路层发现协议(LinkLayerDiscoveryProtoco1)的物理网拓扑结构生成算法的实现。算法利用LLDP提供的信息能够完全发现网络的物理链路拓扑细节,并且适合多厂商设备混合的网络。关键词:链路层发现协议;拓扑发现:IEEE802.1AB中图分类号:TP393文献标识码:A文章编号:1009-3044(2006)2cI-∞4ThePhysicalNetworkTopologyDiscoveryBasedonLLDPProt6colZENGGan(CofiegeofMechatronicsEngineeringandAutomation,NationalUniv.ofDefenseTechnology,Changsha410073,China)Abstract:ProposesaLLDP—basedimplementingalgorithm,whichemphasizesphysicalnetworktopologysconstruction.ThealgorithmusetheinformationgotbyLLDP,tOcompletelydiscoverthedetailphysicalnetworktopology,anditisvendorindependent.KeyWOrds:tinklayerdiscoveryprotocol(LLDP);topologydiscovery;IEEE802、lAB1引言息。这些信息存储在标准的SNMPMIB中,网络管理系统可以运网络拓扑是指一个通信网内各个网络节点之间的相互连接用简单网络管理协议(SNMP)获取这些信息,利用这些信息,网络关系,这些网络节点主要包括路由器、交换机、网桥、Hub及终端管理系统能够精确的发现和模拟物理网络拓扑结构。主机等。2.2UP工作原理网络拓扑发现就是获取和维护网络节点的存在性信息和它LLDP定义了一个通用公告信息集、一个传输公告的协议和们之间的连接关系信息,并在此基础上给出整个网络连接状态的一种用来存储所收到的公告信息的方法。具备LLDP能力的设备图示,帮助网络管理人员对整个网络的拓扑结构有整体上的了解将公告信息放在一个局域网数据包内传输一I.I.DP设备在收到邻和认识,并有效的帮助管理员进行网络故障定位和性能分析,其近网络设备发出的I.I.DP信息后,将LLDP信息存储在一个IEEE作用在网络管理中十分重要。拓扑发现包括网络层的拓扑发现和定义的简单网络管理协议(SNMP)管理信息库(MIB)中,并且在一数据链路层的拓扑发现。网络层的拓扑发现主要是发现网络层定的时限内保持有效。其工作原理如图1所示:(OSI第三层)设备连接关系,如路由器与路由器、路由器和子网之间的连接关系。而数据链路层拓扑发现是指数据链路层设备之间的连接关系的发现,主要指一个子网内部的物理连接关系的发现,所以也称为物理网络拓扑发现。如交换机与交换机之间的连接信息,包括各交换机附带哪些端口.交换机之间是通过哪些端口进行连接的。许多网络管理软件都使用“自动发现”功能(AutomatedDis.eovery)来跟踪拓扑的变化和条件,但绝大多数软件最多也只是到达第三层.将设备分组到各个lP子网而已。但这些都是非常原始的数据,只是有关设备增加和移除的基本事件。而不是这些设备图1LLDP工作原理图在哪里或怎样与网络服务进行操作等详情。第二层发现(Layer2支持LLDP的相邻网络设备之间互相公告自身的系统描述信Discovery)则深度触及了诸如哪些设备附带有哪些端口.以及哪些息:交换机与其他设备相互连接等信息,并显示出了客户端、交换机、每台设备将获得的信息存储在本地MIB数据库中,这些MIB路由器和应用服务器以及网络服务器之间的路径【1,2,41。在以前数据库可以通过简单网络管理协议(SNMP)访问;的数据链路层拓扑发现算法中,通常都是基于交换机桥接表或生网络管理系统使用SNMP读取每台设备存储在MIB数据库中的成树协议『51,也有的基于一些厂商自己开发的拓扑发现协议【61,数据。生成直观的网络拓扑结构图。如Cisco公司的CDP协议(CiscoDiscoveryProtoco1)。但是。这些协3基于链路层发现协议ILLDP)的物理网络拓扑发议都不能工作在混合厂商设备集成的网络环境下。因此必须有一现的实现种能发现所有厂商设备的拓扑发现协议,IEEE新标准定义了一3.1拓扑信息来源一UJDPMIB库个这样的协议一802.1AB链路层发现协议(LinkLayerDiscovery1.1.Dp信息是定期传输的.并且在一定的期限内保留。I.I.DpProtoco1)。设备在收到邻近网络设备发出的IJ.DP信息后,将把LLDP信息2链路层发现协议(LLDP)【1—3】存储在一个IEEE定义的简单网络管理协议(SNMP)管理信息库2.1UP简介(MIB)中。并且在一定的时限内保持有效。表1简单列出了一些生链路层发现协议(LinkLayerDiscoveryProtocol,LLDP)是成网络拓扑图所必需的信息:802.IAB中定义的新协议。它是一种邻近发现协议,它为以太网网表1拓扑发现所需要的一些M旧变■络设备.如交换机、路由器和无线局域网接入点等定义了一种标准的方法.使其可以向网络中其它节点公告它自身的存在,并保ltNumber¨络设备的端11敬量lJdPRd娜螂Id抖雌的红膳蹬替的地址存各个邻近设备的发现信息,如设备配置和设备识别等详细信11.|pRemP~x,tld相连的邻艟设备晌端11.iIl|~络设蔷的采缝名称收稿日期:2006-03-31作者简介:曾干(1976一)。男,湖南新化人,工程师,硕士,研究方向为计算机网络。 电脑知识与技术······网络通讯与安全·3.2数据获取一SNMP表2网络的拓扑发现步骤SNMP即简单网络管理协议是现代网络管理的标准协议。步■节点邻近节点(C,mmetiot~fo)0SNMP协议由两部分组成.即网管工作(networkmanagementsta.1172.20.5.1172.20.5.20O.,)tion)和网管代~(networkmanagementagent)。网管工作站是控制和17225.38.1)217Z20.5.20172.20.5.1(,.1)监视网络节点的应用程序。代理是运行于各个被管理的网络节点172.25.46托1)(主要存在于路由器和交换机)中的进程,它负责收集本设备的各172.20.5,151),17Z205.3817Z20.5.1(1j)种有关的信息。为便于查询和管理这些信息,SNMP协议把它们进1720.512怯1)行分类定义,成为一个设备信息的集合。这就是它所定义的标准417Z20.5.4617Z20.5200.4】信息库MIB,各种不同厂家的设备都遵循这个标准。代理进程把收集到的相关信息都放入MIB库,这些信息是用来对各个网络节5I7Z20.5.15172205.20(1.日6172.20.5.12172.25.38(1.2)点之间相互连接关系的判断依据。网管工作站与代理进程进行通//清空已扫描到的节点队列信,SNMPvl定义了GetRequest、GetNextRequest、SetRequest、Ge.TopologyNodeQueue.Clear0;tReponse、Trap等5种操作对设备进行信息查询和参数设置。在拓,,判断IP地址是否合法扑发现中主要是获取设备的信息,所以主要用到前面两个操作。if(!IsIpAddressValid(pstrIpAddress))return;3.3主要数据结构,,判断是节点是否支持IJ.DP或LLDP是否有效TopologyNode:描述网络中每个节点的数据结构.该结构包含iff!IsLldpDevice(pstrIpAddress))return;,,将此节点加入到拓扑树了一个二叉树结构,遍历它可以访问到每一个节点.它为在屏幕TopologyNodepRootNode=NewNode(pstrIpAddress);上画出网络的拓扑图形提供了简单的方法。其定义为:,,设置该节点在拓扑树中的级别,种子节点级别为1。typedefstructTopologyNode{pRootNode.SetDeviceLevel(pRootNode,1);charpstrIpAddress;,,获取LLDP本地节点信息intnLevel;pRootNode.GetLldp·EocInfoO;structLldplocallnfostruLldpLocalInfo;鸺种子节点添加到待扫描队列structConnectionInfopConnectionInfo;WaitScanQueue.Append(pRootNode);structTopologyNodepSubNode;鹏种子节点添加到节点队列structTopologyNodepNeighborNode;structTopologyNodepNextNode;};TopologyNodeQueue.Append(g'RootNode);,,以下的循环通过种子设备的UJI)P信息获得整个网络拓扑ConneetionInfo:描述本节点与邻近节点之间连接信息的数据结构信息结构,包括本节点上与邻近节点相连的端口号.邻近节点及邻近while(!WaitScanQueue.IsEmpty0)//~等待扫描的节点队列不为节点上的端口号。其定义为:空。则重复typedefstructConnectionInfo{f,,从待扫描节点队列中取出一个节点intiLocalPortlndex;TopologyNodepCurrentNode=WaitScanQueue.Out0,intiRemotePortlndex;,,获取该节点IJ.DP本地信息structTopologyNodepRemoteNode;pCurrentNode.GetLldpIxmInfo0;structConnectionlnfopNextConnection;};while(1)TopologyNodeQueue:已扫描到的节点队列{LldpRemotelnfostruLldplRemlnfo;WaitScanQueue:等待被处理(扫描它的邻近节点信息)的节点,,判断是否有邻近节点与当前节点相连接队列。if(pCurrentNode.GetRemoteLldpInfo(&struLldpRemInfo)){TopologyNodepTmpNode;3.4拓扑发现算法的实现pTmpNode=TopologyNodeQueue.Find(struLldpRemInfo.pstr-拓扑发现算法从种子节点开始.通过读取种子节点的LLDP一RemIpAddress);信息,获得它的所有邻居节点,并把它们加入到等待扫描节点队,,判断与当前节点连接的节点是否已存在于节点队列中列中,然后从该队列中取出一个节点,获取到它的所有邻居,加入if(pTmpNode==NULL)到等待扫描节点队列中,重复以上步骤,直到网络中所有IJ.DP节{TopologyNodepNewNode;点都被发现。pNewNode=NewDevice(struLldpRemInfo.pstrRemIpAddress);,,将该节点添加到节点队列图2是一个网络拓扑图的例子,表2列出了运用本算法进行TopologyQueue.Append(pNewNode);网络拓扑发现的步骤,以及等待扫描节点队列中节点的加进和移,,将此节点添加到待扫描节点队列出的情况.它是一个FIFO(先进先出)队列。WaitScanQueue.Append(pNewNode);,,将连接信息添加到当前节点数据结构中m‘pCurrentNode.AddConnectionInfo(pNewNode,&struLldpRemIn-fo);l/\else{鸺连接信息添加到当前节点数据结构中翟pCurrentNode.AddConnectionInfo(pTmpNode,&struLldpRemIn-\fo);}lelse{//跳出循环翟翟break;}ll}图2一个网络拓扑例子4拓扑图形显示算法的具体实现如下:运用上面的拓扑发现算法,获得了网络中所有节点的UJI)PvoidScan(char*pstrSeedIpAddress),,指定种子节点IP地址开信息,利用这些信息,我们可以画出网络的拓扑结构图了。该拓扑始扫描图形可以显示网络的物理连接细节。即显示出诸如哪些设备具有f,,清空待扫描队列f]F转第48页)WaitScanQueue.Clear(); 电脑知识与技术······网络通讯与安全·Request.Collection(“Member”),甚至更简单:Request(“Member”)。用ASP引擎来执行ASP文件,并解释其中的脚本语言,通过ODBCQuerystring集合:可以获取查询字符串的所有值的集合。连接数据库,由数据库访问组件ADO完成数据库操作。最后ASPForm变量:使用Request.Form(“表单域名称”)可以获得填写生成包含有数据查询结果的HTML主页返回用户端显示。在表单中所有数据的集合,用POST方法提交到处理页将数据保3.2ASP访问数据库的步骤存到数据库,再对获取的数据进行处理。3.2.1定义数据源Cookie集合:是存储在客户机上的数值的一个集合。它经常被在WEB服务器上打开“控制面板”,选中“ODBC”。在“系统用来在客户机上存储数据,从而在下一次客户登录时它是有效的。DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。以下ServerVaribles集合:使用Request.ServerVaribles(服务器端环例子中定义“SQLSERVER”,数据源为“SR”,数据库名称为“SR-境变量)可以获取服务器端环境变量。DATA”,脚本语言采用Jscript。2.4.4Response对象3.2.2使用ADO组件查询WEB数据库Response对象用于向客户端浏览器发送数据。用户可以使用(1)定义数据库组件并打开需要访问的数据库:该对象将服务器端的数据用HTML的格式发送到用户端的浏览Setconn=Server.CreateObject(“ADODB.Connection”1器上。常用的方法有Write和Redirectconn.Open(“SR”)Write方法:把数据向客户浏览器传送。例如:<%Response.(2)设定SQL命令,执行访问数据库的操作:对数据库操作如write”c++programming”%>则会在页面上显示“c++programming”查询,修改,删除等,都是通过SQL指令来完成的,如要在数据表这个字符串。table中查询所有的字段和数据。Redirect方法:使浏览器重新定位到另一个URLsqlStr=“selectfromtable”2.4.5Server对象Setrs=conn.Execute(sqlStr)其中rs为结果集对象(record.sets)Server对象提供对服务器上的方法和属性的访问,其中大多(3)关闭数据库数方法和属性是作为实用程序的功能服务的。常用的方法有:rs.closeCreateObject方法和MapPath方法conn.closeCreateObject方法:用于创建已经注册到服务器上的ActiveX4结论组件实例。只有创建了组件实例才可以用其属性、方法来操作。格由于ASP具有动态、高效和易于交互等特点已经成为开发式:Server.CreateObject(”ActiveX组件名称”1动态网站的主要技术之一。被广泛地应用在网上银行、电子商务、MapPath方法:将指定的相对或虚拟路径映射到服务器上相应的搜索引擎、网上教育等互联网应用中。随着ASP技术的日益发展,物理目录上,返回的是一个物理地址。这个路径如果是以”,”或”、lI必将给我们的网络生活带来更大的变化。开头,显示以根目录为基础下的目录。如果这个路径中没有”那参考文献:么MapPath方法就会返回以当前目录为基础的路径。【11李世杰.ASP网页设计手册【M】.北京:清华大学出版社,1998.格式:Server.MapPath(path)【2]t国荣.ActiveServerPages&Web数据库【M】.北京:人民邮3ASP与数据库的关系电出版社.2000.3.1ASP访问数据库的原理【31SeitHigbson.新智译.ActiveServerPages详解[MI.电子工业目前从网络中访问数据库的方法有很多种,例如:CGI、ISAPI、出版社.2000.JDBC等。ASP的一个非常重要的属性是对于ActiveDataobject(A-f41精锐创作组.ASP+网络与数据库整合应m[M1.人民邮电出D0)所提供的数据库连接功能,ADO是Microsoft公司提供的访问版社.2001.数据库的组件。当用户使用浏览器请求ASP网页时,Web服务器调(上接第46页)5总结多少个端口,各设备之间端口连接的具体情况。主要步骤如下:网络拓扑发现是网络管理的一个重要组部分。是进行网络故4.1运用一个布图算法确定每个设备在屏幕上的相对位置。障定位,故障分析,性能管理和配置管理的基础。IEEE802.1AB标由于各设备的端口数量可能不一样,设备在屏幕上所占的显示面准定义的链路层发现协议(LLDP),使网络管理系统能够精确的发积不一样,所以需要一个算法来确定每个节点在屏幕上的相对位现物理网络拓扑结构,而且由于它的标准化,使网络管理工具加置。布图算法不是本文所述重点。在此不做详述。强了在多厂商环境中的网络拓扑发现能力。4.2利用上面所述拓扑发现算法得到的网络拓扑节点数据结本文根据上述算法,使用VC++6.O及Net-SNMP作为开发工构,并读取每个节点在屏幕上的显示座标,画出各节点图形。并画具,编写了基于UJI)P的物理网络拓扑发现程序,画出了能直观体出节点之间的连接线。现节点间物理连接详细情况的网络拓扑图形。。拓扑图形显示效果如图3。参考文献:[11802.1AB链路层发现协议一UJI)P网络维护好助手IN】.网络世界,2004—10-18。(o29).『21张志刚.第二层发现从底层了解网络【N】.中国计算机报,2003-12-08,(C16).『3IIEEE802.1AB一2005.IEEEStandardforlocalandmetrolmlitanareanetworksStationandMediaAccessControlCon—nectivityDiscovery[S].【4]李波,杨松龄,等.数据链路层拓扑发现算法的研究【J】.计算机工程与设计,2004,25(10):1738—1741.[5]李晓鸿,张大方.一种以太网拓扑发现算法【J】.同济大学学报(自然科学版),2002,3o(1o):1173—1177.『6】肖宗水.链路层网络拓扑发现及其Web表现方法【J】.计算机图3程序运行结果应用。2004。24(7):80-84.褐毫—I知识与技术

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭