SheepDev

IP与网络计算

/31 和 /32 也能用吗?

使用工具

记住 IPv4 要减网络和广播两个地址,就会以为 /31 可用数为零。但点对点链路可使用两个端点地址。这不意味着普通 LAN 都可改 /31。应先比较范围和用途模型,再核对设备与拓扑条件。

/30 总数四,常规模型下主机二

首先输入的范围
192.0.2.0/30
192.0.2.0 … 192.0.2.3
mask: 255.255.255.252

输入 192.0.2.0/30,主机位为 32−30=2,总数 2²=4。常规模型下 .0 为网络、.3 为广播,.1 和 .2 用于端点。分配总数四与主机数二对应不同规划问题。

输入 192.0.2.1/30 仍得相同范围,因为前缀决定对齐边界,并非从 .1 起四个地址。下一个对齐 /30 从 192.0.2.4 开始。

/31 两个地址可用于点对点两端

表示两个端点的范围
192.0.2.0/31
192.0.2.0 … 192.0.2.1
mask: 255.255.255.254

/31 一位主机位,共两个地址。RFC 3021 点对点用途把两者作为端点,不套用减首尾规则。应连同用途说明读数字,明确它依赖该链路模型。

当前输出也有 broadcast 字段显示范围末端,但 /31 点对点下不表示该地址专留广播。请结合 first/last 与 hostPolicy,不要仅凭通用字段名排除末端地址。

/32 指定一个地址

单地址示例
192.0.2.10/32
first = last = 192.0.2.10
total = 1

/32 主机位为零,总数一,可用于主机路由等单地址表示,不是包含两端的范围。统一减二会荒谬。应区分前缀增大范围缩小与具体用途规则。

存在 /32 路由不证明直连,下一跳、其他路由、接口配置都是额外信息。工具不连接设备或读取路由表,结果不能作为可达证据。

分别检查地址节省与拓扑支持

十条链路的简单比较
10 × /30 → 40 addresses
10 × /31 → 20 addresses

十条链路按 /30 分配四十地址,按 /31 分配二十,前提是各链路支持该模型。数字不能决定两端支持、管理或预留需求,数量更少不是部署方案。

当前 VLSM 按常规 IPv4 子网保留网络和广播地址,因此两主机需求分配 /30 不一定与 /31 点对点计算矛盾,是模型不同。应比较前提,不能只看都输入二。

测试边界,不把 IPv4 减法套到 IPv6

将 /30、/31、/32 作为一组边界测试,核对首尾、总数、用途,并输入范围内另一地址。/0 总数也可计算为 2³²,但数学范围不代表所有地址都可在一个 LAN 使用。

IPv6 没有 IPv4 式广播,不能照减二。应使用 IPv6/CIDR 检查一百二十八位范围。把地址算术与分配、路由策略分开,才能明确计算能支持哪些判断。

参考资料

使用工具

指南 →