2. IP地址与子网划分:IPv4地址分类、子网掩码、CIDR表示法、VLSM可变长子网掩码
聊到网络基础,IP地址和子网划分绝对是绕不开的硬骨头。我记得刚入行那会儿,总觉得子网掩码就是个255.255.255.0,够用就行。直到有一次给一个中型企业做网络规划,因为不懂VLSM,硬生生浪费了半个C类地址段,被老架构师批了一顿。从那以后,我才真正把这块啃透。
今天咱们就把IPv4地址分类、子网掩码、CIDR和VLSM这几个概念一次性捋清楚。你放心,我会用最接地气的方式讲,保证你听完就能上手。
2.1 IPv4地址分类:A、B、C、D、E类
IPv4地址是32位的二进制数,通常写成点分十进制,比如192.168.1.1。但你知道吗?这32位其实分成了网络位和主机位。为了适应不同规模的网络,早期设计者把地址分成了五类。
| 类别 | 首字节范围 | 默认子网掩码 | 网络数 | 每网络主机数 | 适用场景 |
|---|---|---|---|---|---|
| A类 | 1 - 126 | 255.0.0.0 | 126 | 16,777,214 | 大型网络 |
| B类 | 128 - 191 | 255.255.0.0 | 16,384 | 65,534 | 中型网络 |
| C类 | 192 - 223 | 255.255.255.0 | 2,097,152 | 254 | 小型网络 |
| D类 | 224 - 239 | 无 | 组播地址 | N/A | 组播通信 |
| E类 | 240 - 255 | 无 | 保留 | N/A | 实验用途 |
这里有个细节要注意:127.0.0.1是回环地址,不属于任何一类。我见过不少新手把127当成A类地址,其实它是单独保留的。
关键点:私有地址范围(RFC 1918)——这些地址只能在内部网络使用,不能上公网。
- A类私有:10.0.0.0/8
- B类私有:172.16.0.0/12
- C类私有:192.168.0.0/16
2.2 子网掩码:网络位与主机位的分界线
子网掩码说白了就是一个32位的二进制数,网络位全为1,主机位全为0。它的作用就是告诉你:IP地址里哪些位是网络号,哪些是主机号。
举个例子:IP 192.168.1.100,子网掩码255.255.255.0。你想想看,把IP和掩码做按位与运算,得到的就是网络地址192.168.1.0。主机位就是最后的0-255,但0是网络地址,255是广播地址,真正能用的只有1-254。
我的小技巧:判断两个IP是否在同一网段,就看它们的网络地址是否相同。我在项目中排查网络不通的问题时,第一件事就是算这个。
2.3 CIDR表示法:斜杠后面的数字
传统的分类地址太死板了。比如一个C类地址只有254个可用IP,但公司可能只需要30个,剩下的全浪费了。CIDR(无类别域间路由)就是来解决这个问题的。
CIDR的写法很简单:IP地址后面加个斜杠,再写上网络位的位数。比如192.168.1.0/24,意思就是前24位是网络位,等价于子网掩码255.255.255.0。
# 常见CIDR表示法示例
192.168.1.0/24 → 子网掩码 255.255.255.0
172.16.0.0/16 → 子网掩码 255.255.0.0
10.0.0.0/8 → 子网掩码 255.0.0.0
192.168.1.0/28 → 子网掩码 255.255.255.240,可用主机14个
我个人习惯用CIDR,因为它比点分十进制直观多了。你一看/24就知道有256个地址,/28就是16个地址,心里立马有数。
2.4 VLSM可变长子网掩码:按需分配的艺术
VLSM是CIDR的进阶玩法。它允许在一个主网络里使用不同的子网掩码,说白了就是「看人下菜碟」。比如你有一个192.168.1.0/24的网段,需要分配给三个部门:
- 研发部:需要100个IP
- 市场部:需要50个IP
- 行政部:需要10个IP
如果按传统方式,每个部门给一个/24,那得三个C类地址,浪费太多。用VLSM就可以这样分:
# VLSM划分示例
主网段:192.168.1.0/24
研发部:192.168.1.0/25 → 可用IP 126个(1-126)
市场部:192.168.1.128/26 → 可用IP 62个(129-190)
行政部:192.168.1.192/27 → 可用IP 30个(193-222)
剩余: 192.168.1.224/27 → 可用IP 30个(225-254)
避坑指南:我曾经在给一个客户做VLSM规划时,没注意子网之间的重叠。结果两个部门的IP段有交叉,导致路由混乱,整个网络瘫痪了两小时。记住:VLSM划分时,每个子网的地址范围绝对不能重叠!
2.5 实战:手算子网划分
光说不练假把式。咱们来算一个实际案例:
假设你拿到一个网段172.16.0.0/16,需要划分成4个等大的子网。每个子网能容纳多少台主机?
步骤1:确定需要借用的主机位
2^n ≥ 4 → n = 2(借2位)
步骤2:新的子网掩码
原掩码 /16,借2位后变成 /18
即 255.255.192.0
步骤3:计算每个子网的地址范围
子网1:172.16.0.0/18 → 可用范围 172.16.0.1 - 172.16.63.254
子网2:172.16.64.0/18 → 可用范围 172.16.64.1 - 172.16.127.254
子网3:172.16.128.0/18 → 可用范围 172.16.128.1 - 172.16.191.254
子网4:172.16.192.0/18 → 可用范围 172.16.192.1 - 172.16.255.254
每个子网可用主机数:2^(32-18) - 2 = 16382台
记住这个公式:可用主机数 = 2^(32 - 掩码位数) - 2。减2是因为要去掉网络地址和广播地址。
2.6 总结与建议
嗯,到这里IP地址和子网划分的核心内容就讲完了。我最后给你三个建议:
- 多练手算:别太依赖子网计算器。我面试高级工程师时,经常让他们手算子网划分,能快速算出来的,基础一定扎实。
- 规划要留余量:做VLSM规划时,永远给未来留20%的地址空间。我吃过这个亏,公司扩张时IP不够用,重新规划比新建还麻烦。
- 文档要写清楚:每次做完子网划分,一定要把IP分配表记录下来。别问我为什么强调这个——你试试半年后回来查一个IP是谁在用,没有文档你会疯的。
下一章咱们聊路由协议,到时候你会发现在VPC里配置路由表,本质上就是在做子网间的流量调度。打好今天的基础,后面学起来就轻松多了。