CN100425024C - IPv6因特网网络拓扑自动发现方法 - Google Patents

IPv6因特网网络拓扑自动发现方法 Download PDF

Info

Publication number
CN100425024C
CN100425024C CNB200410069128XA CN200410069128A CN100425024C CN 100425024 C CN100425024 C CN 100425024C CN B200410069128X A CNB200410069128X A CN B200410069128XA CN 200410069128 A CN200410069128 A CN 200410069128A CN 100425024 C CN100425024 C CN 100425024C
Authority
CN
China
Prior art keywords
information
address
link
node
ipv6
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB200410069128XA
Other languages
English (en)
Other versions
CN1588884A (zh
Inventor
沈曾伟
宫晨
李未
郎昕培
周刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Beijing University of Aeronautics and Astronautics
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CNB200410069128XA priority Critical patent/CN100425024C/zh
Publication of CN1588884A publication Critical patent/CN1588884A/zh
Application granted granted Critical
Publication of CN100425024C publication Critical patent/CN100425024C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及IPV6因特网网络拓扑自动发现方法,客户端利用本地链路节点的广播地址作为目标地址,通过任意一网络节点向目标地址发送回声请求报文,采集网络内的所有节点的IPV6地址,并根据主机名与IPv6和IPv4地址的关系对应关系,反向DNS解析出主机名,完成客户端信息采集;利用因特网消息控制协议提供的超时丢弃报文获取客户端到达服务器端的IP路由路径信息,并通过TCP协议的5001端口将路由路径信息发送到服务器端口,完成客户端与服务端之间的通信;服务器以因特网上公开的可寻址IPv6主机的IPv6地址作为单条拓扑路径的最终节点,将新出现的地址和主机名及其链接节点写入线状拓扑数据中,生成网状拓扑信息。

Description

IPv6因特网网络拓扑自动发现方法
技术领域
本发明涉及网络测量和管理范畴,特别涉及一种IPv6因特网网络拓扑自动发现方法。
背景技术
目前工作在IPv4局域网之内的拓扑发现软件,主要借助简单网络管理协议SNMP(Simple Network Management Protocol)和因特网消息控制协议ICMP(Internet Control Message Protocol)来实现的。
局域网的拓扑发现一般由网络层和数据链路层两层发现组成。
网络层的拓扑发现任务是发现节点网络层地址、子网掩码信息和子网间的连接关系。拓扑发现计算机通常向地址空间内每个可能的IP地址发送ICMP请求报文,然后使用Traceroute函数找到连接到这些IP地址路径上的所有路由器,最后发送ICMP前缀请求报文得到它们的网络前缀地址。对于那些具有多个子网前缀的节点,向它们一个未使用的端口发送UDP报文,返回的ICMP出错消息可能会返回节点另一子网内的接口地址。根据收集到的这些信息来划分子网,路由器在节点和不同的网络链路间建立联系。
数据链路层的拓扑发现有两大任务:其一是区分主机、交换机;其二是发现节点链路层地址和链路之间的连接关系。具体来说:首先,通过类似网络层拓扑发现的方法,以SNMP提供的MIB对象为工具,得到链路内的所有可达节点的网络层和链路层信息;然后通过图论的数学方法,发现那些可能存在的物理连接关系。
随着互联网的发展,IPv4(Internet Protocol v4互联网协议v4版本)协议地址空间逐渐耗尽,人们通过开发大量的附加协议去充分挖掘IPv4协议的潜力,却难以改变IPv4地址空间逐渐耗尽的现实,在这种情况下,IPv6的部署工作已经开始启动。目前全球范围内已经公布的支持IPv6的大型实验站点数目大约是800个,IPv6协议提供了128位的庞大地址空间,这从根本上解决了IPv4地址枯竭的问题;可以预见,IPv6协议在不远的未来,会被包括各种家电产品在内的多种设备所支持。
这对未来的网络管理工作来说,是一个巨大的考验,IPv6协议将使得未来网络管理工作的负担增加,难度加大。由于网络规模急剧扩大,网络设备类型多种多样,网络管理员已几乎不可能手工监测和维护网络的正常运行,迫切需要自动网管软件的协助;再加上IPv6协议对原有的IPv4协议在许多方面不具有向下兼容的特性,需要对未来的网络管理和测量的理论和方法开展新一轮的研究。
自动拓扑发现技术是IPv6自动网管技术的基础,目标是能够自动得到IPv6子网所有活动节点的属性和性能信息,并且对网络内节点的连接状况进行测量和分析。
本地链路是IPv6网络的最小组成单位,众多的本地链路网通过路由器的连接组成了全球IPv6网络。
同IPv4网络一样,IPv6网络仍分为骨干网和接入网两部分,边界路由器是它们间的分界点。相对于接入网,骨干网的升级工作相对比较简单,所做的工作主要是路由协议的升级,例如将OSPFv2(OpenShortest Path Protocol)升级到OSPFv3,BGP4(Border Gateway Protocol)升级到BGP4+等。
最近,相关RFC(Recommend For Comment)规定,将接入网简化为由大量支持IPv6协议的节点组成的本地链路。目前骨干网基础结构仍是基于IPv4的;而在接入网部分,却已有大量支持双栈的终端设备接入,例如PC机和众多手持设备,对接入网拓扑发现进行研究的物质条件已经具备。
同一本地链路上的设备,往往处于同一个网络管理员的管理职责之内。网络管理员需要了解这些设备的配置、性能和告警状况,以及相关的链路、路由连接状况。随着网络技术的发展,接入的设备种类多种多样,数量大幅度增加,再加上移动IP技术日渐成熟,网络管理的越来越复杂。未来的互联网,将使用IPv6协议作为网络层的基本协议,IPv6相比于目前的IPv4网络,具有许多全新的特点,IPv4拓扑发现的某些理论和方法虽然适用,但也不可避免地会出现一些兼容性问题。
首先,ICMPv6相对于ICMPv4来说作了比较大的改动,把以往IPv4下的ICMPv4,因特网组消息协议IGMP(Internet Group MessageProtocol)和地址解析协议ARP(Address Resolve Protocol)的功能集成了起来,原有的借助ICMPv4应答报文所进行的拓扑发现需要进行修改。
其次,IPv6协议增强了对广播和多播的支持,已作为IPv6协议本身的特性集成到IP协议中去,而无需通过IGMP等协议的配合。
最后,目前大部分操作系统还不提供支持IPv6配置信息的SNMP代理程序,无法通过SNMP的请求报文来获得配置数据,而IPv4上的SNMP代理程序已经非常成熟。
发明内容
本发明的目的在于,提供一种IPv6因特网网络拓扑自动发现方法,利用网络管理员对于本地链路上的设备所具有的管理权限,通过在这些设备上部署一些定制的代理程序来弥补现阶段缺乏支持IPv6的标准管理信息数据库(MIB)的问题,从而提供一种IPv6因特网网络拓扑自动发现方法,以了解网络拓扑状况,解决了分属于大量研究机构所有的,无法得到简单网络管理协议(SNMP)信息的网络节点分布和连接情况不清楚的问题。
本发明所提供的一种IPv6因特网网络拓扑自动发现方法,在该IPv6因特网网络中,等待被探测的IPv6设备中安装有因特网消息控制协议ICMP6,其中部署了本地代理程序的一台设备为客户端,其步骤包括:
客户端利用本地链路节点的广播地址作为目标地址,通过任意一网络节点向目标地址发送回声请求报文,采集网络内的所有节点的IPv6本地链路地址,再利用IPv6本地链路地址,通过邻居请求报文,获得IPv6地址与MAC地址的对应关系,再通过获取IPv4地址与MAC地址的对应关系,将同一设备上的IPv4与IPv6地址相对应,最后通过IPv4地址,反向DNS解析出主机名,完成客户端信息采集;
利用因特网消息控制协议提供的超时丢弃报文获取客户端到达服务器端的IP路由路径信息,并通过TCP协议的5001端口将路由路径信息发送到服务器端口,完成客户端与服务端之间的通信;
服务器以因特网上公开的可寻址IPv6主机的IPv6地址作为单条拓扑路径的最终节点,将新出现的地址和主机名及其链接节点写入线状拓扑数据中,生成网状拓扑信息,并结合部署在每个IPv6子网内的代理发现程序所描述的链路内拓扑细节信息,完成服务器端网络拓扑。
所述客户端信息采集的步骤包括:
客户端根据IPv6协议选择具有广播信息功能的本地链路广播地址作为目标地址;
通过上述客户端向具有广播信息功能的本地链路广播地址分别发送回声请求报文信息,其中IPv6协议规定此地址为FF02::1,根据发回的回声应答报文获取全网络内的节点的本地链路地址信息;
通过上述客户端向全网络内的节点的本地链路地址发送邻居请求报文信息,根据发回的邻居宣告报文获取全网络内的节点的物理地址MAC信息;
通过上述客户端向本地链路路由器广播地址发送路由请求报文,其中IPv6协议规定此地址为FF02::2,根据发回的路由宣告报文获得目标机的路由前缀信息;
通过获得的上述物理地址MAC信息和路由前缀信息,无状态自动配置形成所有节点的IPv6地址;
通过简单网络管理协议SNMP和因特网消息控制协议ICMP来获取本地代理所运行主机的IPv4地址;
依据IPv4和IPv6与MAC地址的对应关系,获取该网卡的双栈信息并反向DNS解析主机名。
获取本地代理所运行主机的IPv4地址,通过发送IPv4子网掩码请求报文信息获取本IPv4子网的子网掩码信息后,在子网内发送回声报文信息获取MAC地址和IPv4地址的对应信息。
所述客户端与服务端之间的通信的步骤包括:
利用因特网消息控制协议ICMP6提供的超时丢弃报文获取客户端到达服务器端的IPv6路由路径信息文件;
利用因特网消息控制协议ICMP提供的超时丢弃报文获取客户端到达服务器端的IPv4路由路径信息文件;
在客户端与服务器可通过IPv4通信的情况下,通过IPv4下的TCP5001端口将上述信息文件发回服务器端。
所述服务器端网络拓扑的步骤为拓扑发现服务器对IPv6骨干网进行拓扑发现的步骤,包括:
收集因特网上已公开发表的地址信息,并对于因特网上已公开IP的目标节点,发现它们与服务器间的路径信息;
对于那些已经下载了本地代理程序的链路,接收本地代理发来的链路细节的描述;服务器端侦听5001端口,本地代理以此为目标端口,向服务器发送本链路内拓扑信息,以及到服务器的路径信息;
将上述所得到的线状拓扑信息合并:分析5001端口发来的路由路径信息,将其中所包含的新客户端到服务器的IPv6和IPv4路由信息,写入线状路由数据信息文件中;
将归并得到的线状拓扑信息转换为网状的结构,做图形布局后,显示在图形界面上。
所述转换的步骤包括:
1)将线状路由信息初始化;
以链表的形式保存,利用通用的ICMP报文得到两台机器之间路径后生成文件格式除了第一跳以外,把前一跳和当前一跳的信息以下面的形式写入文件:
主机名1\t v6地址1\t\t主机名2\t v6地址2\n
如果到达了目的地址,则把他的名字和地址单独写在一行:
主机名\t v6地址\n
2)第一次扫描:将数据中所有主机找出,并无重复的加以编号,每一主机有自己的一个ID;对于是最后一跳的主机给以标识1300,对应前台图形显示工具中主机图标,最后,将所有数据以链表的形式保存在内存中;
3)第二次扫描:将根据第一次的结果将所有两点间的链接找出,同样无重复的加以编号,并给出起点和终点的ID;
4)将步骤2)和3)所得到的数据写入ODF文件。
所述步骤1)中所用的链表型数据结构为:
struct ipinfo
{
char ip[MAXHOSTNAMELEN];
struct ipinfo*next;
};
用该结构体用来存储IP的信息,采用链表存储。ip域用来存储IPv6信息,next域为指针域。
所述步骤2)中所用的链表型数据结构为:
struct node
{
int index;
char name[MAXHOSTNAMELEN];
struct ipinfo iplist;
int type;
struct node*next;
};
用该结构体存储一个设备结点的信息。index域用来表示该结点的序号;name域用来表示结点名称;iplist域用来存储该设备的一个或多个IP信息;type域用来存储设备类型(1300表示主机;1200表示路由器);next为指针域。
所述步骤3)中所用的链表型数据结构为:
struct link
{
int index;
int hnode;
int enode;
int linksum;
struct link*next;
};
用该结构体存储一条链接的信息。Index域表示链接的序号;hnode域用来存储链接一端结点的序号,enode域用来存储链接另一端结点的序号;linksum用来存储链接被重复统计的次数;next域为指针域。
所述步骤4)中所述的odf文件的格式如下:
t number
必须写在文件开头;number为拓扑图中所有结点的数量;
T number
必须写在文件开头;number为拓扑图中所有链接的数量;
?node_index name
表示一个结点的信息;node_index为不分先后的结点序号,name为结点名字,名字中间不能有空格;
l linkidx n_idx1 n_idx2
表示一个链接的信息;linkidx为不分先后的链接序号,n_idx1为链接出发结点的序号,n_idx2为链接到达结点的序号。综上所述,本发明利用本地链路节点的广播地址作为目标地址,采集客户端信息,并通过TCP协议的5001端口将该信息文件发送到服务器端口,由服务器端将线状拓扑数据信息文件转化为网状拓扑信息。
本发明的优点在于,本发明基于现有的IPv4自动拓扑发现技术,利用IPv6协议对广播和多播支持功能的增强,实现了IPv6协议下网络拓扑的自动生成。
附图说明
图1本发明客户端/服务器模式结构图
图2本发明客户端总体流程图
图3本发明客户端信息发现模块流程图
图4本发明客户端通信模块流程图
图5本发明服务器端总体流程图
图6本发明服务器端线状路由信息转化为网状拓扑模块流程图
图7本发明线状路由数据第一次扫描处理流程图
图8本发明线状路由数据第二次扫描处理流程图
图9本发明链表结构示意图
图10本发明网状拓扑信息的显示图
图11本发明网状拓扑信息的又一显示图
具体实施方式
该发明以大致了解全球现有IPv6实验网络拓扑状况为目的,解决了分属于大量研究机构所有的,无法得到简单网络管理协议(SNMP)信息的网络节点分布和连接情况不清楚的问题。该发明由一组分布式程序组成,如图1所示,基于客户机/服务器的模式,其中,
1.客户端模块:
客户端负责收集局域网内的拓扑信息,目的是为了处理那种未公开IPv6站点内拓扑状况未知的情况,也提供一定的本地网络管理功能,作为免费软件提供给协助者使用,称为本地代理(Local Agent)软件。如图2所示,在客户端,本地链路信息被采集,采集的信息转化为格式化文本文件存储并以TCP套接字发回服务器端。所述客户端模块主要由客户端信息采集和通信模块两部分组成,其中,客户端信息采集模块实现本地链路信息的采集,并将采集的信息转化为格式化文本文件存储,通信模块则实现以TCP套接字发回服务器端。下面,对客户端信息采集模块和通信模块分别进行说明:
1.1客户端信息采集模块:
客户端使用ICMPv6(Internet Control Message Protocol v6)协议的信息报文分析网络内的节点信息。如图3所示,该模块,
首先,向IPv6协议规定的本地链路节点的广播地址FF02::1发送回声请求报文(Echo Request),通过获取的回声应答报文(Echo ReplyPacket)得到网络内的所有节点的本地链路地址;
再向每个本地链路地址发送邻居请求报文(Neighbor Solicitation),通过发来的邻居宣告报文(Neighbor Advertisement)得到目标机的物理地址信息(MAC地址);
最后,向IPv6协议规定的本地链路路由器的广播地址FF02::2发送路由请求报文,获得链路内默认对外出口路由器的MAC地址和路由前缀信息,并以无状态自动配置地址的生成方式来得到该链路上所有节点的无状态自动配置地址(Stateless Configuration Address)信息。
获取本地代理所运行主机的IPv4地址,同时通过ICMP的子网掩码请求报文,在网络内获取子网的掩码信息,达到子网的网络号。穷举子网内的所有IP地址,每次发送二十个ICMP的ping报文,间隔十秒。从而在本地代理的ARP缓存里生成所有可达主机的ARP列表。通过保存的MAC地址和IPv6地址的映射关系,获取双栈主机的IPv6、IPv4地址对应关系;并通过DNS(Domain Name Service)请求,获得对应IP的主机名。
1.2客户端通信模块
如图4所示,通信模块获得这些信息后,首先利用通用的ICMP报文得到两台机器之间路径后(IPv6 traceroute)探测到server端的IPv6路径状况,若可以,则以IPv6协议的套接字与目标Server通信,将收集到的信息与路径状况信息以文本文件的形式发送到server端的TCP5000端口。若不能直接通信,使用IPv4 traceroute探测到server端的IPv4路径状况。将可达性信息与本子网信息通过IPv4套接字发送至server端的TCP5001端口。
2.服务器端模块
如图5所示,服务器端承担拓扑发现主要工作的流程是:
首先,准备工作是收集公开发表的地址信息,对于那些因特网上已公开IP的目标节点,发现它们与服务器间的路径信息;
其次,对于那些已经下载了本地代理程序的链路,接收本地代理发来的链路细节的描述;服务器端侦听5001端口,本地代理以此为目标端口,向服务器发送本链路内拓扑信息,以及到服务器的路径信息。
最后,将上述所得到的线状拓扑信息合并:分析5001端口发来的路由路径信息,将其中所包含的新客户端到服务器的IPv6和IPv4路由信息,写入线状路由数据信息文件中;
将归并得到的线状拓扑信息转换为网状的结构,做图形布局后,显示在图形界面上。
2.1服务器端线状路由信息转化为网状信息模块:
服务器端线状路由信息转化为网状拓扑总体流程,如图6所示,对源数据进行两次扫描。
首先,第一次扫描,将数据中所有主机找出,并无重复的加以编号,每一主机有自己的一个ID;对于是最后一跳的主机给以标识1300(对应otter中的主机图标),其他的给以标识1200(对应otter中路由器图标),最后,将所有数据以链表的形式保存在内存中;
第二次扫描,将根据第一次的结果将所有两点间的链接找出,获得所有的不重复的链路,链路中间不会有中继节点,而且每条链路的起始和中止节点都是不同的;同样无重复的加以编号,并给出起点和终点的ID。
2.1.1其中traceroute后生成文件格式为:
以链接的形式保存(不以跳的形式保存)。除了第一跳以外,都把前一跳和当前一跳的信息以下面的形式写入文件。
主机名1\t v6地址1\t\t主机名2\t v6地址2\n
如果到达了目的地址,则把他的名字和地址单独写在一行。
主机名\t v6地址\n
2.1.2线状拓扑第一次扫描
第一遍线状路由扫描信息的流程,如图7所示,
1)判断原始文本文件是否已经结束:如果结束,程序执行完毕;如果未结束,到第2步。
2)读取当前行的第一段数据信息。判断当前行是否只具有一段数据信息:如果是,认为这个节点处于路径的末端,作为主机,标志位被置为1后再到第3步;如果不是,作为路由器,直接前进到第3步。
3)判断这个数据信息代表的设备是否不存在于设备链表中且标志位是否不为一:如果否,在链表尾建立一个新结点并写入数据信息,然后前进到第4步;如果是,直接前进到第4步。
4)读取当前行的第二段数据信息。
5)判断这个数据信息代表的设备是否已经存在于设备链表中:如果不是,在链表尾建立一个新结点并写入数据信息,然后再回到第1步;如果是,回到第1步。
2.1.3线状拓扑第二次扫描
第二遍线状路由扫描生成链表数据的流程,如图8所示,
1)将文件指针重新回到文件头部
2)判断文件是否结束:如果是,退出第二遍扫描;否,到第3步。
3)读取第一段数据信息
4)判断行是否结束:是,回到第1步;否,前进到第5步。
5)读取第二数据信息
6)根据得到的两段数据信息,查询分别对应的设备序号
7)根据链路两端设备的序号,判断这条链路信息是否已经在链路对象链表中了:是,回到第1步;否,前进到第8步。
8)链路对象链表末端添加新链路节点。
如图9所示,通常把链表直观的表示成用箭头相链接的结点序列。
算法中用到的链表型数据结构有:
(1)
struct ipinfo
{
char ip[MAXHOSTNAMELEN];
struct ipinfo*next;
};
用该结构体用来存储IP的信息,采用链表存储。ip域用来存储IPv6信息,next域为指针域。
(2)
struct node
{
int index;
char name[MAXHOSTNAMELEN];
struct ipinfo iplist;
int type;
struct node*next;
};
用该结构体存储一个设备结点的信息。index域用来表示该结点的序号;name域用来表示结点名称;iplist域用来存储该设备的一个或多个IP信息;type域用来存储设备类型(1300表示主机;1200表示路由器);next为指针域。
(3)
struct link
{
int index;
int hnode;
int enode;
int linksum;
struct link*next;
};
用该结构体存储一条链接的信息。Index域表示链接的序号;hnode域用来存储链接一端结点的序号,enode域用来存储链接另一端结点的序号;linksum用来存储链接被重复统计的次数;next域为指针域。
2.2 odf文件格式说明
.odf文件是为前台图形程序提供数据的文件。Otter软件可以根据.odf文件中的拓扑信息生成拓扑图。.odf文件的具体格式如下:
t number
必须写在文件开头。
number:拓扑图中所有结点的数量
T number
必须写在文件开头。
number:拓扑图中所有链接的数量
?node_index name
表示一个结点的信息
node_index:不分先后的结点序号
name:结点名字(中间不能有空格)
l linkidx n_idx1 n_idx2
表示一个链接的信息
linkidx:不分先后的链接序号
n_idx1:链接出发结点的序号
n_idx2:链接到达结点的序号
如图10、11所示,本发明方法的自动网状拓扑信息图,如果将把服务器的traceroute6功能加入到客户端中去,在客户端也生成一个该子网的可达IPv6站点拓扑图,发回主server后,加入到已有的拓扑信息中去,逐步扩大网络拓扑的覆盖范围。此外,可以将把目前的以格式文本文件存储的形式转换为以数据库存储的信息。

