谁可以控制为设备制造商分配 MAC 地址?

网络工程 网络
2021-08-01 16:46:24

据我所知,每个 MAC 地址对于每个设备(如服务器、计算机、防火墙、交换机和路由器、代理等)都是唯一的。所以我的问题是:谁负责将这些 MAC 地址分配给设备制造商?

2个回答

更新

IEEE分配MAC地址块的制造商。

IEEE 分配最左边(最重要)的数字。IEEE 可以根据制造商的需要分配不同大小的块:

  • MA-L(以前称为 OUI):最左边的 24 位
  • MA-M:最左边的 28 位
  • MA-S:最左边的 36 位

其余的位由制造商分配。

感谢@jcaron 指出这一点。

据我所知,每个 MAC 地址对于每个设备都是唯一的,例如服务器、计算机、防火墙、交换机和路由器、代理等。

这不一定是真的。MAC 地址只需要在单个第 2 层广播域内是唯一的如果两个不同广播域中的两个设备具有相同的 MAC 地址,那是完全没问题的。这也意味着,如果完全不同网络中的设备(例如以太网设备、蓝牙设备和 FireWire 设备)具有相同的 MAC 地址,则完全没有问题。

我们通常说 MAC 地址在全球范围内唯一的原因是,使它们在全球范围内唯一是保证它们在广播域内唯一的一种简单方法。否则,在例如从 WiFi 移动到另一个 WiFi 或从一个网络拔下设备并将其插入另一个网络时,您将始终必须非常小心。

所以我的问题是:谁负责将这些 MAC 地址分配给设备制造商?

首先,我们需要区分通用管理地址本地管理地址

以太网 MAC 地址的第一个八位字节的第二个最低有效位是U/L位:

xxxxxx0x-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
      ↑
Universally Administered

xxxxxx1x-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
      ↑
Locally Administered

只有当该位为 0 时,供应商才负责确保以太网 MAC 地址是唯一的。如果该位为 1,则本地网络管理员负责地址的唯一性。

下一位也有特殊含义,它区分了标识单个节点单个地址和寻址多个节点的组的地址。它被称为I/G位:

xxxxxxx0-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
       ↑
   Individual

xxxxxxx1-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
       ↑
     Group

因此,单个节点的通用管理地址将如下所示:

xxxxxx00-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
      ↑↑

这意味着还剩下 46 位来创建唯一地址。这 46 位分为两部分:组织唯一标识符设备标识符OUI 由 IEEE 管理。一个组织只需支付少量费用即可向 IEEE 注册一个 OUI,然后这个 OUI 就归该组织“拥有”。不允许其他组织使用此 OUI 生成 MAC 地址。

这意味着 IEEE 负责确保 OUI 是唯一的,每个组织都有责任确保 OUI 中的设备 ID 是唯一的。换句话说:保证 MAC 地址的唯一性的方式与保证电话号码、互联网域名、互联网邮件地址、IP 地址等的唯一性的方式相同:通过拥有一个单一的全球注册中心(电话号码的 ITU,IANA 的IP 地址等),它将地址空间分成不相交的非重叠段,然后将管理这些段的责任委托给一个组织,负责每个段。

IEEE 为自己设定的明确目标是 MAC 地址应该在全球和时间上至少在 100 年内是唯一的。

OUI 长 24 位,有 22 个可用位(见上文),这意味着最多可以有约 420 万个组织。(但是,一些 OUI 是为 IEEE 内部使用、功能地址保留的。)

到现在为止我只谈过 MAC 地址,但从技术上讲,IEEE 只谈过Extended Unique Identifiers,更准确地说,IEEE谈过EUI-48 和 EUI-64。这些 EUI 可用于 MAC 地址以外的目的,因此 IEEE 避免使用该名称。

EUI-48 的长度为 48 位,这意味着对于大约 420 万个 OUI 中的每一个,都有大约 1670 万个设备 ID。EUI-64 的长度为 64 位,这意味着对于每个 OUI,大约有 700 亿个设备 ID。

以太网、WiFi、令牌环、令牌总线和许多其他较旧的网络协议使用 EUI-48 MAC 地址。所有较新的协议,例如 FireWire、Infiniband 和整个 IEEE 802.15.4 系列(ZigBee、6LoWPAN、Thread、SNAP 等)都使用 EUI-64 地址。IPv6 报头中的第 2 层地址字段还允许使用 64 位,以实现与此类协议的更好互操作性。IEEE 强烈反对使用 EUI-48 MAC 地址来开发新协议,因为他们担心地址短缺与 IPv4 类似。

如果这还不够令人困惑,实际上EUI-48三个不同的注册表,它们被称为

  • MAC 地址大 (MA-L)
  • MAC 地址介质 (MA-M)
  • MAC 地址小 (MA-S)

我上面描述的实际上只是MA-L注册表。MA-M 注册表为一个组织分配一个 28 位 ID,允许它生成多达约 100 万个设备 ID,而 MA-S 注册表为一个组织分配一个 36 位 ID,允许它生成 4096 个设备 ID。

但是请注意,分配给使用 MA-M 和 MA-S 的组织的 ID不是OUI。OUI 实际上允许组织生成 EUI-48 和 EUI-64,并且还在 IEEE 的其他几个地方使用。而从 MA-M 或 MA-S 注册表分配的 ID允许您从该注册表生成 EUI-48。

IEEE 确保 MA-M 或 MA-S ID 的高 24 位不对应于有效的 OUI;这些 OUI 保留供 IEEE 内部使用。

但是,所有这些都取决于流程和执行这些流程的人员。我知道至少有两种情况这些过程失败了。

在一个案例中,一家廉价网络芯片供应商决定在不同大陆重复使用 MAC 地址,认为没有人会将中国和非洲的网卡插入同一个网络。正巧,一个德国大学的中国和非洲交换生,正好是学生宿舍的室友,让网络团队头疼,直到他们发现他们的电脑确实有相同的MAC地址。

在另一个案例中,一家小型专业联网设备制造商通常负责分配MAC地址的所有人员,同时休育儿假、病假、假期和休假,而代他们填写的人没有接受过系统使用方面的适当培训。结果,构建了大约 40 个具有相同 MAC 地址的设备。而且由于它们是同时建造的,他们坐在同一个堆栈的仓库中,所以当一个更大的订单进来时,一个客户被运送了12台具有相同MAC地址的设备,这给他们带来了很多乐趣。通过包含受影响序列号和新 MAC 地址表的固件更新,该问题很快得到了解决,并在启动时修补了 MAC 地址。