网络标识符速查表
MAC 地址、IPv4 私有地址、IPv6 全球单播、ULA、链路本地——这些标识符的位数、格式和有效范围各不相同,混用是网络配置里最常见的错误来源。本页把它们放在一起对照,并列出 IPv6 的常用前缀类型。
五类标识符对照
| 标识符 | 位数 | 格式示例 | 有效范围 | 由谁分配 |
|---|---|---|---|---|
| MAC 地址 | 48 | 00:1A:2B:3C:4D:5E | 同一链路(二层)内唯一 | 网卡厂商烧录,前 24 位是 OUI |
| IPv4 私有地址 | 32 | 192.168.1.10 | 局域网内,出网需 NAT | 由管理员或 DHCP 分配 |
| IPv6 全球单播 | 128 | 2001:db8::1 | 全球可路由的公网地址 | 由运营商或 RIR 分配 |
| IPv6 唯一本地(ULA) | 128 | fd12:3456::1 | 站点内部,不得上公网路由 | 随机生成 40 位全局 ID |
| IPv6 链路本地 | 128 | fe80::1 | 仅单条链路,不可跨路由 | 接口启用 IPv6 时自动生成 |
IPv6 常见前缀类型
| 前缀 | 类型 | 说明 |
|---|---|---|
| ::1/128 | 回环地址 | 本机自身,等价于 IPv4 的 127.0.0.1 |
| 2000::/3 | 全球单播 | 公网可路由地址,目前实际分配在此范围内 |
| fc00::/7 | 唯一本地 ULA | 站点内部使用,fd 开头才是本地生成的 |
| fe80::/10 | 链路本地 | 仅限于同一链路,路由器不转发 |
| ff00::/8 | 组播 | 一对多通信,已取代 IPv4 的广播 |
| 2002::/16 | 6to4 | 过渡机制,现已基本弃用 |
常见问题
通过 MAC 地址能定位到具体某台设备吗?
在公网层面不能。MAC 地址只在同一个二层链路内有效,数据包经过路由器后源 MAC 就会被改写,所以外部看不到你设备的真实 MAC。能做的只是通过前 24 位的 OUI 查到网卡厂商,比如某个前缀属于某家手机或路由器厂商。真正能跨网段追踪的是 IP 地址、浏览器指纹和账号体系,而不是 MAC。顺带一提,现代操作系统默认开启随机 MAC,在扫描 Wi-Fi 时会使用随机地址,进一步削弱了基于 MAC 的追踪。
IPv6 的 ULA 和 IPv4 的私有地址是一回事吗?
设计目的相似,细节差别很大。两者都用于内部网络、都不应该在公网路由。但 IPv4 私有地址只有固定的三段(10/8、172.16/12、192.168/16),不同组织的地址必然重复,合并网络时经常冲突。ULA 的 fc00::/7 前缀后面还有 40 位全局 ID,规范要求用随机数生成,因此两个组织撞号的概率极低,网络合并时基本不需要重新编址。实际部署中常见做法是 ULA 与全球单播地址并存:ULA 保证内部通信永远可达,全球单播用于对外通信。
为什么 IPv6 地址里是 fd 开头,而不是 fc?
fc00::/7 这个前缀实际被拆成两半:fc00::/8 保留给未来由中央机构分配,fd00::/8 才是给本地自行生成的。RFC 4193 规定本地生成 ULA 时必须把第八位(L 位)置为 1,也就是前缀必须以 fd 开头。所以你在本地工具里生成的 ULA 地址一定以 fd 打头;如果看到 fc 开头,要么是保留用途,要么是配置有误。
IPv6 为什么没有广播地址?
IPv6 取消了广播,改用组播加任播来替代。原因是广播会打扰网段内所有主机,每台设备都必须中断处理这个包,在大型网络里浪费明显。组播则只投递给加入对应组的主机,未被投递的主机完全不受影响。原本靠广播完成的地址解析,在 IPv6 里由邻居发现协议(NDP)用 ICMPv6 组播实现。这也是 IPv6 里看不到 255.255.255.255 这类地址的原因。