CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
网络工程师入门/课时/IP 寻址与子网
RawBlame
课时目录12 节

网络工程师入门

  1. 01网络工程师是什么
  2. 02OSI 与 TCP/IP
  3. 03IP 寻址与子网
  4. 04网络设备
  5. 05路由协议
  6. 06交换与二层
  7. 07无线网络
  8. 08网络安全
  9. 09云网络与自动化
  10. 10排障与可观测
  11. 11认证与学习路径
  12. 12综合练习

IP 寻址与子网

IPv4/IPv6、CIDR、VLSM、VLAN。

40 分钟

IP 寻址与子网划分

这一课你将能做到

  1. 手算任意 /24 到 /30 子网的网络号、广播址、可用主机数
  2. 用 VLSM 把一个 C 段按需求切成不浪费的多个子网
  3. 配置私有地址并解释 NAT 如何让 30 台设备共享一个公网 IP

为什么要学

子网划分是网络面试的第一道硬菜,也是云上建 VPC、K8s 规划 Service CIDR 的日常。不会算,云控制台里「可用 IP 数量 251」你都读不懂;会算,所有 CIDR 记法一眼见底。这一课用查表法把二进制运算变成套路题。

先建立图像

IPv4 = 32 bit,按 . 分四段,每段 8 bit
192.168.10.66  →  11000000.10101000.00001010.01000010
                  └──── 网络位(相同的部分 = 同一子网)────┘└─主机位─┘
掩码 /24 = 255.255.255.0 → 前 24 位是网络位,后 8 位是主机位
主机位 8 bit → 2^8 = 256 个地址,可用 256-2 = 254(去掉网络号与广播址)

一句话心法:掩码决定切在哪,块大小 = 256 − 掩码末字节。

跟着做

步骤 1:速查表背下来

前缀掩码可用主机典型用途
/24255.255.255.0254部门网段
/25255.255.255.128126半个 C
/26255.255.255.19262小部门
/27255.255.255.22430服务器组
/28255.255.255.24014DMZ
/29255.255.255.2486小簇
/30255.255.255.2522设备互联
/31255.255.255.2542(RFC 3021)点对点专线
/32255.255.255.2551单主机 / 回环

步骤 2:手算一个子网

例:192.168.10.66/26 → 掩码 255.255.255.192,块大小 256−192=64。

  • 网络号:64 的倍数中 ≤66 的最大值 = 192.168.10.64
  • 广播址:.64 + 63 = .127
  • 可用范围:.65–.126,共 62 个

用工具验证:

python3 -c "import ipaddress;print(ipaddress.ip_network('192.168.10.66/26', strict=False))"
# 192.168.10.64/26

步骤 3:VLSM 实战——一个 C 段切五块

需求:A 部门 100 台、B 部门 50 台、服务器 20 台、两条点对点互联。从大往小切,起始地址对齐自己的块大小:

192.168.10.0/25   →  A 部门(可用 126)
192.168.10.128/26 →  B 部门(可用 62)
192.168.10.192/27 →  服务器(可用 30)
192.168.10.224/30 →  互联 1(可用 2)
192.168.10.228/30 →  互联 2(可用 2)

VLSM 铁律:先满足最大的,每个子网的起点必须落在其块大小的整数倍上。

步骤 4:在 Linux 上配地址并验证

sudo ip addr add 192.168.10.66/26 dev eth0
ip -brief addr show eth0
ping -c2 192.168.10.65   # 同子网直连
ping -c2 8.8.8.8         # 不通?看下一节 NAT

步骤 5:看懂 NAT

# 家用路由器 / 云主机最常见的伪装 NAT
sudo iptables -t nat -L POSTROUTING -n -v | head
# 内网 192.168.10.0/24 出网时源 IP 被改成出口 IP,回包按连接表改回来

K8s 节点出网 SNAT 成节点 IP,同一个原理。NAT 是有状态的:主动出站的回包能回来,外部主动进来的没有映射。

