当一个应用程序出去,发现networking上的所有设备,然后将这些信息发送回某种资产pipe理系统,这是如何工作的? 我知道什么时候有一个EXE文件或其他程序通过某种脚本在PC和服务器上运行。 但是,设备上没有运行的软件如何find设备的详细信息?
大多数“发现”软件使用SNMP来定位设备。 一些软件使用各种方法(标题消息识别,TCP / IP堆栈指纹识别,在MAC OID上查找)进行“指纹识别”以获得更多信息。 假设您为“发现”提供了必要的安全证书,则可以使用WMI从Windows机器收集信息。
我怀疑你最关心的主要是SNMP。 你可以查看维基百科链接,所以我不会在这里发表。 如果您将设备上的社区名称保留为默认值(对于读取社区而言通常是“公开”),那么软件似乎可以“学习”关于设备的东西似乎相当神奇。 实际上,它只是查询一个文档化的界面。
但是,设备上没有运行的软件如何find设备的详细信息?
实际上,SNMP正在这些系统上运行。 这就是信息如何传递给你的监控软件。 SNMP是设备信息共享的公认标准。 监控程序将查找您的设备(在发现过程中),然后尝试连接到每个设备上的SNMP服务。 一旦连接监控软件,使用一小组命令:SET,GET,GETNEXT等来查询设备的MIB。
通过反复查询,graphicsbuild立在监控应用程序上。 监控应用程序(Zenoss,Munin,Nagios,SCOM等)使用数据库和报告结构来根据您的设置进行跟踪和提醒。
有很多方法可以做到这一点。 与前面提到的SNMP一样,在CDP(在Cisconetworking中)和LLDP(类似于CDP,但是多供应商,在设备中还没有广泛支持)的协议中,将允许networking设备来检测连接到它们的设备,然后可以通过诸如SNMP或login设备来查询设备。
CDP可用于提供SNMP发现的一个示例是在交换networking中。 如果您只是走开关的交换机的ARP表,以查找所有的邻居,你只会发现最近发送或接收IPstream量的设备。 在纯粹的二层交换networking中,交换机间IPstream量不会太多(如果有的话),所以这个表格将是不完整的。 同样,如果您走过交换机的MAC地址表,您将只能通过转发链路发现设备。 即使没有IPstream量,CDP也会发现邻居交换机,并且还会在处于阻塞状态的端口上检测邻居,以便您可以发现所有链路。
还有一些工具,如nmap,它将扫描一系列地址,并可以对接收到的回复进行一些诊断,以猜测设备的操作系统。
大多数方法不是完全自动化的,需要定义一些“种子”主机才能开始发现。