组网第33课:IP 地址与子网——CIDR、掩码、VLSM、网段规划与可用地址速算

网工面试必考的子网划分,一张速算表搞定


文章目录

  • 网工面试必考的子网划分,一张速算表搞定
    • [一、开场:面试官一句"/22 有多少可用地址",我愣住了](#一、开场:面试官一句“/22 有多少可用地址”,我愣住了)
    • [二、IP 地址:网络位 + 主机位](#二、IP 地址:网络位 + 主机位)
      • [1. 类比:门牌号分"小区名"和"几号房"](#1. 类比:门牌号分“小区名”和“几号房”)
      • [2. 网络位和主机位](#2. 网络位和主机位)
      • [3. 子网掩码:那条"切分线"](#3. 子网掩码:那条“切分线”)
      • [4. 分类地址和私网段](#4. 分类地址和私网段)
    • 三、可用地址数:一个公式就够
      • [1. 公式:2 的主机位次方,再减 2](#1. 公式:2 的主机位次方,再减 2)
      • [2. 常见掩码速算表](#2. 常见掩码速算表)
    • 四、子网划分:把大网"借位"切成小网
      • [1. 类比:把大房间隔成小房间](#1. 类比:把大房间隔成小房间)
      • [2. 借位:掩码变长,网变多、每个变小](#2. 借位:掩码变长,网变多、每个变小)
      • [3. 子网划分怎么算(以 /26 为例)](#3. 子网划分怎么算(以 /26 为例))
    • 五、VLSM:同一个网里,按需给不同大小
      • [1. 类比:按人数分房间,别浪费](#1. 类比:按人数分房间,别浪费)
      • [2. 园区网段规划](#2. 园区网段规划)
      • [3. 网段规划的几条经验](#3. 网段规划的几条经验)
      • [4. 一个完整的 VLSM 分配实例](#4. 一个完整的 VLSM 分配实例)
    • [六、命令落点:给接口配地址(华为 VRP)](#六、命令落点:给接口配地址(华为 VRP))
      • [1. 给 VLANIF 配 IP](#1. 给 VLANIF 配 IP)
      • [2. 给物理口配 IP(路由器/三层口)](#2. 给物理口配 IP(路由器/三层口))
      • [3. 异常与排查](#3. 异常与排查)
      • 思科对照
    • [七、🔧 运维视角 & 📐 设计视角](#七、🔧 运维视角 & 📐 设计视角)
    • 八、小结与命令速查表
    • 九、面试题完整解一遍:192.168.10.0/22
    • [十、思考题 & 评论区接招](#十、思考题 & 评论区接招)

一、开场:面试官一句"/22 有多少可用地址",我愣住了

前几年面试,技术面聊得挺顺,最后面试官随手写了个地址:192.168.10.0/22,问我:"这个网段,有多少个可用地址?范围是多少?"

我当时脑子里光记得"/24 是 254",一到 /22 就开始打磕巴,又是拿 256 减、又是数借位,半天没算利索。面试官没为难我,但那一下我特别清楚:子网划分这东西,不是背概念,是要能秒算、能在规划里用。

后来做项目,规划地址是家常便饭:一栋楼多少人、一个部门划多大、设备互联留多少、要不要预留扩容,全靠这一套。

这一课我把 IP 地址、掩码、CIDR、子网划分、VLSM 一次讲透,再给你一张"可用地址速算表",把面试和干活都用得上的算法彻底捋顺。


二、IP 地址:网络位 + 主机位

1. 类比:门牌号分"小区名"和"几号房"

  • 一个地址,比如"阳光小区 3 栋 502",前半段告诉你是哪个小区 ,后半段告诉你是小区里哪一户;
  • IP 地址也一样:192.168.10.20,前半段"网络位"指明是哪个网 ,后半段"主机位"指明是网里哪台设备;
  • 网络位相同的设备,才算在同一个网段里,能直接二层互通。

2. 网络位和主机位

  • 一个 IPv4 地址是 32 位,分成四段,每段 8 位,用点隔开,比如 192.168.10.20;
  • 这 32 位里,多少位是网络位、多少位是主机位,由子网掩码决定;
  • 以最常见的 /24 为例,前 24 位是网络位,最后 8 位是主机位。

3. 子网掩码:那条"切分线"

  • 子网掩码也是 32 位,用连续的 1 表示网络位、连续的 0 表示主机位;
  • /24 对应掩码 255.255.255.0,即前 24 位是 1;
  • 更省事的写法是 CIDR 前缀 :直接写 /24,表示前 24 位是网络位;
  • 所以 192.168.10.20/24 和掩码 255.255.255.0 是一回事。

4. 分类地址和私网段

早年地址按"类"分,了解一下不亏:

  • A 类:第一段 1~126,默认 /8,地址空间巨大;
  • B 类:第一段 128~191,默认 /16;
  • C 类:第一段 192~223,默认 /24,企业内网最常见;
  • 现在普遍用 CIDR,不再死板按类,掩码可以任意长度。

内网规划主要用三段私网地址:

  • 10.0.0.0/8:空间最大,大型网络随便切;
  • 172.16.0.0/12:覆盖 172.16~172.31;
  • 192.168.0.0/16:小园区最常用,系列例子基本都在这一段。

私网地址在公网上不可路由,出口靠 NAT 转换,这也是内网能反复用同一批地址的原因。


三、可用地址数:一个公式就够

1. 公式:2 的主机位次方,再减 2

  • 主机位有 n 位,就能编出 2^n 个地址;
  • 但每个网段里,主机位全 0 是网络地址、全 1 是广播地址,这两个不能分给设备;
  • 所以可用地址数 = 2^n − 2。

怎么从掩码看出借了几位?

掩码末段是二进制的连续 1,记住几个值:

  • 128 = 10000000,借 1 位;
  • 192 = 11000000,借 2 位;
  • 224 = 11100000,借 3 位;
  • 240 = 11110000,借 4 位。

比如 255.255.255.224,末段 224 是 3 个 1,说明借了 3 位、主机位剩 5 位,可用 2^5−2 = 30。看到掩码先换算成"几个 1",后面就顺了。

2. 常见掩码速算表

前缀 掩码 主机位 可用地址
/24 255.255.255.0 8 254
/25 255.255.255.128 7 126
/26 255.255.255.192 6 62
/27 255.255.255.224 5 30
/28 255.255.255.240 4 14
/29 255.255.255.248 3 6
/30 255.255.255.252 2 2
/31 255.255.255.254 1 2(点对点)

记住 /30 最常用:设备互联只要两个地址,2^2−2=2,正好。/31 是给点对点链路的特殊用法,省地址,具体要看设备支持。


四、子网划分:把大网"借位"切成小网

为什么非得划分子网?一个大网不行吗?

  • 控制广播:一个网段设备越多,广播帧(ARP、DHCP)越多,几百台在一个网里,广播能把性能拖下来;
  • 安全隔离:财务、服务器、办公分开,一个网段出问题不至于全网连坐,也方便做访问控制;
  • 便于管理:按部门、按区域划段,看地址就知道位置,故障定位快;
  • 子网划分不是"为划而划",是为了把网络做得更稳、更清楚。

1. 类比:把大房间隔成小房间

  • 一个大房间(大网段),住的人太杂、广播太吵;
  • 就借一点空间砌墙,隔成几个小房间(小网段),每个房间独立、互不干扰;
  • 这道"墙",就是往主机位借位,让网络位变长。

2. 借位:掩码变长,网变多、每个变小

  • 以 192.168.10.0/24 为例,借 1 位主机位当网络位,掩码变成 /25;
  • 就切成了两个网段:192.168.10.0/25 和 192.168.10.128/25,每个可用 126;
  • 规律:每借 1 位,网段数量翻倍,每个网段的可用地址减半;
  • 掩码越长,网段越多,每个网段越小。

3. 子网划分怎么算(以 /26 为例)

  • 借 2 位,掩码 /26,每个网段 64 个地址(2^6),可用 62;
  • 从 0 开始,每 64 一个网段:
    • 192.168.10.0/26:范围 0~63,可用 1~62;
    • 192.168.10.64/26:范围 64~127,可用 65~126;
    • 192.168.10.128/26、192.168.10.192/26,依此类推;
  • 窍门:先确定"块大小"(256 − 掩码末段),再从 0 按块排。

五、VLSM:同一个网里,按需给不同大小

1. 类比:按人数分房间,别浪费

  • 有的部门 200 人,要大房间;有的部门 5 个人,小房间就够;
  • 如果一律给一样大,小部门也占个大房间,地址全浪费了;
  • VLSM(可变长子网掩码)就是:在同一个大网里,不同网段用不同长度的掩码,按需分配。

2. 园区网段规划

  • 办公区 200 人,给 /24(可用 254);
  • 财务部 30 人,给 /27(可用 30);
  • 设备互联只要 2 个地址,给 /30(可用 2);
  • 原则:按规模给、连续分配、留足扩容、便于汇总。

3. 网段规划的几条经验

  • 先算总数再切:把每个区域的人数、设备数、未来扩容算清楚,再决定掩码;
  • 连续分配:同一类业务的网段尽量连号,将来好汇总成一条路由,减少路由表条目;
  • 预留扩容:别把地址分得刚刚好,给每个区域留增长空间,否则扩人时要重新规划;
  • 分类分块:业务、管理、设备互联、服务器分开用不同地址段,一目了然。

几个最常见的规划坑,能避就避:

  • 地址浪费:几个人的小部门也给个 /24,一大片地址空着,后期地址不够用;
  • 不连续:同一业务的网段东一块西一块,没法汇总,路由表越堆越长;
  • 没预留:现在 30 人就给 30 个,过两个月加人,只能重新割接;
  • 公私混用:随手拿公网地址当内网用,将来真要访问那个公网站点就冲突,内网老老实实从私网段取。

按"设备数量"选掩码
#mermaid-svg-KqdDb8ssVsfa6dEh{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-KqdDb8ssVsfa6dEh .error-icon{fill:#552222;}#mermaid-svg-KqdDb8ssVsfa6dEh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KqdDb8ssVsfa6dEh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KqdDb8ssVsfa6dEh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KqdDb8ssVsfa6dEh .marker.cross{stroke:#333333;}#mermaid-svg-KqdDb8ssVsfa6dEh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KqdDb8ssVsfa6dEh p{margin:0;}#mermaid-svg-KqdDb8ssVsfa6dEh .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh .cluster-label text{fill:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh .cluster-label span{color:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh .cluster-label span p{background-color:transparent;}#mermaid-svg-KqdDb8ssVsfa6dEh .label text,#mermaid-svg-KqdDb8ssVsfa6dEh span{fill:#333;color:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh .node rect,#mermaid-svg-KqdDb8ssVsfa6dEh .node circle,#mermaid-svg-KqdDb8ssVsfa6dEh .node ellipse,#mermaid-svg-KqdDb8ssVsfa6dEh .node polygon,#mermaid-svg-KqdDb8ssVsfa6dEh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-KqdDb8ssVsfa6dEh .rough-node .label text,#mermaid-svg-KqdDb8ssVsfa6dEh .node .label text,#mermaid-svg-KqdDb8ssVsfa6dEh .image-shape .label,#mermaid-svg-KqdDb8ssVsfa6dEh .icon-shape .label{text-anchor:middle;}#mermaid-svg-KqdDb8ssVsfa6dEh .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-KqdDb8ssVsfa6dEh .rough-node .label,#mermaid-svg-KqdDb8ssVsfa6dEh .node .label,#mermaid-svg-KqdDb8ssVsfa6dEh .image-shape .label,#mermaid-svg-KqdDb8ssVsfa6dEh .icon-shape .label{text-align:center;}#mermaid-svg-KqdDb8ssVsfa6dEh .node.clickable{cursor:pointer;}#mermaid-svg-KqdDb8ssVsfa6dEh .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-KqdDb8ssVsfa6dEh .arrowheadPath{fill:#333333;}#mermaid-svg-KqdDb8ssVsfa6dEh .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-KqdDb8ssVsfa6dEh .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-KqdDb8ssVsfa6dEh .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-KqdDb8ssVsfa6dEh .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-KqdDb8ssVsfa6dEh .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-KqdDb8ssVsfa6dEh .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-KqdDb8ssVsfa6dEh .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-KqdDb8ssVsfa6dEh .cluster text{fill:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh .cluster span{color:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-KqdDb8ssVsfa6dEh .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-KqdDb8ssVsfa6dEh rect.text{fill:none;stroke-width:0;}#mermaid-svg-KqdDb8ssVsfa6dEh .icon-shape,#mermaid-svg-KqdDb8ssVsfa6dEh .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-KqdDb8ssVsfa6dEh .icon-shape p,#mermaid-svg-KqdDb8ssVsfa6dEh .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-KqdDb8ssVsfa6dEh .icon-shape .label rect,#mermaid-svg-KqdDb8ssVsfa6dEh .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-KqdDb8ssVsfa6dEh .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-KqdDb8ssVsfa6dEh .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-KqdDb8ssVsfa6dEh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 200左右
30左右
2台互联
要给多少台设备地址
数量多大
用斜杠24
用斜杠27
用斜杠30
可用254
可用30
可用2
连续分配预留扩容

4. 一个完整的 VLSM 分配实例

假设你拿到 192.168.20.0/24,要分给四块:办公 100 人、研发 50 人、财务 25 人、设备互联 4 条链路。怎么分?

先从最大的需求开始切(VLSM 要先大后小,避免碎片):

  • 办公 100 人,要 128 个地址,给 192.168.20.0/25(可用 126);
  • 研发 50 人,要 64 个地址,从剩下的一半里给 192.168.20.128/26(可用 62);
  • 财务 25 人,要 32 个地址,给 192.168.20.192/27(可用 30);
  • 4 条互联链路,每条 2 个地址,给 4 个 /30:192.168.20.224/30、228/30、232/30、236/30;
  • 最后还剩一点(240~255),留作以后扩容。

一个 /24 就把 100 人、50 人、25 人办公和 4 条互联全装下了,基本没浪费。如果一律给 /24,四块业务就得占四个 C,地址开销大得多。这就是 VLSM 的价值。


六、命令落点:给接口配地址(华为 VRP)

1. 给 VLANIF 配 IP

shell 复制代码
<SW> system-view
[SW] vlan batch 10
[SW] interface Vlanif 10
[SW-Vlanif10] ip address 192.168.10.1 24
[SW-Vlanif10] quit
[SW] return
<SW> save

2. 给物理口配 IP(路由器/三层口)

shell 复制代码
[R] interface GigabitEthernet 0/0/0
[R-GigabitEthernet0/0/0] ip address 10.0.0.1 255.255.255.252

验证:

shell 复制代码
<R> display ip interface brief
text 复制代码
Interface        IP Address       Physical    Protocol
Vlanif10         192.168.10.1     up          up
GigabitEthernet0/0/0 10.0.0.1     up          up

3. 异常与排查

现象 命令 看到什么 判断 动作
同网段不通 看双方 IP/掩码 掩码不一致 不在同一网段 统一掩码
地址冲突 看日志 地址被占用 重复分配 改地址、查台账
配不上 IP 看提示 地址已存在 网段重叠 重新规划
互联不通 看接口 两端不在同段 掩码/地址错 对齐 /30 地址

思科对照

动作 华为 思科
配 IP ip address 192.168.10.1 24 ip address 192.168.10.1 255.255.255.0
看接口 display ip interface brief show ip interface brief
看路由 display ip routing-table show ip route

七、🔧 运维视角 & 📐 设计视角

🔧 运维视角:

  • 同网段不通,先核对双方 IP 和掩码是不是一致,别光看地址前三段;
  • 地址冲突有日志,按冲突的地址查是哪台设备,台账要及时更新;
  • 设备互联统一用 /30,一眼能看出哪些是点对点链路。

📐 设计视角:

  • 地址规划先上"总表":按区域、部门、规模、扩容列清楚,再划网段;
  • 业务、管理、互联、服务器分块,网段连续、便于汇总;
  • 用 VLSM 按需分配,避免小部门浪费大段地址,同时留足增长。

八、小结与命令速查表

  • IP 地址 = 网络位 + 主机位,掩码决定切分位置;
  • 可用地址数 = 2^主机位 − 2,常见掩码要能背;
  • 子网划分就是借主机位,掩码变长、网变多、每个变小;
  • VLSM 按规模给不同大小,连续分配、留足扩容。

本篇命令速查表:

目的 华为命令 思科对照
配 IP ip address 192.168.10.1 24 ip address 192.168.10.1 255.255.255.0
看接口 display ip interface brief show ip interface brief
看路由 display ip routing-table show ip route
看 VLANIF display interface Vlanif 10 show interface vlan 10

九、面试题完整解一遍:192.168.10.0/22

把开头那道题的答案写清楚,方便对照:

  1. 看主机位:/22 表示前 22 位是网络位,主机位 = 32 − 22 = 10 位;
  2. 算可用数 :总地址 = 2^10 = 1024,减去网络地址和广播地址,可用 1022 个;
  3. 找块边界:/22 在第三段每 4 个 C 一块(256 − 252 = 4),10 落在 8 这个块里;
  4. 定范围 :网络地址是 192.168.8.0,覆盖 192.168.8.0 ~ 192.168.11.255,可用地址是 192.168.8.1 ~ 192.168.11.254。

这就是完整答案。面试时按"主机位 → 可用数 → 块边界 → 范围"四步走,基本不会错。


十、思考题 & 评论区接招

💬 互动题(评论区对答案):

192.168.10.0/22 有多少个可用地址?覆盖的地址范围是多少?

给个提示,分三步算:

1)/22 的主机位是多少位?

2)可用地址 = 2^主机位 − 2,等于多少?

3)块大小是多少?这个网段从哪个地址开始、到哪个地址结束?

把你的答案和算法写在评论区,我会逐条核对,看看谁算得又快又准。


系列导航:

我是你们的老网工。地址这关过了,接下来才是真正的"让网络四通八达"------路由。下一课《路由原理与路由表》,我们逐行看 display ip routing-table:路由是怎么进来的、两条路由凭什么选它不选我、最长匹配是什么意思,搞懂这些,你才真正知道"一个包到底走了哪条路"。下一课见。

相关推荐
山雀~4 小时前
WebSocket 断连之后:一次手机采集偶现卡死的排查与修复
网络·websocket·网络协议
Novproxy_Z4 小时前
机房 IP 和住宅 IP 怎么区分?IP ASN、归属信息检测脚本
linux·网络·tcp/ip
码少女5 小时前
Linux——网络层-IP协议以及路由选择
linux·网络·网络协议·tcp/ip
dsadas6 小时前
ospf宣告网段的理解
网络协议
牢姐与蒯6 小时前
Linux网络篇——TCP(一)之手搓TCP,并实现词典和远程命令
linux·网络·tcp/ip
oyzz1207 小时前
CentOS Stream 9 配置静态 IP 口令是多少
linux·tcp/ip·centos
爱研究的小梁8 小时前
从无人车配送走向集群联动作业,通信如何扛住协同压力?
网络·网络协议·机器人·信息与通信
新时代牛马8 小时前
`arch_timer`、`IPI5`、`HRTIMER`、`ksoftirqd` 的关系
网络·单片机·tcp/ip
汤愈韬8 小时前
OSPF的虚链路
网络·网络协议