Claims (10)

1. 一种IPv6因特网网络拓扑自动发现方法,在该IPv6因特网网络中,等待被探测的IPv6设备中安装有因特网消息控制协议ICMP6,其中部署了本地代理程序的一台设备为客户端,其特征在于,该方法包括以下步骤:
客户端利用本地链路节点的广播地址作为目标地址,通过任意一网络节点向目标地址发送回声请求报文,采集网络内的所有节点的IPv6本地链路地址,再利用IPv6本地链路地址,通过邻居请求报文,获得IPv6地址与MAC地址的对应关系,再通过获取IPv4地址与MAC地址的对应关系,将同一设备上的IPv4与IPv6地址相对应,最后通过IPv4地址,反向DNS解析出主机名,完成客户端信息采集;
利用因特网消息控制协议提供的超时丢弃报文获取客户端到达服务器端的IP路由路径信息,并通过TCP协议的5001端口将路由路径信息发送到服务器端口,完成客户端与服务端之间的通信;
服务器以因特网上公开的可寻址IPv6主机的IPv6地址作为单条拓扑路径的最终节点,将新出现的地址和主机名及其链接节点写入线状拓扑数据中,生成网状拓扑信息,并结合部署在每个IPv6子网内的代理发现程序所描述的链路内拓扑细节信息,完成服务器端网络拓扑。
2. 按照权利要求1所述的因特网网络拓扑自动发现方法,其特征在于,所述客户端信息采集的步骤包括:
客户端根据IPv6协议选择具有广播信息功能的本地链路广播地址作为目标地址;
通过上述客户端向具有广播信息功能的本地链路广播地址FF02::1分别发送回声请求报文信息,根据发回的回声应答报文获取全网络内的节点的本地链路地址信息;
通过上述客户端向全网络内的节点的本地链路地址发送邻居请求报文信息,根据发回的邻居宣告报文获取全网络内的节点的物理地址MAC信息;
通过上述客户端向本地链路路由器广播地址FF02::2发送路由请求报文,根据发回的路由宣告报文获得目标机的路由前缀信息;
通过获得的上述物理地址MAC信息和路由前缀信息,无状态自动配置形成所有节点的IPv6地址;
通过简单网络管理协议SNMP和因特网消息控制协议ICMP来获取本地代理所运行主机的IPv4地址;
依据IPv4和IPv6与MAC地址的对应关系,获取该主机的双栈信息并反向DNS解析主机名。
3. 按照权利要求2所述的因特网网络拓扑自动发现方法,其特征在于,获取本地代理所运行主机的IPv4地址,通过发送IPv4子网掩码请求报文信息获取本IPv4子网的子网掩码信息后,在子网内发送回声报文信息获取MAC地址和IPv4地址的对应信息。
4. 按照权利要求1所述的因特网网络拓扑自动发现方法,其特征在于,所述客户端与服务端之间的通信的步骤包括:
利用因特网消息控制协议ICMP6提供的超时丢弃报文获取客户端到达服务器端的IPv6路由路径信息文件;
利用因特网消息控制协议ICMP提供的超时丢弃报文获取客户端到达服务器端的IPv4路由路径信息文件;
在客户端与服务器可通过IPv4通信的情况下,通过IPv4的TCP5001端口将上述信息文件发回服务器端。
5. 按照权利要求1所述的因特网网络拓扑自动发现方法,其特征在于,所述服务器端网络拓扑的步骤为拓扑发现服务器对IPv6骨干网进行拓扑发现的步骤,包括:
收集因特网上已公开发表的地址信息,并对于因特网上已公开IP的目标节点,发现它们与服务器间的路径信息;
对于那些已经下载了本地代理程序的链路,接收本地代理发来的链路细节的描述;服务器端侦听5001端口,本地代理以此为目标端口,向服务器发送本链路内拓扑信息,以及到服务器的路径信息;
将上述所得到的线状拓扑信息合并:分析5001端口发来的路由路径信息,将其中所包含的新客户端到服务器的IPv6和IPv4路由信息,写入线状路由数据信息文件中;
将归并得到的线状拓扑信息转换为网状的结构,做图形布局后,显示在图形界面上。
6. 按照权利要求5所述的因特网网络拓扑自动发现方法,其特征在于,所述转换的步骤包括:
1)将线状路由信息初始化;
以链表的形式保存,利用通用的ICMP报文得到两台机器之间路径后生成文件格式除了第一跳以外,把前一跳和当前一跳的信息以下面的形式写入文件:
主机名1\t v6地址1\t\t主机名2\t v6地址2\n
如果到达了目的地址,则把主机的名字和地址单独写在一行:
主机名\t v6地址\n
2)第一次扫描:将数据中所有主机找出,并无重复的加以编号,每一主机有自己的一个ID;对于是最后一跳的主机给以标识1300,对应前台图形显示工具中主机图标,最后,将所有数据以链表的形式保存在内存中;
3)第二次扫描:将根据第一次的结果将所有两点间的链接找出,同样无重复的加以编号,并给出起点和终点的ID,以链表的形式保存这些链接信息;
4)将步骤2)和3)所得到的数据写入odf文件。
7.按照权利要求6所述的因特网网络拓扑自动发现方法,其特征在于,所述步骤1)中所用的链表型数据结构为:
struct ipinfo
{
char ip[MAXHOSTNAMELEN];
struct ipinfo*next;
};
该结构体用来存储IP的信息,采用链表存储:ip域用来存储IPv6信息,next域为指针域。
8. 按照权利要求6所述的因特网网络拓扑自动发现方法,其特征在于,所述步骤2)中所用的链表型数据结构为:
struct node
{
int index;
char name[MAXHOSTNAMELEN];
struct ipinfo iplist;
int type;
struct node*next;
};
用该结构体存储一个设备结点的信息:index域用来表示该结点的序号;name域用来表示结点名称;iplist域用来存储该设备的一个或多个IP信息;type域用来存储设备类型;next为指针域。
9. 按照权利要求6所述的因特网网络拓扑自动发现方法,其特征在于,所述步骤3)中所用的链表型数据结构为:
struct link
{
int index;
int hnode;
int enode;
int linksum;
struct link*next;
};
用该结构体存储一条链接的信息:Index域表示链接的序号;hnode域用来存储链接一端结点的序号,enode域用来存储链接另一端结点的序号;linksum用来存储链接被重复统计的次数;next域为指针域。
10. 按照权利要求6所述的因特网网络拓扑自动发现方法,其特征在于,所述步骤4)中所述的odf文件的格式如下:
t number
必须写在文件开头;number为拓扑图中所有结点的数量;
T number
必须写在文件开头;number为拓扑图中所有链接的数量;
?node_index name
表示一个结点的信息;node_index为不分先后的结点序号,name为结点名字,名字中间不能有空格;
l linkidx n_idx1 n_idx2
表示一个链接的信息;linkidx为不分先后的链接序号,n_idx1为链接出发结点的序号,n_idx2为链接到达结点的序号。
CNB200410069128XA 2004-07-06 2004-07-06 IPv6因特网网络拓扑自动发现方法 Expired - Fee Related CN100425024C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200410069128XA CN100425024C (zh) 2004-07-06 2004-07-06 IPv6因特网网络拓扑自动发现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200410069128XA CN100425024C (zh) 2004-07-06 2004-07-06 IPv6因特网网络拓扑自动发现方法

