【网络基础系列】07手撕“子网划分”软考真题,终于搞懂 AWS VPC 怎么建了!
大家好,我是 28 岁零基础、正在向数据平台可靠性工程师(DPRE)转行的新人。
目前我依然停留在作战计划的第一阶段:死磕底层基础,坚决不碰上层应用。看着桌面的 CentOS 7 虚拟机,我好几次按捺不住想立刻敲 yum install mysql 的冲动,但我深知:如果连底层的网络切片和隔离逻辑都算不清楚,未来在 AWS 或是企业私有云里配置成百上千个 Docker 容器时,绝对是一场安全灾难。
网络基础里最硬、最让初学者掉头发的一块骨头,就是**“划分子网(Subnetting)”**。
这几天我刷了不少软考的真题,从一开始的满头大汗,到后来掌握了“心算秒杀法”,成就感简直爆棚!今天,我就把这套底层逻辑和应试/实战绝招,通通记录下来。
一、 为什么老祖宗的分类地址不够用了?
上一篇笔记我们背过,B类网络(比如 145.13.0.0)可以容纳65534台主机。
看起来很豪气,但在实际企业应用中,这就是个“大坑”。
假设一个只有几百台电脑的公司申请到了这个 B类网络。
首先,剩下的 6 万多个 IP 别人用不了,严重浪费。
其次,几百台电脑在同一个“大平层”里,只要有人发个广播,所有人都要被迫接收处理。这就是可怕的**“广播风暴”**。
随着公司发展,成立了开发部、测试部、财务部(对应图中的子网1、2、3),出于安全隔离的需要,财务部的网段绝对不能和开发部混在一起!
如果再去买两个 B类网络?太贵,且浪费。
于是,前辈们发明了**“借鸡生蛋”**的划分子网技术。
核心原理:从原本的“主机号”里,强行借用几位作为“子网号”。
比如上图,我们从 16 位主机号里借了 8 位做子网号(2的8次方 = 256)。
瞬间,原本一整个庞大臃肿的 B类网络,被优雅地切分成了256 个独立的小包厢(子网),每个包厢正好容纳 254 台主机。完美解决浪费和隔离问题!
二、 路由器的“照妖镜”:子网掩码
我们在内部偷偷改了规矩,把 IP 地址从“两级结构”变成了“三级结构(网络号 + 子网号 + 主机号)”。外网的路由器怎么知道我们切了多少刀呢?
这时候,子网掩码(Subnet Mask)就登场了。
子网掩码的规则极其暴力:
连续的 1:对应的 IP 部分是“网络号 + 子网号”。
连续的 0:对应的 IP 部分是“主机号”。
💡学以致用:在我的第一阶段转行计划中,有一项任务是“补习离散数学的逻辑运算”。现在派上用场了!
路由器只要把收到的IP地址和子网掩码做一个二进制的**“与(AND)”逻辑运算**(1 AND 1 = 1,其他全为 0)。瞬间,主机号全部归零,直接暴露出真实的“子网网络地址”!
当然,如果不划分子网,其实也是有默认子网掩码的,这个必须作为常识记住:
三、 手撕软考真题:从苦力推算到“秒杀技”
理解了原理,接下来就是实战计算。这是软考《数据库系统工程师》上午题的必考点。
🎓 基础推演:已知掩码求子网范围
题目:已知网络地址 218.75.230.0,子网掩码 255.255.255.192,求划分细节。
解题步骤:
验明正身:218 开头,这是个 C类地址(网络号 24 位,主机号 8 位)。
看掩码数“1”:上节课背过的魔法数字,192 的二进制是 11000000。
算借位:原本主机号有 8 位,现在掩码里多了 2 个 1。说明向主机号借了 2 位做子网号,留给真正主机的只剩 6 位。
算数量:
能分几个网?2位二进制有 4 种变化(00, 01, 10, 11),所以分了4 个子网。
每个网几台机器?剩下的 6 位主机号,2的6次方=64,减去全0(网络号)和全1(广播号),每个子网可分配62 个 IP。
划范围(以块为单位递增):
子网1:218.75.230.0 ~ .63 (可用 .1 ~ .62)
子网2:218.75.230.64 ~ .127 (可用 .65 ~ .126)
...以此类推。
🚀 终极秒杀技:“块大小(Block Size)”口算法
每次都去转二进制太痛苦了!在遇到复杂的 B类地址划分时,我学到了一招堪称“作弊”的口算法。
【软考 2012 年 真题 39】
某主机的 IP 地址为 180.80.77.55,子网掩码为 255.255.252.0。该主机发送广播分组的目的地址是?
A. 180.80.76.0
B. 180.80.76.255
C. 180.80.77.255
D. 180.80.79.255
不用转二进制,看我用“块大小法” 10 秒解题:
第一步:找异类。掩码 255.255.252.0 中,第一个不是 255 的数字是第 3 字节的 252。
第二步:算块大小。用魔法常数 256 减去它:256 - 252 = 4。说明这个子网是每 4 个数字为一个区块划分的!
第三步:找落点。IP 地址的第 3 字节是77。用 77 除以块大小 4。
77 ÷ 4 = 19 ... 余 1。
用商乘以块大小:19 × 4 = 76。
结论得出:这个 IP 所在的子网,在第 3 字节上是从76开始的!
第四步:写答案。
网络地址:前两字节照抄,第三字节填 76,第四字节填 0 ➡ 180.80.76.0
广播地址:第三字节加上块大小再减一(76 + 4 - 1 = 79),第四字节全部拉满填 255 ➡ 180.80.79.255
完美选中 D!这套公式真的绝了,强烈建议所有运维和考证党死记硬背!
四、 📓 云架构师实战:AWS 里的“潜规则”
计算题做完了,但作为未来的 DPRE,我们绝不能只停留在纸上谈兵。结合我学习 AWS 云架构的前瞻内容,我发现了一个足以致命的面试坑。
架构师的日常应用:
在 AWS 中,我们通常会先申请一个大网段(VPC,比如 10.0.0.0/16),然后用今天学到的“子网划分”技术,把它切成一个个“安全包厢”分布在不同的可用区。比如划出 10.0.1.0/24 作为公有子网放 Web 服务器,划出 10.0.2.0/24 作为私有子网放 MySQL 数据库。物理隔离,拒绝公网直连数据库,这是安全的底线!
🚨 致命面试题(可用 IP 数量):
我们在上面的软考公式里背过:可用主机数 = 2^主机位数 - 2(减去全0网络号,全1广播地址)。
但是!在 AWS 等云平台中,这个公式是错的!
在 AWS 划分 VPC 子网时,每个子网必须减去 5 个 IP 地址!
除了全 0 和全 1,AWS 还会强行预留 3 个 IP:
.1 预留给 VPC 路由器
.2 预留给亚马逊 DNS 服务器
.3 留作未来使用
这就是理论与实战的差距!懂底层逻辑(会算子网),又懂业界潜规则(AWS预留),面试时才能真正做到降维打击。
这块最难啃的骨头终于拿下了!下一站,无分类编址(CIDR),然后我就要正式进军 Linux 权限与漏洞防御的核心区了。冲锋!
💡 致谢说明:
本文理论模型与计算口诀,学习整理自优质网络公开课。为了方便日后备战软考与 AWS 认证,由本人记录核心笔记后,交予 AI 进行大白话润色与排版,特此致谢。
主要内容来源:B站 湖科大教书匠《计算机网络微课堂》