![根据 IPv6 地址识别本地网络上的设备](https://linux22.com/image/1548741/%E6%A0%B9%E6%8D%AE%20IPv6%20%E5%9C%B0%E5%9D%80%E8%AF%86%E5%88%AB%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E8%AE%BE%E5%A4%87.png)
那一天™ 终于到来了。到目前为止,我一直避免使用 IPv6,但我的无知状态必须结束。
我的 ISP 通知我,我网络上的一个设备对最近针对 Avalanche 僵尸网络的执法行动中下线的其中一个 C&C 服务器执行了 DNS 查找。我需要找到该设备并处理它,因此我启用了 DNS 服务器上的日志记录。四天后,终于发出了匹配的 DNS 查找请求,但令我沮丧的是,该请求来自地址fe80::113d:d91e:e685:943b
。糟糕。我对 IPv6 还是个新手,而且我的 60 多个节点网络上的一台机器是恶意软件僵尸网络的一部分。
我运行tracert
并确定它位于本地链接上并且当前在线:
Tracing route to fe80::113d:d91e:e685:943b over a maximum of 30 hops
1 9 ms <1 ms 1 ms fe80::113d:d91e:e685:943b
对于 IPv4 设备,我可以查看 DHCP 租约以获取设备名称。如果做不到这一点,我会 ping 它,然后运行arp -a
以获取其 MAC 地址,这至少可以告诉我制造商。但是这个网络没有 IPv6 DHCP 服务器,arp 似乎不支持 IPv6。
我尝试了 IPv6 速成课程,并了解到fe80
前缀表示地址是链路本地的,我可以从该地址推导出 MAC 地址。我尝试过并获取 MAC 13:3d:d9:85:94:3b
。 没有一个 OUI 查找工具能够识别它,并且它没有出现在我的 IPv4 DHCP 租约中。
如何确定我的网络上哪个设备具有此 IPv6 地址?
我的服务器和我进行故障排除的机器都运行 Windows。
答案1
netsh int ipv6 show neighbors
令我高兴的是,我发现它可以告诉我本地链路上设备的 MAC 地址,就像这样arp -a
:
Interface 10: Local Area Connection
Internet Address Physical Address Type
-------------------------------------------- ----------------- -----------
<redacted>
fe80::113d:d91e:e685:943b 4c-72-b9-d2-b5-5d Reachable
<redacted>
然后,我可以将物理地址与 DHCP 服务器上的 IPv4 租约进行比较,并获取有问题的设备的 NetBIOS 名称。非常简单。
我仍然不明白为什么这个 MAC 地址会导致这个特定的 IPv6 地址。根据这个在线转换器,其链接本地 IPv6 地址应为fe80::4e72:b9ff:fed2:b55d
。但这是另一个问题...