IP地址与子网划分

← 返回 MOC | ← 主页

你手机连上 WiFi 后拿到的 192.168.1.x,出了路由器就变成运营商给的公网 IP——这背后是 IP 地址分类和 NAT 在工作。


IPv4 地址分类

IPv4 地址是 32 位,点分十进制表示(如 192.168.1.1)。早期按规模分成几类,方便分配给不同大小的组织:

类别第一字节范围网络位主机位可用主机数典型用途
A 类1 ~ 1268 位24 位约 1600 万超大型机构
B 类128 ~ 19116 位16 位约 6.5 万中大型机构
C 类192 ~ 22324 位8 位254小型网络
D 类224 ~ 239多播地址
E 类240 ~ 255保留/实验

127.x.x.x 是回环地址(loopback),ping 127.0.0.1 是测试本机网络栈是否正常。

私有地址(不在公网路由,局域网内用):

范围类别常见场景
10.0.0.0 ~ 10.255.255.255A 类私有公司内网、数据中心
172.16.0.0 ~ 172.31.255.255B 类私有企业内网
192.168.0.0 ~ 192.168.255.255C 类私有家用路由器、嵌入式设备

公司内网为什么喜欢用 10.0.0.0/8?因为它能容纳 1600 万台设备,一个 /8 就够整个公司用,不用再划子网。


子网掩码与 CIDR

A 类地址给一个机构就是 1600 万个 IP,大部分都浪费了。子网划分把一个大网络切成多个小网络。

子网掩码:和 IP 地址一样是 32 位,连续的 1 表示网络部分,连续的 0 表示主机部分。

CIDR(无类域间路由):用斜线加前缀长度表示,如 192.168.1.0/24,比分类更灵活。

怎么算:

给定 IP 地址和前缀长度,求网络地址、广播地址、可用主机数:

IP 地址:192.168.1.100/24
子网掩码:255.255.255.0(前 24 位全 1)

网络地址 = IP AND 子网掩码
         = 192.168.1.100 AND 255.255.255.0
         = 192.168.1.0

广播地址 = 网络地址的主机位全置 1
         = 192.168.1.255

可用主机数 = 2^(32-24) - 2 = 2^8 - 2 = 254
(减 2 是因为网络地址和广播地址不能分配给主机)

典型例题:

192.168.10.200/28,求网络地址、广播地址、可用主机数。

前缀 28 位,主机位 4 位
子网掩码:255.255.255.240(最后一字节 11110000 = 240)

200 的二进制:11001000
AND 11110000 = 11000000 = 192

网络地址:192.168.10.192
广播地址:192.168.10.207(主机位全 1:11001111 = 207)
可用主机数:2^4 - 2 = 14

**判断两个 IP 是否在同一子网:**两个 IP 分别 AND 子网掩码,结果相同则在同一子网。


NAT:私有地址出公网

私有地址在公网上不可路由,出了家用路由器必须转换成公网 IP。这就是 NAT(网络地址转换)。

**为什么需要 NAT:**IPv4 公网地址只有约 43 亿个,全球设备远超这个数,NAT 让多台设备共用一个公网 IP。

怎么工作:

你的手机(192.168.1.5:54321)
    ↓ 发出请求
路由器 NAT 表:192.168.1.5:54321 ↔ 公网IP:60001
    ↓ 替换源地址
公网(公网IP:60001)→ 目标服务器

服务器回包 → 路由器查 NAT 表 → 转回 192.168.1.5:54321

NAT 表记录了内网地址+端口和公网地址+端口的映射关系,靠端口号区分不同设备的连接。


IPv6

**为什么要 IPv6:**2011 年 IANA 把最后一批 IPv4 地址分配完毕,IPv6 是根本解决方案。

对比项IPv4IPv6
地址长度32 位(约 43 亿)128 位(约 3.4×10³⁸)
表示方式点分十进制 192.168.1.1冒号十六进制 2001:db8::1
首部长度可变(最小 20 字节)固定 40 字节
首部校验和去掉了(交给传输层)
NAT需要(地址不够用)不需要(地址足够)
广播没有,用多播代替
地址自动配置DHCPSLAAC(无状态地址自动配置)

IPv6 地址压缩规则:

  • 每组前导 0 可省略:004242
  • 连续全 0 组可用 :: 代替(只能用一次):2001:0db8:0000:0000:0000:0000:0000:00012001:db8::1

**嵌入式场景:**IoT 设备数量庞大,IPv6 是趋势。6LoWPAN 协议把 IPv6 压缩后跑在低功耗无线网络(如 Zigbee)上。


笔试题直击

Q:给定 IP/前缀,求网络地址、广播地址、可用主机数

套公式:

  1. 网络地址 = IP AND 子网掩码
  2. 广播地址 = 网络地址的主机位全置 1
  3. 可用主机数 =

Q:判断两个 IP 是否在同一子网

两个 IP 分别 AND 子网掩码,结果相同则在同一子网。

Q:IPv6 和 IPv4 的主要区别

地址 128 位 vs 32 位;首部固定 40 字节;去掉了校验和和广播;不需要 NAT;支持 SLAAC 自动配置。


如果你正在跟随梳理, 返回 MOC←