RouterOS 中有一个命令/tool ip-scan
,主要用来进行网络扫描。它工作起来非常高效,但是,它的行为有些让我无法理解。
对于某些网络,答案是这样的(MAC地址被混淆了):
> tool ip-scan address-range=192.168.26.0/24
Flags: D - dhcp
ADDRESS MAC-ADDRESS TIME DNS SNMP NETBIOS
192.168.26.2 FE:02:4F:2C:47:06
192.168.26.9 DC:13:75:57:7A:2A 186ms
192.168.26.254 254ms
192.168.26.28 98:35:1C:62:D0:6B 189ms
192.168.26.12 76:46:E1:C2:03:5B 278ms
192.168.26.11 54:57:83:05:36:A0 419ms
192.168.26.31 32:68:DA:E4:69:EB 202ms
192.168.26.19 10:79:8B:99:9C:DF 293ms
192.168.26.27 FE:8A:7A:B1:CF:FF 291ms
192.168.26.32 DC:9B:EE:25:F2:C8 279ms
192.168.26.33 BA:AC:9F:08:25:FB 205ms
192.168.26.60 98:BD:46:B3:58:7C 308ms
192.168.26.87 76:CE:15:20:8B:F9 271ms
192.168.26.14 54:DF:4B:5C:BE:9B
192.168.26.91 386ms
192.168.26.29 10:F1:C6:2F:14:8F
192.168.26.8 FE:02:03:1D:47:96
192.168.26.20 DC:13:6D:43:7A:A3
192.168.26.100 BA:24:6B:31:AD:D7 328ms
192.168.26.101 98:35:3A:B8:D0:7B 577ms
192.168.26.99 76:46:53:E8:03:79 578ms
192.168.26.16 54:57:F9:60:36:8B
192.168.26.124 32:68:34:F9:69:E8 454ms
192.168.26.40 10:79:7D:D4:9C:A0
192.168.26.41 FE:8A:0F:E0:CF:BA
192.168.26.93 DC:9B:53:E1:F2:77
192.168.26.154 514ms
192.168.26.200 98:BD:5D:C5:58:6A 221ms
192.168.26.15 76:CE:69:8D:8B:F4
192.168.26.1 54:DF:44:D5:BE:A8
192.168.26.7 32:E0:E8:27:E1:FA
-- [Q quit|D dump|C-z continue]
此输出为已解决,所以在一段时间内什么都没有改变,比如一分钟(我暂停了它以便能够复制)。
在这种情况下,RouterOS 是 192.168.24.254。它直接在网络中。没有“太智能”的设备,没有代理 arp 等,只有交换机和无线接入点。
问题是:为什么有些条目没有 MAC 地址(.254 除外)?它如何知道某个 IP 地址已被占用,而无需知道其 MAC 地址(例如从 ARP 回复或它发送的其他数据包中)?此外,为什么有些条目缺少 RTT 延迟字段,而其他条目却能成功检测到?