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

博文大纲:
一、华为防火墙NAT的六个分类;
二、解决NAT转换时的环路及无效ARP;
三、server-map表的作用;
四、NAT对报文的处理流程;
五、各种常用NAT的配置方法;

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

华为防火墙的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应用。

二、解决NAT转换时的环路及无效ARP

在特定的NAT转换时,可能会产生环路及无效ARP,关于其如何产生,大概就是,在有些NAT的转换方式中,是为了解决内网连接Internet,而映射出了一个公有IP,那么,若此时有人通过internet来访问这个映射出来的公有IP,就会产生这两种情况。若要详细说起来,又是很麻烦,但是解决这两个问题很简单,就是配置黑洞路由(将internet主动访问映射出来的地址的流量指定到空接口null0),关于如何配置,将在过后的配置中展示出来,我总结了以下需要配置黑洞路由的场景,如下表所示:

表中的前三个可以对应到文章开始的几个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转换。

三、server-map表的作用

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

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

区别如下:

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

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

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

在NAT中,不是所有的表都可以生成server-map表的,我简单总结了一下,如下:

当在防火墙上配置某些类型的NAT后,在防火墙上会生成server-map表,默认生成两个server-map条目,分别是正向条目和反向条目(Reverse),如下:

此时Server-map表的作用是:

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

四、NAT对报文的处理流程

原谅我懒癌晚期,给大家上个图,自己悟吧,能理解到什么地步,全看天意咯,如下:

从上图中可以看出来,因为防火墙处理报文的顺序是目标地址转换→安全策略→源地址转换,所以在NAT环境中,安全策略的源地址应该是源地址转换之前的地址,目标地址应该是目标地址转换之后的地址。

一个报文,一般在同一个网络设备上,只会存在一种转换条目,即要么转换源地址(除NAT-Server类型的NAT转换之外),要么转换目的地址(NAT-Server类型的NAT转换)。源地址和目的地址的转换不会同时存在同一个网络设备上。

五、各种NAT类型的配置方法

在文章开头的NAT分类中,Smart NAT(智能转换)和三元组NAT这两种NAT类型我也没有配置过,不太了解,所以无法将这两种的配置写下来,只能将前四种NAT类型写下来咯!一般够用了(前面介绍的黑洞路由及查看一些相关表的命令都将在配置过程中,写下来,请仔细看注释)。

环境如下(不以实际环境为准,主要目的是将多种类型NAT的配置写下来):

需求如下:
1、ISP为公司分配的公网地址为100.2.2.8/29。
2、技术部属于trust区域,通过Easy-ip访问Internet。
3、行政部属于trust区域,通过NAPT访问internet(使用100.2.2.12/29)。
4、财务部属于trust区域,通过no-pat访问internet(使用100.2.2.10/29-100.2.2.11/29)
5、DMZ区域中的两台服务器配置NAT-Server发布,分别提供FTP服务及web服务(使用100.2.2.9/29)
6、防护墙的GE1/0/0属于UNtrust区域。

开始配置基础部分(IP地址、路由条目和防火墙接口添加到指定区域等):

我这里只写了路由器及防火墙的配置,关于各个PC及server的IP配置,请自行配置。基础部分就不注释了,若不懂,可以参考我之前的博文:华为网络设备基本配置 ,若需要在eNSP上验证效果,需要给模拟器上的防火墙导入系统,我这里使用的是USG6000的防火墙,可以下载我提供的防火墙系统文件。

1、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为汇总后的地址-->

2、防火墙配置如下:

<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:

1、技术部属于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。

2、配置行政部属于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配置至此就完成了,可以自行验证,并查看会话表,查看是否转换为指定的地址。

3、配置财务部属于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  <!--查看会话表-->

4、配置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表(因为怕到了老化时间,会看不到任何条目),会看到如下结果:

配置至此,所有需求均已实现,完活。

1、扩展一些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服务器上,
该配置方法不常用,也不推荐使用。
                -->

2、如何删除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号
                          -->

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/14154700/2426966

时间: 2024-11-02 18:25:08

华为防火墙的NAT介绍及配置详解的相关文章

华为防火墙实现双机热备配置详解

