EUI-64 如何处理 MAC 地址冲突?

EUI-64 如何处理 MAC 地址冲突?

IPv6 中的 IP 地址生成使用 EUI-64,这是一种基本上使用 MAC 地址来计算地址主机部分的技术。只要它用于链路本地地址,这似乎没问题,但您也可以将其设置为使用 EUI-64 自动生成全局单播地址的主机部分。

我想知道如果两个接口具有相同的 MAC 地址会发生什么?

答案1

如果接口属于不同的链路(即它们在第 2 层上不相互联系),则这不是问题。常规 IP 路由是针对整个 128 位地址进行的,而不仅仅是针对接口标识符,因此不同网络上的机器完全可以使用相同的接口 ID。例如,数千台主机手动配置了以相同结尾的地址:0:0:0:1

如果两个接口相同链接(例如同一个以太网)具有相同的 MAC 地址,从 EUI-64 生成其 IPv6 地址的主机将在重复地址检测(这在 IPv6 中是强制性的)期间检测到冲突,并将该地址标记为不可用。

笔记IPv6 长期以来一直在逐步淘汰使用 EUI-64 来生成地址,转而采用RFC 7217 “不透明”接口标识符使用 RFC 7217 的 IPv6 实现在生成接口 ID 时使用唯一的种子,因此通常不会发生冲突。

但除了 IPv6 之外,实际的 2 层网络会因重复的 MAC 地址而非常混乱。现代以太网不是广播网络 - 相反,以太网交换机和网桥会跟踪在哪些物理端口上看到的 MAC 地址,并且交换机每次只会通过一个端口(最后看到该地址的端口)发送以太网帧。结果是所有协议都会看到数据包丢失,因为以太网帧被传送到了错误的设备,不管他们使用的 IP 地址。

答案2

IEEE 保证 MAC 地址是全球唯一的。MAC 地址的前半部分是“组织唯一标识符”(OUI),仅分配给一个供应商,并且每个供应商都必须确保他们永远不会重复使用 MAC 地址的后半部分。当供应商发货超过 2^24(约 1680 万个)以太网类接口时,他们只需请求一个额外的 OUI。

由于 EUI-64 是以保留唯一性的方式从 MAC 地址派生而来的,因此不会发生冲突。

临时/隐私 IPv6 地址更令人担忧,因为其中的主机部分是随机生成的。但是,它是一个 64 位字段,同一 LAN 上的两台主机从 2^64 中随机挑选出相同地址的可能性极低,除非它们的 PRNG 非常糟糕。

相关内容