NAT协议
# 1. 什么是NAT
NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程, 主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭。
# 2. NAT 解决了什么问题
IPv4地址随着用户的增多压力不断增大,但是每一个路由器的IP地址下面都有很多的私有地址,外部消息只需要找到这个路由器,这个路由器把消息找到真正目的主机传递给它即可。每一个路由器都可以分配很多私有地址,并且不同路由器的私有地址可以重复,通过这种地址转换,能够大大增加地址的容量。
①10.0.0.0~10.255.255.255/8
②172.16.0.0~172.31.255.255/12
③192.168.0.0~192.168.255.255/16
# 3. NAT实现方式
静态转换 Static Nat 指将内部网络的==私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。
动态转换 Dynamic Nat 指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。
端口多路复用 OverLoad 改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
# 4. NAT流程
当本地主机向网络主机发送请求时: (1)192.168.1.2(发送方)----->GATWAY 192.168.1.x接收数据(接收方)
(2)GATEWAY将源地址伪装成 202.20.64.x(发送方)------>发送给202.20.64.3(接收方) 同时把192.168.1.2和192.168.1.x的对应关系记录在状态表中。
当网络主机向本地主机返回数据时: (1)202.20.64.3(发送方,源地址)-----GATEWAY202.20.64.X(接收方,目的地址) (2)NAT设备查找状态表,使用本地私有地址主机 192.168.1.2替换196.168.1.X,此时196.168.1.2为目的地址。
状态表是私有地址和公有地址的一种映射。
# 5.NAT的优缺点
优点:NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
缺点:
- 由于内网是私有IP,所以不能直接从公网访问内部网络服务。
- 有一些应用程序虽然是用A端口发送数据的,但却要用B端口进行接收,不过NAT设备翻译时却不知道这一点,它仍然建立一条针对A端口的映射,结果对方响应的数据要传给B端口时,NAT设备却找不到相关映射条目而会丢弃数据包。