题干与判定
题目:172.16.5.66/26 与 172.16.5.130/26 是否在同一子网,两台主机能否直接通信。判定方法是把两个地址各自归位:/26 的块大小是 64,末段可取的块起点是 0、64、128、192,66 落在 64 到 127 之间,属于 64 这一块;130 落在 128 到 191 之间,属于 128 这一块。两者不在同一子网,即使接在同一台交换机上,也必须经过三层转发。
基本信息
| 掩码 | /26,即 255.255.255.192 |
|---|---|
| 块大小 | 64,末段块起点为 0、64、128、192 |
| 第一个地址归属 | 172.16.5.66 属于 172.16.5.64/26 块 |
| 第二个地址归属 | 172.16.5.130 属于 172.16.5.128/26 块 |
| 结论 | 不同子网,需三层转发 |
| 判定顺序 | 先算块大小,再把地址除以块大小取整,看商是否相同 |
逐步归位
逐步归位
块大小 64 → 块起点 0 / 64 / 128 / 192
172.16.5.66 → 66 ÷ 64 = 1,落在第 2 块(.64 - .127)
172.16.5.130 → 130 ÷ 64 = 2,落在第 3 块(.128 - .191)
块编号不同 → 不同子网
即便接在同一台交换机上,仍需网关做三层转发程序判定
程序判定
python -c "import ipaddress as ip; print(ip.ip_interface('172.16.5.66/26').network == ip.ip_interface('172.16.5.130/26').network)"
# False
python -c "import ipaddress as ip; print(ip.ip_interface('172.16.5.66/26').network, ip.ip_interface('172.16.5.130/26').network)"
# 172.16.5.64/26 172.16.5.128/26同一 /24 的四个 /26
| 网段 | 可用范围 | 广播 |
|---|---|---|
| 172.16.5.0/26 | .1 – .62 | .63 |
| 172.16.5.64/26 | .65 – .126 | .127 |
| 172.16.5.128/26 | .129 – .190 | .191 |
| 172.16.5.192/26 | .193 – .254 | .255 |
典型使用场景
- 排查“同交换机不通”:先用该方法确认两端是否同段,跨段必然要经过网关
- VLAN 规划评审:检查网段划分是否把本该互通的设备分到了不同子网
- ACL 与策略编写:明确哪些地址属于同一子网,避免规则作用范围写错
- 迁移与扩容:把新设备放入正确子网时核对归属,防止误配到相邻块
- 考试题:考察对块大小与取整归位方法的掌握,两步就能得出结论
落地建议
- 跨子网互通必须保证两端网关都在位且路由正确,否则地址配置正确也不通
- 同一 /24 内拆成多个 /26 时,每个块都要配网关地址,不能只配一个
- 规划表中标注每块归属与网关,便于快速判断某地址应归到哪个 VLAN
- 跨块通信排障顺序:先确认是否同段,再查网关可达性,最后看路由与策略
地址段相邻不等于同子网:172.16.5.126 与 172.16.5.129 看起来只隔几个数,实际分属两个 /26 块,中间还夹着两个块的边界地址。