一提到防火墙,一般都会想到企业的边界设备,是内网用户与互联网的必经之路.防火墙承载了非常多的功能,比如:安全规则.IPS.文件类型过滤.内容过滤.应用层过滤等.也正是因为防火墙如此的重要,如果防火墙一旦出现问题,所有对外通信的服务都将中断,所以企业中首先要考虑的就是防火墙的优化及高可用性. 博文大纲:一.双机热备工作原理二.VRRP协议(1)VRRP协议概述(2)VRRP的角色(3)VRRP的状态机(4)VRRP的工作原理三.VGMP协议(1)VGMP的工作原理(2)VGMP的报文封装(3)双机

logback介绍和配置详解

logback是java的日志开源组件,是log4j创始人写的,性能比log4j要好,目前主要分为3个模块 logback-core:核心代码模块 logback-classic:log4j的一个改良版本,同时实现了slf4j的接口,这样你如果之后要切换其他日志组件也是一件很容易的事 logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能 本篇博客会讲解logback的使用.配置详解.以及logback简单的一个原理. 一.logback的使用 引入mav

华为防火墙NAT策略及配置详解

人类现在对计算机网络的使用已经扩展到各个领域,而计算机网络的设计者当时无法想象互联网能有今天这样的规模.任何一个接入互联网的计算机.手机以及智能电视,要想在互联网中畅游,必须有一个合法的IP地址.而IP地址,曾经以为足以容纳全球的计算机,但是在今天看来,已经严重枯竭.IPV6的出现就是为了解决地址不足的问题,但在IPV6普及之前,需要有一个过渡技术--NAT.NAT的出现缓解了地址不足的问题,它可以让同一局域网内60000多用户可以同时使用一个合法IP地址访问互联网.关于Cisco设备的NAT技

华为防火墙NAT模拟环境配置详解(可跟做)

今天主要是做一个基于NAT技术的模拟环境,有关NAT工作原理及概念的大家可以参考博文请https://blog.51cto.com/14156658/2434477 环境如下: 需求如下: 内网客户端可以访问互联网服务器(ping通即可) 互联网客户端可以访问内网服务器(通过FTP访问) 内网服务器可以访问互联网服务器(ping通即可) 开始配置: 服务器及客户端配置如下: 防火墙配置如下: [FW1]int g1/0/0 <!--进入接口--> [FW1-GigabitEthernet1/0

日志组件slf4j介绍及配置详解

1 基本介绍 每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging.Apache log4j.logback.但如果你还不知道SLF4J(Simple logging facade for Java)的话,那么是时候去在你项目中学习使用SLF4J了. SLF4J不同于其他日志类库,与其它日志类库有很大的不同.SLF4J(Simple logging Facade for Java)不是

华为OSPF、BGP路由反射器配置详解

对于网络工程师而言,OSPF.BGP的重要性不言而喻,本篇文章我们就来回顾下OSPF.BGP的配置技巧,重点如下1.熟悉DHCP配置:2.熟悉OSFP配置:3.BGP路由反射器配置 入下图所示,要求如下:1.网络拓扑规划如图所示:2.PC1.PC2.PC3全部自动获取ip地址:3.R1.R2.R3之间运行osfp保证网络的联通性:4.PC1.PC2.PC3之间网络互通 第一步 配置OSPF保证路由器直接网络连通性R1配置如下:[R1]dhcp enable Info: The operation

华为防火墙实现远程管理的方式及配置详解

关于网络设备或是服务器,管理人员几乎很少会守着设备进行维护及管理,最普遍.应用最广泛的就是--远程管理.下面简单介绍一下华为防火墙管理的几种方式. 博文大纲:一.华为防火墙常见的管理方式:二.各种管理方式配置详解:1.通过Console线进行管理:2.通过Telnet方式管理:3.通过Web方式登录设备:4.配置SSH方式登录设备: 一.华为防火墙常见的管理方式 提到管理,必然会涉及到AAA的概念,我们首先来了解一下--AAA. AAA概述 AAA是验证.授权和记账三个英文单词的简称.是一个能够

iptables防火墙配置详解

iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,output和forward: nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output: mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING: inpu

linux下IPTABLES配置详解 (防火墙命令)

linux下IPTABLES配置详解 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 24000 -j ACCEPT-A RH-Firewall-1-INPUT -s 121.10.120.24 -p tcp -m tcp --dport 18612 -j ACCEPT 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的