NAT(Network Address Translation,网络地址转换)是把数据包中的源地址(端口)或目标地址(端口)转换成需要的地址。NAT由以下两个步骤完成:
(1) 原有地址被转换成所映射的地址。
(2) 把返回的数据包进行地址还原。
NAT的优点在于:
l 可以在内部网络使用私网地址。私网地址在Internet上是不可以路由,只有转换成公网地址后,才能使用。
l NAT把真实的IP隐藏起来,攻击者就无法知道主机的真实地址。
l 如果两个网络地址重叠的话,通过NAT可以实现网络的互通。
基本NAT工作过程举例
(1) 内网用户主机(192.168.1.2)向外网服务器(8.8.8.8)发送的IP报文1将通过NAT设备。
(2) NAT设备查看报头内容,发现报文1是发往外网的,将其源IP地址字段的私网地址192.168.1.2转换成一个可在Internet上选路的公网地址10.10.10.10,并将报文1发送给外网服务器,同时在NAT设备的网络地址转换表(NAT表)中记录这一映射。
(3) 外网服务器给内网用户发送的应答报文2(其初始目的IP地址为10.10.10.10)到达NAT设备后,NAT设备再次查看报头内容,查找当前网络地址转换表的记录,用内网私有地址192.168.1.2替换初始的目的IP地址。
(4) 上述的NAT过程对终端(如图中的Host和Server)来说是透明的。对外网服务器而言,它认为内网用户主机的IP地址就是10.10.10.10,并不知道有192.168.1.2。因此,NAT“隐藏”了企业的私有网络。
Z-S系列防火墙支持多种NAT方式,可以实现公网IP地址和私网IP地址的单向或双向转换,常被作为专门的NAT设备使用。Z-S系列防火墙支持的NAT方法包括:
l 静态NAT
l 动态NAT
l PAT
静态NAT是将原地址固定地翻译为映射地址,无论出入方向。如图1所示,10.1.0.3与59.108.29.187建立了一对一的静态映射。与动态NAT和PAT不同,静态NAT是固定的翻译,所以目标网络也可以访问原网络。
图1 静态NAT示例
动态NAT把一组原IP地址翻译成可以在目标网络路由的映射地址池。映射地址池中的地址数量可以比原IP地址少。翻译的过程是原地址和映射地址一一对应的。该对应仅仅是在该会话有效的时候存在,当会话失效后,对应就消失了。如图2 所示,10.1.0.[3-8]被翻译成59.108.29.[90-99],实现和外网的通讯。但是对于外网的机器来说,10.1.0.[3-8]是不可见的。
图2 动态NAT示例
PAT又称为端口映射,它实现的是多个IP映射为一个外网IP。在地址转换的过程中,将原地址和原端口转换成映射的地址和大于1024以上的端口。每个连接都要有一个独立的转换,因为不同的连接的原IP的源端口是不同的。如图3 ,10.1.0.3:1025和10.1.0.3:1026需要不同的转换过程。PAT能够非常有效地利用现有的Internet公网IP地址资源。
图1-3 PAT示例
Z-S系列防火墙可以实现对上述各类NAT的细粒度控制,使NAT功能完全与用户的需求进行匹配,非常灵活方便。用户可以从以下维度进行NAT策略控制:
l 哪些地址需要进行NAT。
l 什么时间段内进行NAT。
l 目标地址为多少的时候进行NAT。
l 哪些服务要做NAT。
l 防火墙的什么端口到什么端口之间进行NAT。