根据 IPv6 地址识别本地网络上的设备

I s*_*ica 4 networking ipv6

The Day™ 终于到来了。到目前为止,我一直避免使用 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
Run Code Online (Sandbox Code Playgroud)

使用 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。

I s*_*ica 6

感谢对另一个超级用户答案的评论,我发现了命令:

netsh int ipv6 show neighbors
Run Code Online (Sandbox Code Playgroud)

令我高兴的是,我发现它告诉我本地链接上设备的 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>
Run Code Online (Sandbox Code Playgroud)

然后,我能够将物理地址与我的 DHCP 服务器上的 IPv4 租约进行比较,并获得违规设备的 NetBIOS 名称。十分简单。


我仍然不明白为什么这个 MAC 地址会导致这个特定的 IPv6 地址。根据这个在线转换器,它的链接本地IPv6地址应该是fe80::4e72:b9ff:fed2:b55d。但这是另一个问题...

  • 无法将链路本地地址转换为 MAC 地址的原因是它使用较新的算法来创建地址。原始算法确实使用了 MAC 地址,并且可以使用地址后半部分中间的 `ff:fe` 位来识别此类地址。以这种方式使用 MAC 地址被认为不利于隐私,因此更新的算法会将地址随机化。 (3认同)