网络地址转换原理

NAT技术的基本原理

在这里插入图片描述
NAT是将数据报文头中的一种地址转换成另一种ip地址的过程,主要是使用在内网地址访问公网地址,每一个NAT的设备都会有一个地址转换表,通过这个地址转换表可以实现地址转换。地址转换分为以下两种

内网网络主机IP地址和端口映射陈外网ip地址和端口
外网网络IP地址和端口映射成内网主机IP地址和端口

通常使用在内网和外网网络的交会地,常见设备有路由器、防火墙

NAT分类

NAT可以分为以下三类
静态映射:公网地址和私网地址一对一进行映射,用于公网用户访问私网内部服务器的场景。
动态映射:多个私网地址对应一个公网ip地址池,适合大量的私网用户访问Internet的场景
端口多路复用:将不同的私网地址映射同一个ip地址不同端口上。
根本思想:源ip转换,目的ip转换。转换时是否携带转换端口。

NAT实现

Basic NAT和NAPT是私网IP地址通过NAT设备转换成公网IP地址的过程,分别实现一对一和多对一的地址转换功能。在现网环境下,NAT功能的实现还得依据Basic NAT和NAPT的原理,NAT实现主要包括:静态NAT/NAPTEasy IP地址池NATNAT Server双向NatNat Alg

源NAT技术

不带端口转换方式(静态NAT:1对1)

带端口转换方式(NAPT:1对1)

Easy IP(1对1带端口)

地址池转换(1对多)

目的Nat(服务器映射)

NAT Server - 内部服务器

NAT Server,即内部服务器。使用NAT可以灵活地添加内部服务器。例如:可以使用202.202.1.1等公网地址作为Web服务器的外部地址,甚至还可以使用202.202.1.1 :8080这样的IP地址加端口号的方式作为Web的外部地址

NAT ALG

在这里插入图片描述
常见NAT转换的缺点
普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,TCP/UDP载荷中带有地址或者端口信息,这些内容不能被NAT进行有效的转换。

解决常见NAT转换缺陷方式
NAT ALG(Application Level Gateway,应用层网关)技术能对多通道协议进行应用层报文信息的解析和地址转换,将载荷中需要进行地址转换的IP地址和端口或者需特殊处理的字段进行相应的转换和处理,从而保证应用层通信的正确性。

例如,FTP应用就由数据连接和控制连接共同完成,而且数据连接的建立动态地由控制连接中的载荷字段信息决定,这就需要ALG来完成载荷字段信息的转换,以保证后续数据连接的正确建立。
为了实现应用层协议的转发策略而提出了ASPF功能。
ASPF:开放相应的包过滤规则。
NAT:进行地址转换。
由于两者通常都是结合使用的,所以使用同一条命令就可以将两者同时开启。

NAT ALG实现原理

在这里插入图片描述
图中私网侧的主机要访问公网的FTP服务器。NAT设备上配置了私网地址192.168.1.2到公网地址8.8.8.11的映射,实现地址的NAT转换,以支持私网主机对公网的访问。组网中,若没有ALG对报文载荷的处理,私网主机发送的PORT报文到达服务器端后,服务器无法根据私网地址进行寻址,也就无法建立正确的数据连接。整个通信过程包括如下四个阶段:

1、私网主机和公网FTP服务器之间通过TCP三次握手成功建立控制连接。
2、控制连接建立后,私网主机向FTP服务器发送PORT报文,报文中携带私网主机指定的数据连接的目的地址和端口,用于通知服务器使用该地址和端口和自己进行数据连接。
3、PORT报文在经过支持ALG特性的NAT设备时,报文载荷中的私网地址和端口会被转换成对应的公网地址和端口。即设备将收到的PORT报文载荷中的私网地址192.168.1.2转换成公网地址8.8.8.11,端口1084转换成12487。

4、公网的FTP服务器收到PORT报文后,解析其内容,并向私网主机发起数据连接,该数据连接的目的地址为8.8.8.11,目的端口为12487(注意:一般情况下,该报文源端口为20,但由于FTP协议没有严格规定,有的服务器发出的数据连接源端口为大于1024的随机端口,如本例采用的是wftpd服务器,采用的源端口为3004)。由于该目的地址是一个公网地址,因此后续的数据连接就能够成功建立,从而实现私网主机对公网服务器的访问。

NAT Server与Server Map表

在这里插入图片描述
通常情况下,如果在设备上配置严格包过滤,那么设备将只允许内网用户单方向主动访问外网。但在实际应用中,例如使用FTP协议的port方式传输文件时,既需要客户端主动向服务器端发起控制连接,又需要服务器端主动向客户端发起服务器数据连接,如果设备上配置的包过滤为允许单方向上报文主动通过,则FTP文件传输不能成功。

