flykey
发布于 2026-10-12 / 1 阅读
0

IP 地址分类完全指南:从 IPv4 的 A/B/C/D/E 到 IPv6 的单播、组播与任播

很多人学网络,第一关就被 IP 地址分类劝退:A 类、B 类、C 类、D 类、E 类是什么鬼?为什么 10.x 不能上公网?IPv6 为什么不用 A/B/C 了?fe80、ff02、2001:db8 又都是啥?

这篇一次讲清楚——从 IPv4 的历史分类,到 IPv6 现在的真实分配体系。


一、IPv4 的 A/B/C/D/E:历史课本里的分类

早期互联网很小,地址按"前几位二进制"硬分类,叫 Classful Addressing(有类地址)。

类别

前导位

范围

默认掩码

主机数

干啥用

A

0

1.0.0.0 – 126.255.255.255

/8

1677 万

超大型网络

B

10

128.0.0.0 – 191.255.255.255

/16

6.5 万

大学、大公司

C

110

192.0.0.0 – 223.255.255.255

/24

254

小公司、局域网

D

1110

224.0.0.0 – 239.255.255.255

无

—

组播

E

1111

240.0.0.0 – 255.255.255.255

无

—

保留/实验

127.0.0.0/8 是环回,不算 A 类主机地址;0.0.0.0/8 是"本网络"。

问题很快就来了:

  • 给一个大学发 A 类 = 1600 多万个地址,用不完

  • 给一个公司发 B 类 = 6.5 万个地址,还是太多

  • C 类只有 254 个主机,又太小

  • 路由表被几百万条碎前缀撑爆

于是 1993 年 CIDR(无类别域间路由,RFC 1519)​ 把 A/B/C 送进了博物馆。现在真实网络里写的是:

192.168.1.0/24
10.0.0.0/8
203.0.113.0/24

不再问"你是哪类",只问"你的前缀多长"。


二、比 A/B/C 更重要的分类:公网 / 私网 / 特殊地址

工程上真正天天用的,不是 A/B/C,而是下面这套。

1. 公网地址(Public)

能在互联网路由表里跑。运营商、云厂商、企业从 RIR(APNIC、ARIN、RIPE…)拿到。比如电信 240e::/20、Cloudflare 1.1.1.1、Google 8.8.8.8。

2. 私有地址(RFC 1918)

内网随便用,路由器出公网必须 NAT:

段

CIDR

数量

10.0.0.0

10.0.0.0/8

1677 万

172.16.0.0

172.16.0.0/12

104 万

192.168.0.0

192.168.0.0/16

6.5 万

你家路由器 192.168.1.1,公司服务器 10.10.10.10,都是私有地址。

3. 运营商级 NAT 地址(RFC 6598)

100.64.0.0/10

不是你家内网,是运营商内部 CGN 用的。你家是 192.168.x.x,运营商再拿 100.64.x.x 套一层,最后才用公网 IP 出网。

4. 链路本地(APIPA)

169.254.0.0/16

DHCP 挂了,Windows/Linux 自己给自己配的地址。同网线能通,出不了路由器。

5. 环回

127.0.0.0/8

127.0.0.1 就是"我自己"。永远不出网卡。

6. 文档/测试地址

192.0.2.0/24
198.51.100.0/24
203.0.113.0/24

RFC 5737 规定:别上公网,别分配真业务。写书、做 PPT、写配置示例用。

7. 组播

224.0.0.0/4

OSPF、RIP、视频直播、DHCP 发现都靠它。不是给某台主机"独占"的。

8. 保留

240.0.0.0/4

早期叫 Class E,现在基本锁着不分配。


三、IPv6 为什么不玩 A/B/C 了?

IPv6 地址 128 位,空间大到离谱(2^128 ≈ 3.4×10^38)。如果按 A/B/C 分:

  • A 类 = 前 1 位为 0 → 一半空间给一家?太离谱

  • 随便怎么切,都浪费到让人心疼

所以 IPv6 彻底换了思路:

不按"网大网小"分类,按"这个地址是干啥的"分类。


四、IPv6 的顶层划分:IANA 只开放了 1/8

IANA 把 128 位空间切成几大块,原则很简单:

"目前只分配 2000::/3,其余先锁着。"

2000::/3 的意思是:前 3 位是 001,也就是所有 2 开头和 3 开头​ 的地址(2000:~3fff:)。

IANA 官方表里大致是这样:

前缀

类型

说明

::/8

保留

含 ::1 环回、:: 未指定

2000::/3

全球单播(公网)​

现在唯一大规模分配的单播空间

4000::/3 6000::/3 …

保留

约 85% 空间锁着,留给未来

fc00::/7

唯一本地 ULA

IPv6 版"私有地址"

fe80::/10

链路本地

每台网卡自带,出不了网线

ff00::/8

组播

替代 IPv4 广播

fec0::/10

站点本地

已废弃(RFC 3879)

记住:IPv6 的"分类"不是网大网小,而是这个地址能在哪用、跟谁说话。


五、公网单播:2000::/3 再切给五大区

IANA 把 2000::/3 里的大块发给 5 个 RIR(区域互联网注册机构):

RIR

服务区域

典型大块

ARIN

北美

2600::/12、2001:400::/23

RIPE NCC

欧洲/中东/中亚

2a00::/12、2001:600::/23

APNIC

亚太(中国/日本/澳洲/印度)

2400::/12、2001:200::/23

LACNIC

拉美

2800::/12

AFRINIC

非洲

2c00::/12

