华为防火墙之NAT技术

news2024/11/18 10:38:23

1.源NAT

源NAT技术对IP报文的源地址进行转换,将私网IP地址转换成公网IP地址,使大量私网用户可以利用少量公网IP地址访问Internet,大大减少了对公网IP地址的消耗。

源NAT转换的过程如下图所示,当私网用户访问Internet的报文到达防火墙时,防火墙将报文的源IP地址由私网地址转换为公网地址;当回程报文返回至防火墙时,防火墙再将报文的目的地址由公网IP地转换为私网地址。整个NAT转换过程对于内部网络中的用户和Internet上的主机来说是完全透明的。

NAT地址池是一个虚拟的概念,它形象地把“公网IP地址的集合”比喻成一个“放IP地址的池子或容器”,防火墙在进行地址转换时就是从NAT地址池中挑选出一个公网IP地址,然后对私网IP地址进行转换。挑选哪个公网IP地址是随机的,和配置时的顺序、IP地址大小等因素都没有关系

配置NAT地址池的命令如下:

[FW] nat address-group 1 202.1.1.2 202.1.1.5  //配置包含4个公网地址的地址池

NAT地址池配置完成后,会被NAT策略所引用。NAT策略与安全策略相似,也是由条件和动作组成。不同的是,NAT策略中的动作是“源NAT转换”和“不进行NAT转换”,当动作是“源NAT转换”时必须引用NAT地址池,如下图所示:

多条NAT策略之间存在匹配顺序,如果报文命中了某一条NAT策略,就会按照该NAT策略中引用的地址池来进行地址转换;如果报文没有命中某条NAT策略,则会向下继续查找。

NAT No-PAT

No-PAT”表示不进行端口转换,所以NAT No-PAT方式只转换IP地址,故也称为“一对一地址转换”。

下面以图4-3所示的组网环境为例介绍No-PAT方式的配置过程,假设防火墙和Web服务器之间路由可达。

NAT No-PAT方式的配置过程如下:

①配置NAT地址池

[FW] nat address-group 1 202.1.1.2 202.1.1.3  ∥地址池中配置两个公网IP地址

②配置NAT策略

[FW] nat-policy interzone trust untrust outbound
[FW-nat-policy-interzone-trust-untrust-outbound] policy 1
[FW-nat-policy-interzone-trust-untrust-outbound-1] policy souree 192.168.0.0 0.0.0.255   ∥匹配条件
[FW-nat-policy-interzone-trust-untrust-outbound-1] action source-nat  //动作为进行源NAT转换
[FW-nat-policy-interzone-trust-untrust-outbound-1]address-group 1 no-pat //弓用NAT 地址池并指定转换方式为No-PAT
[FW-nat-policy-interzone-trust-untrust-outbound-1] quit
[FW-nat-policy-interzone-trust-untrust-outbound] quit

③配置安全策略

  • 安全策略的作用是控制报文能否通过防火墙;
  • NAT策略的作用是对报文进行地址转换;

配置NAT的时候也需要配置安全策略允许报文通过。由于防火墙对报文进行安全策略处理发生在进行NAT策略处理之前,所以安全策略的源地址应该是进行NAT转换之前的私网地址

[FW] policy interzone trust untrust outbound
[FW-policy-interzone-trust-untrust-outbound] policy 1
[FW-policy-interzone-trust-untrust-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-untrust-outbound-1] action permit
[FW-policy-interzone-trust-untrust-outbound-1] quit
[FW-policy-interzone-trust-untrust-outbound] quit

④配置黑洞路由

黑洞路由是一个让报文“有去无回”的路由,它的效果就是让防火墙丢弃命中黑洞路由的报文。为了避免产生路由环路,在防火墙上必须针对地址池中的公网IP地址配置黑洞路由。

[FW] ip route-static 202.1.1.2 32 NULL0
[FW] ip route-static 202.1.1.3 32 NULL 0

NAT No-PAT方式会生成Server-map表,而且生成了正向和反向两条表项。

在NAT No-PAT的转换方式中,一个公网IP地址不能同时被多个私网用户使用,其实并没有起到节省公网IP地址的效果

NAPT

NAPT(Network Address and Port Translation)表示网络地址和端口转换,即同时对IP地址和端口进行转换,也可称为PAT(PAT不是只转换端口的意思,而是IP地址和端口同时转换)。NAPT是一种应用最广泛的地址转换方式,可以利用少量的公网IP地址来满足大量私网用户访问Internet的需求

