华为防火墙的NAT介绍及配置详解

1、华为防火墙NAT的六个分类web

华为防火墙的NAT分类:安全

  • NAT No-PAT:相似于Cisco的动态转换,只转换源IP地址,不转换端口,属于多对多转换,不能节约公网IP地址,使用状况较少。
  • NAPT(Network Address and Port Translation,网络地址和端口转换):相似于Cisco的PAT转换,NAPT即转换报文的源地址,又转换源端口。转换后的地址不能是外网接口IP地址,属于多对多或多对一转换,能够节约公网IP地址,使用场景较多。
  • 出接口地址(Easy-IP):因其转换方式很是简单,因此也被称为Easy-IP、和NAPT同样,即转换源IP地址,又转换源端口。区别是出接口地址方式转换后的地址只能是NAT设备外网接口所配置的IP地址,属于多对一转换,能够节约IP地址。
  • NAT Server:静态一对一发布,主要用于内部服务器须要对Internet提供服务时使用,。
  • Smart NAT(智能转换):经过预留一个公网地址进行NAPT转换,而其余的公网地址用来进行NAT No-PAT转换,该方式不太经常使用。
  • 三元组NAT:与源IP地址、源端口和协议类型有关的一种转换,将源IP地址和源端口转换为固定公网IP地址和端口,能解决一些特殊应用在广泛NAT中没法实现的问题。主要应用于外部用户访问局域网的一些P2P应用。

2、解决NAT转换时的环路及无效ARP
在特定的NAT转换时,可能会产生环路及无效ARP,关于其如何产生,大概就是,在有些NAT的转换方式中,是为了解决内网链接Internet,而映射出了一个公有IP,那么,若此时有人经过internet来访问这个映射出来的公有IP,就会产生这两种状况。若要详细提及来,又是很麻烦,可是解决这两个问题很简单,就是配置黑洞路由(将internet主动访问映射出来的地址的流量指定到空接口null0),关于如何配置,将在事后的配置中展现出来,我总结了如下须要配置黑洞路由的场景,以下表所示:
华为防火墙的NAT介绍及配置详解
.
表中的前三个能够对应到文章开始的几个NAT类型中,那么NAT Server(粗泛)、NAT Server(精细)又是什么鬼呢?服务器

  • NAT Server(粗泛):是NAT Server转换类型中的一种,表示源地址和转换后的地址只有简单的映射关系,没有涉及端口等映射,如源地址为192.168.1.2,转换后的地址为33.2.55.6,若是作的是NAT Server(粗泛)这种类型的NAT,那么全部访问33.2.55.6的数据包都将转发给192.168.1.2这个地址。
  • NAT Server(精细):也是NAT Server转换类型中的一种,表示源地址和转换后的地址映射关系,已经具体定位到某个端口,如:源地址为192.168.1.2,转换后的地址为33.2.55.6,作了NAT Server(精细)的NAT转换,那么多是访问33.2.55.6的FTP流量(21端口)会转发到192.168.1.2这个地址,但若访问33.2.55.6的Web流量(80/443端口),就不必定仍是转发到192.168.1.2这个地址,能够说NAT Server(精细)是基于端口的NAT转换。

3、server-map表的做用
咱们都知道,状态化防火墙中会有一张表叫作会话表,用来记录的是内网访问外网时的一个链接信息,当外网返回的数据匹配到会话表的记录时,直接放行相关返回流量。网络

那么server-map表又是什么呢?具体解释其原理的话,可能又是一大篇,写了也不必定能写明白,写明白了大家也不必定看懂,看懂了大家也不必定会打赏,哈哈,不开玩笑了,直接总结对比一下server-map表和会话表的区别吧,session

区别以下:tcp

  • 会话表记录的是链接信息,包括链接状态。
  • server-map表记录的不是当前的链接信息,而是经过分析当前链接的报文后获得的信息,该信息用来解决接下来的数据流经过防火墙的问题。能够将server-map表的做用理解为经过未雨绸缪解决未来的问题,如像FTP这种的多端口协议,在从一开始的三次握手,到最后完成数据的传输,其过程当中,可能端口会发生改变等问题,server-map正好能够解决这种问题。