Publications (2)

Publication Number Publication Date
CN1588884A CN1588884A (zh) 2005-03-02
CN100425024C true CN100425024C (zh) 2008-10-08

Family

ID=34604264

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200410069128XA Expired - Fee Related CN100425024C (zh) 2004-07-06 2004-07-06 IPv6因特网网络拓扑自动发现方法

Country Status (1)

Country Link
CN (1) CN100425024C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904088B2 (en) 2018-11-15 2021-01-26 Western Digital Technologies, Inc. Reconfiguring network settings for operating configuration installation

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4193820B2 (ja) * 2005-07-05 2008-12-10 ブラザー工業株式会社 管理装置、およびプログラム
JP4052522B2 (ja) * 2006-04-12 2008-02-27 松下電器産業株式会社 ネットワーク機器及びネットワーク機器管理方法
CN101662411B (zh) * 2008-08-26 2012-02-08 杭州华三通信技术有限公司 IPv4主机访问IPv6网络服务器的方法及装置
CN101621414B (zh) * 2009-08-21 2012-01-04 杭州华三通信技术有限公司 一种网络资源及拓扑的发现方法及装置
CN101834754B (zh) * 2010-04-01 2014-10-15 黑龙江大学 采用网际组管理协议报文的网际层连接测量法及相关拓扑
CN101873230B (zh) * 2010-07-05 2012-08-15 北京星网锐捷网络技术有限公司 物理网络拓扑的发现方法及装置
CN101945043B (zh) * 2010-09-06 2012-03-28 华南理工大学 基于IPv6的下一代互联网拓扑发现系统及实现方法
CN102065125A (zh) * 2010-11-18 2011-05-18 广州致远电子有限公司 一种嵌入式ssl vpn的实现方法
CN104753793B (zh) * 2013-12-26 2018-03-30 联芯科技有限公司 在无状态IPv6配置下有状态管理接入终端的方法
CN104219113B (zh) * 2014-06-09 2017-11-24 武汉迈威实达软件有限公司 显示和分析多播分布拓扑图的方法
CN106027321A (zh) * 2016-07-26 2016-10-12 上海携程商务有限公司 网络拓扑结构的自动生成方法和系统
CN106027400A (zh) * 2016-07-28 2016-10-12 国网山东省电力公司威海供电公司 IPv6本地链路拓扑发现方法
CN108011746B (zh) * 2017-10-25 2021-06-29 北京知道未来信息技术有限公司 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法
CN111901201B (zh) * 2020-07-30 2021-09-28 中国电子信息产业集团有限公司第六研究所 一种IPv6网络拓扑测量目标选取方法
CN113055457B (zh) * 2021-03-09 2024-01-09 百果园技术(新加坡)有限公司 接入控制与数据转发方法、装置、电子设备及存储介质
CN114244761B (zh) * 2021-12-08 2023-10-31 中盈优创资讯科技有限公司 一种基于is-is的设备自动发现方法及装置
CN114338414B (zh) * 2022-01-30 2024-01-16 阿里巴巴(中国)有限公司 一种骨干网络拓扑发现方法、装置及控制设备
CN115174414A (zh) * 2022-07-22 2022-10-11 科来网络技术股份有限公司 自动识别会话中设备、设备路径的方法、系统及电子设备
CN115766552A (zh) * 2022-11-04 2023-03-07 西安电子科技大学 基于SRv6与INT的网络测量方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108702A (en) * 1998-12-02 2000-08-22 Micromuse, Inc. Method and apparatus for determining accurate topology features of a network
EP1211843A1 (en) * 2000-11-30 2002-06-05 Hewlett-Packard Company, A Delaware Corporation Process and apparatus for automatic topology discovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108702A (en) * 1998-12-02 2000-08-22 Micromuse, Inc. Method and apparatus for determining accurate topology features of a network
EP1211843A1 (en) * 2000-11-30 2002-06-05 Hewlett-Packard Company, A Delaware Corporation Process and apparatus for automatic topology discovery

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
网络自动拓扑发现算法的研究与设计. 李成忠.计算机应用研究,第2期. 2002
网络自动拓扑发现算法的研究与设计. 李成忠.计算机应用研究,第2期. 2002 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904088B2 (en) 2018-11-15 2021-01-26 Western Digital Technologies, Inc. Reconfiguring network settings for operating configuration installation

