Appearance
IP 编址(分类/子网/CIDR)
考情分析
IP 编址是 408 网络层考频最高的知识点,没有之一。几乎每年都会出现,形式包括:给定 IP 地址和子网掩码求网络地址、广播地址、可用主机数;给定需求划分子网;CIDR 路由聚合(最长前缀匹配)等。这部分一定要多做题,算到熟练。
考频:★★★★★
分类编址
最早的 IP 地址分配采用分类编址,把 32 位 IP 地址分为五类:
| 类别 | 网络号位数 | 首位模式 | 网络号范围 | 主机号位数 | 最大主机数 |
|---|---|---|---|---|---|
| A 类 | 8 | 0xxxxxxx | 1~126 | 24 | |
| B 类 | 16 | 10xxxxxx | 128.0~191.255 | 16 | |
| C 类 | 24 | 110xxxxx | 192.0.0~223.255.255 | 8 | |
| D 类 | — | 1110xxxx | 224~239 | — | 组播地址 |
| E 类 | — | 1111xxxx | 240~255 | — | 保留 |
为什么要减 2?因为主机号全 0 代表网络地址(标识这个网络本身),主机号全 1 代表直接广播地址(发给该网络内的所有主机)。这两个不能分配给具体主机。
如何快速判断类别
看 IP 地址的第一个字节:
- 1~126:A 类
- 128~191:B 类
- 192~223:C 类
- 224~239:D 类
- 240~255:E 类
注意 127 开头的不是 A 类(127.x.x.x 是环回地址),0 开头的也不用。
特殊 IP 地址
| 地址 | 含义 |
|---|---|
| 网络号 + 全 0 主机号 | 网络地址,标识一个网络 |
| 网络号 + 全 1 主机号 | 直接广播地址 |
| 127.0.0.1 | 环回地址(localhost) |
| 127.x.x.x | 环回地址(整个 127 段) |
| 0.0.0.0 | 本网络本主机(启动时使用) |
| 255.255.255.255 | 受限广播地址(本网络广播,路由器不转发) |
分类编址的问题
分类编址最大的问题是地址利用率低。一个 B 类网络有 65534 个主机位,但实际可能只需要几百台主机,大量地址浪费。A 类更夸张,一个网络 1600 多万个地址。
而 C 类网络只有 254 个主机位,对很多中等规模的机构又不够用。
这催生了子网划分和 CIDR。
子网划分
基本思想
子网划分的思路是:从主机号中借若干位作为子网号,把一个大网络分成若干个子网。
分类编址: [ 网络号 | 主机号 ]
子网划分: [ 网络号 | 子网号 | 主机号 ]
↑ 从主机号中借来的位例如,一个 C 类地址 192.168.1.0/24(主机号 8 位),如果借 3 位做子网号,就变成:
- 子网号:3 位,可以划分
个子网 - 主机号:5 位,每个子网最多
台主机
子网掩码
子网掩码用来标识 IP 地址中哪些位是网络 + 子网部分,哪些位是主机部分。
规则:网络号 + 子网号对应位全填 1,主机号对应位全填 0。
例如,192.168.1.0 借 3 位做子网:
IP地址: 192.168.1. [xxx | xxxxx]
子网掩码: 255.255.255.[111 | 00000]
= 255.255.255.224用 CIDR 记法就是 /27(前 27 位是 1)。
子网掩码的作用:将 IP 地址和子网掩码做按位与运算,就能得到该地址所属的网络(子网)地址。
子网划分计算步骤
问题类型 1:给定 IP 和子网掩码,求网络地址、广播地址、可用主机范围
例:IP = 192.168.1.130,子网掩码 = 255.255.255.224(/27)
第 1 步:将最后一个字节转为二进制
130 = 10 000010
掩码 224 = 111 00000第 2 步:按位与得网络地址
10 000010
11 100000
---------
10 000000 = 128网络地址:192.168.1.128
第 3 步:主机号全 1 得广播地址
网络地址的主机位(后 5 位)全填 1:
10 011111 = 159广播地址:192.168.1.159
第 4 步:可用主机范围
- 第一个可用地址 = 网络地址 + 1 = 192.168.1.129
- 最后一个可用地址 = 广播地址 - 1 = 192.168.1.158
- 可用主机数 =
问题类型 2:给定主机数量需求,确定子网掩码
例:某部门需要 50 台主机,用一个 C 类网段来划分。
第 1 步:确定主机位数
第 2 步:确定子网掩码
主机位 6 位,网络+子网位 = 32 - 6 = 26 位
子网掩码 = /26 = 255.255.255.192
问题类型 3:将一个网络划分为 N 个子网
例:将 192.168.1.0/24 划分为 4 个子网。
第 1 步:确定借位数
第 2 步:子网掩码
/24 + 2 = /26 = 255.255.255.192
第 3 步:列出所有子网
| 子网 | 子网号 | 网络地址 | 广播地址 | 可用范围 |
|---|---|---|---|---|
| 0 | 00 | 192.168.1.0 | 192.168.1.63 | .1 ~ .62 |
| 1 | 01 | 192.168.1.64 | 192.168.1.127 | .65 ~ .126 |
| 2 | 10 | 192.168.1.128 | 192.168.1.191 | .129 ~ .190 |
| 3 | 11 | 192.168.1.192 | 192.168.1.255 | .193 ~ .254 |
每个子网有
子网号全 0 和全 1 的问题
早期规定子网号不能全 0(和原网络混淆)也不能全 1(和广播混淆),所以 N 个子网需要借
但现代协议(RFC 1878)允许使用全 0 和全 1 子网。408 考试中,默认按可以使用全 0 和全 1 子网来做题,除非题目特别说明。
CIDR(无分类编址)
基本概念
CIDR(Classless Inter-Domain Routing,无分类域间路由)彻底抛弃了 A/B/C 类的概念,用一个前缀长度来灵活划分网络号和主机号。
CIDR 地址格式:IP地址/前缀长度
192.168.1.0/24 → 前24位是网络前缀,后8位是主机号
10.0.0.0/8 → 前8位是网络前缀,后24位是主机号
172.16.128.0/20 → 前20位是网络前缀,后12位是主机号CIDR 的好处:
- 前缀长度可以是任意值(1~31),不受分类约束
- 可以更精确地分配地址空间,减少浪费
- 支持路由聚合,减少路由表规模
CIDR 地址块
一个 CIDR 地址块
| 前缀长度 | 地址数 | 等效 |
|---|---|---|
| /24 | 256 | 1 个 C 类 |
| /23 | 512 | 2 个 C 类 |
| /22 | 1024 | 4 个 C 类 |
| /20 | 4096 | 16 个 C 类 |
| /16 | 65536 | 1 个 B 类 |
路由聚合(超网)
什么是路由聚合
路由聚合就是把多个小的网络合并成一个大的网络来通告,减少路由表的条目数。
例如,某机构分到了 4 个连续的 /24 网段:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24可以聚合为一条路由:192.168.0.0/22
聚合的计算方法
第 1 步:将各网络地址的关键字节写成二进制
192.168.0.0 → 192.168.000000 00.0
192.168.1.0 → 192.168.000000 01.0
192.168.2.0 → 192.168.000000 10.0
192.168.3.0 → 192.168.000000 11.0第 2 步:从左到右找最长公共前缀
前 22 位完全相同(192.168 的 16 位 + 第三字节前 6 位),从第 23 位开始不同。
第 3 步:聚合结果
192.168.0.0/22
最长前缀匹配
路由器的路由表中可能有多条路由都匹配某个目的 IP 地址(前缀不同长度)。这时使用最长前缀匹配原则——选择前缀最长(最具体)的那条路由。
例:路由表中有以下条目:
| 目的网络 | 下一跳 |
|---|---|
| 192.168.0.0/22 | R1 |
| 192.168.1.0/24 | R2 |
| 192.168.1.128/25 | R3 |
| 0.0.0.0/0(默认路由) | R4 |
查找目的地址 192.168.1.200 时:
- 192.168.0.0/22 匹配(200 在 0~255 范围内,第三字节 1 < 4)
- 192.168.1.0/24 匹配(第三字节 = 1)
- 192.168.1.128/25 匹配(200 的二进制 11001000,最高位为 1,属于 128~255)
- 0.0.0.0/0 匹配(默认路由匹配所有)
选择前缀最长的 /25,走 R3。
最长前缀匹配是路由转发的核心原则,408 大题经常围绕这个出。
综合计算例题
题目: 某公司获得地址块 192.168.10.0/24,需要划分为 3 个子网,分别容纳 100 台、50 台和 20 台主机。采用变长子网掩码(VLSM)划分。
解题过程:
先按需求从大到小排列:100、50、20。
子网 1(100 台主机):
前缀长度 = 32 - 7 = 25,即 /25
分配网段:192.168.10.0/25(可用地址 .1~.126,共 126 个)
子网 2(50 台主机):
前缀长度 = 32 - 6 = 26,即 /26
从子网 1 之后开始分配:192.168.10.128/26(可用地址 .129~.190,共 62 个)
子网 3(20 台主机):
前缀长度 = 32 - 5 = 27,即 /27
从子网 2 之后开始分配:192.168.10.192/27(可用地址 .193~.222,共 30 个)
汇总:
| 子网 | 需求 | 网段 | 掩码 | 可用主机 | 地址范围 |
|---|---|---|---|---|---|
| 1 | 100 | 192.168.10.0/25 | 255.255.255.128 | 126 | .1~.126 |
| 2 | 50 | 192.168.10.128/26 | 255.255.255.192 | 62 | .129~.190 |
| 3 | 20 | 192.168.10.192/27 | 255.255.255.224 | 30 | .193~.222 |
剩余地址:192.168.10.224/27(.224~.255),可留作将来扩展。
VLSM 划分的要点:从需求最大的子网开始分配,使用不同的前缀长度,按顺序排列避免重叠。
交互可视化
下面的子网计算器可以输入 IP 地址和前缀长度,自动计算网络地址、广播地址、可用主机范围等信息。
直接交付与间接交付
主机发送 IP 数据报时,需要判断目的主机是否在同一子网内:
判断方法:将源 IP 和目的 IP 分别与源主机的子网掩码做按位与,如果结果相同,则在同一子网。
- 直接交付:目的主机在同一子网内,发送方通过 ARP 获取目的主机的 MAC 地址,直接发送帧
- 间接交付:目的主机不在同一子网内,发送方通过 ARP 获取默认网关(路由器) 的 MAC 地址,将数据报交给路由器转发
默认网关是主机配置的一个参数(和 IP 地址、子网掩码一起配置),它必须与主机在同一子网内。当主机不知道该将数据报发往哪里时,就交给默认网关。
这个判断过程在 408 大题中经常作为隐含条件出现:先判断是直接交付还是间接交付,再决定 ARP 解析谁的 MAC 地址。
易错点
1. 可用主机数是
主机号全 0 是网络地址,全 1 是广播地址,都不能分配给主机。所以要减 2。
2. 子网掩码和前缀长度的转换
/25 = 255.255.255.128(最后一字节 10000000 = 128) /26 = 255.255.255.192(最后一字节 11000000 = 192) /27 = 255.255.255.224(最后一字节 11100000 = 224) /28 = 255.255.255.240(最后一字节 11110000 = 240) /29 = 255.255.255.248(最后一字节 11111000 = 248) /30 = 255.255.255.252(最后一字节 11111100 = 252)
这些值建议背熟,做题可以直接写不用每次算。
3. 按位与计算网络地址时不要粗心
最容易出错的一步。建议只对"有变化"的那个字节做二进制运算,其余字节直接看掩码——掩码是 255 的字节直接照抄 IP,掩码是 0 的字节直接写 0。
4. VLSM 划分子网要从大到小
先分配需要主机数最多的子网,再分配较小的。否则可能出现地址空间不够的情况。
5. 路由聚合时要检查聚合后的范围是否覆盖了不该覆盖的地址
比如 192.168.1.0/24 和 192.168.3.0/24 不能直接聚合为 /22,因为 /22 同时覆盖了 .0、.1、.2、.3 四个网段,可能包含不属于该机构的地址。
6. 最长前缀匹配选最"具体"的路由
/25 比 /24 更具体,/0 是默认路由(最不具体)。匹配多条路由时选前缀最长的。
7. A 类网络号范围是 1~126,不是 0~127
0 开头的地址保留,127 开头的是环回地址。
疑难点
IP 地址和 MAC 地址为什么缺一不可?
IP 地址是逻辑地址,负责标识"最终目的地"——端到端路由寻址,可以变化(如 DHCP 分配)。MAC 地址是物理地址,负责解决"下一跳"——在同一链路内帧从哪个接口发到哪个接口,烧录在网卡中通常不变。分组在传输过程中,源/目的 IP 地址不变(NAT 除外),但源/目的 MAC 地址逐跳改变——每经过一个路由器,MAC 地址就换成当前链路两端的地址。如果只有 MAC 没有 IP,路由表需要记录全世界每块网卡的位置,根本无法工作;如果只有 IP 没有 MAC,数据到达目标网络后无法在局域网内找到具体主机。
子网掩码的作用到底是什么?
子网掩码不是地址,而是"切割"IP 地址的工具——告诉设备哪些位是网络号、哪些位是主机号。同一个 IP 地址在不同子网掩码下所属的网络不同。比如 192.168.1.100 配 /24 掩码网络号是 192.168.1.0,配 /20 掩码网络号变成 192.168.0.0。在 CIDR 体系下已没有固定的 A/B/C 类边界,子网掩码是确定网络边界的唯一依据。路由器转发时用目的 IP 和每条路由的子网掩码做与运算来判断匹配。
高频考点清单
- A/B/C 类地址的网络号位数和主机号位数
- 特殊地址:网络地址(主机号全 0)、广播地址(主机号全 1)、127.x.x.x、0.0.0.0
- 子网划分:从主机号中借位,子网掩码的计算
- IP 地址与子网掩码按位与得网络地址
- 可用主机数 =
- CIDR 地址块和前缀长度
- 路由聚合:找最长公共前缀
- 最长前缀匹配原则
- VLSM 变长子网掩码划分(从大到小分配)
- /25~/30 对应的子网掩码值(背熟)
- 给定 IP 和掩码,快速计算网络地址、广播地址、主机范围
- 直接交付 vs 间接交付的判断方法
- 默认网关的作用和配置要求