为什么我的路由器的IP和IPv6事务的MAC地址不同?


5

今天我使用的是tcpdump,我注意到我的计算机正在使用具有特定MAC地址的IPv6流量,这是我使用nmap或arping无法与IP匹配的。在仔细查看tcpdump日志之后,我发现它是我的路由器使用的另一个MAC地址,但专门用于IPv6流量。

22:49:01.936830 90:0d:cb:ff:31:91 (oui Unknown) > 33:33:00:00:00:01 (oui Unknown), ethertype IPv6 (0x86dd), length 158: fe80::920d:cbff:feff:3191 > ip6-allnodes: ICMP6, router advertisement, length 104

为什么路由器会为IPv6提供不同的MAC地址?


这是笔记本电脑吗?
MariusMatutiae 2014年

我正在使用笔记本电脑
Conor Patrick

3
这里的两个MAC地址中哪一个是您要求的“特殊”地址?90:0d:cb:ff:31:91是ARRIS Group Inc.制造的设备的MAC; 33:33:00:00:00:01是链路层多播地址。
Dubu

Answers:


10

这是隐私/安全问题的结果。在IPv6中,在无状态地址自动配置 ADDRCONF下,节点生成自己的公共地址,而不需要DHCP服务器。该地址的低64位是从IEEE标识符生成的,如果可用,则相当于第2层MAC地址。如果这是整个故事,则可以通过采用传统的数据挖掘技术,通过IPv6地址的低64位来跟踪任何移动设备的位置和通信。

这就是为什么我问你是否在笔记本电脑上看到这个。

RFC 3041RFC4941解决了这种隐私/安全问题,它描述了生成随机接口标识符的两种策略(存在或不存在永久存储)。

您可以使用以下控件在Linux和Mac中控制此功能:在Linux中,

sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
sysctl net.ipv6.conf.eth0.use_tempaddr=2

等等,在Mac中

sysctl -w net.inet6.ip6.use_tempaddr=1

这种方案的优点是它不仅可以隐藏您的硬件识别,还可以经常自动地更改(随机)识别。

有关大多数操作系统中的隐私寻址的更多信息,可以阅读 这个优秀的PSU页面

编辑:

一些系统,如Arch Linux,已经转移到sysctl的新配置。在这种情况下,您可以通过在文件/etc/sysctl.d/40-ipv6.conf中将以下条目更改为这些值来执行上述配置:

 net.ipv6.conf.all.use_tempaddr = 2
 net.ipv6.conf.default.use_tempaddr = 2
 net.ipv6.conf.eth0.use_tempaddr = 2

编辑2:

@slubman正确地指出,在Linux中,使用的正确选项是2,而不是1(这是我在我的Debian上所拥有的),因为1确实允许生成隐私地址,但保持Autoconf为首选。


1
幸运的是,我在Linux和Windows中都是双语的。从管理命令提示符:netsh interface ipv6 set privacy enabled。有关其他设置的详细信息,请参阅此链接set privacy而不仅仅是启用和禁用它。(顺便说一下,我检查过的机器默认启用了它)
Scott Chamberlain 2014年

AFAIK,在Linux上默认情况下实际使用隐私地址,你必须将use_tempaddr值设置为2.你可以通过在那里搜索use_tempaddr找到更多信息:kernel.org/doc/Documentation/networking/ip-sysctl.txt
slubman

@slubman你是对的,我感到困惑的是,我写这个笔记本电脑没有IEEE标识符,哈哈。
MariusMatutiae 2014年

1
也许我在这里遗漏了一些东西,但隐私地址出现在问题的哪里?我只看到一个IPv6地址(fe80::920d:cbff:feff:3191),它是一个普通的,EUI-64派生的链路本地地址,与MAC地址(90:0d:cb:ff:31:91)完全匹配。唯一的其他MAC地址是链路层组播33:33:00:00:00:01ip6-allnodes地址。这应该与隐私扩展有什么关系?
Dubu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.