网络节点和可路由地址的发现的制作方法

文档序号:6570363阅读:138来源:国知局
专利名称:网络节点和可路由地址的发现的制作方法
网络节点和可路由地址的发现
背景
网络管理员经常需要发现一给定的计算机网络上的活动机器。用来发现该 机器的各种技术可取决于作为该计算机网络的基础的一个或多个协议。当在诸
如网际协议第4版(下文中的"IPv4")等网络协议下操作时,有多种工具和 技术可用来执行各种网络管理功能、机器发现或端口扫描。当所讨论的网络只 包含IPv4段时,则任何这些可用工具或技术中的任一种都可能是适当的。即 使没有工具或技术是可用或适当的,给定一个具有网络掩码255.255.192.0的网 络,IPv4上的蛮力搜索也可能需要搜索大约16,384个可能的地址。如果使用 多线程与异步编程技术的组合,则这样的蛮力搜索花费大约一分钟。
正在引入并逐渐采用其他更多高级网络协议。这些较新的网络协议支持比 先前的网络协议大得多的地址空间。这样一个高级网络协议的一个示例是网际 协议第6版(下文中的"IPv6" ) 。 IPv6支持128位的地址空间,其中64位 被保留用于主机寻址。这意味着可能有264 (184,467,44l,OOO,OOO,OOO,OOO)个 可能找到主机的地址。
如果所讨论的网络包含至少某些IPv6段,则在IPv4下可用的工具不能在 IPv6段上有效地操作,或者根本不能在这些段上操作。采取蛮力方法在IPv6 网络中定位节点意味着在184,467,441 ,OOO,OOO,OOO,OOO个潜在地址上进行搜索。 假设以每秒一次的速率发送探查,则扫描这么大的一个地址块导致大约 5,865,494,028,540年的持续时间。即使有启用每秒1,000次探查或更多的多线 程异步通信模型,持续时间仍然是不可接受的。
概要
用于发现网络节点和可路由地址的各系统、方法和/或技术("工具") 包括扫描服务器、本地链路段、耦合到本地链路段的代理、以及被耦合以使扫 描服务器与代理进行通信的路由器。扫描服务器命令代理发现耦合到本地链路
段的一个或多个网络节点。代理响应于来自扫描服务器的命令来发现耦合到本 地链路段的网络节点。代理获得该网络节点的链路本地地址,并获得该链路本 地地址所映射到的可路由站点本地地址。代理将可路由站点本地地址提供给扫 描服务器。
提供本概要以便用简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本概要并不旨在标识出所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。
附图简述
在整个公开内容和附图中使用相同的标号来引用相同的组件和特征。参考
标号中的第一个数字指示在其中引入该参考标号的附图。