NAPT方式和NATNo-PAT方式在配置上的区别仅在于:NAPT方式的NAT策略在引用NAT 地址池时,不配置关键字“no-pat”,其他的配置都是一样的。

### ①配置NAT地址池
[FW] nat address-group 1 202.1.1.2 202.1.1.3  ∥地址池中配置两个公网IP地址
### ②配置NAT策略
[FW] nat-policy interzone trust untrust outbound
[FW-nat-policy-interzone-trust-untrust-outbound] policy 1
[FW-nat-policy-interzone-trust-untrust-outbound-1] policy souree 192.168.0.0 0.0.0.255   ∥匹配条件
[FW-nat-policy-interzone-trust-untrust-outbound-1] action source-nat  //动作为进行源NAT转换
[FW-nat-policy-interzone-trust-untrust-outbound-1]address-group 1  //弓用NAT 地址池
[FW-nat-policy-interzone-trust-untrust-outbound-1] quit
[FW-nat-policy-interzone-trust-untrust-outbound] quit
### ③配置安全策略
[FW] policy interzone trust untrust outbound
[FW-policy-interzone-trust-untrust-outbound] policy 1
[FW-policy-interzone-trust-untrust-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-untrust-outbound-1] action permit
[FW-policy-interzone-trust-untrust-outbound-1] quit
[FW-policy-interzone-trust-untrust-outbound] quit
### ④配置黑洞路由
[FW] ip route-static 202.1.1.2 32 NULL0
[FW] ip route-static 202.1.1.3 32 NULL 0

NAPT方式不会生成Server-map表。

出接口地址方式

出接口地址方式(Easy-IP) 指的是利用出接口的公网IP地址作为NAT转换后的地址,也同时转换地址和端口一个公网IP地址可以同时被多个私网用户使用,可以看成是NAPT方式的一种“变体”

出接口地址方式(Easy-IP)在公网IP是动态变化的情况下使用。

Easy-IP方式无需配置NAT地址池,也不用配置黑洞路由,只需在NAT策略中指定出接口即可,下面以图4-4所示的组网环境为例介绍Easy-IP方式的配置过程。

(1)配置NAT策略

[FW] nat-policy interzone trust untrust outbound
[FW-nat-policy-interzone-trust-untrust-outbound] poliey 1
[FW-nat-policy-interzone-trust-untrust-outbound-1] policy souree 192.168.0.0 0.0.0.255
[FW-nat-policy-interzone-trust-untrust-outbound-1] action souree-nat
[FW-nat-policy-interzone-trust-untrust-outbound-1]easy-ip GigabitEthernetl/0/2 //指定出接口
[FW-nat-policy-interzone-trust-untrust-outbound-1] quit
[FW-nat-policy-interzone-trust-untrust-outbound] quit

(2)配置安全策略

[FW] policy interzone trust untrust outbound
[FW-policy-interzone-trust-untrust-outbound] policy 1
[FW-policy-interzone-trust-untrust-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-untrust-outbound-1] action permit
[FW-policy-interzone-trust-untrust-outbound-1] quit
[FW-policy-interzone-trust-untrust-outbound] quit

和NAPT一样,Easy-IP方式也不会生成Server-map表。

Smart NAT

Smart NAT方式也叫作“聪明的NAT”,这是因为它融合了NAT No-PAT方式和
NAPT方式的特点。

假设SmartNAT方式使用的地址池中包含N个IP,其中一个IP被指定为预留地址,另外N-1个地址构成地址段1(sectionl)。进行NAT地址转换时,Smart NAT会先使用section1进行NAT No-PAT方式的转换,即一对一的地址转换。当section1中的IP都被占用后,SmartNAT才使用预留地址进行NAPT方式的转换,即多对一的地址转换。

上图组网环境,Smart NAT方式的配置过程如下:

(1)配置NAT地址池

[FW] nat address-group 1
[FW-address-group-1] mode no-pat local
[FW-address-group-1] smart-nopat 202.1.1.3  //预留地址
[FW-address-group-1] section 1 202.1.1.2 202.1.1.2  //section中不能包含预留地址
[FW-address-group-]] quit

(2)配置NAT策略

[FW] nat-poliey interzone trust untrust outbound
[FW-nat-policy-interzone-trust-untrust-outbound] policy 1
[FW-nat-policy-interzone-trust-untrust-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-nat-policy-interzone-trust-untrust-outbound-1] action souree-nat
[FW-nat-policy-interzone-trust-untrust-outbound-1] address-group 1 /∥弓用NAT地址池
[FW-nat-policy-interzone-trust-untrust-outbound-1] quit
[FW-nat-policy-interzone-trust-untrust-outbound] quít

