【问题标题】:Locate Computer in Network topology在网络拓扑中定位计算机
【发布时间】:2015-06-17 02:12:56
【问题描述】:
我问自己好几天了,一直找不到明确的答案。
想象一个有几个房间的网络,每个房间都有自己的(第 2 层)交换机。
然后将它们以星形拓扑连接到另一个交换机,然后再连接到路由器。
所有客户端都从同一范围内获取 IP,所有客户端都在同一子网和同一 VLAN 中。
你知道一种方法如何确定,哪个客户端连接到哪个交换机,而不涉及交换机。例如,仅当技术和机制发生在客户端时。
目标是能够绘制网络中客户端分布的自动地图,但正如我所说,不涉及交换机(例如访问它的 API 或类似的东西)。
问候
我
【问题讨论】:
标签:
networking
location
client
topology
【解决方案1】:
恐怕你是对的:一般来说,在“正常”网络中(这意味着:在只有标准交换机和路由器的网络中),没有办法这样做。
只有在 Switch 被托管的情况下,您才能编写一个脚本来轮询 Switch 的 arp 表,但这当然不适用于非托管 Switch。
【解决方案2】:
我意识到没有办法做到这一点。
问题是,在 OSI 模型的第 2 层上工作的普通网络交换机对于 traceroute 等工具是不“可见的”。
如果您想跟踪路由到,比如说:google.com,您的跟踪路由应用程序会向您的默认网关发送一个 TTL 为 1 的数据包。然后,您的默认网关会降低 TTL 并丢弃该包,因为它的 TTL 已达到 0。
因此,它会回答您的计算机,并且您的计算机可以记录,从它收到第一个答案的地方开始。
然后它再次向 google.com 发送一个包,但这次的 TTL 为 2,并且该过程从 start 开始。
现在你不能用交换机做你可以用路由器做的事情,因为(正常的第 2 层)交换机不知道 IP...
思科提供第 2 层跟踪路由实用程序,但这仅限于思科生态系统,并且仅适用于思科硬件。
所以,我担心答案是,一般来说这是不可能的。