假设有两个主机通过一个你不认识的黑匣子连接。如何在不使用任何附加设备或主机的情况下识别该黑匣子是集线器、交换机、路由器还是网关?
还有一件事:您无法对黑盒执行任何操作。您无法对黑盒做任何事情。您只能访问两台主机。
答案1
如果两台主机具有相互连接性...
如果以下任一情况属实,则黑盒一定是路由器:
- 两台主机拥有位于不同 IP 网络中的 IP 地址。
- 来自一个主机的广播 ping(即:255.255.255.255)不会增加另一个主机上的流量计数器。
- 任一主机的 ARP 表中都没有另一主机的条目。
否则,黑匣子将充当交换机或集线器的功能。
如果以下任一情况属实,则黑匣子一定是开关:
- 两个主机的 NIC 均配置为全双工,并且它们的接口计数器未显示冲突或其他错误。
- 在任一主机上运行的 tcpdump 或其他流量监控应用程序显示最多一个带有另一台主机的目标 MAC 地址的单播以太网帧(如果有)。
- 流量监控程序永远不会检测到两个本身未参与的其它主机之间的双向单播交换。
- 从一个主机到另一个主机的泛洪 ping 不会完全破坏连接。
如果满足以下条件,则黑匣子必定是一个集线器:
- 流量监控程序可以检测到另外两个主机之间的双向单播交换。
答案2
仅给出两个主机:
- 集线器或非管理型交换机将大多无形的。
- 托管交换机和路由器的接口上会有一个 MAC 地址。如果是 IP 网络,这些设备将在 Traceroute 中显示为“跃点”。从 MAC 中,您可以获取有关制造商的一些信息
我不确定您说的“网关”是什么意思。我的理解是网关只是路由器扮演的一个角色。在这种情况下,路由器的检测方式与上述相同。
如果您的管理型交换机和路由器具有 SNMP,您可以查询这些设备以查找有关设备品牌/型号/类型的大量数据。
我上面说“几乎”不可见是因为理论上数据包传输中只增加了微小的延迟。但是,如果只有两台主机,这种延迟几乎不可能被检测到。
答案3
我假设
- “路由器或网关”是一个术语。它们实际上是指同一件事。
- 你可以看看黑匣子,拔掉里面的电线
中心将:
- 有多个端口
- 有碰撞 LED
- 非千兆(没有千兆集线器这种东西)
- 在第 2 层基础上将一个端口进入的流量复制到所有其他端口。
交换机将:
- 有多个端口
- 没有碰撞 LED
- 如果之前没有见过目标 MAC 地址,则在第 2 层的基础上将一个端口进入的流量复制到所有其他端口。
- 如果它知道目标 MAC 地址位于哪个端口,则在第 2 层的基础上将一个端口进入的流量复制到特定的其他端口。
路由器将:
- 通常有两个接口。具有多个 LAN 端口的路由器实际上是内置交换机加路由器的组合。
- 在连接到每个接口的两个独立网络之间以第 3 层为基础转发流量。由于是第 3 层,因此每个接口都需要一个 IP + 子网掩码。
- 通常不转发广播流量。
所以实际上只要看一下设备,你就可以大致知道它是什么。
如果黑匣子完全未知,并且无法插入/拔出电线,则可以推断出如果系统已经启动并运行。
- 如果您有两台主机和一个黑匣子,并且两台主机位于同一子网且正在通信,则该设备是交换机或集线器。如果两台主机位于不同的子网,则该设备是路由器。
- 如果它是一个交换机或集线器,并且您以千兆速度工作,那么它就是一个交换机。
- 要确定它是交换机还是集线器,你需要
- 将主机A和B的网卡都置于混杂模式。
- 让 A 正常向 B 发送流量,这将导致任何交换机学习 MAC 地址。
- 让 A 发送指向非 B 的 MAC 地址的流量。有各种工具和方法可以做到这一点。如果您随后在 B 上看到流量,则说明您使用的是集线器,如果没有,则说明您使用的是交换机。
答案4
今天在一次采访中,一位先生问了我同样的问题。
- 尝试安装并运行高级 IP 扫描器,它将告诉您哪些设备以及 IP 地址连接到接口。
- 通过查看 IP 地址、制造商详细信息和 MAC 地址,可以确定设备。
- 使用命令提示符,您可以从 PC-A 到 PC-B 进行 ARP,如果在 ARP 表中看不到该条目,那么它就是路由器,如果看到那么它可能是交换机或集线器。