自动发现如何工作?

自动发现如何工作?

当应用程序出去发现网络上的所有设备,然后将信息发送回某种资产管理系统时,它是如何工作的?我知道当有 EXE 文件或其他程序通过某种脚本在 PC 和服务器上运行时。但未在设备上运行的软件如何找到有关设备的详细信息?

答案1

大多数“发现”软件使用 SNMP 来定位设备。其中一些软件使用各种方法(横幅消息识别、TCP/IP 堆栈指纹识别、MAC OID 查找)进行“指纹识别”以获取更多信息。假设您为“发现”提供了必要的安全凭据,它可以使用 WMI 从 Windows 计算机收集信息。

我怀疑您最感兴趣的最终还是 SNMP。您可以查阅 Wikipedia 链接,所以我就不在这里发布了。如果您将设备组上的社区名称保留为默认值(通常为已读社区的“公共”),软件似乎可以“学习”有关设备的信息,这似乎很神奇。实际上,它只是查询已记录的界面。

答案2

但是,未在设备上运行的软件如何找到有关设备的详细信息?

实际上,这些系统上运行着 SNMP。这就是信息传递给监控软件的方式。SNMP 是设备信息共享的公认标准。监控程序会查看您的设备(在发现期间),然后尝试连接到每个设备上的 SNMP 服务。连接后,监控软件会使用一组命令:SET、GET、GETNEXT 等来查询设备的 MIB。

通过反复查询,监控应用程序可以生成图表。监控应用程序(Zenoss、Munin、Nagios、SCOM 等)使用数据库和报告结构来根据您的设置进行跟踪和警报。

答案3

有很多方法可以做到这一点。除了前面回答中提到的 SNMP 之外,还有 CDP(在思科网络中)和 LLDP(类似于 CDP,但多供应商。尚未在设备中得到广泛支持)等协议,这些协议将允许网络设备检测与其连接的设备,然后可以通过 SNMP 或登录设备等方法进行查询。

交换网络中是可以使用 CDP 来补充 SNMP 发现的一个例子。如果您只是遍历交换机的 ARP 表来查找其所有邻居,那么您将只能发现最近发送或接收 IP 流量的设备。在纯 L2 交换机网络中,交换机间 IP 流量不会太多(如果有的话),因此该表将不完整。同样,如果您遍历交换机的 MAC 地址表,您将只能发现转发链路上的设备。即使没有 IP 流量,CDP 也会发现邻居交换机,并且还会检测处于阻塞状态的端口上的邻居,因此这将允许您发现所有链路。

还有一些工具,例如 nmap,它将扫描一系列地址并对收到的答复执行一些诊断,以猜测设备的操作系统。

大多数方法都不是全自动的,需要定义多个“种子”主机来开始发现。

相关内容