Linux 网络基础之网络IP层(十一)私有IP地址和公网IP地址,运营商和全球网络,理解公网

目录

一、私有IP地址和公网IP地址

什么是公网?

什么是内网?

二、运营商和全球网络的理解

运营商的理解

全球网络的理解

全球网络的分配机制

三、理解公网

四、NAT技术

[相关问题 :](#相关问题 :)

总结:

五、总结


上篇文章我们围绕网络层 IP 协议,网段划分,以及 IP 地址相关问题展开了讲述,本篇文章在上篇文章的基础上再对 IP 协议展开讲解。

一、私有IP地址和公网IP地址

  1. IP 地址被硬性的划分为公网IP和私有IP

  2. 公网 IP 在整个互联网中是唯一的而私有 IP 在不同内网中可以重复使用

什么是公网?

公网,简单说就是全世界所有能互相直接通信的设备连起来的 "大网络",也就是我们平时说的互联网。公网里的设备(比如网站服务器、运营商的路由器),都有一个全球唯一的公网 IP,就像城市里的正式门牌号,能直接被全世界的设备找到。

什么是内网?

内网就是局域网,简单说就是我们自己控制的,多个设备之间互相连接但不直接暴露在公网上的小网络。

我们日常家里的手机、平板、电脑、智能设备,其实全部接入的是同一个内网 ,内网也有内网 IP,但这些设备并不会使用同一个内网 IP,恰恰相反,在同一个局域网内部,每一台联网设备都会被路由器分配一个唯一的的私有 IP 地址 ,手机、平板、电脑各自拥有不同的内网地址,比如手机是 192.168.1.10,平板是 192.168.1.11,电脑是 192.168.1.12。以此保证内网设备之间可以正常识别、互相通信,如果内网中两台设备 IP 重复,就会产生地址冲突导致网络异常。所有内网设备虽然内部地址各不相同,但在访问互联网时,会统一通过路由器的NAT 地址转换技术 ,将所有不同的私有 IP 全部伪装成同一个公网 IP对外通信 (NAT技术后面会讲)。

也就是说私有 IP 只在内网中有效,只能在局域网 (内网) 内部使用,它们不能直接出现在公网中。

而 RFC 1918 组织规定了如上三种网段,这三段地址就是专门给内网 "自留" 的,全世界所有内网,都可以放心地从这三段里拿 IP 地址来用,不会和公网上的任何服务器、设备地址冲突。
比如小编云服务器 ifconfig 输出里的 10.0.16.7 是一个内网私有 IP 地址,属于 RFC 1918 规定的第一种 10.0.0.0/8 私有地址段,只能在云服务商的内部网络中使用,无法直接被互联网上的设备访问。和它一起显示的 netmask 255.255.252.0 是对应的子网掩码,换算成 CIDR 格式就是 /22,说明这个内网网段内可以容纳 1022 台设备,这个 IP 主要用于服务器与同机房的其他云服务、数据库等进行内网通信。
小编电脑上的 10.13.72.255 也是一个私有内网 IP,属于 10.0.0.0/8 这个大段的私有地址,只能在我们当前连接的局域网里用,出了这个网络就无效了。配合它的子网掩码 255.255.0.0,可以算出它所在的网段是 10.13.0.0/16,这个网段能容纳超过 6 万台设备,而我们的电脑地址 10.13.72.255 是这个网段里的一个主机地址,用来在当前局域网中唯一标识我的设备和同网络里的其他设备通信。这个 IP 是路由器(比如我连的 Wi-Fi 或公司内网)自动分配给你的,它不是公网 IP,不能直接被互联网上的设备访问,我们的电脑对外上网时,会通过路由器的 NAT 技术,被统一转换成路由器的公网 IP 来和互联网通信。

上面的 10.13.0.0/16 就是一个网段,是通过私有 IP 10.13.72.255 和子网掩码 255.255.0.0 按位与算出来的,/16 的意思就是网络号占前 16 位,剩下的 16 位是主机号。子网掩码是 255.255.0.0 转成二进制就是 11111111.11111111.00000000.00000000,前面连续的 1 有 16 个,所以网络号就是前 16 位。而 IP 10.13.72.255 和掩码 255.255.0.0 做按位与运算,结果就是网络地址 10.13.0.0,所以我电脑的私有 IP 10.13.72.255 所在的网段就是 10.13.0.0/16。这个网段里,主机号占后 16 位,所以理论上能容纳 2^16 = 65536 个地址,去掉网络地址和广播地址,可用主机数是 65534 个。我电脑的 IP 10.13.72.255 的后 16 位是 72.255,转成十进制就是 72 × 256 + 255 = 18687,说明 18687 就是我的电脑在这个网段里的主机序号。

二、运营商和全球网络的理解

公网 IP 在全球互联网中具有唯一性,无法被重复使用,而我们日常使用的设备几乎都不会直接连接公网,而是先接入局域网,再通过局域网的路由器访问公网。在局域网中,设备使用的是 RFC 1918 规定的私有 IP 地址,这类地址在不同局域网中可以重复使用,比如无数家庭的路由器都可以使用 192.168.1.1 这个地址,且不会互相冲突。这种设计配合路由器的 NAT 地址转换技术,让多个设备可以共享同一个公网 IP 访问互联网,原本 IPv4 公网地址数量不足的问题因此得到了极大缓解,这也是我们现在依然能流畅使用互联网的重要基础之一。

其实要清晰的理解网络 IP,我们还要理解运营商和全球网络,这样才能从宏观的角度完整的理解:

运营商的理解

  1. 首先我们要思考,我们是如何上网的,例如在家中,是不是要先安装路由器,没错,那么要安装路由器就要打电话给电信,移动,联通等运营商的客服,让他们派工作人员过来给家里拉网线,安装路由器,也叫做光纤入户。
  1. 如上图,光纤内部是极细的玻璃丝,通过传输光信号来传递数据,而电脑和路由器处理的是数字信号,这两种信号无法直接互通,所以我们需要一个设备来做转换,这就是调制解调器 (俗称 "光猫")。光猫的作用就是把电脑 / 路由器发出的数字信号转换成能在光纤里传输的光信号,再把运营商传来的光信号转换成数字信号,交给路由器或电脑,这样数据才能在运营商的网络和你家设备之间正常传递。

  2. 要正常使用网络,还需要运营商给我们开通账号,这个账号和各自的宽带线路绑定,运营商通过它来确认你是否正常缴费,只有账号核验通过,才会允许我们的设备接入公网。路由器本身也有自己的管理账号和 Wi-Fi 密码,管理账号用来登录路由器后台配置网络,Wi-Fi 密码则是防止邻居蹭网的关键,设置好密码后,只有知道密码的设备才能连接你的 Wi-Fi,避免多人共用网络导致卡顿。

  3. 简单来说,光猫负责打通家庭和运营商的物理线路与信号转换,运营商账号负责确认我们的使用权限,路由器则负责在各个家庭组建局域网,让手机、电脑等设备都能通过它连接公网,三者配合起来,就是我们日常上网的完整流程。

  4. 所以我们所看到的和体验的仅仅是打电话给运营商说要入网,然后运营商基层的工作人员过来给我们光纤入户,安装调制解调器,安装路由器,我们缴完费,所以此时我们就可以上网了,同样的我们需要庞大的网络基础设施的建设才能真正的让我们上网,那么在中国这些庞大的网络基础设置的建设是由谁来做的呢?是由政府和运营商做的,运营商例如移动,电信,联通来做的。

  1. 所以要上网,首先就要有网络基础设施的建设,我们全国网络基础设施的建设的工作是由运营商来做的,具体是由运营商的基层工作人员来做的,这些运营商的基层工作人员要拉网线,建基站,建机房等工作,那么此时我们来思考一下网络基础设施的投入成本,这些网络基础设施的是要覆盖全国的,不能说在全国只给发达的地方建设基础设施,那些偏远地区,经济不发达的地方也要进行网络基础设施的建设,所以网络基础设施的建设投入的时间周期和建设成本是巨大的,并且回报周期也是很长的,所以呢,运营商是否愿意做这个工作呢?

  2. 毫无疑问,高成本建设,建设周期也长,回报周期更长,这些运营商是不愿意做这个工作的,但是国家需要你做,你就得做,国家层面可以为提供一定的支持帮助运营商做这个工作,别忘了三大运营商是国有企业,所以一旦涉及到国家发展,国家建设,运营商必须顶上去,所以在国家,运营商的不断努力下,我国的网络基础设施的建设覆盖全国90%多,所以我国的网络基础设施就在这样的背景下已经相当完善了。

  3. 那么此时我们再将视角拉回农村,城镇的居民进行的光纤入户工作,诸如对于农村,城镇的光纤入户,调制解调器,路由器这些工作也是运营商的基层工作人员来做的,我们在家里,一个电话过去,我要光纤入户,那么运营商的集成工作人员就会过来进行光纤入户,调制解调器,路由器的工作,那么此时网络基础设施建好,也已经光纤入户了,所以就可以上网了,就成为网民的一份子了。

  4. 偏远地区的网络基础设施和光纤入户,运营商不能也不会因为地处偏远就不做的,这是保障全民网络覆盖的重要环节。只有完成这些建设,偏远地区的居民才能接入互联网,成为网民;而网民数量的增加,会催生出购物、搜索、刷视频、打游戏等多样化的网络需求,这对整个数字生态的发展至关重要。

  5. 有了用户需求,就会有对应的服务供给,这些服务大多由互联网公司提供,我国的互联网企业也正是在这样的背景下逐步孵化和成长起来的。互联网公司通过满足用户需求实现盈利,同时需要向国家缴纳税收;而为用户提供服务的前提是接入网络,因此互联网公司也需要向运营商缴纳流量费,使用其建设的网络基础设施,这部分费用构成了运营商的重要收入来源。

  6. 使用运营商网络基础设施的群体,不仅包括互联网公司,还有农村、城镇、城市里的普通网民,他们通过光纤入户接入网络,也需要向运营商缴纳宽带费或流量费,让运营商获得稳定收益。而运营商作为国有企业,在获得收益的同时也会向国家缴纳税收,最终形成了 "国家统筹推动建设、运营商提供网络支撑、互联网公司满足用户需求、多方共同贡献税收" 的良性循环,推动着我国数字经济的持续发展。

全球网络的理解

全球网络 = 公网 + 内网(私网)

  1. 我们通常所说的"全球网络"或"互联网",并不完全等同于公网。更准确地说,互联网的核心骨架是公网,但绝大多数终端用户实际上位于无数的内网之中。公网和内网通过一种叫做"NAT网络地址转换"的技术紧密连接在一起,才构成了我们日常使用的完整网络。

  2. 公网是指由全球统一分配和管理、IP地址在全球范围内唯一的网络。公网上的每一个IP地址都像是一个独一无二的"全球快递地址",可以从世界上任何一个角落直接访问。全球互联网的骨干路由器、各大网站(如谷歌、抖音、百度)的服务器、云服务商的服务器等,都直接配置公网IP地址。理论上,任何一个公网IP地址都可以直接与另一个公网IP地址通信,中间不需要任何"翻译"设备。

  3. 内网 (私网) 则完全不同。它使用的是专门保留的私有 IP 地址段,例如你非常熟悉的192.168.x.x、10.x.x.x 以及172.16.x.x到172.31.x.x。这些地址可以在无数个家庭、学校、公司的内部网络中重复使用。比如,你家的路由器给你的手机分配了192.168.1.5,你邻居家的路由器也完全可以给他的手机分配相同的192.168.1.5,这完全没有问题,因为这两个IP地址属于不同的内网 (私网),永远不会直接冲突。绝大多数终端设备------你的笔记本电脑、手机、智能电视、公司内部的打印机等------都只拥有私网IP地址。内网的核心特征是"仅在局部有效":两个不同内网里的设备(比如你家电脑和你邻居家电脑)无法直接通过私网IP地址通信。

全球网络的分配机制

**1.****我们所说的"全球网络"或"互联网"的分配,其核心资源是公网IP地址和域名的分配。**这套分配机制并非由任何一个国家或组织单方面控制,而是一个自顶向下、分层负责、多方协作的国际管理体系。

  1. 处于最顶层的是互联网数字分配机构(IANA),它负责协调全球最核心的互联网资源,包括IP地址块、协议编号和域名系统的根区管理。不过,IANA并不直接向普通用户或企业分配地址,它只将大的IP地址块(通常是以 /8 为单位,即约1600万个地址)分配给下一级的五个区域互联网注册机构(RIR)。这五个RIR按地理区域划分:ARIN负责北美和部分加勒比地区,RIPE NCC负责欧洲、中东和中亚,APNIC负责亚太地区,LACNIC负责拉丁美洲,AFRINIC负责非洲。每个RIR独立制定本区域的分配政策,负责向该区域内的国家或大型ISP分配地址。

  2. 在RIR之下,部分国家还设有国家级互联网注册机构(NIR)。以中国为例,**中国互联网络信息中心(CNNIC)**就是APNIC下属的、负责中国大陆地区IP地址和域名资源分配管理的官方机构。CNNIC从APNIC申请到大的地址块后,会根据中国境内的实际需求,制定具体的分配规则,将地址进一步下发给本地的ISP。

  3. 真正触及普通用户的环节是本地互联网注册机构(LIR),也就是我们熟知的互联网服务提供商(ISP),比如中国电信、中国联通、中国移动。ISP从CNNIC或直接向APNIC申请到公网IP地址段后,会根据自己的网络规划和商业策略,将这些地址分配给最终用户。普通家庭用户通常会在拨号上网时获得一个动态分配的公网IP(或者更常见的是运营商级NAT后的私网IP),而企业或服务器机房则可以申请固定的公网IP地址。

  4. 除了IP地址,全球网络的另一个重要资源是域名系统(DNS) 。域名的分配由互联网名称与数字地址分配机构(ICANN) 总体协调。ICANN负责管理根域名服务器和顶级域名(如.com、.cn、.org)的授权。顶级域名之下,各个注册商(如万网、GoDaddy)负责向普通用户销售具体的二级域名(如baidu.com)。当你输入一个网址时,DNS系统会逐级查询,最终把域名翻译成对应的公网IP地址,你才能访问到目标服务器。

  5. 总结一下:全球网络的分配不是"分给某个国家",而是一个分层授权、逐级下放的过程。国际机构(IANA/ICANN)管顶层,区域机构(RIR)管大区,国家机构(NIR)管本国内部分配,ISP最终对接用户。这个体系保证了全球任何一台设备只要获得合法的公网IP地址,就能与其他设备互联互通。

  6. 其实 IPv4 地址在 2011 年就已经分配殆尽,现在各区域RIR手中的可用地址池早已枯竭,这就是为什么 IPv6 的推进变得如此紧迫------它从128位地址空间中提供了几乎无限的地址数量,从根本上解决了分配枯竭的问题。

三、理解公网

上面我们在讲全球网络时已经提到过公网了,现在我们再来看一下公网。

公网(Public Network) 通常也被称为"公共网络",是指由全球统一的 IP 地址体系构成的、任何人都可以公开访问的网络。公网的核心特征是全球唯一寻址开放互联。在公网上,每一台设备(如服务器、路由器)都拥有一个全球唯一的公网IP地址,理论上可以从世界上任何一个角落直接访问到它。整个互联网(Internet)就是公网的最大、最典型的存在形式。公网上的所有节点遵循统一的TCP/IP协议族,通过全球数以万计的运营商网络、海底光缆、通信卫星等基础设施相互连接,构成了我们日常使用的"全球网络"。

公网与私网(内网)的主要区别在于访问权限和地址范围。公网IP地址由国际组织统一管理和分配,全球唯一且不能重复;而私网IP地址(如192.168.x.x、10.x.x.x)则可以在无数个家庭、公司内部网络中重复使用。公网上的通信是"直接"的,任何两个公网IP都可以自由交换数据;而私网内的设备访问公网时,必须通过路由器执行网络地址转换(NAT),将私网IP"翻译"成公网IP后才能进行通信。反过来,公网上的设备通常无法主动访问处于私网内部的设备(除非在路由器上配置了端口映射等特殊规则)。

四、NAT技术

那么,公网和私网是如何连接成全球网络的呢?

关键设备就是家里的路由器(更准确地说,是路由器内置的"NAT网络地址转换"功能)。当你用手机(私网192.168.1.5)访问抖音的服务器(公网1.2.3.4)时,数据包首先被发往你的路由器(它同时拥有公网IP`8.8.8.8`和私网IP`192.168.1.1`)。路由器会做一次关键的"地址翻译":它将数据包的来源地址从你的手机私网IP`192.168.1.5`替换成路由器自己的公网IP`8.8.8.8`,然后发送到互联网公网。抖音的服务器看到的请求来自公网IP`8.8.8.8`,于是把响应数据发回给你的路由器。路由器收到响应后,根据之前记录的信息,再把目标地址从公网IP`8.8.8.8`翻译回你的手机私网IP`192.168.1.5`,最终把数据准确交到你的手机上。

下面我们用一张图来代表全球的公网,以及各个局域网来讲述 NAT 网络地址转换技术,这张图只是方便我们理解 NAT 技术,真实的全球网络图更复杂,这里我们不深入研究。

在上图中,整个网络呈严格的层级结构:最顶层是国际骨干公网,按照国家划分 IP 段,俄罗斯使用 1.0.0.0/8、美国 2.0.0.0/8、英国 3.0.0.0/8、中国 5.0.0.0/8、意大利 6.0.0.0/8,所有国家层级的地址都属于全球公网 IP,具备唯一性;往下是中国国内骨干公网,在 5.0.0.0/8 网段内继续按省份划分,陕西为 5.1.0.0/16、河南 5.2.0.0/16、浙江 5.3.0.0/16 等,依旧属于公网;再往下是市级网络,陕西网段内划分出西安 5.1.16.0/20、延安、咸阳等地。

这里补充一下 : 比如中国的 5.0.0.0/8,5.0.0.0/8 是一个网段,不是单个 IP 地址。
5.0.0.0 是这个网段的网络地址 ,用来标识整个网段的起始位置,不分配给任何主机使用。

/8 是子网掩码的简写(CIDR 格式),表示这个网段的网络号占前 8 位,对应的子网掩码是 255.0.0.0。因此整个网段的 IP 范围是 5.0.0.0 ~ 5.255.255.255,一共包含 2^(32-8) = 16777216 个 IP 地址,是一个非常大的公网 IP 段。


单个 IP 地址没有 / 后面的数字,比如 5.1.16.7 才是单个主机 IP。

/8 这种写法,本身就是用来表示网段范围的,是 CIDR 表示法的核心。


再比如 5.1.0.0/16 也是一个网段。5.1.0.0 是这个网段的网络地址。/16 表示网络号占前 16 位,对应的子网掩码是 255.255.0.0。它的 IP 范围是 5.1.0.0 ~ 5.1.255.255,包含 2^(32-16) = 65536 个地址,比之前的 5.0.0.0/8 小很多。可以理解为:5.0.0.0/8 是整个中国的大段,5.1.0.0/16 是这个大段里分给陕西的一个子网段。

西安拥有自己的出口路由器,该路由器的 WAN 口连接陕西公网,使用公网 IP 5.1.16.1/20,LAN 口向下接入本地内网,分配私有 IP 网段 10.1.1.0/24,而 NAT 地址转换技术,就运行在这台西安出口路由器上,是内网私有 IP 与公网互通的核心关卡。

这里我们要介绍两个概念 : LAN 和 WAN

  • WAN 是广域网接口,是路由器连接上级外网、接入更大网络的对外接口,使用全球唯一的公网 IP;
  • LAN 是局域网接口,是路由器连接本地电脑、手机等设备的对内接口,使用 RFC1918 规定的私有 IP,仅在本地内网生效,可在全球不同内网重复使用

举个例子 : 当西安内网中一台私有 IP 为 10.1.1.10 的设备需要访问俄罗斯公网 IP1.0.0.1 时,整个流程自上而下完整执行:首先,内网设备判断目标 IP 与自身私有 IP 不在同一网段,将数据包发送给西安出口路由器的 LAN 网关,此时数据包源地址为私有 IP10.1.1.10,目标地址为俄罗斯公网 IP1.0.0.1;路由器收到数据包后启动 NAT 转换,先在内部建立地址与端口的映射表,记录内网设备信息与自身 WAN 公网端口的对应关系,再将数据包的源私有 IP 10.1.1.10 替换为路由器自身的 WAN 公网 IP5.1.16.1,修改完成后从 WAN 口向上转发;数据包依次经过西安市级网络、陕西省级骨干网、中国国内骨干网,最终进入国际骨干公网,通过全球路由转发抵达俄罗斯服务器;俄罗斯服务器接收请求后,将响应数据包原路返回,此时数据包源地址为 1.0.0.1,目标地址为西安路由器的公网 IP5.1.16.1;数据包回到西安出口路由器后,路由器查询之前建立的 NAT 映射表,找到对应端口匹配的内网私有 IP,将数据包的目标公网 IP 换回内网设备的私有 IP10.1.1.10,最后通过 LAN 口转发给发起请求的内网设备,完成一次完整的跨公网通信。

相关问题 :

1. 任何一个路由器上都有一个 WAN 和 一个 LAN 吗?

是的,一台路由器天生就有两类接口:WAN 口和 LAN 口 ,所有家用、出口路由器都一定具备这两类接口。LAN 口 是对内的,连接家里、公司、内网里的电脑、手机、交换机,跑的是私有内网 IP ,用来管理本地局域网;WAN 口 是对外的,连接上级网络(比如连到陕西、国内、国际公网),拿到的是公网 IP ,用来接入更大的网络。NAT 技术就发生在同一台路由器的 WAN 口和 LAN 口之间:内网 LAN 里的私有 IP,通过路由器在 WAN 口伪装成公网 IP 上网,回程再转回内网地址,通过一台路由器就完成内网和公网的双向转换。

2. 那比如说西安这里有一个出口路由器,那如果从西安到陕西,陕西到中国呢?这有没有路由器?

从西安到陕西、陕西到中国、中国到国际,每往上一级,都有对应的路由器,整个网络就是一层一层路由器连起来的。西安的出口路由器负责把内网数据发到陕西省级路由器,陕西路由器再转发到中国国家级骨干路由器,国家级路由器再转发到国际骨干路由器,层层接力。

可以这样理解:西安的路由器只管西安本地内网和去往陕西的流量;陕西的路由器管全省各个城市之间的流量,并对接国家级网络;国家级路由器对接全国各个省份和国际网络。所有路由、转发、寻址,全靠这些一级级的路由器完成,而只有最底层西安这台路由器做 NAT------ 把内网私有 IP 转成公网 IP,往上所有层级全是公网 IP 互相转发,不再做 NAT。

3. 那如果我们认为陕西、中国都属于公网的话,公网之间可以直接进行通信就不需要再用 NAT 了吗?

是的,在这个教学模型里,陕西、中国、国际之间都属于公网层级的互通 ,大家用的都是全球唯一的公网 IP,公网之间直接路由转发,不需要 NAT 。只有西安路由器下面那一层,才是真正的私有内网,使用 10.x 这类私有 IP,私有 IP 无法在公网里路由,必须在西安出口路由器做一次 NAT ,把私有 IP 伪装成路由器 WAN 口的公网 IP(也就是 5.1.16.1)才能向上访问 。这个用来伪装、对外通信的公网 IP,是上级网络分配给这台路由器的,由路由器持有并使用,所有内网设备对外通信,都共用这一个公网 IP,上层陕西、中国、国际的路由器只看到这个公网 IP,看不到下面的私有 IP,也不需要再做任何地址转换。

4. 所以 NAT 只是用来解用来解决私网和公网的那个地址转换的是吧?公网和公网如果之间就不需要了,那公网和公网之间就直接那公网和公网之间是咋弄的?

NAT 只负责私网 ↔ 公网之间的地址转换,公网和公网之间不需要 NAT。公网 IP 本身全球唯一、全网可路由,就像全球唯一的门牌号,数据包直接按 IP 地址一层层路由器转发即可。只有最底层西安下面的私有内网设备(10.x.x.x)要往外走时,才会在西安出口路由器做一次 NAT,把私有 IP 换成路由器的公网 IP,一旦进入上层公网,后续所有转发都只走路由、不再转换地址。

5. 比如说我们再具体到西安,西安这个私网下肯定会有多个家庭,各个家庭的设备连接着各自家庭的路由器,各个设备也有私有 IP 吗?那自己家庭的路由器也会做 NAT 转换吗?

**每个家庭里的手机、电脑、平板,在家庭内网里都是私有 IP(比如 192.168.1.x),这个家庭路由器一定会再做一次 NAT。**你的设备先把私有 IP,伪装成家庭路由器 WAN 口的 IP;之后家庭路由器再把数据发给西安出口路由器,西安出口路由器再做一层 NAT,把家庭网段的 IP,统一伪装成西安出口路由器的公网 IP(5.1.16.1),才能进入陕西、中国公网。简单说:设备→家庭路由器(NAT 一次)→西安出口路由器(再 NAT 一次)→公网;只有公网和公网之间不用 NAT,只要是私网往上走,每经过一层出口路由器,就会做一次 NAT 伪装。

我们再来看下面这幅图:

在整个网络通信的路径上,从最底层的用户设备到最顶层的国际公网,可以划分为五个层级。

第一层是用户终端设备,也就是你手中的手机、笔记本电脑、平板电脑等。这些设备处于家庭或办公室的内部局域网中,它们被分配的是私有IP地址,例如常见的192.168.1.100。这些私有IP地址只能在当前这个小局域网内使用,无法直接在公网上路由。设备的所有网络请求,都必须先发给它所在网络的路由器。

第二层是家庭或办公室路由器。这台路由器同时拥有两个身份:它的LAN口连接着内部设备,分配一个私有IP(如192.168.1.1)作为内网的网关;它的WAN口则连接着上一级网络,通常被上级网络分配一个私有IP地址(如10.0.0.50)。这台路由器的主要功能之一是执行网络地址转换,即NAT。当内网设备要访问外部网络时,它会将数据包的源IP地址从类似192.168.1.100的内网地址,替换成自己WAN口上的10.0.0.50,并记录一张NAT表,以便响应数据能够准确返回。此外,它还负责将数据包向上一级路由转发。

第三层是城市或区域的出口路由器,比如图片中提到的西安出口路由器。这台路由器同样拥有WAN口和LAN口:它的LAN口连接着整个西安市范围内的下级网络(包括家庭路由器),分配一个私有IP地址段(如10.0.0.1作为网关);它的WAN口则连接省级骨干网络,并获得一个真正的公网IP地址,例如5.1.16.1。这台路由器会再次执行NAT:它把从下级传来的、源地址已经是10.0.0.50的数据包,进一步将源地址替换成自己的公网IP 5.1.16.1,同时记录新的NAT映射关系。从此之后,数据包就进入了公网区域。

第四层是省级和国家级的骨干路由器 。以陕西省级路由器和中国国家级骨干路由器为例。这些路由器处于纯公网环境中,它们的所有接口配置的都是全球唯一的公网IP地址,例如陕西路由器的一个接口可能是5.1.16.2,国家路由器的一个接口可能是9.1.1.1。在这一层级,路由器不再执行NAT。它们只负责一件事:根据数据包的目标IP地址,查询自己的路由表,然后把数据包转发到正确的下一跳。这一层的网络结构复杂,由无数台路由器组成网状或星型拓扑,共同构建了互联网的主干。

第五层是目标服务器所在的网络,例如抖音或百度的服务器。这些服务器通常也拥有公网IP地址(如122.77.241.3),直接挂在公网上。当数据包历经多级转发最终到达这台服务器时,服务器看到的源IP地址是最后一级出口路由器的公网IP(如5.1.16.1),而不是最原始的用户私有IP。服务器处理完请求后,将响应数据包发回给这个公网IP,响应包会沿着原路返回,经过各级路由器反向查NAT表,最终送达到你的终端设备。

假设你的电脑(IP地址为192.168.1.100)想要访问百度服务器(公网IP为122.77.241.3)。首先,你的电脑将数据包发送给家庭路由器,此时数据包的源IP是192.168.1.100,目标IP是122.77.241.3。家庭路由器收到这个数据包后,检查目标IP,发现它不在自己所在的局域网内,于是执行第一次NAT:它将数据包的源IP地址 192.168.1.100 替换成自己WAN口的IP地址10.0.0.50,并在自己的NAT表中记录下"192.168.1.100:某端口对应10.0.0.50:某端口"的映射关系。然后,这个经过修改的数据包被转发给上一级设备------西安出口路由器。

西安出口路由器从它的LAN口(10.0.0.1)收到这个数据包,发现源地址是10.0.0.50,目标地址是122.77.241.3。它判断目标地址属于公网范围,于是执行第二次NAT:将数据包的源IP地址 10.0.0.50 替换成自己WAN口的公网IP地址5.1.16.1,同时记录下"10.0.0.50:某端口对应5.1.16.1:某端口"的映射关系。现在,数据包的源地址已经变成了一个真正的公网IP。

从这一刻起,数据包进入纯公网区域。它被西安出口路由器发送给陕西省级路由器(IP 5.1.16.2)。陕西路由器看到目标地址是122.77.241.3,查路由表后,将它转发给国家级骨干路由器(IP 9.1.1.1)。国家级路由器再次查表,将它转发向目标服务器所在的网络。在这个过程中,所有的公网路由器都只做路由转发,不再修改数据包的源地址或目标地址。也就是说,从西安出口路由器之后,整个公网区域都不再做任何NAT转换。最终,这个源地址为5.1.16.1、目标地址为122.77.241.3的数据包到达百度服务器。

百度服务器处理完请求后,生成响应数据包,目标地址是5.1.16.1,源地址是122.77.241.3。这个响应包进入公网,经过各级骨干路由器的转发,一路回到西安出口路由器。西安出口路由器收到响应包后,发现目标地址是5.1.16.1,于是查询自己之前记录的那张NAT表,找到它对应的内网地址是10.0.0.50。它将响应包的目标地址修改为10.0.0.50,然后转发给家庭路由器。家庭路由器收到后,同样查询自己的NAT表,将目标地址从10.0.0.50修改为最初的192.168.1.100。最终,你的电脑收到了来自百度服务器的响应数据。

总结:

1. 一个路由器天生就有两个核心 IP 地址,分别对应两类接口:WAN 口 IP 和 LAN 口 IP(也就是子网 IP)。LAN 口 IP 是路由器对内的 "网关地址",所有连在它 LAN 口上的手机、电脑等设备,都属于同一个子网,这些设备会被分配同网段的私有 IP,并且子网内的 IP 地址不能重复,否则就会冲突。而不同家庭、不同场景下的路由器,LAN 口 IP 可以完全一样,比如大家都用 192.168.1.1 作为网关,因为这些子网之间互相隔离,重复的私有 IP 不会产生任何影响,这也是私有 IP 可以在全球重复使用的基础。

  1. 每一台家用路由器,本质上都是运营商网络中某一级子网里的一个普通节点,运营商的路由器网络是多层级的:家用路由器的 WAN 口,会连接到上一级运营商的路由器,而上一级路由器的 WAN 口,又会连接到更上层的运营商网络,直到最外层的运营商路由器,它的 WAN 口 IP 才是真正的公网 IP。我们平时说的 "家庭内网→运营商内网→公网",就是这样一层一层嵌套的子网结构,而每一层的出口路由器,都会负责对应子网的地址管理和转发。

  2. 当子网内的主机需要和外网通信时,路由器就会执行 NAT 技术:它会把数据包 IP 首部里的源 IP 地址,替换成自己的 WAN 口 IP,这样一来,外网看到的就只是路由器的地址,完全看不到内网设备的私有 IP。如果是多层嵌套的子网,数据包会在每一级出口路由器都被替换一次源 IP,最终数据包的源 IP 会变成最外层运营商路由器的公网 IP,再进入全球公网转发。NAT 技术不仅解决了 IPv4 公网地址不足的问题,还隐藏了内网设备的真实地址,提升了内网的安全性。

  3. 如果我们希望自己写的服务器程序能在公网上被直接访问,就必须把程序部署在一台拥有公网 IP 的服务器上,因为只有公网 IP 在全球网络中是唯一可路由的,公网里的设备才能通过这个 IP 找到你的服务器。我们日常使用的阿里云、腾讯云等云服务器,就会直接为用户提供公网 IP,方便我们部署对外提供服务的程序;而普通家庭内网里的设备,因为 IP 经过多层 NAT 伪装,没有公网 IP,所以无法被公网直接访问。

五、总结

本文讲解公网与私有 IP,公网 IP 全球唯一可直接联网,私有 IP 仅限内网使用、可复用,含 RFC1918 规定三段地址。介绍运营商网络、全球 IP 分配体系,说明 NAT 实现私网转公网,缓解 IPv4 地址不足。

谢谢大家的观看

相关推荐
Gauss松鼠会1 小时前
GaussDB(DWS) 资源监控Topsql
java·网络·数据库·算法·oracle·性能优化·gaussdb
Rabbit_QL1 小时前
【find的用法】macOS/Linux 下高效查找文件
linux·macos
米高梅狮子1 小时前
01.ELK企业日志分析系统
运维·服务器·网络·数据库·elk·oracle
逆境不可逃1 小时前
Hello-Agents 第二部分-第九章总结:上下文工程
linux·运维·服务器
爱喝热水的呀哈喽1 小时前
转发与取消转发快捷设置
服务器
团象科技1 小时前
跨境业务链路频繁卡壳时,海外云服务器如何优化成本结构
运维·服务器
spencer_tseng1 小时前
HeapOOM && jvisualvm.exe
java·linux·jvisualvm.exe
小此方1 小时前
Re:Linux系统篇(十九)进程篇·四:内核托底与生死交错 ,深度硬核剖析“僵尸”与“孤儿”进程
linux·运维·驱动开发
Ether IC Verifier3 小时前
TCP三次握手与四次挥手详解
网络·网络协议·tcp/ip·计算机网络