图1是用于发现网络节点和可路由地址的操作环境的框图。
图2是涉及一给定本地链路段的操作环境的框图。
图3是用于获得一给定企业的可路由地址列表的过程的流程图。
图4是用于生成一给定本地链路段中的一个或多个节点的可路由地址列表
的过程的流程图。
详细描述
总览
下文描述了能执行许多技术和过程的各种工具。以下讨论描述了该工具实 现网络节点和可路由地址发现的各示例性方法。该讨论还描述了该工具执行其 他技术的各方法。
本文为了方便起见被组织成几个章节,且各节以为了方便起见而并非限制
所选择的标题来介绍。首先,结合图l-2来描述凍/^^"裙,图l-2示出了与发 现网络节点和可路由地址相关的操作环境并且还提供了说明性数据流。接着, 结合图3-4来描述必湮》f程,图3-4示出了与发现网络节点和可路由地址相关 的各处理流程。 操作环境图1示出了用于发现网络节点和可路由地址的操作环境100。操作环境100
可包括扫描服务器102。扫描服务器102可包括诸如网络或其他服务器、台式 计算机等的计算设备。 一般而言,扫描服务器102负责扫描一个或多个给定网 络、定位网络上的一个或多个机器、确定其安全状态、机器正在网络上展示什 么服务等等。例如,扫描服务器102可被部署为服务包括公司、学院、或其他 合适环境在内的给定企业中的网络。
扫描服务器102可包括一个或多个处理器104以及计算机可读介质106。 计算机可读介质可包含指令,该指令在由处理器104执行时执行此处所描述的 方法中的任一种。处理器104可被配置成访问和/或执行计算机可读介质106。 计算机可读介质106可包括或能访问节点发现组件108,节点发现组件108可 被实现为能与启用网络的实体进行交互的模块、程序或其他实体。如此处所描 述的,节点发现组件108可被配置成发现一组网络节点以及对应于这些节点的 可路由地址,并且将发现的内容提供给扫描服务器102。节点发现组件108和 扫描服务器102可找到在支持足够大以致于蛮力节点发现技术不可行的地址空 间的网络协议的上下文中的特定适用性。这一网络协议的一个非限制性示例是 以上所描述的IPv6协议。
扫描服务器102可通过对应于一个或多个本地链路段IIO中的每一个的路 由器112来访问这些本地链路段110。仅仅为了方便起见,图l示出了两个本 地链路段110a和110b。然而,可以理解,操作环境100的可能实现可包括任 何数量的本地链路段IIO。可以理解,本地链路段110包括连接到诸如给定网 络电缆等给定公共连接器的一个或多个计算机。因此,在给定本地链路段IIO 内的所有计算机可互相通信而无需经过路由器112。
仅仅为了方便起见,图1示出了两个路由器112a和112b。然而,可以理 解,操作环境100的可能实现可包括任何数量的路由器112。通常,在一给定 网络中的路由器112的数量对应于本地链路段110的数量。还应注意,此处所 使用的术语"路由器"只是为了仅仅描述的目的,而非为了限制。例如,路由 器112可采用交换机或其他组件的形式。更一般而言,路由器112将扫描服务 器102连接到本地链路段100以便允许它们之间的通信。
本地链路段IIO包括至少一个代理114。仅仅为了方便起见,图l示出了 分别与本地链路段110a和110b相关联的两个代理114a和114b。然而,可以
理解,在给定的本地链路段110中可包括多于一个代理114。
一般而言,代理
114响应于来自扫描服务器102和/或节点发现组件108的命令,并且代理114 将响应提供给扫描服务器102和/或节点发现组件108。在仅一个可能的场景中, 代理114可被实现为执行此处所描述的功能的软件,并且可结合任何合适的硬 件配置来执行。扫描服务器102可按照例如DNS名和/或最近获知的IP地址来 知晓所有配置的代理114。在仅一个可能的实现中,可将与所配置的代理114 有关的信息存储在扫描服务器102可访问的数据存储中。然而,在扫描服务器 102执行此处所描述的节点发现之前,扫描服务器102可能并不知晓本地链路 段110中除了代理114之外的其他节点。因此,虽然本地链路段110可具有附 连到其上的任何数量的机器,但是在扫描服务器102上的节点发现组件108在 执行节点发现之前是不知道这些机器的数量的。
扫描服务器102可使用节点发现组件108来发现扫描服务器102所负责的 至少一部分给定网络中的网络节点。如果扫描服务器102希望发现整个网络中 的所有节点,则节点发现组件108可与整个网络中的所有代理114迸行通信。 如果扫描服务器102只希望发现整个网络的一个子网中的那些节点,则节点发 现组件108可仅与扫描服务器102感兴趣的子网中的那些代理114进行通信。
在某些实现中,如图1所示,扫描服务器102可与本地链路段110c相关 联。在这样的实现中,该本地链路段110c可以不与代理114相关联,并且此 处被描述为由代理114执行的所有功能可改为由扫描服务器102来执行。
以上在图1中描述的总体操作环境100,本讨论现在转向在一给定的本地 链路段110处的操作环境,现在结合图2来描述该操作环境。
图2示出了涉及一给定的本地链路段110的操作环境200。该操作环境200 表示在扫描服务器102感兴趣的子网中的本地链路段110。图2中所示的本地 链路段110可被理解为是图1中所示的本地链路段110a或110b中的任意一个。 同样,为了方便起见,延续了图1中的代表性节点发现组件108和代理114。 图2中省略了路由器112,然而可以理解,在节点发现组件108和代理114之 间传递的命令和响应可通过一个或多个路由器112或类似的组件。
除了代理U4之外, 一个或多个节点202也与本地链路段IIO相关联。仅 仅为了方便起见,图2示出了四个节点202a、 202b、 202c以及202d。应该注
意的是,在IPv6的上下文中,"节点"被认为是一给定计算机可通过其来访
问网络的网卡。因此,图2将计算机204示作包含两个节点202c和202d,这 两个节点可以是插入到计算机204中的两个不同网卡。在某些实现中,各节点 202可分别与唯一的IP地址相关联。在其他实现中,各节点202可作为单个IP 地址被绑定在一起。
当扫描服务器102希望在本地链路段IIO上执行节点发现的时候,节点发 现组件108可向在本地链路段110处的代理114发出地址收获(Address Harvest)命令206。仅仅为了参考方便而非限制,在此处选择了术语"地址收 获"。可以理解,与类似于此处所描述的功能的功能相关联的其他命令可由除 了 "地址收获"以外的标签来标注。
地址收获命令206从节点发现组件108传递到本地链路段110,仅仅为了 方便起见,该命令被标注为地址收获命令206a。代理U4然后可从本地链路段 IIO访问地址收获命令,仅仅为了方便起见,该命令被标注为206b。
在接收地址收获命令206后,代理114向本地链路段110上的所有节点202 发送邻居请求(Neighbor Solicitation)消息208。邻居请求消息208的一个合 适的示例是可被发送到"所有节点"的链路本地多播地址(ff02::l)的、在ICMPv6 类型135下定义的消息,代码0。本地链路段110上的各节点202用邻居通告 (NeighborAdvertisement)消息210来响应。仅仅为了方便起见,图2示出了 分别对应于节点202a、 202b、 202c以及202d的消息210a、 210b、 210c以及 210d。邻居通告消息210的一个合适的示例是在ICMPv6类型136下定义的消 息,代码0。假设各节点202遵守RFC2461 (参照该条),各节点202将用消 息210来响应消息208。
代理114维护在发送消息208之后的合理的时间窗中接收到的所有响应 210的列表。适用的时间窗可被指定为默认值,或者该窗可以被微调或调整来 补偿噪声或高等待时间网络。为了说明清楚起见,各响应210被示为只传递到 本地链路段IIO,然而可以理解,代理114可访问本地链路段IIO上的这些响 应210。
来自于各节点202的消息210提供了各节点202各自的地址212,并且由 代理114来收集。然而,这些地址212是链路本地地址,因为术语"链路本地
地址"是在IPv6的上下文中理解的。在IPv6中,链路本地地址以"%2"(范 围ID2)结束。链路本地地址212可被视作映射到各节点202上的网卡的一类 物理地址。仅仅为了方便起见,对应于所有节点202的链路本地地址在图2中 用线212来共同表示。
链路本地地址212只有在本地链路段110上才具有有效性或意义。链路本 地地址212在用于该给定本地链路段110的路由器112上是无效的或无意义的。 因此,链路本地地址212以其当前的形式下可能不能立即可用于扫描服务器 102。因此, 一旦代理114完成收获链路本地地址212,就将其与一转换链路本 地地址212的请求一起提供给批量解析器214。仅仅为了讨论和说明方便起见, 批量解析器214被示为与代理114分开。在某些实现中,代理114和批量解析 器214可相互集成。
批量解析器214将链路本地地址212转换成相应的站点本地地址218。与 链路本地地址212不同,站点本地地址218在用于给定本地链路段110的路由 器212上是具有有效性或意义的。因此,站点本地地址218被称作"可路由的"。 然而,应该注意,站点本地地址218只在由扫描服务器102管理的企业中才具 有有效性或意义。因此,站点本地地址218在例如因特网上可能不是有效的地 址。
批量解析器214执行地址解析,以获得采用对于每个节点202的IP地址 的形式的站点本地地址218的列表。用于执行此转换的一种合适的名称解析 API的示例是getaddrinfo API,该getaddrinfo API是可由软件开发者实现来遵 守全球网际互连标准的IETF API 。例如,getaddrinfo API可使用 AI—NUMERICHOST作为提示来调用。在任何情况下,getaddrinfo API对每个 节点202返回与该节点202相关联的所有地址。
可过滤所解析的地址来产生扫描服务器102可使用的站点本地IPv6地址 218的列表(范围ID5)。在IPv6中,站点本地地址以"%5"结束。代理114 将站点本地地址218放到本地链路段110上,在本地链路段110上,这些地址 可被扫描服务器102的节点发现组件108访问。
一旦扫描服务器102接收到给定的本地链路段110的站点本地地址218, 它然后可与给定的本地链路段110上的各节点202进行通信。然后,扫描服务
器102可执行涉及管理各节点202的任意数量的操作。仅仅作为示例,扫描服 务器102可在各个节点202上执行端口扫描或安全相关功能。作为另一示例, 扫描服务器102可编译可从中产生网络图的数据。更具体而言,诸如VISI0⑧ 草图绘制软件(可从华盛顿州雷蒙德市微软公司获得)等一些应用程序可向用 户提供"给我的网络绘图"或类似的功能。如果用户选择了此功能,则应用程 序可绘制该用户的网络的图。
描述了图1和2之后,应该注意若干关注点。操作环境100和200允许诸 如IPv6网络等支持相对大的地址空间的网络的上下文中的节点发现。操作系 统100和200使用本地代理114来发现本地链路段U0上的各节点202,而不 是在整个地址空间中使用蛮力搜索。在实际上任何可行的实现中,代理U4的 数量要比例如在一 64位地址空间中的可能的地址的数量少得多。
必微荐
图3示出了用于获得一给定的企业中的可路由地址的列表的处理流程 300。出于讨论的方便和容易,此处结合扫描服务器102、和/或节点发现组件 108,以及操作环境100和200的其他方面来描述处理流程300。然而,可以理 解,处理流程300可在除了扫描服务器102、节点发现组件108、或在操作环 境100和200中所示的其他组件之外的设备或组件上实现,而不背离此处的描 述的精神和范围。
转向更详细的处理流程300,框302发送针对一给定的本地链路段的地址 收获命令。地址收获命令的一个示例是在图2中所示的地址收获命令202。框 302可由扫描服务器102来执行。该地址收获命令可定向到与该给定本地链路 段110相关联的所选代理114。
框304接收与一给定的本地链路段相关联的一个或多个节点的可路由地 址。这些节点的示例包括图2中所示的各节点202,并且本地链路段的一个示 例是图1中所示的本地链路段110。框304可由扫描服务器102来执行。
框306测试是否还有更多的感兴趣的本地链路段110。例如,扫描服务器 102可获得整个网络或其一部分的可路由地址。如果有更多的感兴趣的本地链 路段IIO,则处理流程300取"是"分支308到框310。
框310选择另一个本地链路段110。然后,处理流程300返回到框302来
对此下一个本地链路段110重复框302-306。
从框306,如果没有例如扫描服务器102感兴趣的更多本地链路段110, 则处理流程300取"否"分支312到框314。框314汇编从处理流程300的一 给定迭代中处理的所有本地链路段110中发现的所有网络节点202的可路由地 址列表。给定此网络节点202和对应的可路由地址的列表,扫描服务器102或 另一个组件可通过例如路由器112来直接与所有发现的节点202进行通信。
图4示出了用于生成对应于一给定本地链路段中的一个或多个节点的可路 由地址列表的处理流程400。出于讨论的方便和容易,此处结合代理114、和/ 或节点发现组件108、以及操作环境100和200的其他方面来描述处理流程400。 然而,可以理解,处理流程400可在除了代理114、节点发现组件108、或在 操作环境100和200中所示的其他组件之外的设备或组件上实现,而不背离此 处描述的精神和范围。
更详细地转向处理流程400,框402接收诸如如由节点发现组件108和/ 或扫描服务器102所发出的地址收获命令202等的地址收获命令。框402可由 在一所选本地链路段110处的代理114来执行。
框404发送诸如图2中所示的邻居请求消息208等消息。框404可由在所 选本地链路段IIO处的代理114来执行,并且可发送邻居请求消息使得其可由 诸如图2中所示的各节点202等一个或多个网络节点来接收。
框406接收诸如图2中所示的邻居通告消息210等消息。框406可由在所 选本地链路段110处的代理114来执行,并且各邻居通告消息可分别从诸如图 2中所示的各节点202等一个或多个节点接收。框406还接收对应于各邻居通 告消息的链路本地地址。链路本地地址的示例包括图2中所示的地址212。
框408请求将框406中接收到的链路本地地址映射或转换到站点本地地 址。例如,代理114可提交框408中所示的请求。此请求可由例如以上所参考 的DNS API或getaddrinfo API来满足。在任何情况下,服务此请求的实体可 以是代理114的一部分或与代理114分开。
框410接收并发送对应于在一给定本地链路段110中所发现的所有节点 (例如,各节点202)的站点本地地址的集合。框410提供框402中所接收的 地址收获命令所请求的数据。由框410发送的站点本地地址的示例是图4中所
示的站点本地地址218。由框410发送的站点本地地址是可路由的,并且可由 例如节点发现组件108和/或扫描服务器102来接收。 结论
尽管以对结构性特征和/或方法性动作专用的语言描述了本主题,但要理 解的是,在所附权利要求中定义的主题不一定限于以上描述的具体特征或动 作。相反,以上描述的具体特征和动作是作为实现权利要求的示例形式而公开 的。
另外,关于此处所描述和示出的某些流程图,应该注意,其中所描绘的过 程和子过程可以按与所示出的那些次序不同的次序来执行,而不背离此处的描 述的精神和范围。
权利要求
1.一种系统,包括至少一台扫描服务器(102);至少一个本地链路段(110);耦合到所述本地链路段(110)的至少一个代理(114);被耦合以使所述扫描服务器(102)与所述代理(114)进行通信的至少一个路由器(112);其中,所述代理(114)响应于所述扫描服务器(102)来发现耦合到所述本地链路段(110)的至少一个网络节点(202)、获得对应于所述网络节点(202)的链路本地地址(212)、获得所述链路本地地址(212)所映射到的可路由站点本地地址(218)、以及将所述可路由站点本地地址(218)提供给所述扫描服务器(102)。
2. 如权利要求1所述的系统,其特征在于,所述扫描服务器包括适用于 向所述代理发出命令并从所述代理接收所述可路由站点本地地址的节点发现 组件。
3. 如权利要求1所述的系统,其特征在于,还包括至少一个第二本地链 路段和使所述扫描服务器与所述第二本地链路段进行通信的至少一个第二路 由器,并且还包括耦合到所述第二本地链路段的至少一个第二代理,其中,所 述第二代理响应于所述扫描服务器来发现耦合到所述第二本地链路段的至少 一个第二节点、获得对应于所述第二网络节点的第二链路本地地址、获得所述 第二链路本地地址所映射到的至少一个第二可路由站点本地地址、以及将所述 第二可路由站点本地地址提供给所述扫描服务器。
4. 如权利要求1所述的系统,其特征在于,所述代理适用于从所述扫描 服务器接收地址收获命令,并且适用于响应于该命令向所述网络节点发出邻居 请求消息。
5. 如权利要求4所述的系统,其特征在于,所述代理适用于响应于所述 邻居请求消息从所述网络节点接收邻居通告消息,其中,所述邻居通告消息至 少包括所述链路本地地址。
6. 如权利要求1所述的系统,其特征在于,还包括适用于从所述代理接 收所述链路本地地址并将所述链路本地地址映射到一站点本地地址的批量解 析器组件。
7. —种至少部分地由计算设备实现的方法,所述方法包括命令(302)与本地链路段相关联的至少一个代理去发现耦合到所述本地 链路段的至少一个网络节点;以及从所述代理接收至少一个可路由站点本地地址,其中,所述站点本地地址 对应于所述网络节点。
8. 如权利要求7所述的方法,其特征在于,还包括命令与至少一个第二 本地链路段相关联的至少一个第二代理去发现耦合到所述第二本地链路段的 至少一个第二网络节点。
9. 如权利要求8所述的方法,其特征在于,还包括从所述第二代理接收 至少一个第二可路由站点本地地址,其中,所述第二站点本地地址对应于所述 第二网络节点。
10. 如权利要求7所述的方法,其特征在于,还包括从所述代理接收至少 一个第二可路由站点本地地址,其中,所述第二站点本地地址对应于由所述本 地链路段上的所述代理发现的至少一个第二网络节点。
11. 如权利要求7所述的方法,其特征在于,还包括将多个可路由站点本 地地址汇编成一列表。
12. 如权利要求7所述的方法,其特征在于,命令所述代理包括发出一地 址收获命令。
13. —种至少部分地由计算设备实现的方法,所述方法包括 接收发现耦合到至少一个本地链路段的至少一个网络节点的命令(402); 响应于所述命令,向所述本地链路段发出至少一个第二命令(404); 响应于所述第二命令,从所述网络节点接收至少一条消息(406),其中,所述消息包括所述网络节点的至少一个链路本地地址。
14. 如权利要求13所述的方法,其特征在于,接收命令包括接收地址收 获命令。
15. 如权利要求13所述的方法,其特征在于,发出至少一个第二命令包括向所述本地链路段发送邻居请求消息。
16. 如权利要求13所述的方法,其特征在于,还包括从耦合到所述本地 链路段的至少一个第二网络节点接收至少一条第二消息,其中,所述第二消息 包括所述第二网络节点的至少一个第二链路本地地址。
17. 如权利要求13所述的方法,其特征在于,从所述网络节点接收至少一条消息包括从所述网络节点接收邻居通告消息。
18. 如权利要求13所述的方法,其特征在于,还包括获得所述链路本地 地址所映射到的可路由站点本地地址。
19. 如权利要求18所述的方法,其特征在于,还包括向扫描服务器发送 所述可路由站点本地地址。
20. 如权利要求18所述的方法,其特征在于,获得可路由站点本地地址 包括请求批量解析器组件将所述链路本地地址映射到所述可路由站点本地地 址。
全文摘要
用于发现网络节点和可路由地址的各系统和相关的方法包括扫描服务器、本地链路段、耦合到本地链路段的代理、以及被耦合以使扫描服务器与代理进行通信的路由器。扫描服务器命令代理发现耦合到本地链路段的网络节点。代理响应于来自扫描服务器的命令来发现耦合到本地链路段的网络节点。代理还获得网络节点的链路本地地址,并获得链路本地地址所映射到的可路由站点本地地址。代理将可路由站点本地地址提供给扫描服务器。
文档编号G06F17/00GK101361322SQ200680051534
公开日2009年2月4日 申请日期2006年12月29日 优先权日2006年1月23日
发明者L·R·道 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1