二层通讯中的MAC地址介绍
MAC 地址是网络设备出厂时固化在网卡(或网络接口)中的唯一标识符,全称为 “媒体访问控制地址”(Media Access Control Address),用于在局域网(LAN)内部定位和通信,相当于设备的 “物理身份证”。同时又有一些组播MAC地址,用于特殊场合的通讯需求。现在对MAC地址集中介绍一下。
MAC 地址的基本结构
-
长度与格式:共 48 位(6 字节),通常以十六进制表示,格式为 “XX:XX:XX:XX:XX:XX” 或 “XX-XX-XX-XX-XX-XX”,例如 “00:1A:2B:3C:4D:5E”。
-
组成部分:前 24 位(前 3 字节)是OUI(组织唯一标识符),由国际标准化组织(ISO)分配给设备制造商,用于标识品牌;后 24 位(后 3 字节)是厂商自定义编号,由制造商分配给单个设备,确保全球唯一。
MAC地址分类
单播地址(Unicast Address)
单播地址用于一对一通信,是最常见的 MAC 地址类型,细分为两类:
举个例子,如果 MAC 地址的第一个字节是 02
(二进制为 00000010
),那么第 2 位是 1
,说明这是一个本地管理地址。
-
全球管理地址(UAA,Universal Administered Address):即 “厂商分配的固定地址”,由 IEEE 分配给厂商,前 24 位为OUI(组织唯一标识符),后 24 位由厂商自行分配,确保全球唯一。例如:
00:1A:2B:3C:4D:5E
(前 3 字节为厂商 OUI)。 -
本地管理地址(LAA,Locally Administered Address):是一种由系统管理员手动设置的 MAC 地址,用于替代设备出厂时分配的全球唯一地址。它常用于虚拟网卡、桥接设备等场景,以避免与厂商分配的地址冲突。通过修改(“U/L 位”,Universal/Local)标识 —— 该位为
1
时表示本地管理(与厂商无关)。例如:02:1A:2B:3C:4D:5E
(第 2 字节02
的二进制第 2 位为 1)。在 MAC 地址的第一个字节中,第 2 位(也称为 U/L 位,Universal/Local bit)决定了地址是否为本地管理的:
如果该位是 0,表示这是由厂商分配的全球唯一地址(Universally Administered Address)。
如果该位是 1,则表示这是本地管理地址(Locally Administered Address)。
组播地址(Multicast Address)
组播地址用于一对多通信(同一组内的设备接收),通过第 1 个字节的第 1 位(“I/G 位”,Individual/Group)标识 —— 该位为1
时表示组播(单播地址此位为0
):
-
IPv4 组播映射的 MAC 地址:IPv4 组播地址(224.0.0.0~239.255.255.255)会映射到特定 MAC 组播地址,规则是:前 24 位固定为
01:00:5E
(IEEE 分配的组播 OUI),第 25 位固定为0
,后 23 位对应 IPv4 组播地址的后 23 位。例如:IPv4 组播地址224.1.2.3
对应 MAC 地址01:00:5E:01:02:03
。 -
其他专用组播地址:如链路层协议专用组播(如 STP 生成树协议、LLDP 链路发现协议等),会使用特定的组播 MAC 地址(如
01:80:C2:00:00:00
是网桥协议组播地址)。 -
IPv6 组播对应的 MAC 地址:
与 IPv4 组播 MAC 地址(01:00:5E
开头)不同,IPv6 组播流量在数据链路层传输时,会使用固定以 “33:33” 为前 2 字节的 MAC 地址,具体映射规则如下:
-
MAC 地址前缀:前 16 位(前 2 字节)固定为
33:33
,这是 IPv6 组播 MAC 地址的专属标识,用于区分 IPv4 组播和其他类型 MAC 地址。 -
地址映射规则:后 32 位(后 4 字节)直接复制 IPv6 组播地址的最后 32 位(即 IPv6 地址的第 128 位中的最后 32 位)。
-
示例:
-
若 IPv6 组播地址为
FF02::1
(局域网内所有 IPv6 设备的组播地址),其最后 32 位为0000:0001
,对应的 MAC 地址即为33:33:00:00:00:01
。 -
若 IPv6 组播地址为
FF02::2
(局域网内所有 IPv6 路由器的组播地址),对应的 MAC 地址则为33:33:00:00:00:02
。
-
-
应用场景:在 IPv6 网络中,设备发现(如邻居发现协议 NDP)、组播流媒体(如 IPv6 直播)等场景,均通过 “33:33” 开头的 MAC 地址传输数据,确保仅目标组播组内的设备接收。
广播地址(Broadcast Address)
即全 F 地址(FF:FF:FF:FF:FF:FF
),用于一对所有通信(同一广播域内的所有设备接收),是组播地址的一种特殊形式(所有位均为 1)。
总结:MAC 地址分类表
类型 | 特征(二进制标识) | 用途 | 示例 |
---|---|---|---|
全球单播(UAA) | I/G=0,U/L=0 | 厂商分配的唯一单播地址 | 00:1A:2B:3C:4D:5E |
本地单播(LAA) | I/G=0,U/L=1 | 用户手动设置的单播地址 | 02:1A:2B:3C:4D:5E(第一个字节的次低位(即第 7 位)) |
组播(含 IPv6 映射) | I/G=1 | 一对多通信 | 33:33:FF:12:34:56(IPv6组播地址) 01:00:5E:01:02:03(IPv4 组播地址,由224.0.0.0映射) 01:80:C2:00:00:02(用于 LACP(链路聚合控制协议)) 01:80:C2:00:00:03(用于 EAPOL(认证协议)) 01:80:C2:00:00:00(用于STP协议) 01:80:C2:00:00:0E(用于LLDP协议) |
广播 | 所有位为 1(I/G=1 的特殊形式) | 一对所有通信 | FF:FF:FF:FF:FF:FF |
在 MAC 地址中,I/G(Individual/Group)位和 U/L(Universal/Local)位都位于第一个字节中。具体如下:
-
I/G 位(单播 / 组播位):是第一个字节的最低位(即第 8 位)。如果 I/G=0,则表示该 MAC 地址是单播地址,用于标识单个网络接口;如果 I/G=1,则表示该 MAC 地址是多播地址(包括组播和广播),用于向一组设备或所有设备发送数据。
-
U/L 位(全局 / 本地管理位):也称为 G/L 位,是第一个字节的次低位(即第 7 位)。当 U/L=0 时,表明该 MAC 地址是全局管理地址,由 IEEE 分配,具有全球唯一性;当 U/L=1 时,则表示该 MAC 地址是本地管理地址,可由网络管理员根据需要自行指定。