防火墙的NAT
NAT分类
-
源NAT
-
基于源IP地址进行转换。
-
我们之前接触过的静态NAT,动态NAT,NAPT都属于源NAT,都是针对源IP地址进行转换的。源NAT主要目的是为了保证内网用户可以访问公网。
-
先执行安全策略,后执行NAT
-
目标NAT
- 基于目标IP地址进行转换。我们之前接触过的服务器映射 (端口映射) 就属于目标NAT。是为了保证公网用户可以访问内部的服务器。
-
双向NAT
- 同时转换源IP和目标IP地址。
详细分类可以参考
NAT配置
新建NAT
-
NAT类型
-
NAT
-
NAT64:ipv4 和ipv6的NAT转换。
-
-
转换模式
-
仅转换源地址 --- 源NAT
-
仅转换目的地址 --- 目标NAT
-
源地址和目的地址同时转换 --- 双向NAT
-
不做转换
-
-
转换后的数据包
-
把源地址转换成什么?
-
地址池的地址 --- 多对多的NAPT或者动态NAT
-
出接口地址 --- easy ip
-
-
-
新建安全策略
- 观察安全策略的源目区域:匹配的是私网地址,所以先执行安全策略,后执行源NAT,即源NAT是在安全策略之后执行。。
源NAT
新建地址池
-
地址池范围:可以单独指定地址,也可以指定一个范围(包含的关系);
- 地址池中的IP是漂浮地址,不会再路由表中生成路由星系
-
健康状态检查:检查地址池中的地址是否可用。
- 可以通过各种协议去判断地址是否有效。
-
配置黑洞路由:黑洞里有即空接口路由,在NAT地址池中的地址,建议配置达到这个地址指向空接口的路由,不然,在特定情况下会出现环路。(主要针对地址池中的地址和出接口地址不在同一个网段中的场景)
-
允许端口地址转换:选择是否加Pat,决定了使用的是动态NAT还是NAPT的逻辑,是否允许端口转换。
-
高级
-
NAT类型
-
五元组 :源IP、目标IP、源端口、目标端口、协议 ---- 这五个参数识别出的数据流经行端口转换。一个数据流出去才会换端口。
-
三元组:源IP、源端口、协议。 --- 三个参数识别出的数据流进行端口转换。应对P2P场景下
-
-
端口预分配:与规定分配的端口范围。
-
源IP地址数量限制:限制一个IP地址对应多少个私网IP地址。
-
保留IP地址:保留某个IP地址不转换。
补充内容
-
现在静态NAT作用
- 入方向,跟服务器做一对一的映射。
-
easy ip 不产生server-map(display firewall server-map)
-
填写默认网关,则生产缺省静态
- 协议 Unr:(U)用户(n)网络(r)路由,一般情况由于策略生成的路由。
-
NAPT没有生成server-map表;根据不同的应用分配不同的端口号。颗粒度更细致一些,可以根据服务限制是否转换NAT
-
动态NAT不牵扯端口,不做服务检验,如果做服务检验可以新建NAT选择性拒绝服务。并且server-map中有内容。如果第一次触发动态NAT的策略,之后在短期内修改服务里面的内容,Ping还是能Ping同,因为server-map表短期内没有失效,仍然可以根据server-map表找到对应关系。
-
动态NAT创建完后,触发访问流量后会同时生成两条server-map的记录,其中一条是反向记录。反向记录小时前,相当于是一条静态NAT记录,外网的任意地址,在安全策略放通的情况下,是可以访问到内网的设备。基于端口的NAT转换,是不会生成server-map表的。
三元组
应对P2P场景下NAT转换。P2P ---peer to peer
三元组NAT是一种转换时同时转换地址和端口,实现多个私网共用一个或多个公网地址的地址转换方式。它允许Internet上的用户主动访问私网用户,与基于P2P技术的文件共享、语音通信、视频传输等业务可以很好的共存。当内网PC访问Internet时,如果FW采用五元组NAT(NAPT)方式进行地址转换,外部设备无法通过转换后的地址和端口主动访问内部PC。而三元组NAT可以很好的解决这个问题。因为三元组NAT有两个特点: (1)三元组NAT的端口不能复用,保证了内部PC对外呈现的端口的一致性,不会动态变化,但是公网地址利用率低 (2)支持外部设备通过转换后的地址和端口主动访问内部PC。FW即便没有相应的安全策略,也允许此类访问报文通过。
因为P2P应在端口转换的情况下,识别五元组,将导致P2P客户端之间无法直接访问,不符合五元组的筛选条件,所以,这种场景下可以使用三元组NAT,放宽筛选条件,保证P2P客户端之间可以正常通信。
目标NAT
新建目标NAT
目标地址转换方式
-
公网地址与私网地址一对一转换 ---- 静态NAT
-
公网端口与私网地址一对一转换 ---- 公网端口映射给私网IP地址
-
公网端口与私网端口一对一转换 ---- 公网端口映射给私网端口 ---- 服务器映射
-
公网地址与私网端口一对一转换 ---- 公网地址映射给私网IP地址
-
随机转换为目的转换地址池中的地址
原始数据包 ---- 即数据包一开始的数据包,对应配置信息公网地址信息
转换后的数据包 ---- 转换后的数据包,对应配置信息是私网地址信息
转换后的地址池 ---- 目的转换地址池,数据有外部进来的时候使用,公网转换到私网的地址池。这里对应私网的服务器地址。
服务器映射
-
安全区域 --- 基于安全区域发布公网地址,该服务器只能被该安全区域的用户访问,其他安全区域的用户无法访问该服务器。---- 值的是需要访问服务器的设备所在的区域,即写源区域
-
公网地址 ---- 指定转换的公网IP(不能是出接口地址)
-
私网地址 ---- 服务器映射的私网地址,可以映射多个私网地址。但是需要公网地址和私网地址一对一对应。所以需要多个连续的公网地址
-
指定协议 ---- 指定映射协议
-
允许服务器使用公网地址上网 ---- 某些服务器需要更新服务等,需要使用公网联网,相当于自动生成源NAT。
-
配置黑洞路由 ---- 默认勾选防止出现环路,会自动生成一条指向公网IP地址的空接口路由。
补充
-
源NAT在安全策略之后执行,目标NAT在安全策略之前执行(因为自动生成的安全策略的目标地址是转换后的地址,说明需要先进行转换,再触发安全策略)
-
服务器映射生成server-map表
双向NAT
情况:私网服务器通过公网访问私网的服务器
此时由于是私网用户通过公网访问私网服务器,用户首先发生给防火墙请求建立TCP连接(发送SYN数据包),在防火墙上只进行了目标NAT地址转换,转换后的目标地址是私网内部的地址,防火墙只进行转发操作,转发给死亡的服务器。服务器接收到转发的SYN数据包,直接根据私网IP地址找到目标用户,请求建立TCP连接。此时由于在用户视角,与防火墙建立TCP,却是服务器回复。所以拒绝服务器建立的TCP连接。
防火墙抓包详细情况
服务器抓包详细情况
有图可知TCP建立连接的目标与回复的人不同,所以建立不超过。所以数据无法通信。
新建双向NAT策略
-
转换模式选择源地址和目标地址同时转换
-
源地址转换
-
地址池中的地址 ---- 自定义转后的源地址
-
出接口地址 ---- 数据流出方向上的出接口地址
-
多出口NAT
源NAT
-
第一种:根据出接口,创建多个不同的安全区域,再根据安全区域来做NAT,此时如果使用地址池的情况下方便
-
第二种:出去还是一个区域,选择出接口来进行转换,此时如果使用地址池的情况下步不方便
目标NAT
-
第一种:也可以分两个不同的区域做服务器映射
-
第二种:可以只设置一个区域,但是要注意,需要写两条策略分别正对两个接口的地址池,并且,不能同时勾选允许服务器上网,否则会造成地址冲突。