Also Published As

Publication number Publication date
CN1588884A (zh) 2005-03-02

Similar Documents

Publication Publication Date Title
CN100425024C (zh) IPv6因特网网络拓扑自动发现方法
US9118587B2 (en) Network multi-path discovery
CN101945043B (zh) 基于IPv6的下一代互联网拓扑发现系统及实现方法
Waddington et al. Topology discovery for public IPv6 networks
EP2984798B1 (en) Identification of paths taken through a network of interconnected devices
EP1811724A1 (en) Determining data link (L2) network paths
US7821966B2 (en) Method and apparatus for network topology discovery using closure approach
US20030135644A1 (en) Method for determining network paths
EP2451125B1 (en) Method and system for realizing network topology discovery
CN1859239A (zh) 互联网的域间路由监测与分析系统及其工作方法
US11509552B2 (en) Application aware device monitoring correlation and visualization
CN100493003C (zh) 可扩展的互联网测量服务器自动发现与管理方法
CN109728962A (zh) 一种发送报文的方法和设备
CN113452561A (zh) 一种拓扑生成方法、装置、设备及可读存储介质
Mérindol et al. MERLIN: MEasure the router level of the INternet
CN111182022A (zh) 数据发送方法和装置、存储介质及电子装置
Magoni et al. Internet core topology mapping and analysis
US11032124B1 (en) Application aware device monitoring
CN113746654B (zh) 一种IPv6地址管理和流量分析的方法和装置
US20040196865A1 (en) Method and system for discovering a topology of a portion of a computer network
US9025494B1 (en) IPv6 network device discovery
Danesh et al. Mapping the internet
Barrera et al. Security visualization tools and IPv6 addresses
Hsieh et al. Topology discovery for coexisting IPv6 and IPv4 networks
Dong et al. A novel algorithm of IPv6 network topology discovery for campus network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081008

Termination date: 20160706

CF01 Termination of patent right due to non-payment of annual fee