(3)配置安全策略

[FW] policy interzone trust untrust outbound
[FW-policy-interzone-trust-untrust-outbound] policy 1
[FW-policy-interzone-trust-untrust-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-untrust-outbound-1] action permit
[FW-policy-interzone-trust-untrust-outbound-1] quit
[FW-policy-interzone-trust-untrust-outbound] quit

(4)配置黑洞路由

[FW] ip route-static 202.1.1.2 32 NULL0
[FW] ip route-static 202.1.1.3 32 NULL 0

三元组 NAT

为了解决P2P业务和NAT共存的问题,需要用到一种新的地址转换方式:三元组 NAT

三元组 NAT在进行转换时,仅和源IP地址、源端口和协议类型这3个元素有关,这也正是“三元组”NAT名字的由来。

三元组 NAT的两个特点:

  • 对外呈现端口一致性
  • 支持外网主动访问

目前华为USG9500系列防火墙V300R001版本支持三元组NAT方式,对于USG2000/5000/6000系列防火墙来说,可以通过配置User-defined协议的ASPF来保证P2P业务的正常运行。下面结合下图所示的组网环境,给出三元组NAT的配置过程,三元组NAT不能配置黑洞路由,否则会影响业务。

(1)配置NAT地址池

[FW] nat address-group 1  //指定模式为三元组NAT方式
[FW-address-group-]] mode full-cone local
[FW-address-group-1] section 1 202.1.1.2 202.1.1.3
[FW-address-group-1] quit

(2)配置NAT策略

[FW] nat-policy interzone trust untrust outbound
[FW-nat-policy-interzone-trust-untrust-outbound] policy 1
[FW-nat-policy-interzone-trust-untrust-outbound-1] policy souree 192.168.0.0 0.0.0.255
[FW-nat-policy-interzone-trust-untrust-outbound-1] aetion souree-nat  //引用NAT地址:池
[FW-nat-policy-interzone-trust-untrust-outbound-1] address-group 1
[FW-nat-policy-interzone-trust-untrust-outbound-1] quit
[FW-nat-policy-interzone-trust-untrust-outbound] quit

(3)配置安全策略

[FW] policy interzone trust untrust outbound
[FW-policy-interzone-trust-untrust-outbound] poliey 1
[FW-policy-interzone-trust-untrust-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-untrust-outbound-1] action permit
[FW-policy-interzone-trust-untrust-outbound-1] quit
[FW-policy-interzone-trust-untrust-outbound] quit

多出口场景下的源NAT

某企业在内部网络的出口处部署了防火墙作为出口网关,通过ISP1和ISP2两条链路连接到Internet,企业内部网络中的PC有访问Internet的需求,如下图;

选路的方式有多种,比如配置两条缺省路由(等价路由)或者配置明细路由,根据报文的目的地址进行选路;比如配置策略路由,根据报文的源地址进行选路。这里主要介绍NAT功能。

无论使用哪种选路方式,结果无非就是两种:报文走ISP1的链路出去,或者走ISP2的链路出去。不管是走哪条链路,只要在报文发出去之前把报文中私网地址转换成相应的公网地址,源NAT的作用就完成了。

通常情况,我们把防火墙与ISP1和ISP2相连的两个接口分别加入到不同的安全区域,然后基于内部网络所在安全区域(通常是Trust区域)与这两个接口所在安全区域之间配置源NAT策略,如下图所示:

假设ISP1分配的公网地址是1.1.1.101.1.1.12,ISP2分配的公网地址是2.2.2.102.2.2.12,NAPT方式的源NAT配置如下:

(1)将接口分别加入到不同的安全区域

[FW] firewall zone trust
[FW-zone-trust] add interface GigabitEthernet1/0/1
[FW-zone-trust] quit
[FW] firewall zone name isp1
[FW-zone-ispl] set priority 10
[FW-zone-ispl] add interface GigabitEthernet1/0/2
[FW-zone-ispl] quit
[FW] firewall zone name isp2
[FW-zone-isp2] set priority 20
[FW-zone-isp2] add interface GigabitEthernet1/0/3
[FW-zone-isp2] quit

(2)配置两个NAT地址池

[FW] nat address-group 1 1.1.1.10 1.1.1.12
[FW] nat address-group 2 2.2.2.10 2.2.2.12

(3)基于不同的域间关系配置两条NAT策略