所以你看到:

  • 中国电信 240e::/20

  • 中国联通 2408:8000::/20

  • 中国移动 2409:8000::/20

  • 美国 Comcast 2607:fxxx::/32

  • 欧洲 Hetzner 2a01:4f8::/32

不是运营商随便选的,是 APNIC/RIPE/ARIN 发到哪就是哪。

为什么中国运营商是 240 开头?

因为 IANA 把亚太区大本营放在 2400::/12,中国三大运营商从 APNIC 领子块:

2400::/12 (APNIC 亚太总块)
 ├── 2408:…  中国联通
 ├── 2409:…  中国移动
 ├── 240e:…  中国电信
 ├── 240a:…  广电/铁通
 └── 240c:…  教育网 CERNET2、百度

前缀里 240 只是"亚太的姓",2408/2409/240e 是"中国三家运营商的名"。

同理:

  • 北美 = 2600 开头

  • 欧洲 = 2a00 开头

  • 拉美 = 2800 开头

  • 非洲 = 2c00 开头


六、分配链:IANA → RIR → ISP → 你

IANA
 └─ /12 ~/23  → RIR(APNIC/RIPE/ARIN…)
      └─ /32   → 运营商(中国电信、NTT、Deutsche Telekom)
           └─ /48  → 企业/校园
           └─ /56  → 家庭宽带(常见)
           └─ /64  → 一个 LAN(手机/WiFi/交换机网段)
                └─ 64 位接口 ID → 具体某台手机/笔记本

为什么 /64 是"神奇数"

IPv6 单播地址通常这么切:

| 前缀(前64位) | 接口ID(后64位) |

后 64 位给主机自动生成:

  • 早期:EUI-64(从 MAC 算出来)

  • 现在:隐私扩展(每次随机生成,防追踪)

SLAAC(无状态自动配置)就靠"路由器发 /64 前缀 + 自己凑后 64 位"。比 /64 小的子网(/65、/96、/126)会让 SLAAC 出问题,所以终端网段几乎一律 /64。

各家拿到多少

角色

典型前缀

里面有多少 /64

运营商

/32

65536 个 /48

企业

/48

65536 个 /64

家庭宽带

/56

256 个 /64

点对点链路

/127

2 个地址

环回/BGP 邻居

/128

1 个地址


七、IPv6 的三大通信类型

1. 单播 Unicast(一对一)

发给一个接口。常见子类:

子类

前缀

说明

全球单播 GUA

2000::/3

公网,等价于 IPv4 公网 IP

链路本地

fe80::/10

每台网卡自带,出不了路由器

唯一本地 ULA

fd00::/8

IPv6 版私有地址

环回

::1/128

本机

未指定

::

等价于 0.0.0.0

链路本地 fe80::/10​ 是每台网卡上线就自动有的:

  • 用于邻居发现 NDP、路由器发现

  • OSPFv3、BGP 邻居建立

  • 没 DHCP 也能通信

  • 路由器不转发,出不了二层链路

唯一本地 fd00::/8​ 是企业内网用的:

  • 换运营商不用改内网地址

  • 随机生成 Global ID,降低和别家公司撞车概率

  • 边界路由器直接丢,不出公网

2. 组播 Multicast(一对多)

ff00::/8

IPv6 没有广播,广播的活全给组播:

ff02::1   本链路所有节点
ff02::2   本链路所有路由器
ff02::5   OSPFv3 路由器
ff02::1:ff12:8844  被请求节点组播(NDP 用)

"加群才收",比 IPv4 的 255.255.255.255 文明得多。

3. 任播 Anycast(一对最近一个)

任播没有独立前缀,它从单播空间里拿地址,配到多台机器上:

  • 1.1.1.1

  • 8.8.8.8

  • 根 DNS 服务器

  • CDN 边缘节点

路由协议选"最近的一个"。地址长一样,物理上是北京/上海/法兰克福好多台。


八、特殊用途地址速查

地址

用途

::1/128

本机回环(=127.0.0.1)

::

未指定地址(=0.0.0.0)

::ffff:1.2.3.4

IPv4-mapped,兼容用

2001:db8::/32

文档地址,写书用,不能上公网

2001:470::/32

Hurricane Electric 隧道

2002::/16

6to4(老过渡技术)


九、一张"IPv6 分配全景"速查

整个 IPv6 空间 2^128
├─ 2000::/3      公网单播(只用这 1/8)
│   ├─ 2001:db8::/32  文档
│   ├─ 2400::/12      APNIC(中国/日本/澳洲)
│   │   ├─ 2408:…  中国联通
│   │   ├─ 2409:…  中国移动
│   │   ├─ 240e:…  中国电信
│   │   └─ 240c:…  教育网/百度
│   ├─ 2600::/12      ARIN(美国)
│   ├─ 2a00::/12      RIPE(欧洲)
│   ├─ 2800::/12      LACNIC
│   └─ 2c00::/12      AFRINIC
├─ fc00::/7      唯一本地(fd00::/8 常用)
├─ fe80::/10     链路本地
├─ ff00::/8      组播
└─ 其余 85%      保留/未来

十、一句话收尾

IPv4 是"地址不够,所以分类 + NAT + 私有地址救场"——A/B/C 是历史妥协,CIDR 是打补丁。

IPv6 是"地址多到用不完,所以按作用域分层":公网归 2000::/3,内网归 fd00,本地归 fe80,群发归 ff00,最近一个归任播。

你手机里那个 240e:xxxx:xxxx:1:xxxx:xxxx:xxxx:xxxx 不是随机长的,是"IANA → APNIC → 中国电信 → 你家 /56 → 路由器拆出 /64 → 手机自己凑后 64 位"五层叠出来的。