三张图解释静态 NAT、动态 NAT、PAT
介绍
定义:NAT 是网络地址转换,Network Address Translations。
IPv4 地址分类:
IP 地址分为公网 IP 和私网 IP
公网 IP 只能在公网上使用
私网 IP 只能在内网中使用
公网上不允许出现私有 IP 地址
私网 IP 可以重复在内网使用
私有 IP 地址范围:
1)10.0.0.0/82)172.16.0.0/16 - 172.31.0.0/163)192.168.0.0/16
NAT 主要实现公私有 IP 地址的转换,一般是路由器或者防火墙上来完成。
原理

看上面这张图,192.168 访问 200.2,先到达路由器;三层设备将 192.168 映射到外网地址,也就是换成外网地址 200.1,外网地址。200.1 访问 200.2 ,到服务器所在路由后,200.1 也是不能直接访问 200.2 的内网服务器,所以这时候,也需要做地址转换,200.2 换成 172.16。最后,200.1 访问到了 172.16,也就是 192.168 访问到 200.2。
回包的时候,道理一样,一出一进,做两次地址映射(地址转换)。
其实,网络地址转换就是,解封装三层包头,更换源 IP 或者目标 IP,顺便说一嘴,mac 地址也会改变,但不是因为 NAT,mac 地址过个路由就会变一次。
分类

(1)静态 NAT(静态映射)手动写入 IP 地址映射条目,配置 NAT 表,一个内网地址对应着一个外网地址,举例,192.168 对应 1.1。当 192.168 向外网发包,则过路由的时候,会根据静态 NAT 表,将 192.168 更换为 1.1。
缺点是,内网这么多人,一个内网 IP 对应一个外网 IP,我得花多少钱,买多少个公网 ip 才够使。
动态 NAT 解决了这个问题,请往下看。
(2)动态 NAT (动态映射)一个网段对应 一个外网地址;举例:192.1681.0/24 这个网段对应着 100.1;192.168.1.1 来了;在 NAT 地址转换里,形成了一条映射(条目),就是,192.168.1.1 映射 100.1,这个时候,重点来了,由于 192.168.1.1 占用着 100.1,则别人无法再使用这个 100.1,直到 192.168.1.映射表项老化后 ,则可以把 100.1 给别人;别人无法使用的原因是,如果别人也在使这个 100.1, 回包回不来。
但是并没有解决,多人同时上网的问题,所以废掉。
PAT 解决了这个问题,请往下看。
(3)PAT port address translation 端口网络地址转换道理很简单,在 ip 地址的基础上,在加上端口号,加以区分。
举例:192.168.1.0/24,这个网段映射到外网 ip100.1;192.168.1.1 这个 ip 向外网发了一个 http 的包,过路由器的时候,路由器随机配置了端口号,
192.168.1.1 :1000 — 100.1.1.1:100
只要这个 ip 地址的这个端口号 一直占用着 100.1.1.1 的这个端口号,则别人就不能再使用 100.1.1.1:100 这个 IP+端口号。
其实就是加上端口号进行复用,用端口号加以区分每个私网 IP 的对应相同公网 IP 时。
192.168.1.1:1000, 1000 和 1000.1.1.1:1001000 和 100 这两个端口号是路由器配置的临时端口,这个端口范围 0-65535,如果过了这个范围的话,再有人上网的话,只能候着了。
NAT 地址转换表只有由内网 往 外网走的时候,会生成 NAT 地址转换表中新的条目;外网向内网走的时候,是根据 NAT 转换表,进行回包。
以上解决的问题是,员工内网访问外网,地址转化问题。
以下解决的问题是,外面人外网访问内网,地址转化问题。
(4)PAT + 静态 NAT (静态 PAT,端口映射)
端口映射:把内网的某个端口映射出去,叫做端口映射。一般公司都会准备两个以上的外网网址,一个用于,内网去外网,另外一个,用于外网访问内网服务器。外网访问内网服务器的解决方案是,举例,将 100.2 的 ip 和端口映射到 100.1 的 ip 上,同时,加上 80 端口限制,这就叫做静态 pat,其实就是,静态 nat+pat,也叫端口映射。
举例 1S 192.3 — 100.2 80—80S 182.4 — 100.2 23—23(rdp)remote destop protocol 不同服务器 映射到 外网同一个 IP 上
举例 2S 192.3 — 100.2 80—80S 192.4 — 100.2 80—81 内网两台服务器,都想开 80 端口,则由于,外网 ip 一样,所有端口号就不能一样了。
这个缺点很明显了,外网需要访问 100.2:81 ,加上 81 端口,才能访问到 192.4。
(5)VIP 虚拟公网 IP 地址 vritual ip100.2 就叫做虚拟 IP 地址,因为,它们本身不配在路由器上,而是映射到内网服务器上,所以叫做虚拟 IP 地址。
我们通过一个例子来说说它们的作用:
A 公司的内网有 100 台电脑,网段为 192.168.1.0/24,某些电脑需要访问互联网,但是内网地址是无法访问到互联网,怎么办呢?
公司有拉了一条联通的专线连接到防火墙,专线的 ip 地址为 58.1.1.1,此时我们将内网的某些 192.168.1.x 地址通过 NAT 转换成 58.1.1.1 就可以访问到互联网啦。

看到这里如果还有不解的地方
这里还有更简单粗暴的解释👇
直接用 3 张图解释一下它们的原理和不同:
静态 NAT:
最重要的特点是一对一,而且是静态指定的(一个内网 ip 对应一个外网 ip 是固定好的),常用于将内网服务器的 ip 地址映射到外网 ip;

动态 NAT:
特点是多个内网 ip 组成的地址池,指向到多个外网 ip 组成的地址池,当内网 ip 需要访问外网时,就从外网 ip 地址池中取一个外网 ip 地址(每次取的 ip 地址可能不同);
两个地址池中的 ip 个数可以不同;

PAT:
特点是将多个内网 ip 地址指向到同一个外网 ip 地址的不同端口,通过访问外网 ip 的不同端口就可以访问到内网 ip 了
比如:192.168.1.1 -->58.1.1.1:2233 192.168.1.2-->58.1.1.1:2234

评论