[FW] nat-policy interzone trust ispl outbound
[FW-nat-policy-interzone-trust-isp1-outbound] policy 1
[FW-nat-policy-interzone-trust-isp1-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-nat-policy-interzone-trust-isp1-outbound-1] action source-nat
[FW-nat-policy-interzone-trust-ispl-outbound-1] address-group 1
[FW-nat-policy-interzone-trust-isp1-outbound-1] quit
[FW-nat-policy-interzone-trust-ispl-outbound] quit
[FW] nat-policy interzone trust isp2 outbound
[FW-nat-policy-interzone-trust-isp2-outbound] policy 1
[FW-nat-policy-interzone-trust-isp2-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-nat-policy-interzone-trust-isp2-outbound-1] action source-nat
[FW-nat-policy-interzone-trust-isp2-outbound-1] address-group 2
[FW-nat-policy-interzone-trust-isp2-outbound-1] quit
[FW-nat-policy-interzone-trust-isp2-outbound] quit

(4)基于不同的域间关系配置两条安全策略

[FW] policy interzone trust isp1 outbound
[FW-policy-interzone-trust-ispl-outbound] policy 1
[FW-policy-interzone-trust-isp1-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-ispl-outbound-1] action permit
[FW-policy-interzone-trust-ispl-outbound-1] quit
[FW-policy-interzone-trust-ispl-outbound] quit
[FW] policy interzone trust isp2 outbound
[FW-policy-interzone-trust-isp2-outbound] policy 1
[FW-policy-interzone-trust-isp2-outbound-1] policy source 192.168.0.0 0.0.0.255
[FW-policy-interzone-trust-isp2-outbound-1] action permit
[FW-policy-interzone-trust-isp2-outbound-1] quit
[FW-policy-interzone-trust-isp2-outbound] quit

(5)配置黑洞路由

[FW] ip route-static 1.1.1.10 32 NULL 0
[FW] ip route-static 1.1.1.11 32 NULL 0
[FW] ip route-static 1.1.1.12 32 NULL 0
[FW] ip route-static 2.2.2.10 32 NULL 0
[FW] ip route-static 2.2.2.11 32 NULL 0
[FW] ip route-static 2.2.2.12 32 NULL 0

华为防火墙源NAT技术对比

2.NAT Server

NAT Server(服务器映射)基本原理

针对服务器的地址转换——NAT Server(服务器映射),服务器对公网用户提供服务时使用;

参照上图,NAT Server的配置过程如下:

(1)配置NAT Server

将服务器的私网地址10.1.1.2映射成公网地址1.1.1.1

[FW] nat server global 1.1.1.1 inside 10.1.1.2

如果服务器同时存在多种协议和端口的服务项,按上述配置会将服务器上所有服务项都发布到公网上,这样会带来安全风险。我们可以只将服务器上特定的服务项对公网发布,从而避免服务项全发布带来的风险。

例如,将服务器上80端口的服务项映射为9980端口供公网用户访问,配置如下:

