![为什么不是所有 MAC 地址都是随机分配的?](https://linux22.com/image/1367759/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E6%98%AF%E6%89%80%E6%9C%89%20MAC%20%E5%9C%B0%E5%9D%80%E9%83%BD%E6%98%AF%E9%9A%8F%E6%9C%BA%E5%88%86%E9%85%8D%E7%9A%84%EF%BC%9F.png)
在 48 位的情况下,这似乎相当安全:您需要网络上的 751 个设备才能实现 1/10 亿的碰撞概率,而 751 个完全具有第 2 层连接的设备很少见 - 通常在某处之间有一个第 3 层路由器。还有一个交换机其 CAM 表限制为 25000 个条目如果使用接近容量的情况,将无法支持超过 1/100 万的碰撞概率。
当前 MAC 地址管理方案的动机是什么,它解决了随机 MAC 地址无法解决的问题?
答案1
因为 IEEE 知道,不能相信所有供应商都能正确提供伪随机数生成器。
此外,因为当 48 位 MAC 地址首次被使用时,比如在 20 世纪 70 年代,在每个 NIC 中放置一个 PRNG 的成本太高,并且可能没有足够好的熵源作为种子。
请注意,以太网上的网络启动自早期就已存在,因此您需要 NIC 硬件能够在主机启动之前完成所有需要做的事情。因此无法访问主机的处理器功能或实时时钟(例如 PRNG 种子)。
更新:即使随机数生成是在制造时完成并刻录到 ROM 中,生成好的随机数可能也不是 20 世纪 70 年代生产线能够做到的事情。它可能需要购买一台昂贵的小型计算机并将其安装在生产线上,培训人们使用它,等等。
答案2
如果将全部 48 位用作随机地址,则无法识别 NIC 制造商,因此会使用 22 位来达到此目的。另外还有两位具有特定含义(多播和本地分配的地址)。
这样就剩下 24 位供制造商选择,因此即使发生碰撞的可能性很低,也不会为零。让制造商设置唯一数字而不是随机数字,可以避免承担这种风险,避免因此招致愤怒的客户/媒体批评。
MAC 地址将会保留一段时间,因此对当前实际拓扑或大小限制所做的假设在未来可能会被证明是错误的。
答案3
当前 MAC 地址管理方案的动机是什么,它解决了随机 MAC 地址无法解决的问题?
独特性。