
🔥小叶-duck:个人主页
❄️个人专栏:《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》
《Linux系统从入门到实践》《Linux网络从入门到实践》
✨未择之路,不须回头
已择之路,纵是荆棘遍野,亦作花海遨游
目录
[1.1 IP 地址的本质:网络号 + 主机号](#1.1 IP 地址的本质:网络号 + 主机号)
[1.2 网段划分的故事类比](#1.2 网段划分的故事类比)
[1.3 为什么要进行网段划分?](#1.3 为什么要进行网段划分?)
[1.4 网络层核心设备:路由器](#1.4 网络层核心设备:路由器)
[1.4.1 路由器的工作层级与核心功能](#1.4.1 路由器的工作层级与核心功能)
[1.4.2 路由器的 IP 配置规则](#1.4.2 路由器的 IP 配置规则)
[1.5 IP 地址自动分配:DHCP 协议](#1.5 IP 地址自动分配:DHCP 协议)
[1.5.1 DHCP 的作用与适用场景](#1.5.1 DHCP 的作用与适用场景)
[1.5.2 DHCP 的工作层级与传输协议](#1.5.2 DHCP 的工作层级与传输协议)
[1.5.3 DHCP 存在的局限](#1.5.3 DHCP 存在的局限)
[1.6 IP 地址早期划分:分类划分法](#1.6 IP 地址早期划分:分类划分法)
[1.6.1 五类 IP 地址划分规则](#1.6.1 五类 IP 地址划分规则)
[1.6.2 分类划分法的核心缺陷](#1.6.2 分类划分法的核心缺陷)
[1.7 现代网段划分:CIDR 无类别域间路由与子网掩码](#1.7 现代网段划分:CIDR 无类别域间路由与子网掩码)
[1.7.1 CIDR 的诞生背景与核心概念](#1.7.1 CIDR 的诞生背景与核心概念)
[1.7.2 网络号的计算方法](#1.7.2 网络号的计算方法)
[1.7.3 子网掩码的核心意义](#1.7.3 子网掩码的核心意义)
[1.7.4 主机号的特殊地址规则](#1.7.4 主机号的特殊地址规则)
[1.8 私有 IP 地址与公网 IP 地址](#1.8 私有 IP 地址与公网 IP 地址)
[1.8.1 私有 IP 地址规范](#1.8.1 私有 IP 地址规范)
[1.8.2 IP 地址的生效范围](#1.8.2 IP 地址的生效范围)
[1.8.3 核心问题:为什么设计私有 IP,允许多个局域网重复使用?](#1.8.3 核心问题:为什么设计私有 IP,允许多个局域网重复使用?)
[1.9 网络运营商(ISP)](#1.9 网络运营商(ISP))
[1.9.1 运营商的角色及核心作用](#1.9.1 运营商的角色及核心作用)
[1.9.2 路由器分类:企业级路由器与家用路由器](#1.9.2 路由器分类:企业级路由器与家用路由器)
[1.9.3 路由器的 LAN 口与 WAN 口 IP](#1.9.3 路由器的 LAN 口与 WAN 口 IP)
[1.10 核心技术:NAT 网络地址转换](#1.10 核心技术:NAT 网络地址转换)
[1.10.1 NAT 的核心作用](#1.10.1 NAT 的核心作用)
[1.10.2 NAPT(网络地址端口转换)原理](#1.10.2 NAPT(网络地址端口转换)原理)
[1.10.3 运营商侧 NAT 的特性](#1.10.3 运营商侧 NAT 的特性)
[1.10.4 NAT 技术的三大核心价值](#1.10.4 NAT 技术的三大核心价值)
[1.10.5 报文从内网到公网的完整转发流程](#1.10.5 报文从内网到公网的完整转发流程)
前言
在上一篇文章中,我们完成了网络层基础概念的学习,认识了 IP 地址的基本含义,并且完整拆解了 IP 报文头部各个字段,结合 Linux 内核源码了解 IP 首部结构体的底层实现,清楚了 IP 报文在网络传输过程中的封装、标识、TTL、分片等基础能力。
但仅仅看懂 IP 报文头部,还不足以理解整个互联网的寻址逻辑。IP 地址不是孤立存在的,互联网依靠网段划分把庞大的网络拆分成一个个独立子网,依靠路由器完成跨网段转发,依靠 DHCP 实现 IP 自动分配。同时 IPv4 地址资源紧张催生了私有 IP 体系与 NAT 地址转换技术,这也是我们日常家庭、企业内网能够共用少量公网 IP 访问互联网的核心原理。
本文将从网段划分入手,对比早期分类编址与现代 CIDR 无类域间路由,讲解子网掩码的计算规则,接着介绍路由器、DHCP 协议,区分私有 IP 与公网 IP 的作用域,最后深入 NAT 网络地址转换,分析运营商 NAT 特性,通过一个简单案例完整还原内网主机访问公网时报文的 NAT 转换全过程。
一、IP:网段划分
1.1 IP 地址的本质:网络号 + 主机号

IP 地址本身是一个 32 位二进制数,为了方便读写,用点分十进制表示,例如192.168.128.10。它的逻辑结构被划分为两部分:
IP地址 = 网络号(网络标识)+ 主机号(主机标识)
- 网络号:标识一台主机所处的子网(局域网),同一个子网内所有主机的网络号必须相同;
- 主机号:标识同一个子网内的具体某台主机,同一子网内每台主机的主机号必须不同。
上图中的两个子网就是典型例子:
- 子网 A:
192.168.128.0/24,主机地址为192.168.128.10、192.168.128.11; - 子网 B:
192.168.144.0/24,主机地址为192.168.144.10、192.168.144.11。
这里的/24表示:IP 地址从头数起前 24 位属于网络号,剩下 8 位是主机号 。
而对于子网 A 中的主机地址192.168.128.10为来说其网络号就是192.168.128,主机号为10。
1.2 网段划分的故事类比
类比关系
- 整个校园 = 互联网
- 各个学院(计算机、机械、化工等)= 子网
- 学号 = IP 地址,学号分为「院号 + 个人编号」,对应 IP = 网络号 + 主机号
- 学院学生会主席 = 子网网关 / 路由器
- 校内 = 内网,校群 / 跨学院转发 = 公网路由

1.3 为什么要进行网段划分?
核心结论 :划分子网的本质是提高路由查找效率 。路由的本质是 "排除法",通过网络号可以一次性排除整个网段的设备,而不是逐个遍历所有主机。如果没有子网划分,全球几十亿设备在同一个网络中,路由查找将变成 "大海捞针",网络根本无法正常运行。



1.4 网络层核心设备:路由器
1.4.1 路由器的工作层级与核心功能
- **工作层级:**传统路由器核心工作在网络层。现代家用 / 企业路由器功能得到扩展,部分能力延伸至应用层,比如内置 Web 管理页面,通过 HTTP 协议完成设备配置。
- 核心功能: 可以划分独立子网,是局域网接入互联网的关键设备。局域网内的主机 IP,一般由路由器通过DHCP 协议分配;路由器负责跨网段转发数据包,实现不同子网之间的通信。
1.4.2 路由器的 IP 配置规则
- 路由器本质上是一台多网卡的网络主机,每个接口都需要配置对应的 IP 地址。
- 路由器通常至少拥有两类接口,各自配置的 IP 来源和作用完全不同:
LAN 口(内网接口) :用于连接本地局域网,IP 由管理员手动配置,一般选用网段内主机号为 1 的地址,例如192.168.128.1/24,作为该子网的默认网关。同一个 LAN 口下所有主机,网络号必须相同。
WAN 口(外网接口):用于连接上级网络(运营商光猫 / 公网),IP 地址由运营商通过 DHCP 自动分配。WAN 口拿到的通常是公网 IP(部分地区为运营商大内网 IP),WAN 口 IP 所在网段必须与 LAN 口网段不同,否则会产生路由冲突,无法正常上网。 - 当路由器同时连接多个不同子网时,每个相连接口都必须配置属于各自网段的 IP,保证每个接口都能在对应子网内正常收发数据。
记忆要点:LAN 口 IP 是路由器自己定的网关地址 ,用来对内组网 ;
WAN 口 IP 是上级运营商 对其分配的出口地址 ,用来对外上网 。两者网段必须错开,这也是 NAT 转换能够成立的前提 ------ 内网报文出 WAN 口时,源 IP 被替换成 WAN 口的公网 IP(后续解释)。
1.5 IP 地址自动分配:DHCP 协议
1.5.1 DHCP 的作用与适用场景
手动给局域网内每一台主机配置 IP 地址、子网掩码与网关,操作繁琐且容易出现 IP 冲突。DHCP 全称动态主机配置协议 ,可以自动为子网中新接入的主机分配全套网络参数,省去人工配置的操作。
典型使用场景:
- 家用无线路由器,内置 DHCP 服务;
- 企业、校园内部局域网;
- 商场、车站等公共 WiFi 热点。
举个实例: 手机接入家庭 WiFi,路由器作为 DHCP 服务器,会自动分配 IP(例如192.168.1.101)、子网掩码255.255.255.0以及默认网关192.168.1.1,设备拿到配置后即可接入网络。
1.5.2 DHCP 的工作层级与传输协议
- 工作层级: 严格来说 DHCP 横跨应用层和传输层 ,但标准归类为应用层协议,因为它负责为操作系统提供网络配置服务;
- 传输协议: 使用UDP 协议传输报文,而不是 TCP;
- **协议特点:**设备拿到 IP 之前就要发起 DHCP 请求,因此采用广播机制,客户端与服务端通过上述 UDP 端口交互。
1.5.3 DHCP 存在的局限
- **无法天然提供固定 IP:**服务器、网络打印机这类设备需要稳定不变的 IP。这类设备可以手动配置静态 IP,或者在 DHCP 服务端配置地址保留,让指定设备每次上线都获取相同 IP。
- **存在安全隐患:**DHCP 报文本身没有加密校验。在公共 WiFi 环境,容易遭受 DHCP 欺骗攻击。攻击者伪造 DHCP 响应报文,给主机推送恶意网关、DNS,劫持网络流量。企业网络一般部署 DHCP Snooping,用来抵御这类攻击。
1.6 IP 地址早期划分:分类划分法
IPv4 地址属于稀缺资源。互联网发展早期,为适配不同规模的网络,设计出分类划分方案,将全部 IPv4 地址划分为 A、B、C、D、E 五大类别,用来适配大型、中型、小型等不同体量的网络。
1.6.1 五类 IP 地址划分规则
| 类别 | 首位标识 | 网络号位数 | 主机号位数 | 地址范围 | 用途说明 |
|---|---|---|---|---|---|
| A 类 | 0 | 7 位 | 24 位 | 0.0.0.0 ~ 127.255.255.255 | 面向国家级、运营商级别的大型网络;其中127.0.0.0/8网段预留作为环回地址,不能分配给子网主机使用 |
| B 类 | 10 | 14 位 | 16 位 | 128.0.0.0 ~ 191.255.255.255 | 面向高校、中型企业这类中型规模网络 |
| C 类 | 110 | 21 位 | 8 位 | 192.0.0.0 ~ 223.255.255.255 | 面向家庭、小型办公室这类小规模局域网 |
| D 类 | 1110 | - | - | 224.0.0.0 ~ 239.255.255.255 | 用于多播通信,没有网络号、主机号的划分概念 |
| E 类 | 1111 | - | - | 240.0.0.0 ~ 247.255.255.255 | 保留网段,预留用于实验,不分配给普通主机使用 |
1.6.2 分类划分法的核心缺陷
该方案划分粒度固定 ,灵活性很差,造成 IPv4 地址资源大量浪费:
- A 类地址主机号长达 24 位,单个子网理论可容纳一千六百多万台主机。现实中几乎不存在规模这么大的局域网,网段内绝大多数 IP 地址长期闲置。
- 很多中型组织直接申请 B 类地址,B 类地址空间快速耗尽;B 类单个子网理论支持 65534 台主机,但大部分企业实际用不到这么多终端,同样造成大量地址空置。
- 不能按需灵活切分子网,网络规模和地址块大小强制绑定,地址整体利用率很低。
**简单类比:**就像分蛋糕,只能切固定大小的大块、中块、小块,需求很小的场景也必须拿走一整块,剩下的部分只能白白浪费。
1.7 现代网段划分:CIDR 无类别域间路由与子网掩码
1.7.1 CIDR 的诞生背景与核心概念
早期分类编址方案存在地址粒度固定、IP 资源大量浪费的问题。为解决这个缺陷,引入 CIDR(无类别域间路由)技术,CIDR 的核心就是子网掩码,打破了 A/B/C 类地址固定网络号长度的限制。
子网掩码 是一个 32 位二进制整数,特征是左侧全部为连续的 1,右侧全部为连续的 0。
- 掩码中比特 1 对应的 IP 部分,代表网络号;
- 掩码中比特 0 对应的 IP 部分,代表主机号。
CIDR 带来的优势:网段划分不再受 IP 原始 A/B/C 类别约束,可以根据业务实际需求,自由调整网络号和主机号的长度,实现精细化划分子网。同时 CIDR 向下兼容传统分类编址,不会破坏原有网络的通信。
拓展案例: 原生 A 类网段
255.0.0.0(/8),修改子网掩码为255.255.0.0(/16),相当于从原有主机号中借出 8 位作为子网位,拆分成多个子网,剩余 16 位保留为主机位。运营商可以用这种方式,将一整个 A 类大网段,按省份拆分为多个独立子网。

1.7.2 网络号的计算方法
将 IP 地址与子网掩码做按位与(AND)运算,运算得到的结果就是网络号。
- 原理:掩码为 1 的比特位,保留 IP 的对应比特;掩码为 0 的比特位,结果直接置 0,以此剥离主机号,提取网段网络号。
示例: IP 地址:140.252.20.68 子网掩码:255.255.255.0 二者按位与运算后得到网络号:140.252.20.0
1.7.3 子网掩码的核心意义
子网掩码允许我们对原始大网段做二次切分 ,把原本固定的主机号,借出一部分比特作为子网位,切分出多个更小的子网。
在分类编址时代,拿到一个 B 类网段,网络号固定占 16 位,主机号固定 16 位。如果业务仅需要几百台主机,直接使用 B 类网段会造成海量地址闲置。借助子网掩码,就可以从主机号中拿出若干比特划分子网,把一个大网段拆成多个小网段,极大提升 IPv4 地址的利用率。
1.7.4 主机号的特殊地址规则
在任意一个子网内,有两个 IP 地址不能分配给普通主机:
- 主机号全部为 0:代表网络号,用于标识整个子网,不能分配给终端设备。
- 主机号全部为 1:代表广播地址,用来向本子网内所有主机发送广播报文,不可分配给主机。
所以子网可用主机数计算公式:(假设主机号比特位数量为n)
可用主机数 = 2^n - 2

1.8 私有 IP 地址与公网 IP 地址
1.8.1 私有 IP 地址规范
RFC 1918 规定了三个私有 IP 地址段,仅用于局域网 内部通信,不能出现在公网中:
10.*.*.*:前 8 位为网络号,共 1677 万个地址172.16.*.*~172.31.*.*:前 12 位为网络号,共 104 万个地址192.168.*.*:前 16 位为网络号,共 65536 个地址
关键区别:
- **公网 IP:**全球唯一,可直接访问互联网
- **私有 IP:**仅在局域网内唯一,不同局域网的私有 IP 可以重复
1.8.2 IP 地址的生效范围
- 公网 IP:全局生效,整个互联网范围唯一,全世界不能重复。公网路由器会保存它的路由信息,跨网络数据包可以直接携带这个 IP 传输。
- RFC1918 私有内网 IP:仅在当前局域网内局部生效,它只在本子网内部用来标识主机。一旦数据包要发往外网,必须经过 NAT 做源地址替换,报文里的私有 IP 会被抹掉,替换成路由器 WAN 口的公网 IP。
数据包不会带着私有 IP 在互联网上传输。两个不同家庭内网,都存在192.168.128.10,这两个 IP 分别在各自独立的局域网里,两个网络互相看不见对方的内网 IP,自然不会发生 IP 冲突。
冲突只会发生在同一个子网内部:同一个局域网里,两台主机不能配置相同私有 IP,否则内网通信直接异常。跨子网、跨家庭的内网 IP 重复,完全没问题。
1.8.3 核心问题:为什么设计私有 IP,允许多个局域网重复使用?
一句话概括:公网 IP 地址数量不够,用私有 IP+NAT 节省稀缺的公网 IPv4 地址。
1. IPv4 地址本身数量有限
IPv4 总共只有约 42 亿个地址。 如果世界上每一台手机、电脑、智能家居设备,都分配一个独立公网 IP ,IPv4 地址早就耗尽。 早期互联网设计时没想到设备会普及到这个规模。
如果不给内网复用地址: 每台家用设备都要一个公网 IP,地址池会直接枯竭,成本极高,运营商根本无法分配。
2. 绝大多数终端,不需要全局唯一公网 IP
绝大多数家庭设备(手机、电脑、电视)的需求:主动访问外网(浏览网页、刷视频),而不是被外网主动访问 。 它们只需要在自己家里局域网内部唯一就行,不需要在全世界互联网唯一。
- **内网通信:**靠私有 IP 在局域网寻址
- 访问外网: 路由器 NAT 转换,共享路由器 WAN 口那一个公网 IP,全家几十台设备共用同一个公网 IP 上网。
一个家庭,只消耗 1 个公网 IP,而不是几十上百个,极大节约公网 IP 资源。

1.9 网络运营商(ISP)
1.9.1 运营商的角色及核心作用
当我们支付网络费用,本质是向运营商购买互联网接入服务。路由器本身具备构建子网、给子网内全部主机分配 IP 地址的能力,而运营商则负责搭建公网骨干网络,提供内网接入公网的通道。
我国的主要运营商是中国移动、中国联通和中国电信,它们的核心作用是:
- 搭建公网骨干网,负责光纤、基站等基础设施建设;
- 提供互联网接入服务,是内网接入公网的唯一通道;
- 进行流量管控、欠费管理和网络内容审查。

1.9.2 路由器分类:企业级路由器与家用路由器
路由器分为企业级路由器 与家用路由器 。
对于企业出口路由器,内网网段常选用 10 开头,原因是企业内网需要容纳更多主机;家用路由器的内网网段大多为 192.168 开头,是因为单台家用路由器接入的设备数量相对更少。
| 对比维度 | 家用路由器 | 企业级路由器 |
|---|---|---|
| 设计目标 | 满足家庭日常上网,追求易用和性价比 | 7×24 小时不间断运行,追求极致稳定、安全和高效 |
| 带机量 | 通常支持 20-50 台设备,超过容易卡顿或掉线 | 单 AP 即可支持 100 台以上,整网可轻松承载数百上千终端 |
| 硬件性能 | 芯片和内存配置较低,满足基础数据处理 | 采用高性能 CPU、大容量内存,散热设计更强,处理能力是家用级的几十上百倍 |
| 功能特性 | 基本的路由、DHCP、NAT 功能 | 支持 VPN、防火墙、流量控制、负载均衡等高级功能 |
1.9.3 路由器的 LAN 口与 WAN 口 IP
1. WAN 口:连接外部网络的入口
WAN(Wide Area Network)口是路由器面向外部网络的接口,通常用来连接运营商网络、上级路由器或其他远程网络。
WAN 口地址的来源
路由器的 WAN 口 IP 地址并不是由路由器内网随意设定的,而是由上一级网络设备分配的。这里的 "上一级网络设备",可以是运营商的接入路由器,也可以是上层网关设备。
例如:
- 家用路由器的 WAN 口地址,可能由运营商通过 DHCP 分配;
- 企业路由器的 WAN 口地址,可能由运营商静态指定;
- 多级网络中,下级路由器的 WAN 口地址,也可能由上层路由器的 LAN 侧网络分配。
WAN 口地址的作用
WAN 口 IP 地址代表了这台路由器在上一级网络中的身份。在当前上级网络范围内,这个地址必须是唯一的,否则设备之间无法正常通信。
可以把 WAN 口理解为:
路由器在外部网络或上层网络中的 "临时门牌号"。
2. LAN 口:构建内部网络的出口
LAN(Local Area Network)口是路由器面向内网的接口。路由器通过 LAN 口连接局域网内的电脑、手机、服务器等设备,并为这些设备提供网络接入能力。
LAN 口地址的作用
LAN 口 IP 地址通常是内网设备的默认网关地址。内网主机访问其他网段或外网时,一般会先把数据包发送给 LAN 口对应的网关,再由路由器决定下一步转发方向。
例如:
- 家用路由器的 LAN 口地址常见为
192.168.1.1; - 企业路由器的 LAN 口地址可能是
10.0.0.1或其他内网地址。
LAN 口与内网地址的关系
路由器的 LAN 口所在网段,决定了内网主机通常使用的地址范围。内网主机的 IP 地址可以由路由器通过 DHCP 自动分配,也可以由管理员手动配置。
但需要注意:
LAN 口地址主要用于内网网关标识,它本身并不直接等同于外网身份。
3. 网络是嵌套的:上层网络与下层网络可以重复使用私网地址
网络结构往往不是扁平的,而是层级嵌套的。一个大网络中可以包含多个小网络,每个小网络都有自己的路由器和地址空间。
下级路由器的 WAN 口
如果在内网中再接入一台路由器,那么这台新路由器的 WAN 口地址会由上层网络分配 。它在上层网络中必须唯一。
例如:
- 上层路由器为下级路由器分配 WAN 口地址
192.168.1.100; - 这个地址在上层局域网中是唯一的。
下级路由器的 LAN 口
下级路由器拿到 WAN 口地址后,会使用自己的 LAN 口地址构建新的子网。这个新子网的地址范围可以和上层网络不同,甚至可以使用另一段私网地址。
例如:
- 上层网络使用
192.168.1.0/24; - 下级路由器可以创建
192.168.2.0/24的新子网。
私网地址可以重复使用
不同局域网之间,私网地址是可以重复的。比如:
- 家庭 A 的内网可以使用
192.168.1.0/24; - 家庭 B 的内网也可以使用
192.168.1.0/24。
这并不冲突,因为这些地址只在各自的局部网络中有意义。

1.10 核心技术:NAT 网络地址转换
既然私网地址可以重复使用,那么当内网主机访问外网时,问题就出现了:
如果内网主机直接使用
192.168.1.2这类私网地址访问公网,公网路由器能否正确返回数据?
答案通常是不能。因为公网路由表面向的是全球可达的公网地址,私网地址没有全球路由意义。
1.10.1 NAT 的核心作用
NAT 的全称是Network Address Translation(网络地址转换),是路由器在网络边界上执行的地址替换机制。它的核心作用是:
- 把内网主机的私网源地址,转换为路由器外部网络可达的公网或上层地址;
- 回程时再把目的地址转换回内网主机地址。
一个简单的访问过程
假设手机 192.168.1.201 访问公网服务器:
- 手机发送请求,源地址为
192.168.1.201; - 家用路由器收到后,将源地址替换为 WAN 口地址,比如
10.1.1.2; - 报文继续到达运营商设备,运营商可能再次进行地址转换;
- 最终报文以公网源地址到达服务器;
- 服务器返回响应时,数据包先到达公网出入口路由器;
- 路由器根据 NAT 记录,把目的地址逐层转换回
192.168.1.201; - 数据最终回到手机。
1.10.2 NAPT(网络地址端口转换)原理
路由器在执行 NAT 时,单单把源 IP 替换成路由器的 WAN 口 IP 是不够的,因为如果内网有两台电脑同时向公网发起请求,当公网服务器回包时,路由器就无法分辨这两个包该给对应的哪台电脑。
因此实际使用的是 NAPT(网络地址端口转换)技术 。它还会在内存 中维护一张映射表,记录类似下面的关系::
| 内网主机地址 | 路由器转换后的地址 |
|---|---|
192.168.1.201:49152 |
210.21.21.21:10001 |
- 转换规则 :路由器不仅会把内网源 IP 替换成自己的 WAN 口 IP,还会修改源端口号(目的就是解决多个报文同时到来的情况);
- 映射表 :路由器会在内存中维护一张 NAT 转换表 ,记录**"内网 IP: 端口"** 与 "公网 IP: 端口" 的对应关系;
- 回包转发:当公网服务器回包给 "公网 IP: 端口" 时,路由器查表找到对应的内网 IP 和端口,把目的 IP 和端口改回去,精准转发给目标设备。
这样,当公网返回数据时,路由器才能知道:这个回程报文应该发给哪一台内网主机。
示例:
- PC1:
192.168.1.2:8080→ 路由器转换为210.21.21.21:10001 - PC2:
192.168.1.3:8080→ 路由器转换为210.21.21.21:10002 - 回包给
210.21.21.21:10001时,路由器转发给192.168.1.2:8080 - 回包给
210.21.21.21:10002时,路由器转发给192.168.1.3:8080
正是路由器修改源端口号,才能保证多个报文从外网回包并且经过路由器的时候,能通过报文中的目的端口号是1001还是1002来分辨是哪个内网主机的报文。
1.10.3 运营商侧 NAT 的特性
运营商的 NAT 和家用路由器 NAT 在实现上有一些区别,有两个关键特点需要了解。
- 端口块分配 运营商会为每一条宽带账号分配一段端口资源,比如一次性分配 1000 个端口用于 NAT 映射。当内网设备并发连接数量超出这个端口块的上限后,新发起的连接请求会直接被丢弃,无法建立通信。
- 日志留存 运营商会按法规要求保存 NAT 转换日志,记录内容包含访问时间、公网 IP 与端口、宽带账号、内网私网 IP 等信息。当发生网络安全事件时,可以依靠这些日志回溯定位到对应的宽带用户,满足合规审计的要求。
1.10.4 NAT 技术的三大核心价值
- 完成 IPv4 地址的 1 对 N 复用 单个公网 IP 能够承载成千上万台内网设备同时访问互联网,极大减少对公网 IP 地址的消耗,有效缓解了 IPv4 地址资源枯竭的难题。
- 隐藏内网拓扑,带来原生的隔离防护 公网中的外部设备无法主动向内网主机发起访问。外网报文到达边界路由器后,如果找不到匹配的 NAT 映射条目,路由器会直接丢弃该数据包,天然阻挡外网主动访问内网。
- 内网业务调整对外无感 内网主机修改 IP 地址、调整局域网内部网络结构时,只要出口侧的公网 IP 保持不变,外部互联网完全感知不到内网的变动,不会影响外网对内网服务的访问(有端口映射场景除外)。
1.10.5 报文从内网到公网的完整转发流程
下面以手机访问抖音服务器为例,完整展示报文经过家用路由器、运营商 NAT 的两次地址转换全过程:
- 手机(192.168.1.201)向抖音服务器(122.77.241.3)发送请求报文,此时报文源 IP 为 192.168.1.201,目的 IP 为 122.77.241.3。
- 家用路由器收到报文,执行第一次 NAT 转换:将报文源 IP 替换成自身 WAN 口 IP(10.1.1.2),同时更换源端口 ,并且在本地保存一条 NAT 映射记录。
- 报文抵达运营商的设备,执行第二层 NAT 转换:再次修改源 IP 为公网 IP(122.77.241.4),重新分配源端口 ,同时在运营商侧 记录对应的NAT 映射条目。
- 报文此时携带公网源 IP 122.77.241.4,报文的源和目的 IP 都是公网 IP 就可以在公网上进行传输了,进而发送到抖音服务器。
- 抖音服务器回复响应报文,报文源 IP 为 122.77.241.3,目的 IP 为 122.77.241.4。
- 运营商路由器接收回程报文,通过报文中的目的 IP 和端口号查询运营商侧 NAT 映射表,把报文目的 IP 修改为家用路由器 WAN 口 IP 10.1.1.2,并且更换回原来的端口号,转发给家用路由器。
- 家用路由器收到报文,依然是通过报文中的目的 IP 和端口号查询本地 NAT 映射记录,将目的 IP 修改为手机内网 IP 192.168.1.201,最终把数据包转发到手机。
结束语
本篇我们从网段划分的底层逻辑出发,依次梳理了 IP 地址的分类编址与 CIDR 现代子网划分方案,认识了路由器、DHCP 协议在局域网中的作用,区分了私有 IP 与公网 IP 的生效范围,最后重点剖析 NAT 网络地址转换技术。
我们了解到私有 IP 仅在局域网内生效,不同内网之间可以重复使用;NAT 以及运营商侧的 NAPT,依靠端口映射实现单个公网 IP 承载大量内网设备上网,解决 IPv4 地址资源不足的难题,同时天然隐藏内网拓扑。我们也完整跟踪了报文从内网出发,经过家用路由器、运营商设备两次 NAT 转换,最终抵达公网服务器并回程的完整转发流程。
网段划分、私网 IP、NAT 共同构成了局域网接入互联网的基础体系,理解这部分内容,就能看懂日常家庭、企业网络的运行逻辑。下一篇文章,我们会继续深入公网路由体系、IP 分片与重组等内容,继续探索 IP 协议更多底层机制。