《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换

🔥小叶-duck个人主页

❄️个人专栏《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》

《Linux系统从入门到实践》《Linux网络从入门到实践》

《Qt 方寸极境》 《MySQL》

未择之路,不须回头
已择之路,纵是荆棘遍野,亦作花海遨游


目录

前言

一、IP:网段划分

[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.10192.168.128.11
  • 子网 B:192.168.144.0/24,主机地址为192.168.144.10192.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 配置规则

  1. 路由器本质上是一台多网卡的网络主机,每个接口都需要配置对应的 IP 地址。
  2. 路由器通常至少拥有两类接口,各自配置的 IP 来源和作用完全不同:
    LAN 口(内网接口) :用于连接本地局域网,IP 由管理员手动配置,一般选用网段内主机号为 1 的地址,例如192.168.128.1/24,作为该子网的默认网关。同一个 LAN 口下所有主机,网络号必须相同。
    WAN 口(外网接口):用于连接上级网络(运营商光猫 / 公网),IP 地址由运营商通过 DHCP 自动分配。WAN 口拿到的通常是公网 IP(部分地区为运营商大内网 IP),WAN 口 IP 所在网段必须与 LAN 口网段不同,否则会产生路由冲突,无法正常上网。
  3. 当路由器同时连接多个不同子网时,每个相连接口都必须配置属于各自网段的 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 存在的局限

  1. **无法天然提供固定 IP:**服务器、网络打印机这类设备需要稳定不变的 IP。这类设备可以手动配置静态 IP,或者在 DHCP 服务端配置地址保留,让指定设备每次上线都获取相同 IP。
  2. **存在安全隐患:**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 地址资源大量浪费:

  1. A 类地址主机号长达 24 位,单个子网理论可容纳一千六百多万台主机。现实中几乎不存在规模这么大的局域网,网段内绝大多数 IP 地址长期闲置。
  2. 很多中型组织直接申请 B 类地址,B 类地址空间快速耗尽;B 类单个子网理论支持 65534 台主机,但大部分企业实际用不到这么多终端,同样造成大量地址空置。
  3. 不能按需灵活切分子网,网络规模和地址块大小强制绑定,地址整体利用率很低。

**简单类比:**就像分蛋糕,只能切固定大小的大块、中块、小块,需求很小的场景也必须拿走一整块,剩下的部分只能白白浪费。

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. 搭建公网骨干网,负责光纤、基站等基础设施建设;
  2. 提供互联网接入服务,是内网接入公网的唯一通道;
  3. 进行流量管控、欠费管理和网络内容审查。

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 访问公网服务器:

  1. 手机发送请求,源地址为 192.168.1.201
  2. 家用路由器收到后,将源地址替换为 WAN 口地址,比如 10.1.1.2
  3. 报文继续到达运营商设备,运营商可能再次进行地址转换;
  4. 最终报文以公网源地址到达服务器;
  5. 服务器返回响应时,数据包先到达公网出入口路由器;
  6. 路由器根据 NAT 记录,把目的地址逐层转换回 192.168.1.201
  7. 数据最终回到手机。

1.10.2 NAPT(网络地址端口转换)原理

路由器在执行 NAT 时,单单把源 IP 替换成路由器的 WAN 口 IP 是不够的,因为如果内网有两台电脑同时向公网发起请求,当公网服务器回包时,路由器就无法分辨这两个包该给对应的哪台电脑。

因此实际使用的是 NAPT(网络地址端口转换)技术 。它还会在内存 中维护一张映射表,记录类似下面的关系::

内网主机地址 路由器转换后的地址
192.168.1.201:49152 210.21.21.21:10001
  1. 转换规则 :路由器不仅会把内网源 IP 替换成自己的 WAN 口 IP,还会修改源端口号(目的就是解决多个报文同时到来的情况)
  2. 映射表 :路由器会在内存中维护一张 NAT 转换表 ,记录**"内网 IP: 端口"** 与 "公网 IP: 端口"对应关系
  3. 回包转发:当公网服务器回包给 "公网 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 在实现上有一些区别,有两个关键特点需要了解。

  1. 端口块分配 运营商会为每一条宽带账号分配一段端口资源,比如一次性分配 1000 个端口用于 NAT 映射。当内网设备并发连接数量超出这个端口块的上限后,新发起的连接请求会直接被丢弃,无法建立通信。
  2. 日志留存 运营商会按法规要求保存 NAT 转换日志,记录内容包含访问时间、公网 IP 与端口、宽带账号、内网私网 IP 等信息。当发生网络安全事件时,可以依靠这些日志回溯定位到对应的宽带用户,满足合规审计的要求。

1.10.4 NAT 技术的三大核心价值

  1. 完成 IPv4 地址的 1 对 N 复用 单个公网 IP 能够承载成千上万台内网设备同时访问互联网,极大减少对公网 IP 地址的消耗,有效缓解了 IPv4 地址资源枯竭的难题。
  2. 隐藏内网拓扑,带来原生的隔离防护 公网中的外部设备无法主动向内网主机发起访问。外网报文到达边界路由器后,如果找不到匹配的 NAT 映射条目,路由器会直接丢弃该数据包,天然阻挡外网主动访问内网。
  3. 内网业务调整对外无感 内网主机修改 IP 地址、调整局域网内部网络结构时,只要出口侧的公网 IP 保持不变,外部互联网完全感知不到内网的变动,不会影响外网对内网服务的访问(有端口映射场景除外)。

1.10.5 报文从内网到公网的完整转发流程

下面以手机访问抖音服务器为例,完整展示报文经过家用路由器、运营商 NAT 的两次地址转换全过程:

  1. 手机(192.168.1.201)向抖音服务器(122.77.241.3)发送请求报文,此时报文源 IP 为 192.168.1.201,目的 IP 为 122.77.241.3。
  2. 家用路由器收到报文,执行第一次 NAT 转换:将报文源 IP 替换成自身 WAN 口 IP(10.1.1.2),同时更换源端口 ,并且在本地保存一条 NAT 映射记录
  3. 报文抵达运营商的设备,执行第二层 NAT 转换:再次修改源 IP 为公网 IP(122.77.241.4),重新分配源端口 ,同时在运营商侧 记录对应的NAT 映射条目
  4. 报文此时携带公网源 IP 122.77.241.4,报文的源和目的 IP 都是公网 IP 就可以在公网上进行传输了,进而发送到抖音服务器。
  5. 抖音服务器回复响应报文,报文源 IP 为 122.77.241.3,目的 IP 为 122.77.241.4。
  6. 运营商路由器接收回程报文,通过报文中的目的 IP 和端口号查询运营商侧 NAT 映射表,把报文目的 IP 修改为家用路由器 WAN 口 IP 10.1.1.2,并且更换回原来的端口号,转发给家用路由器。
  7. 家用路由器收到报文,依然是通过报文中的目的 IP 和端口号查询本地 NAT 映射记录,将目的 IP 修改为手机内网 IP 192.168.1.201,最终把数据包转发到手机。

结束语

本篇我们从网段划分的底层逻辑出发,依次梳理了 IP 地址的分类编址与 CIDR 现代子网划分方案,认识了路由器、DHCP 协议在局域网中的作用,区分了私有 IP 与公网 IP 的生效范围,最后重点剖析 NAT 网络地址转换技术。

我们了解到私有 IP 仅在局域网内生效,不同内网之间可以重复使用;NAT 以及运营商侧的 NAPT,依靠端口映射实现单个公网 IP 承载大量内网设备上网,解决 IPv4 地址资源不足的难题,同时天然隐藏内网拓扑。我们也完整跟踪了报文从内网出发,经过家用路由器、运营商设备两次 NAT 转换,最终抵达公网服务器并回程的完整转发流程。

网段划分、私网 IP、NAT 共同构成了局域网接入互联网的基础体系,理解这部分内容,就能看懂日常家庭、企业网络的运行逻辑。下一篇文章,我们会继续深入公网路由体系、IP 分片与重组等内容,继续探索 IP 协议更多底层机制。

相关推荐
zx_741484812 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS2 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿2 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
做运维的阿瑞3 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲3 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
广州宏帝箱包3 小时前
出口箱包的包装标准:防潮、防摔、运输安全的设计要点
大数据·网络
彧azz3 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
updayday8544 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
susplus4 小时前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull