EUI-64和以太网帧头的混淆

时间:2018-12-31 19:43:15

标签: networking ip standards ipv6 ethernet

以太网帧头定义为:

struct ethernet_header {
  uint8_t dest_address[6];
  uint8_t source_address[6];
  uint16_t length_or_ethertype;
};

我的理解是6字节的MAC地址格式现在正式称为EUI-48。我还读到还有另一种格式,称为EUI-64,它描述了一个8字节的MAC地址。

但是我对EUI-64的目的感到非常困惑。从表面上看,EUI-64的明显原因是当我们在地球上有2 ^ 48个以上的唯一设备时要处理地址耗尽。但是,我可以找到的所有关于EUI-64的信息都似乎只是在谈论与IPv6有关的信息。也就是说,EUI-64提供了一种将48位MAC地址映射到IPv6地址的方法。

但是,除了IPv6之外,EUI-64还有其他目的吗? EUI-64是纯粹是为了解决与IPv6有关的问题而发明的,还是为了应对最终用完的48位MAC地址而发明的?

我认为EUI-64主要是为了处理最终用完的48位MAC地址而设计的-这意味着将创建许多具有64位MAC地址的新硬件设备(或扩展唯一标识符,以正式使用如果是这种情况,那么任何现有的网络设备(例如路由器和交换机)将如何分辨出源地址和目的地址为48位的数据包与64位地址为目的的数据包之间的区别。位和目的地址是什么?

由于以太网报头的前两个字段是2个48位源/目标地址,所以我们不能仅用64位源/目标地址替换这些字段,因为检查该数据包的任何软件都不知道如何分辨差异,因为地址前没有“类型”或“版本”字段。 (例如,以IP标头的形式方便地将4位版本字段作为标头的前4位,因此我们可以轻松地区分IPv4和IPv6。)

所以我的问题是:

  1. EUI-64是要解决48位MAC地址耗尽的问题,还是 仅用于将MAC地址映射到IPv6地址?

  2. 如果要使用EUI-64解决最终的48位地址耗尽,如何 网络软件可以区分以太网数据包吗 包含48位和64位MAC地址?

1 个答案:

答案 0 :(得分:2)

由于EUI-48在24位OUI块中分配,因此地址空间不足。尽管如此,它仍然并将继续用于非常流行的以太网和WiFi网络。

EUI-64是EUI-48的超集,适用于“新”应用程序。目前,它用于Firewire,ZigBee,并以EUI-48的形式用于IPv6。