首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定两个设备是否连接在网络中?

问如何确定两个设备是否连接在网络中?
EN

Unix & Linux用户
提问于 2011-03-11 12:19:11
回答 3查看 1.9K关注 0票数 5

是否有一个免费的Linux软件来确定两个网络设备是否连接?php类也可以是好的..。

我想画一下网络拓扑。我可以用zenmap确定网络中的设备(它将结果保存到文件中),但我不知道哪个设备连接到哪个设备.(zenmap也可以绘制拓扑,但不会将其保存到文件中)

EN

回答 3

Unix & Linux用户

发布于 2011-06-09 17:39:12

听起来你在尝试“映射”一个网络,从对“存在”的零知识转向对从给定点可以到达的每一个设备的完全了解。

像ethtool这样的Linux命令可以告诉您您的接口是否物理连接到其他东西。这是个很好的开始。当然,如果您连接的是路由器或交换机,那么您还有其他的工作要做。

这其实是一个深而复杂的问题。除了ping之外,没有一个公认的“嘿,我在这里”的协议,这通常是出于安全原因而禁用的。

但是,接下来要处理的是您当前的子网掩码。这应该可以告诉您IP地址的范围,在没有该接口的情况下可以进行通信。扫描子网的每一个可能的IP地址通常是最可靠的方法(使用像nmap这样的工具来完成它)。最好是存在一个协议来支持这个目的,比如ping、用于Cisco设备的CDP或用于Windows /XP系统的LLTD。

如果您处理的是多个LAN路由器,则可以使用FIB ( route或ip route show命令)中的路由来了解其他可以间接访问的子网。然后,您有更多的已知可达IP范围来扫描。

然而,如果我们谈论的是整个互联网,或者一个非常大的子网,那么这就变得不切实际了。在这种情况下,可行的解决方案通常是依赖“发现”或“会合”服务,如IGMP或Bonjour。然后,你就只能知道那些希望被了解的设备了。但这比试图通过端口扫描整个互联网要好。

票数 3
EN

Unix & Linux用户

发布于 2011-03-11 12:21:42

traceroute可能是一个很好的开始:它显示了您自己的主机和远程设备之间的跳数。除了在其中一个遥控器上运行traceroute之外,我不知道如何获取这类信息。

票数 1
EN

Unix & Linux用户

发布于 2011-03-11 13:38:54

如果设备列表包括IP地址和网络掩码,则可以通过为每个子网创建一个顶点、为每个设备创建一个顶点以及在设备列表中的每个(子网、设备)之间创建一个边缘,从而创建一个基本的第三层图。

这将导致一个纯粹的层-3拓扑,这可能是一个不错的开端。另外,如果您的网络有点复杂,这将不能很好地工作。例如,如果您有重复或重叠的子网(可能与NAT或MPLS ),那么假设某个特定IP范围内的所有设备都连接在一起可能不是真的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/9074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档