然而在NAT中也须要这个server-map表,就是在有数据流量经过NAT的方式穿越防火墙时,server-map表会记录其源地址和转换后地址的对应关系,从而使后续流量能够不用查看NAT策略,直接匹配到server-map表,从而实现高效的NAT转换。若用户经过互联网访问转换后的地址时,也能够匹配到server-map表,从而高效的将数据转发到内网真实主机(必须保证安全策略容许经过)。ide

server-map表不用手动配置,是自动生成的,这里只是简单介绍下server-map表是个什么鬼。ui

在NAT中,不是全部的表均可以生成server-map表的,我简单总结了一下,以下:
华为防火墙的NAT介绍及配置详解
当在防火墙上配置某些类型的NAT后,在防火墙上会生成server-map表,默认生成两个server-map条目,分别是正向条目和反向条目(Reverse),以下:
华为防火墙的NAT介绍及配置详解
此时Server-map表的做用是:this

  • 正向条目携带端口信息,用来使Internet用户访问内网中的服务器时直接经过server-map表来进行目标地址转换。
  • 反向条目(Reverse):不携带端口信息,且目标地址是任意的,用来使服务器能够访问Internet。

4、NAT对报文的处理流程
原谅我懒癌晚期,给你们上个图,本身悟吧,能理解到什么地步,全看天意咯,以下:
华为防火墙的NAT介绍及配置详解
从上图中能够看出来,由于防火墙处理报文的顺序是目标地址转换→安全策略→源地址转换,因此在NAT环境中,安全策略的源地址应该是源地址转换以前的地址,目标地址应该是目标地址转换以后的地址。code

一个报文,通常在同一个网络设备上,只会存在一种转换条目,即要么转换源地址(除NAT-Server类型的NAT转换以外),要么转换目的地址(NAT-Server类型的NAT转换)。源地址和目的地址的转换不会同时存在同一个网络设备上。
5、各类NAT类型的配置方法
在文章开头的NAT分类中,Smart NAT(智能转换)和三元组NAT这两种NAT类型我也没有配置过,不太了解,因此没法将这两种的配置写下来,只能将前四种NAT类型写下来咯!通常够用了(前面介绍的黑洞路由及查看一些相关表的命令都将在配置过程当中,写下来,请仔细看注释)。

环境以下(不以实际环境为准,主要目的是将多种类型NAT的配置写下来):
华为防火墙的NAT介绍及配置详解
需求以下:
一、ISP为公司分配的公网地址为100.2.2.8/29。
二、技术部属于trust区域,经过Easy-ip访问Internet。
三、行政部属于trust区域,经过NAPT访问internet(使用100.2.2.12/29)。
四、财务部属于trust区域,经过no-pat访问internet(使用100.2.2.10/29-100.2.2.11/29)
五、DMZ区域中的两台服务器配置NAT-Server发布,分别提供FTP服务及web服务(使用100.2.2.9/29)
六、防御墙的GE1/0/0属于UNtrust区域。
开始配置基础部分(IP地址、路由条目和防火墙接口添加到指定区域等):
我这里只写了路由器及防火墙的配置,关于各个PC及server的IP配置,请自行配置。基础部分就不注释了,若不懂,能够参考我以前的博文,若须要在eNSP上验证效果,须要给模拟器上的防火墙导入系统,我这里使用的是USG6000的防火墙
一、R1路由器配置以下:

<Huawei>sys
[Huawei]in g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 100.1.1.1 30
[Huawei-GigabitEthernet0/0/0]in g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 200.1.1.1 24
[Huawei-GigabitEthernet0/0/1]quit
[Huawei]ip route-static 100.2.2.8 29 100.1.1.2  <!-100.2.2.8/29为汇总后的地址-->

二、防火墙配置以下:

