介绍
定义:NAT是网络地址转换,Network Address Translations。
IPv4地址分类:
- IP地址分为公网IP和私网IP
- 公网IP只能在公网上使用
- 私网IP只能在内网中使用
- 公网上不允许出现私有IP地址
- 私网IP可以重复在内网使用
私有IP地址范围:
1)10.0.0.0/8
2)172.16.0.0/16 - 172.31.0.0/16
3)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:100
1000和100这两个端口号是路由器配置的临时端口,这个端口范围0-65535,如果过了这个范围的话,再有人上网的话,只能候着了。
NAT地址转换表
只有由内网 往 外网走的时候,会生成NAT地址转换表中新的条目;
外网向内网走的时候,是根据NAT转换表,进行回包。
以上解决的问题是,员工内网访问外网,地址转化问题。
以下解决的问题是,外面人外网访问内网,地址转化问题。
(4)PAT + 静态NAT (静态PAT,端口映射)
端口映射:把内网的某个端口映射出去,叫做端口映射。
一般公司都会准备两个以上的外网网址,一个用于,内网去外网,另外一个,用于外网访问内网服务器。
外网访问内网服务器的解决方案是,举例,将100.2的ip和端口映射到100.1的ip上,同时,加上80端口限制,这就叫做静态pat,其实就是,静态nat+pat,也叫端口映射。
举例1
S 192.3 — 100.2 80—80
S 182.4 — 100.2 23—23(rdp)remote destop protocol
不同服务器 映射到 外网同一个IP上
举例2
S 192.3 — 100.2 80—80
S 192.4 — 100.2 80—81
内网两台服务器,都想开80端口,则由于,外网ip一样,所有端口号就不能一样了。
这个缺点很明显了,外网需要访问100.2:81 ,加上81端口,才能访问到 192.4。
(5)VIP 虚拟公网IP地址 vritual ip
100.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
关注公众号:网络技术平台,回复 “ 资料 ” 获取视频、培训教程、实验手册、电子书。