为了解决这一类问题,USG设备引入了Server-map表,Server-map基于三元组,用于存放一种映射关系,这种映射关系可以是控制数据协商出来的数据连接关系,也可以是配置NAT中的地址映射关系,使得外部网络能透过设备主动访问内部网络。

1、生成Server-map表之后,如果一个数据连接匹配了Server-map表项,那么就能够被设备正常转发,而不需要去查会话表,这样就保证了某些特殊应用的正常转发。
2、配置NAT Server成功后,设备会自动生成Server-map表项,用于存放Global地址与Inside地址的映射关系。
3、当不配置"no-reverse"参数时,每个生效的NAT Server都会生成正反方向两个静态的Server-map;当配置了"no-reverse"参数时,生效的NAT Server只会生成正方向静态的Server-map。用户删除NAT Server时,Server-map也同步被删除。
4、PAT是接口地址转换。NO-PAT 是不做端口转换,只作IP地址转换,也就是BASIC NAT 。而如果是NAPT的话,NO-PAT是不配置的。建议不要配置NO-PAT,不然同一个进程只能使用一个IP地址

双向NAT技术

双向NAT两种应用场景:
1、NAT Server + 源NAT:服务器不设施网关或到达防火墙的路由
2、域内NAT:同一数据流,同时转换源地址和目的地址。

域间双向NAT

在这里插入图片描述
转换方式: 私网1转私网2,私网2转公网。

域内双向NAT

在这里插入图片描述
转换方式
防火墙将用户的请求报文的目的地址转换成FTP服务器的内网IP地址,源地址转换成用户对外公布的IP地址。

客户端请求时:S: 192.168.1.5    D:202.202.1.1    到达防火墙转换   S:202.202.1.5    D:192.168.1.1

防火墙将FTP服务器回应报文的源地址转换成对外公布的地址,目的地址转换成用户的内网IP地址。

服务端响应:  S:192.168.1.1    D:202.202.1.5   到达防火墙转换    S:202.202.1.1   
D:192.168.1.5

实现效果:隐藏彼此之间的ip地址

在这里插入图片描述
文章
官方文档

1. NAT简介网络地址转换(Network Address Translation)简称为NAT,是是将IP数据包包头中的IP地址转换为另一个IP地址。当IP数据包通过设备时,设备会把IP数据包的源IP地址和/或者目的IP地址进行转换。在实际应用中,NAT主要用于私有网络访问外部网络或外部网络访问私有网络的情况。NAT技术就是用来解决当今IP地址资源枯竭的一种技术,同时也是IPv4到IPv6的过渡技术。要设置一个服务器防火墙,就要使用规则,每个规则指定在包中与什么匹配,以及对包执行什么操作。 写一条服务器映射,公网地址为30.0.0.33,私网为server2的ip ,再写一条untrust to trust的策略。2、在untrust区域开启ftp服务,并且能让tryst区域访问到,即写一条策略(trust to untrust)源ip 和目的ip一起转换(源转换为30.0.0.111-30.0.0.222,目的转换为20.0.0.20)此时流量是从untruet to DMZ,已经有此策略,所以client2可以直接访问dmz的http服务。其他两个区域依次类推。6、NAT域内双向转换防火墙NAT地址转换技术使用场景:NAT处理流程:基于源地址转换NATNo-PATNAPTsmart NAT:Easy-ip:基于目的地址转换NAT服务器映射Nat-Server服务器负载均衡SLB黑洞路由: 使用场景: 私网用户访问Internet:通过Nat源策略对ipv4报文头中的源地址进行转换,可以实现私网用户使用公网IP来隐藏本身IP并访问Internet的目的。(私网地址无法在公网中路由) 公网用户访问私网内部服务器:通过服务器映射功能,用公网地址对外显示内部服务器,可以实现外部网络用户通 Nat no-pat:相当于思科 动态NAT(多对多) Napt :相当于思科PAT(IP地址不能是接口地址)(多对一) EASY-IP :相当于思科PAT(IP地址是接口地址)()多对一) SMART NAT智能转换):多对多 多对一 三元组NAT:内部服务器发布到网络 IP对应IP 端口对端口 一对一 EASY-IP配置 : 192.168.3.0-(接口)100.0.0.1 1 配置安全策略 security-policy -----配置NAT策略 rule name tu NAT的工作原理就是重写通过路由器的数据包的识别信息(IP地址)。 传统NAT:基本NAT和NAPT(网络地址端口转换) 传统NAT包括基本NAT(网络地址转换)和NAPT(网络地址端口转换) 基本NAT 基本NAT只执行IP地址的重写。 本质上就是将私有地址改写位公有地址 无法减少需要使用的IP地址 一个共有IP地址只能对应一个私有地址。 网络地址端口转换NAPT 使用端口来标识到底和NAT内部哪台私有主机关联。