<USG6000V1>sys
[USG6000V1]in g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip add 100.1.1.2 30
[USG6000V1-GigabitEthernet1/0/0]in g1/0/4
[USG6000V1-GigabitEthernet1/0/4]ip add 192.168.3.1 24
[USG6000V1-GigabitEthernet1/0/4]in g1/0/3
[USG6000V1-GigabitEthernet1/0/3]ip add 192.168.2.1 24
[USG6000V1-GigabitEthernet1/0/3]in g1/0/2
[USG6000V1-GigabitEthernet1/0/2]ip add 192.168.1.1 24
[USG6000V1-GigabitEthernet0/0/0]in g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip add 192.168.0.1 24
[USG6000V1-GigabitEthernet1/0/1]quit
[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 100.1.1.1
[USG6000V1]firewall zone trust 
[USG6000V1-zone-trust]add in g1/0/4
[USG6000V1-zone-trust]add in g1/0/3
[USG6000V1-zone-trust]add in g1/0/2
[USG6000V1-zone-trust]quit
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add in g1/0/1
[USG6000V1-zone-dmz]quit
[USG6000V1]firewall zone untrust 
[USG6000V1-zone-untrust]add in g1/0/0

基础部分的配置至此结束。

.
开始配置各类类型的NAT:
一、技术部属于trust区域,经过Easy-ip访问Internet。
(1)防火墙配置以下:
1)配置安全策略:

[USG6000V1]security-policy 
[USG6000V1-policy-security]rule name easy            <!--定义安全策略名字-->
[USG6000V1-policy-security-rule-easy]source-zone trust        <!--源区域为trust-->
[USG6000V1-policy-security-rule-easy]destination-zone untrust    <!--目标区域为untrust-->
[USG6000V1-policy-security-rule-easy]action permit         <!--动做为容许-->
[USG6000V1-policy-security-rule-easy]quit
[USG6000V1-policy-security]quit

2)配置NAT策略:

[USG6000V1]nat-policy 
[USG6000V1-policy-nat]rule name easypolicy    <!--定义NAT策略名字-->
[USG6000V1-policy-nat-rule-easypolicy]source-address 192.168.1.0 24 <!--定义源地址-->
[USG6000V1-policy-nat-rule-easypolicy]source-zone trust   <!--定义源区域-->
[USG6000V1-policy-nat-rule-easypolicy]destination-zone untrust    <!--定义目标区域-->
[USG6000V1-policy-nat-rule-easypolicy]action nat easy-ip    <!--配置出接口方式-->
[USG6000V1-policy-nat-rule-easypolicy]quit
[USG6000V1-policy-nat]quit

如今就可使用PC4 ping外网的200.1.1.2进行验证了,在ping的过程当中查看会话表(时间长了该会话表将没有任何内容),能够看到具体的转换条目。

[USG6000V1]dis firewall session table        <!--查看会话表-->
 Current Total Sessions : 5
 icmp  ×××: public --> public  192.168.3.2:28884[100.1.1.2:2051] --> 200.1.1.2:2:048
                           ..............................

注:Easy-ip类型的NAT不会产生server-map。
二、配置行政部属于trust区域,经过NAPT访问internet(使用100.2.2.12/29)。
因为在上面配置Easy-ip的NAT类型时,配置了安全策略,因此接下来trust区域访问untrust区域的流量就不用配置安全策略了。

(1)防火墙配置以下:
1)配置NAT地址组,地址组中的地址对应的是公网地址100.2.2.12/29。

[USG6000V1]nat address-group napt    <!--定义nat地址组名-->
[USG6000V1-address-group-napt]section 0 100.2.2.12   <!--定义组中的地址-->
[USG6000V1-address-group-napt]mode pat   <!--配置为NAPT方式-->
[USG6000V1-address-group-napt]quit

2)配置NAT策略

[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name napt   <!--自定义nat策略的组名-->
[USG6000V1-policy-nat-rule-napt]source-address 192.168.2.0 24 <!--定义须要转换的源地址-->
[USG6000V1-policy-nat-rule-napt]source-zone trust    <!--定义源区域-->
[USG6000V1-policy-nat-rule-napt]destination-zone untrust     <!--定义目标区域-->
[USG6000V1-policy-nat-rule-napt]action nat address-group napt  <!--关联地址组-->

3)NAPT的NAT类型要配置黑洞路由,因此要针对转换后的全局地址100.2.2.12/32配置黑洞路由。

[USG6000V1]ip route-static 100.2.2.12 32 NULL 0

4)NAPT配置至此就完成了,能够自行验证,并查看会话表,查看是否转换为指定的地址。
三、配置财务部属于trust区域,经过no-pat访问internet(使用100.2.2.10/29-100.2.2.11/29)
(1)防火墙配置以下:

1)配置NAT地址组,地址组中的地址对应的是公网地址100.2.2.10--100.2.2.11:

[USG6000V1]nat address-group natnopat <!--定义nat地址组名-->
[USG6000V1-address-group-natnopat]section 0 100.2.2.10 100.2.2.11
   <!--定义组中的地址-->
[USG6000V1-address-group-natnopat]mode no-pat local <!--配置为NAT No-PAT方式-->
[USG6000V1-address-group-natnopat]quit

2)配置NAT策略:

[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name nopat  <!--自定义nat策略的组名-->
[USG6000V1-policy-nat-rule-nopat]source-address 192.168.1.0 24 <!--定义须要转换的源地址-->
[USG6000V1-policy-nat-rule-nopat]source-zone trust   <!--定义源区域-->
[USG6000V1-policy-nat-rule-nopat]destination-zone untrust <!--定义目标区域-->
[USG6000V1-policy-nat-rule-nopat]action nat address-group natnopat <!--关联地址组-->
[USG6000V1-policy-nat-rule-nopat]quit
[USG6000V1-policy-nat]quit

3)针对转换后的全局地址(NAT地址组中的地址)配置黑洞路由:

[USG6000V1]ip route-static 100.2.2.10 32 NULL 0
[USG6000V1]ip route-static 100.2.2.11 32 NULL 0

至此,NAT No-PAT配置完成了,能够自行验证,而且会产生server-map表:

[USG6000V1]dis firewall server-map <!--查看server-map表-->
[USG6000V1]dis firewall session table  <!--查看会话表-->

四、配置DMZ区域中的两台服务器配置NAT-Server发布,分别提供FTP服务及web服务(使用100.2.2.9/29)
1)配置安全策略:

因为以前配置的是trust访问untrust区域的安全策略,因此对DMZ区域不要紧,这里是要将DMZ区域的服务器发布出去,使Internet用户能够访问到这些服务器,因此应该放行UNtrust到DMZ区域相关服务的流量。

[USG6000V1-policy-security]rule name todmz  
[USG6000V1-policy-security-rule-todmz]source-zone untrust 
[USG6000V1-policy-security-rule-todmz]destination-zone dmz
[USG6000V1-policy-security-rule-todmz]destination-address 192.168.0.0 24
[USG6000V1-policy-security-rule-todmz]service ftp
[USG6000V1-policy-security-rule-todmz]service http
[USG6000V1-policy-security-rule-todmz]action permit

2)配置NAT server:

[USG6000V1]nat server ftp protocol tcp global 100.2.2.9 21 inside 192.168.0.2 21
[USG6000V1]nat server http protocol tcp global 100.2.2.9 80 inside 192.168.0.3 80

3)使用外网客户端client1进行访问验证便可,访问之后赶忙查看会话表及server-map表(由于怕到了老化时间,会看不到任何条目),会看到以下结果:
华为防火墙的NAT介绍及配置详解
配置至此,全部需求均已实现,完活。

一、扩展一些NAT Server的其余配置类型:

[USG6000V1]nat server ftp1 protocol tcp global 100.2.2.14 2121 inside 192.168.0.2 21    
                <!--
配置不一样端口映射,其效果是外网用户访问100.2.2.14的2121端口,
将转换地址和端口为192.168.0.2的21端口。
                 -->
[USG6000V1]nat server ftp1 protocol tcp global 100.2.2.14 21 inside 192.168.0.2 21 no-reverse
                <!--
其效果就是再也不生成反向的server-map表,
只能Internet访问内部的ftp服务,而内部服务器不能主动访问互联网。
                -->
[USG6000V1]nat server natserver global 100.2.2.19 inside 100.2.2.9

                <!--
真正一对一的映射,一个公网IP对应一个内部服务器,
当Internet用户访问100.2.2.19的任意端口,都将转发到内部100.2.2.9服务器上,
该配置方法不经常使用,也不推荐使用。
                -->

二、如何删除NAT Server:
那么咱们在配置NAT Server时,配置错误的话,想要删除掉,与别的配置删除不太同样,须要使用如下命令删除配置错误的NAT Server:

[USG6000V1]undo nat server name http   
[USG6000V1]undo nat server ID 0
              <!--
以上命令是删除NAT server的配置,
第一个是基于名字删除,第二个是基于ID号删除,
在系统视图,使用“dis  this”,而后翻到最后,能够看到name及ID号
                          -->
相关文章
相关标签/搜索