讲清楚要点

  1. 私有地址三段(RFC 1918):10.0.0.0/8、172.16.0.0/12、192.168.0.0/16,不能直接上公网,必须经 NAT。
  2. CIDR 取消了 A/B/C 类的僵硬边界:掩码位数即前缀长度,/8、/16、/24 是最常用刻度。
  3. 每个子网损失 2 个地址:网络号代表「子网本身」,广播号代表「向全网段所有人」,都不能分配给主机;点对点链路可用 /31 省地址。
  4. NAT 的方向性:PAT/MASQUERADE 按「IP+端口」维护连接表,天然「外打不进内」——这是安全特性,也是 P2P 与自建服务要做端口映射的原因。
  5. 云上子网要预留:主流云厂商每个子网保留 5 个地址,所以 VPC 文档里 /24 显示可用 251。
  6. 路由汇总是 CIDR 的反方向:把 192.168.0.0/24 – 192.168.3.0/24 四个连续子网对外汇总成 192.168.0.0/22,路由表立刻瘦身;前提是地址连续且块对齐——这也是编址要「先总后分」的原因之一。

你可能会懵的地方

  • 为什么可用地址要减 2? 网络号标识子网自身、广播号面向全网段,二者都不能给主机。云上再减 5 是厂商保留(网关、DNS 等)。

  • 192.168.1.0/24 和它的 /25 能同时用吗? 能,前提互不重叠,这叫子网细分;重叠会让路由表精神分裂,转发结果看最长前缀匹配。

  • 怎么判断一个 IP 是不是公网? 排除 RFC1918 三段、127/8、169.254/16、组播 224/4 等保留段,其余基本是公网。可编程验证:python3 -c "import ipaddress;print(ipaddress.ip_address('8.8.8.8').is_global)"。

  • 网关必须是子网第一个地址吗? 惯例而已,任何可用地址都能当网关,关键是全网段配置一致、路由表指对。

  • IPv6 也要这么抠吗? 思路一致但几乎不用抠:惯例 /64 一个子网,可用空间天文数字。先吃透 IPv4,IPv6 是「同样的刀法、更大的蛋糕」。

错法对照

错法问题正解
60 台的小部门硬切 /24浪费 194 个地址按需 /26,VLSM 先大后小
广播址当主机用全网段都能「连上」它但没服务广播址永不分主机
掩码 /22 却按 /24 算范围互联网段不通先算块大小 256−掩码末字节
云上子网给 /28 还塞 20 台机器可用仅 11 个,Pod 分不到 IP按「可用 = 2^n − 5」预留
内网用公网 IP 直连自家服务回程绕公网或被丢走私网地址,理解 NAT 回程路径

卡点急救

  1. 算错网络号:先写掩码二进制确定主机位数,块大小 = 2^主机位;网络号 = 不超过该 IP 的最大块大小整数倍。
  2. 同网段 ping 不通:先查两边掩码是否一致,再查 ARP(ip neigh),最后查交换机端口 VLAN。
  3. 跨网段 ping 不通:查本机默认网关、ip route 路由表、对端回程路由——路由永远要双向可达。

面试常问

  • 10.0.0.0/8 怎么给 500 个部门划子网? 层次化规划:10.0.0.0/16 每部门一个 /24(可用 254),共 256 个 /24 不够则再升一层到 /12 区域划分;预留空段给扩展。考的是层次化思维而非硬算。

  • NAT 的类型与原理? 静态 NAT 一对一映射;动态 NAT 地址池;PAT/MASQUERADE 多对一按端口区分。本质是改写 IP/端口并维护连接表。

  • 172.16.5.1/20 的网络号和可用范围? /20 → 第三字节块大小 16 → 网络号 172.16.0.0,广播 172.16.15.255,可用 172.16.0.1–172.16.15.254 共 4094 个。

自测三问

  1. 192.168.1.77/28 的网络号、广播址、可用主机数各是多少?
  2. 为什么云厂商的 /24 子网只给 251 个可用 IP?
  3. 一条点对点链路用哪个前缀最省地址?

小结一句话

子网划分 = 把 32 位地址在「网络位 | 主机位」之间切一刀;会算块大小,VLSM 与 CIDR 全是同一道题。

延伸

  • RFC 1918:私有互联网地址分配
  • 下一课:网络设备——交换机、路由器、防火墙与负载均衡。
加载本节练习…
← 上一课OSI 与 TCP/IP下一课 →网络设备