seegongsik
我的单词本
网络

多台设备,一个地址,NAT

家里有手机,有笔记本,还有电视。可外面的世界看到的家庭地址只有一个。那么多设备怎么共用一个地址出门呢?路由器握着这个秘密。

01

多台设备,一个地址

家里有好几台用网的设备。
手机、笔记本、电视都连在一起。
每台设备都有自己家里的地址。
就像在门内分配房间号一样。
可外面的世界看到的家庭地址,
只有一个,叫公网地址。
多台设备出门时,
都从这一个地址出去。
在中间做这件事的,就是路由器。

NAT
出门的地址203.0.113.7
点一下家里的设备让它出门

点一下家里的设备让它出门。它们都从同一个公网地址出去。

不管点哪台设备,
出门的地址都一样。
手机、笔记本、电视,
最后都带着同一个公网地址出去。
从外面看,
三台都像是从一个家来的。
可这里冒出一个疑问。
地址都一样,回复回来时,
怎么知道是谁的呢?

02

记住是谁发的

路由器有一个秘密的小本子。
那就是一张表。
哪台设备发去了外面的哪里,
一行一行地记下来。
比如“电视发去了视频服务器”。
第 10 讲学的端口房号也一起记上,
把这些配对分得更清楚。
每个出去的请求都在表里留一行,
以后回复回来,看表就行了。

NAT 表 (设备 ↔ 外部请求)
设备 / 端口房号外部请求
表还是空的
点一下设备发到外面

点一下设备发到外面。路由器把“设备 ↔ 外部请求”的配对一行行写进表里。

每次发出一台设备,
表里就多堆一行。
现在看表,
哪一行属于哪台设备一清二楚。
路由器一行不落地记下来。
这张表正是 NAT 的核心。
地址打包成一个出去,
而是谁发的,由表来记。
那现在来把回复送回去吧?

03

把回复送回去

外面的服务器送来了答复。
那答复先到家庭的公网地址。
可家里有好几台设备。
这答复该给谁呢?
路由器翻开刚才写的表。
“啊,这答复是电视发的请求的回复。”
于是按表所指,
把答复准确地交给电视。
一张表把路重新找回来。

外部回复到达 (来自 video.example 服务器)
NAT 表
看着表,点对的设备把它送回去

看从外面来的回复,翻开表,点对的设备把它送回去。

点表所指的设备,
回复就正好送回去了。
点别的设备,
和表对不上,就没送回去。
地址虽然打包成一个,
但靠着表,一点都没乱。
出门时聚成一个,
回来时按表分开,
这就是 NAT 每天做的事。

04

外面进不来

这里还顺带来了一件好事。
回复要回来,得在表里有对应的配对。
那配对是在里面先发出去时生成的。
那么从外面先发起的连接呢?
表里没有这样的配对。
路由器说“这是谁的答复,我不知道呀”,
就直接挡住。
只有从里面发起的才能回来。
所以 NAT 成了一道天然的防火墙。

分别点回复和连接。表里有配对就通过,没有就被挡

点一点从里面发起的回复,和从外面先发起的连接。有配对就通过,没有就被挡。

从里面发起的回复在表里有配对,
就平安进来了。
从外面先发起的连接没有配对,
就在门口直接被挡。
没人特意叫它去挡。
只因为它是用表来还回的方式,
自然而然就成了这样。
所以把这叫作天然的防火墙。
安全的话题,下一个领域会更深入地讲。

05

来理一理

归成一句话,是这样。
家里的多台设备,
从一个公网地址出门。
路由器把谁发了什么
记在表里,
回复来了就看表,还给对的设备。
所以多台共用一个地址。
加上外面进不来,
还成了天然的防火墙。这就是 NAT。

依次点要点回顾一下

依次点要点回顾一下。(以一个地址出去 → 用表记住 → 还回回复 → 天然防火墙)

现在你知道一个家怎么用一个地址
一起上网了。
也知道外面进不来。
可单靠这道天然防火墙,
能挡住所有危险吗?
要是从里面发起的坏连接,
不也就直接通过了吗。
所以还需要另外把守的装置。
在安全领域,我们一起一步步看看,
守的是什么、怎么守。

一句话总结家里的设备各自有一个家里的地址,但要出门时会经过路由器,以一个公网地址出去。这就是 NAT。路由器把“哪台设备发去了哪里”记在一张表上,回复回来时,就看着这张表,准确地还给对的设备。所以多台共用一个地址也不会乱。加上从外面先发起的连接在表里找不到对应,就直接被挡住。只有从里面发起的才能回来。因此 NAT 还顺带当了一道天然的防火墙。
网络
如果有帮助,请支持我们