【笔记】特殊用途 IPv4 地址的语义与云网络边界
看到 100.64.0.0/10、169.254.0.0/16 或 RFC 1918 地址时,不能只用“都不是公网地址”把它们归为一类。地址段的注册用途、默认路由作用域和某个云厂商赋予它的产品语义是三层不同信息。
一句话心智模型是:IANA/RFC 决定地址的标准语义,路由系统决定当前网络能否到达,云产品再在其中绑定具体服务;后一层不能反向改写前两层。
1. 100.64.0.0/10 是 Shared Address Space
RFC 6598 保留了:
1
2
100.64.0.0/10
100.64.0.0 - 100.127.255.255
它的原始目的,是让服务提供商在 Carrier-Grade NAT(CGN)设备与客户侧设备之间使用一段不与 RFC 1918 家庭/企业私网重叠的地址空间。
flowchart LR
A[用户 LAN<br/>RFC 1918] --> B[CPE]
B --> C[服务提供商网络<br/>100.64/10]
C --> D[CGN]
D --> E[公网 IPv4]
RFC 使用的正式名称是 Shared Address Space。它不是普通公网单播地址,也不是第四段可以任意替代 RFC 1918 的企业私网。
2. Shared 不等于 Private
| 地址类别 | 主要标准用途 | 典型管理边界 |
|---|---|---|
RFC 1918:10/8、172.16/12、192.168/16 | 私有网络 | 家庭、企业、VPC 自主管理 |
RFC 6598:100.64/10 | 服务提供商 CGN 的共享空间 | 提供商管理域 |
IPv4 link-local:169.254/16 | 无人工配置时的链路本地通信 | 单条逻辑链路 |
| 公网地址 | 全球唯一、可按路由策略传播 | Internet routing domain |
它们有几个容易混淆的边界:
100.64/10和 RFC 1918 默认都不应作为普通公网源/目的地址传播,但注册用途不同;- RFC 6598 选择独立地址段,正是为了降低运营商内部地址与客户 RFC 1918 网络冲突的概率;
- “不在公网路由”不表示任意企业都适合拿它作为内部地址。这样做可能与运营商、VPN、云网络或未来互联冲突;
- NAT 是网络设备的转换行为,不是地址本身自带的属性。使用
100.64/10不会自动产生 CGN。
3. Link-local 是作用域,不是“技术上不能路由”
169.254.0.0/16 的 IPv4 link-local 语义要求报文保持在本地链路范围,路由器不应转发。它经常用于无 DHCP 时自动配置地址。
但云厂商的 metadata endpoint 是虚拟网络提供的特殊服务入口。AWS 的 169.254.169.254 或其他 link-local 端点能在实例内访问,不意味着它背后是一台与实例共享物理二层网络的普通服务器。Hypervisor、虚拟交换机或网络代理可以截获这个目标并交给本地平台服务。
因此,更准确的区别是:
- link-local 的标准转发作用域受限;
100.64/10可以在一个受控服务提供商网络中进行三层路由;- 两者都可能被云厂商绑定为虚拟服务地址,但实现路径需要产品资料或现场观测。
4. 阿里云 100.100.100.200 是具体产品约定
阿里云 ECS 公开使用下面的实例元数据端点:
1
http://100.100.100.200/latest/meta-data/
该地址落在 100.64.0.0/10 内。实例可以通过它读取实例属性,并在配置实例 RAM Role 时获取临时凭证。它具有三个不同层次的事实:
- IANA/RFC 层:这个数值属于 Shared Address Space;
- 阿里云产品层:
100.100.100.200被定义为 ECS metadata 服务入口; - 数据面实现层:Guest 发往该地址的包具体在哪一层被截获、代理或路由,公开产品契约不一定说明。
不能从一个 metadata 地址继续推出:
- 阿里云内部所有服务都使用
100.64/10; - 整个
100.64/10都由阿里云保留; - 看到任意
100.64/10地址就是 metadata 或控制面; - 该地址背后一定存在一台配置此 IP 的普通服务器。
5. 为什么大型网络会偏好独立内部地址空间
从网络设计角度,运营商或云平台选择不与客户常用 RFC 1918 地址重叠的空间,可以减少以下冲突:
- 客户 VPC 与平台服务使用同一前缀;
- VPN、专线或多 VPC 互联后出现重叠路由;
- NAT 前后无法区分客户地址与平台基础设施地址。
这解释了使用 Shared Address Space 的工程吸引力,但不是对任意云厂商具体分配的证据。能否使用、使用多少、由哪些服务占用,都要回到产品文档和当前租户路由表。
6. 排障时区分四个问题
看到特殊地址时,依次回答:
- 注册语义:IANA 把它归为 private、shared、link-local 还是其他特殊用途?
- 本机路由:
ip route get <address>选择哪个接口和源地址? - 平台契约:云厂商是否把某个精确地址声明为 metadata、DNS 或其他服务?
- 实际数据路径:在哪个观察点能抓到包,TTL、ARP/邻居项和返回路径是什么?
常用命令:
1
2
3
4
ip route get 100.100.100.200
ip rule
ip neigh
curl --noproxy '*' -v http://100.100.100.200/latest/meta-data/
访问 metadata 可能暴露实例信息或临时凭证。验证时只读取明确需要的非敏感字段,不应把响应原文复制到公开日志。
7. 复习索引
100.64/10的标准名称是 Shared Address Space,原始用途是服务提供商 CGN。- Shared 与 RFC 1918 private address 的注册用途不同。
- 地址落在特殊网段,不代表 NAT、路由或平台服务自动存在。
- IPv4 link-local 的标准作用域是本地链路;云 metadata 地址可能由虚拟网络截获。
100.100.100.200是阿里云 ECS 的具体产品端点,不能代表整个100.64/10的用途。- 排障要分开注册语义、租户路由、产品契约和闭源数据面。