[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80

(2)配置安全策略

NAT Server场景下,为了让公网用户能够访问私网服务器,配置安全策略时策略的目的地址是服务器的私网地址

[FW] policy interzone dmz untrust inbound
[FW-policy-interzone-dmz-untrust-inbound] policy 1
[FW-policy-interzone-dmz-untrust-inbound-1] policy destination 10.1.1.2 0
[FW-policy-interzone-dmz-untrust-inbound-1] policy service service-set http
[FW-policy-interzone-dmz-untrust-inbound-1] action permit
[FW-policy-interzone-dmz-untrust-inbound-1] quit
[FW-policy-interzone- dmz-untrust-inbound] quit

(3)配置黑洞路由

NAT Server也需要配置黑洞路由,避免路由环路

[FW] ip route-static 1.1.1.1 32 NULL 0

多出口场景下的NAT Server

上图,防火墙作为出口网关,双出口、双ISP接入公网,NAT Server的配置通常需要一分为二,让一个私网服务器向两个ISP发布两个不同的公网地址供公网用户访问。一分为二的方法有两种。

方法一:将接入不同ISP的公网接口规划在不同的安全区域中,配置NAT Server时,带上zone参数,使同一个服务器向不同安全区域发布不同的公网地址,如下图所示:

假设私网服务器对ISP1发布的公网地址是1.1.1.20,对ISP2发布的公网地址是2.2.2.20,配置过程如下:

(1)将接口分别加入到不同的安全区域

[FW] firewall zone dmz
[FW-zone-dmz] add interface GigabitEthernet1/0/4
[FW-zone-dmz] quit
[FW] firewall zone name isp1
[FW-zone-ispl] set priority 10
[FW-zone-ispl] add interface GigabitEthernet1/0/2
[FW-zone-ispl] quit
[FW] firewall zone name isp2
[FW-zone-isp2] set priority 20
[FW-zone-isp2] add interface GigabitEthernet1/0/3
[FW-zone-isp2] quit

(2)配置带有zone参数的NAT Server

[FW] nat server zone isp1 protocol tcp global 1.1.1.20 9980 inside 172.16.0.2 80
[FW] nat server zone isp2 protocol tcp global 2.2.2.20 9980 inside 172.16.0.2 80

(3)基于不同的域间关系配置两条安全策略

[FW] policy interzone isp1 dmz inbound
[FW-policy-interzone-dmz-ispl-inbound] policy 1
[FW-policy-interzone-dmz-isp1-inbound-1] policy destination 172.16.0.2 0
[FW-policy-interzone-dmz-ispl-inbound-1] policy service service-set http
[FW-policy-interzone-dmz-isp1-inbound-1] action permit
[FW-policy-interzone-dmz-isp1-inbound-1] quit
[FW-policy-interzone-dmz-isp1-inbound] quit
[FW] policy interzone isp2 dmz inbound
[FW-policy-interzone-dmz-isp2-inbound] policy 1
[FW-policy-interzone-dmz-isp2-inbound-1] policy destination 172.16.0.2 0
[FW-policy-interzone-dmz-isp2-inbound-1] policy service service-set http
[FW-policy-interzone-dmz-isp2-inbound-1] action permit
[FW-policy-interzone-dmz-isp2-inbound-1] quit
[FW-policy-interzone-dmz-isp2-inbound] quit

(4)配置黑洞路由

[FW] ip route-static 1.1.1.20 32 NULL0
[FW] ip route-static 2.2.2.20 32 NULL 0

方法二:如果防火墙与ISP1和ISP2相连的两个接口在同一个安全区域内且无法调整,则通过配置NAT Server时带上no-reverse参数,使同一个服务器向外发布两个不同的公网地址,如下图所示:

上图中其他配置与方法一相同,不同的是配置带有no-reverse参数的NAT Server,配置如下:

[FW] nat server protocol tep global 1.1.1.20 9980 inside 172.16.0.2 80 no-reverse
[FW] nat server protocol tcp global 2.2.2.20 9980 inside 172.16.0.2 80 no-reverse

配置源进源出

如下图,如果防火墙只配置了缺省路由,用户通过ISP1通过GE1/0/2接口访问内部服务器,返回的数据有可能通过ISP2链路的GE1/0/3接口发出,数据就无法返回给用户,访问中断,避免此种情况出现就需要在防火墙上配置源进源出,即请求报文从某条路径进入,响应报文依然沿着同样的路径返回,而不用查找路由表来确定出接口,
保证了报文从同一个接口进出;

源进源出功能在接口上配置,防火墙连接ISP1和ISP2的两个接口上都需要配置。

假设ISP1提供的下一条地址是1.1.1.254,在接口GE1/0/2上开启源进源回功能的配置命令如下:

USG9500系列防火墙源进源出命令

[FW] interface GigabitEthernet 1/0/2
[FW-GigabitEthernet1/0/2] redirect-reverse nexthop 1.1.1.254

USG2000/5000系列防火墙源进源出命令

[FW] interface GigabitEthernet 1/0/2
[FW-GigabitEthernet1/0/2] reverse-route nexthop 1.1.1.254

USG6000系列防火墙源进源出命令

[FW] interface GigabitEthernet 1/0/2
[FW-GigabitEthernet1/0/2] gateway 1.1.1.254
[FW-GigabitEthernetl/0/2] reverse-route enable

3.双向NAT

源NAT+NAT Server技术被称为双向NAT;双向NAT不是一个单独的功能,而是源NAT和NAT Server的组合,是针对同一条流(例如公网用户访问私网服务器的报文),在其经过防火墙时同时转换报文的源地址和目的地址。

源NAT根据报文在防火墙上的流动方向分为:域间NAT域内NAT

域间NAT:报文在两个不同的安全区域之间流动时对报文进行NAT转换,根据流动方向的不同,分为以下两类:

  • NAT Inbound:报文由低安全级别的安全区域高安全级别的安全区域方向流动时,对报文进行的转换。一般来说,这种情况是公网用户访问内部网络,不太常见。
  • NAT Outbound:报文由高安全级别的安全区域低安全级别的安全区域方向流动时,对报文进行的转换。私网用户访问 Internet的场景使用的都是NAT Outbound。

域内NAT:报文在同一个安全区域之内流动时对报文进行NAT转换,一般来说,域内NAT都会和NAT Server配合使用,单独配置域内NAT的情况较少见。

当域间NAT或域内NAT和NAT Server一起配合使用时,就实现了双向NAT。

双向NAT还要合理的设置安全区域的安全级别并规划网络——内网网络属于Trust区域(高安全级别),私网服务器属于DMZ区域(中安全级别),Internet属于Untrust 区域(低安全级别)

NAT Inbound + NAT Server

上图,公网用户访问私网服务器,安全策略和黑洞路由的配置与前面介绍过的内容没有区别,这里不写配置了,NAT Server和源NAT的配置如下:

//NAT Server的配置
[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80

//源NAT的配置
[FW] nat address-group 1 10.1.1.100 10.1.1.100
[FW] nat-policy interzone untrust dmz inbound
[FW-nat-policy-interzone-dmz-untrust-inbound] policy 1
[FW-nat-policy-interzone-dmz-untrust-inbound-1] policy destination 10.1.1.2 0 //由于先进行NAT Server转换,再进行源NAT转换,所以此处的目的地址是NAT Server转换后的地址,即服务器的私网地址
[FW-nat-policy-interzone-dmz-untrust-inbound-1] action source-nat
[FW-nat-policy-interzone-dmz-untrust-inbound-1] address-group 1
[FW-nat-policy-interzone-dmz-untrust-inbound-1] quit
[FW-nat-policy-interzone-dmz-untrust-inbound] quit

通过下图来看一下报文的转换过程:公网用户访问私网服务器的报文到达防火墙时,目的地址(私网服务器的公网地址)经过NAT Server转换为私网地址,然后源地址经过NAT Inbound也转换为私网地址,且和私网服务器属于同一网段。这样报文的源地址和目的地址就同时进行了转换,即完成了双向NAT。当私网服务器的回应报文经过防火墙时,再次进行双向NAT转换,报文的源地址和目的地址均转换为公网地址。

配置NAT Inbound的好处是:NAT地址池中的地址配置成和私网服务器在同一网段,当私网服务器回应公网用户的访问请求时,发现自己的地址和目的地址在同一网段,此时私网服务器就不会去查找路由,而是发送ARP广播报文询问目的地址对应的MAC地址。防火墙会及时将连接私网服务器的接口的MAC地址发给私网服务器,告诉私网服务器:“把回应报文发送给我吧”,所以私网服务器将回应报文发送至防火墙,防火墙再对其进行后续处理。私网服务器上省去了查找路由的环节,也就不用设置网关了

在这个场景中应用双向NAT时还有一个前提条件,那就是私网服务器与防火墙必须在同一个网段,否则就不能应用这个功能了。

域内NAT + NAT Server

域内NAT+NAT Server的场景多见于小型网络,如下图所示,管理员在规划网络时“偷懒”,将私网用户和私网服务器规划到同一个网络中,并将二者置于同一个安全区域。

此时,如果希望私网用户像公网用户一样,通过公网IP地址1.1.1.1访问私网服务器,就要在防火墙上配置NAT Server。但是仅仅配置NAT Server会有问题,如下图所示,私网用户访问私网服务器的报文到达防火墙后进行目的地址转换(1.1.1.1->10.1.1.2),私网服务器回应报文时发现目的地址和自己的地址在同一网段,回应报文经交换机直接转发到私网用户,不会经过防火墙转发。

如果希望提高内部网络的安全性,使私网服务器的回应报文也经过防火墙处理,就需要配置域内NAT,将私网用户访问私网服务器的报文的源地址进行转换。转换后源地址可以是公网地址也可以是私网地址,只要不和私网服务器的地址在同一网段即可,这样私网服务器的回应报文就会被发送到防火墙。

黑洞路由的配置与前面介绍过的内容没有区别,这里就不给出具体配置了。下面是NAT Server和域内NAT的配置;

//NAT Server的配置
[FW] nat server protocol tcp global 1.1.1.1 9980 inside 10.1.1.2 80

//域内NAT的配置
[FW] nat address-group 1 1.1.1.100 1.1.1.100  //公网地址或私网地址均可,不能和私网服务器的地址在同一网段
[FW] nat-policy zone trust
[FW-nat-policy-zone-trust] policy 1
[FW-nat-policy-zone-trust-1]policy destination 10.1.1.20 //由于先进行NAT Server转换,再进行域内NAT转换,所以此处的目的地址是NAT Server转换后的地址,即服务器的私网地址
[FW-nat-policy-zone-trust-1] action source-nat
[FW-nat-policy-zone-trust-1] address-group 1
[FW-nat-policy-zone-trust-1] quit
[FW-nat-policy-zone-trust] quit

报文的转换过程如下图所示;

如果在这个组网环境的基础上做一个变化,将私网用户和私网服务器通过不同的接口连接到防火墙,此时私网用户和私网服务器交互的所有报文都需要经过防火墙转发,所以只配置NAT Server是可以的。

4.NAT ALG

NAT ALG(Application Level Gateway),即NAT的应用层网关。NAT ALG是一种穿越NAT设备的技术,防火墙在进行地址转换时,除了转换报文头中的IP地址信息,还转换报文载荷中携带的IP地址信息。下图展示了在防火墙上开启NAT ALG功能后,FTP协议的交互过程。

开启NATALG功能后,防火墙将PORT命令报文中携带的IP地址信息转换成了公网地址1.1.1.1,FTP服务器收到该报文后,就可以向1.1.1.1这个地址发起数据连接了。

此时,还需开启防火墙的ASPF功能,防火墙会为FTP的数据连接开辟隐形通道,使其绕过安全策略检查,直接穿越防火墙,从而使FTP服务器发起的数据连接请求报文顺利穿越防火墙,准确到达位于私网的FTP客户端。

FTP协议的完整交互过程如下图所示;

除了源NAT场景,NAT Server场景中也需要开启NAT ALG和ASPF功能。以FTP客户端位于公网、FTP服务器位于私网,并且FTP工作在被动模式为例,下图给出了FTP协议的完整交互过程。

如果网络中存在FTP、SIP、H323等这些多通道协议,在防火墙进行地址转换的场景中,一般都建议在防火墙上同时开启NAT ALG和ASPF功能,保证基于这些协议的业务能够正常运行。

目前绝大多数防火墙产品,都是由一条命令来同时开启ASPF和NAT ALG这两个功能,即在域间或域内配置detect命令开启ASPF功能后,同时就开启了NAT ALG功能。

针对几个典型协议,下表给出了执行detect命令后,防火墙上的处理方式。

5.NAT场景下黑洞路由的作用

对于源NAT来说:

  • 如果NAT地址池地址与公网接口地址不在同一网段,必须配置黑洞路由;
  • 如果NAT地址池地址与公网接口地址在同一网段,建议也配置黑洞路由。

对于指定了特定协议和端口的NAT Server来说:

  • 如果NAT Server的Global地址与公网接口地址不在同一网段,必须配置黑洞路由;
  • 如果NAT Server的Global地址与公网接口地址在同一网段,建议也配置黑洞路由。

除了防止路由环路、节省设备的系统资源,其实黑洞路由还有一个作用,那就是在防火墙上引入到OSPF中,发布给路由器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/692095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu终端最大化的3种方法

摘要:Ubuntu 系统下,使用Ctrl Alt T 快捷键唤醒终端时默认大小为 80 列 x 24 行。在某些测试中我们需要更大的窗口,而通过鼠标将窗口最大化太慢了,所以本文介绍了快速实现终端窗口最大化的 3 种方法。 声明:本文所有…

java安全——Java 默认沙箱

Java安全 Java 默认沙箱 程序设计者或者管理员通过改变沙箱的参数从而完成权限的变动更新 Java默认沙箱的设计目的是为了保护系统和用户的安全。Java虚拟机提供了一种机制,让Java应用程序在一个受限的环境中运行,也就是“沙箱”。这个沙箱能够在应用程序…

微信支付证书过期了怎么办

什么是商户API证书?如何获取商户API证书? 微信原文档:https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 注:正常情况下,微信商户平台的密钥不需要更新重置,站点妥善保存密钥,定期更新证书即…

【adb指令】

一、什么是adb adb的全称为Android Debug Bridge,官方提供的用于操作安卓设备的工具。 二、adb用来干什么? 在电脑终端通过命令行: 打开收手机应用;传输文件;点击、输入、滑动等;硬件操作、返回、回到首…

踩坑记录:nuxt3 - ssg 重构我的前端导航网站

一、💥 背景故事 不久前我利用周末搭建了个 万能导航网站,当时还写了篇文章:# 我给自己搭建的前端导航网站,你们都别用🤪。本来我以为不会有太大的访问量,主要是方便自己用。没想到用的人还不少&#xff0…

maven 远程仓库 查找jar mvnrepository.com

https://mvnrepository.com 搜索包 找到指定版本 下载包或者配置文件引用

WORDPRESS REST API 学习

WORDPRESS 的 REST API 本身是没有身份验证的,我安装了 miniOrange 的 WordPress REST API Authentication 免费部分只有 Basic Authentication 和 JWT Authentication , 作为学习 REST API 够用了。 一般使用 postman 测试 api ,后来卸载了…

通用分页【上】之后端代码

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于通用分页的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 导读: 💡辉辉小…

git创建分支提示fatal: not a valid object name: ‘master‘解决方案

文章目录 1. 背景描述:2. 原因分析:3. 解决方案: 1. 背景描述: 在本地使用 git init初始化一个空的git项目后,想使用git branch创建分支时,提示fatal: not a valid object name: ‘master’。 2. 原因分…

【react全家桶学习】react的 (新/旧) 生命周期(重点)

目录 生命周期(旧) 挂载时的生命周期 constructor(props) componentWillMount()-------------新生命周期已替换 render() componentDidMount()--- 组件…

【MHA高可用配置及故障切换】

目录 一、案例概述1、传统的MySQL主从架构存在的问题1.1、单点故障 2、HMA的简介2.1、HMA的概述2.2、HMA的组成2.3、MHA 的特点 三、搭建MySQL HMA1、实验思路1、进入主服务器进行修改配置文件2、启动服务,并在从服务器上配置计划性任务进行时间同步 2、修改 Master…

人声克隆技术:So-Vits-Svc项目解析

SO-VITs-SVC 本文是该系列的第一篇,采用倒序的方式,先从推理过程开始介绍人声克隆的工作流,以及各个模型的功能,之后再去详细介绍各个模型,因此不涉及具体的使用方法,这个官方文档里面已经讲的很清楚了&…

相机成像原理【第一节】

文章目录 1、胶片摄影与数码摄影2、相机的组成2.1 只有传感器相机的成像 3、小孔成像3.1 小孔相机的参数和成像结果3.2 关于小孔成像的两个问题 1、胶片摄影与数码摄影 胶片摄影是把光学镜头的光信号投射到胶片上, 数码摄影是把光学镜头的光信号投射到传感器上&…

「又是干货」史诗级漏洞挖掘的过程快get一下

前言 本文记录了针对前台RCE的挖掘过程,由于该CMS前几天才做了修复,所以将挖掘过程写出来 接着直接来看代码,首先目标仍然是解析if标签的代码块,看一下三个正则 /\{pboot:if\(([^}^\$])\)\}([\s\S]*?)\{\/pboot:if\}//([\w])(…

零基础也能轻松制作电子邀请函教程

随着互联网技术的发展,电子邀请函已经逐渐取代传统的纸质邀请函成为一种趋势。不仅可以节省纸张和邮寄的成本,还能够更加个性化和创意化地展现活动。自己制作电子邀请函,百利而无一害,如果你也想自己动手制作一份电子邀请函&#…

VTK 悬浮显示 actor详细

需求:场景中一个actor,鼠标悬浮时 显示此actor的信息。 效果: 实现: 1,利用vtkInteractorStyleTrackballCamera 的OnMouseMove 事件 判断是否处于悬浮状态 2,判断悬浮后,首先将世界坐标转为…

10分钟教你学会使用ab 进行并发压力测试

目录 ab全称为:apache bench。 安装ab命令: 使用: 测试结果: 结果分析: 总结: ab全称为:apache bench。 是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进…

离子风枪的功能特点及应用领域

除静电离子风枪是一种常见的设备,被广泛应用于各个领域的生产线上,其作用是通过产生离子气流,有效地去除物体表面的静电。在现代工业生产中,静电可能引发诸多问题,如引起电子元器件损坏、拖尘吸附、产品互粘等。除静电…

如何使用Wu10Man启用或禁用自动更新

使用Wu10Man启用或禁用自动更新 启用自动更新禁用自动更新Windows 10 将在你设置为自动维护时自动检查新的 Windows 更新。默认情况下,Windows 10 将自动下载并安装重要和关键更新。 某些更新不是自动安装的。这包括可选更新和要求你接受新使用条款的更新。当这些更新可用时,…

哈工大操作系统实验三(整理自用)

一、实验内容 基于模板 process.c 编写多进程的样本程序,实现如下功能: 所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30 秒; 父进程向标准输出打印所有子进程的 id,并在所有子进程都退出后才退出&…