网卡唯一标识MAC地址详解

2024年 1月 15日 74.3k 0

一、MAC地址概述

MAC地址(Media Access Control Address)的全称叫做媒体访问控制地址,也称作局域网地址,以太网地址或者物理地址。

我们可以根据网卡的MAC地址直接就能查到设备厂商的信息,比如:

图片[1]-网卡唯一标识MAC地址详解-不念博客

二、MAC地址组成

MAC地址(Media Access Control address)是烧录在Network Interfac Card(网卡,NIC)里的,MAC地址也叫硬件地址,是由48比特长(6字节),16进制的数字组成;0-23位是由厂家自己分配,24-47位叫做组织唯一标志符(OUI),MAC地址的格式如下:

图片[2]-网卡唯一标识MAC地址详解-不念博客

  • OUI(Organisationally Unique Identifier)即为机构惟一标示符,通常也叫做公司标识符(company_id),世界上凡要生产网络设备或者网卡的厂家都必须向IEEE的注册管理委员会RAC(Registration Authority Committee)购买由这3个字节构成的地址块,这个地址块名称是机构唯一标识符OUI。
  • NIC(Network Interface Controller)即为网络接口控制器,也可以叫做扩展标识符,由厂商自己指定,只要保证生产出的网卡没有重复地址即可。可见一个地址块可以生成224个不同地址,用这种方式得到的48 bit地址称为MAC-48,它的通用名字是EUI-48。

比如MAC地址为00-1E-10-00-00-01,前面三个字节是Huawei公司向RAC申请的地址块,后面三个字节为Huawei公司自己定义的部分,只要保证网卡没有重复地址即可,如下图所示:

图片[3]-网卡唯一标识MAC地址详解-不念博客

比如MAC地址为:00-14-78-00-00-01,前面三个字节是TP-LINK公司向RAC申请的地址块,后面三个字节为TP-LINK公司自己定义的部分,只要保证网卡没有重复地址即可,如下图所示:

图片[4]-网卡唯一标识MAC地址详解-不念博客

三、单播地址、多播地址和广播地址

MAC地址可以分为单播地址、多播地址和广播地址。

IEEE规定地址字段的第一个字节的最低位为I/G比特,I/G表示Individual/Group。

当I/G比特为0时,地址字段表示单播地址;当I/G比特为1时表示多播地址。

比如MAC地址为01-14-78-00-00-01,由于第一个字节的最低位为1,所以此地址为多播地址,多播地址应用于802.1D和802.1Q中,如下图所示:

图片[5]-网卡唯一标识MAC地址详解-不念博客

比如MAC地址为00-14-78-00-00-01,由于第一个字节的最低位为0,所以此地址为单播地址,如下图所示:

图片[6]-网卡唯一标识MAC地址详解-不念博客

广播地址格式为全1:FF-FF-FF-FF-FF-FF,主要应用于局域网里数据的广播,局域网里面所有电脑都能够收到,比如ARP请求。

三种类型的MAC地址应用如下:

  • 单播地址(unicast address):主要应用于一对一的站点数据传输,相应的单播帧只有一个站点收到。
  • 广播地址(broadcast address):主要应用于广播的应用,比如ARP请求,相应的广播帧局域网内的所有站点都能够收到。
  • 多播地址(multicast address):主要应用于一对多的应用,比如在802.1X认证,STP/RSTP/MSTP协议等,常用的多播MAC地址有:

图片[7]-网卡唯一标识MAC地址详解-不念博客

四、本地管理地址和全球管理地址

MAC地址也可以分为本地管理地址和全球管理地址。

IEEE还考虑到可能有人并不愿意向IEEE的RAC购买机构惟一标识符OUI。

为此,IEEE将地址字段第一个字节的最低第2位规定为G/L比特,标示Global/Local。

当G/L比特为0时全球管理地址(保证在全球没有相同的地址),厂商向IEEE购买的OUI都属于全球管理地址。

当地址字段的G/L比特为1时是本地管理地址,这时用户可任意分配网络上的地址,但是以太网几乎不使用这个G/L比特。

比如,MAC地址为00-14-78-00-00-01,由于第一个字节的最低第2为0比特,所以为全球管理地址,该地址需要向RAC(Registration Authority Committee)购买,如下图所示。

图片[8]-网卡唯一标识MAC地址详解-不念博客

比如MAC地址为02-14-78-00-00-01,由于第一个字节的最低第2位为1比特,所以为本地管理地址,该地址不需要向RAC(Registration Authority Committee)购买,那么我们就可以使用很多本地管理地址来充当设备的MAC地址。(一般情况下,没有厂商会使用这些本地管理地址),如下图所示:

图片[9]-网卡唯一标识MAC地址详解-不念博客

虽然在网络设备上一般不使用本地管理地址,但是在某些网络应用上可以使用,比如在多PVC的DSL设备上,每条PVC类似一个虚拟的网络接口,每个接口必须配有一个MAC地址,假如有7条PVC,那么意味着需要7个MAC地址。针对这个问题,可以有两种解决方案:

方案一:

给7条PVC分配7个全球管理地址。虽然这种方案可以解决每条PVC需要一个MAC地址问题,但是容易出现MAC地址冲突和MAC地址的浪费。

方案二:

给7条PVC分配7个本地管理地址,这样既不浪费MAC地址,也不容易出现MAC地址冲突的情况。

比如一个ADSL产品的LAN口MAC地址为00-00-0C-00-30-10,那么各个PVC的MAC地址是以把LAN口MAC地址的第一字节的低两位改为02为基数,第一条到第六条PVC的MAC地址依次递增8来处理的。

那么整个设备的MAC地址为:

LAN      00-00-0C-00-30-10

PVC0    0a-00-0C-00-30-10

PVC1    12-00-0C-00-30-10

PVC2    1a-00-0C-00-30-10

PVC3    22-00-0C-00-30-10

PVC4    2a-00-0C-00-30-10

PVC5    32-00-0C-00-30-10

PVC6    3a-00-0C-00-30-10

这种方法就是利用了本地管理地址的这个概念,没有违反IEEE的规定,也不会出现MAC地址冲突的问题。

总结:

MAC地址 XX-XX-XX-XX-XX-XX

第二位为1/3/5/7/9/B/D/F时表示为组播MAC地址;

第二位为2/3/6/7/A/B/E/F时表示为本地管理MAC地址;

第二位为4/8/C时表示为全球管理MAC地址。

相关文章

如何在 Linux 中使用 logname 命令?
为什么有 HTTPS?HTTPS 如何实现安全通信?
HTTPS的TSL握手流程是什么
华为无线网络射频调优及WLAN跨VLAN的三层漫游示例
502错误是什么、应该怎么排查?
HTTP3为什么抛弃了经典的TCP,而选择QUIC

发布评论