题目与思路
需求是容纳两千个地址,并要求给出具体的网段方案。这属于典型的反推题:先沿着二的幂次逐级试算,直到可用主机数首次超过需求,再检查网络地址的对齐约束,最后用代码或手工验算首尾地址与总量。
试算过程
二十二位可用一千零二十二个,不够两千;二十一位可用两千零四十六个,满足。因此选二十一位前缀。二十一位在第三段借用三位,第三段步长是八,起点必须是八的倍数;取一百七十二点二十开头的地址时,第三段是零,天然对齐。
基本信息
| 需求 | 两千个地址 |
|---|---|
| 试算 | 二十二位可用一千零二十二,不够;二十一位可用两千零四十六,满足 |
| 结论 | 二十一位前缀,网段取一百七十二点二十点零开头 |
| 对齐条件 | 第三段必须是八的倍数 |
| 可用数量 | 两千零四十六个,余量偏少 |
典型使用场景
- 园区汇总计量:多个楼栋的地址按父块统计时,用该前缀提供汇总口径而不是承载单段业务
- 容量反推训练:作为与五百台例题成对的练习,覆盖不同的前缀位与段位组合
- 扩容评估:现网出现地址不足迹象时,用同一方法判断是否必须升级到更大前缀
- 方案对比:把二十一位与拆分成多个二十四位网段两种方案并列比较,说明取舍
- 考试真题:反推题在认证考试中反复出现,关键是掌握试算顺序而不是背答案
- 地址池设计:动态分配场景下按并发终端数选前缀,通常比按资产总数小得多
边界验算
边界验算
python -c "import ipaddress as ip; n=ip.ip_network('172.20.0.0/21'); print(n, n.broadcast_address, n.num_addresses - 2)"
# 输出:172.20.0.0/21 172.20.7.255 2046
# 覆盖第三段零到七共八段,可用主机两千零四十六个试算对照
| 前缀 | 可用主机 | 是否满足 | 说明 |
|---|---|---|---|
| 二十二位 | 一千零二十二 | 不满足 | 差近一千台 |
| 二十一位 | 两千零四十六 | 满足 | 余量仅四十六个 |
| 二十位 | 四千零九十四 | 满足但偏大 | 适合楼栋级 |
| 二十三位 | 五百一十 | 不满足 | 差距很大 |
两千台终端通常不会真的放在同一个广播域里:列方案时应当注明该前缀用于汇总计量或者父块规划,实际业务仍按楼层与部门拆分成多个更小的网段。
注意该前缀在第三段借用三位,步长为八。凡是第三段不是八的倍数的写法,例如一百七十二点二十二开头的地址,都会被归位到二十二之前的八的倍数上,属于常见写错。