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地址和子网划分的核心内容就讲完了。我最后给你三个建议:

  1. 多练手算:别太依赖子网计算器。我面试高级工程师时,经常让他们手算子网划分,能快速算出来的,基础一定扎实。
  2. 规划要留余量:做VLSM规划时,永远给未来留20%的地址空间。我吃过这个亏,公司扩张时IP不够用,重新规划比新建还麻烦。
  3. 文档要写清楚:每次做完子网划分,一定要把IP分配表记录下来。别问我为什么强调这个——你试试半年后回来查一个IP是谁在用,没有文档你会疯的。

下一章咱们聊路由协议,到时候你会发现在VPC里配置路由表,本质上就是在做子网间的流量调度。打好今天的基础,后面学起来就轻松多了。