博文大纲:
一、华为防火墙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路由器配置如下:

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

2、防火墙配置如下:

  1. <USG6000V1>sys
  2. [USG6000V1]in g1/0/0
  3. [USG6000V1-GigabitEthernet1/0/0]ip add 100.1.1.2 30
  4. [USG6000V1-GigabitEthernet1/0/0]in g1/0/4
  5. [USG6000V1-GigabitEthernet1/0/4]ip add 192.168.3.1 24
  6. [USG6000V1-GigabitEthernet1/0/4]in g1/0/3
  7. [USG6000V1-GigabitEthernet1/0/3]ip add 192.168.2.1 24
  8. [USG6000V1-GigabitEthernet1/0/3]in g1/0/2
  9. [USG6000V1-GigabitEthernet1/0/2]ip add 192.168.1.1 24
  10. [USG6000V1-GigabitEthernet0/0/0]in g1/0/1
  11. [USG6000V1-GigabitEthernet1/0/1]ip add 192.168.0.1 24
  12. [USG6000V1-GigabitEthernet1/0/1]quit
  13. [USG6000V1]ip route-static 0.0.0.0 0.0.0.0 100.1.1.1
  14. [USG6000V1]firewall zone trust
  15. [USG6000V1-zone-trust]add in g1/0/4
  16. [USG6000V1-zone-trust]add in g1/0/3
  17. [USG6000V1-zone-trust]add in g1/0/2
  18. [USG6000V1-zone-trust]quit
  19. [USG6000V1]firewall zone dmz
  20. [USG6000V1-zone-dmz]add in g1/0/1
  21. [USG6000V1-zone-dmz]quit
  22. [USG6000V1]firewall zone untrust
  23. [USG6000V1-zone-untrust]add in g1/0/0

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

开始配置各种类型的NAT:

1、技术部属于trust区域,通过Easy-ip访问Internet

(1)防火墙配置如下:

1)配置安全策略:

  1. [USG6000V1]security-policy
  2. [USG6000V1-policy-security]rule name easy <!--定义安全策略名字-->
  3. [USG6000V1-policy-security-rule-easy]source-zone trust <!--源区域为trust-->
  4. [USG6000V1-policy-security-rule-easy]destination-zone untrust <!--目标区域为untrust-->
  5. [USG6000V1-policy-security-rule-easy]action permit <!--动作为允许-->
  6. [USG6000V1-policy-security-rule-easy]quit
  7. [USG6000V1-policy-security]quit

2)配置NAT策略:

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

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

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

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

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

2)配置NAT策略

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

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

  1. [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:

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

2)配置NAT策略:

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

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

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

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

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

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

1)配置安全策略:

由于之前配置的是trust访问untrust区域的安全策略,所以对DMZ区域没关系,这里是要将DMZ区域的服务器发布出去,使Internet用户可以访问到这些服务器,所以应该放行UNtrust到DMZ区域相关服务的流量。

  1. [USG6000V1-policy-security]rule name todmz
  2. [USG6000V1-policy-security-rule-todmz]source-zone untrust
  3. [USG6000V1-policy-security-rule-todmz]destination-zone dmz
  4. [USG6000V1-policy-security-rule-todmz]destination-address 192.168.0.0 24
  5. [USG6000V1-policy-security-rule-todmz]service ftp
  6. [USG6000V1-policy-security-rule-todmz]service http
  7. [USG6000V1-policy-security-rule-todmz]action permit

2)配置NAT server:

  1. [USG6000V1]nat server ftp protocol tcp global 100.2.2.9 21 inside 192.168.0.2 21
  2. [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的其他配置类型

  1. [USG6000V1]nat server ftp1 protocol tcp global 100.2.2.14 2121 inside 192.168.0.2 21
  2. <!--
  3. 配置不同端口映射,其效果是外网用户访问100.2.2.142121端口,
  4. 将转换地址和端口为192.168.0.221端口。
  5. -->
  6. [USG6000V1]nat server ftp1 protocol tcp global 100.2.2.14 21 inside 192.168.0.2 21 no-reverse
  7. <!--
  8. 其效果就是不再生成反向的server-map表,
  9. 只能Internet访问内部的ftp服务,而内部服务器不能主动访问互联网。
  10. -->
  11. [USG6000V1]nat server natserver global 100.2.2.19 inside 100.2.2.9
  12. <!--
  13. 真正一对一的映射,一个公网IP对应一个内部服务器,
  14. Internet用户访问100.2.2.19的任意端口,都将转发到内部100.2.2.9服务器上,
  15. 该配置方法不常用,也不推荐使用。
  16. -->

2、如何删除NAT Server:
那么我们在配置NAT Server时,配置错误的话,想要删除掉,与别的配置删除不太一样,需要使用以下命令删除配置错误的NAT Server:

  1. [USG6000V1]undo nat server name http
  2. [USG6000V1]undo nat server ID 0
  3. <!--
  4. 以上命令是删除NAT server的配置,
  5. 第一个是基于名字删除,第二个是基于ID号删除,
  6. 在系统视图,使用“dis this”,然后翻到最后,可以看到nameID
  7. -->
    转自:https://blog.51cto.com/u_14154700/2426966

ensp上防火墙上配置nat的更多相关文章

  1. 在ensp上VLAN基础配置以及Access接口

    什么是VLAN? 早期的局域网技术是基于总线型的结构,也就是说所有主机共享一条传输线路.这就带来了很多问题:冲突域和安全问题.为了避免冲突域,我们使用二层交换机.但想想,一台计算机在总线上传输数据的时 ...

  2. 在ensp上简单的配置交换机

    在ensp中我们经常用到交换机,但是我们还没有配置过,下面我们来学习一下怎样简单的配置交换机的速率,双工模式等. 全双工:同时发送和接收数据  半双工:只能在一个时间做一件事     速率:交换机每秒 ...

  3. 使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)

    使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)一.NAT介绍NAT(Network Address Translation,网络地址转换):简单来说就是将内部私有地址转换成公网地 ...

  4. ensp上防火墙的实现

    使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)一.NAT介绍NAT(Network Address Translation,网络地址转换):简单来说就是将内部私有地址转换成公网地 ...

  5. 在ensp上的动态NAT的配置

    原理 实验模拟 搭建实验拓扑 相关参数 配置静态NAT ,一对一映射 首先设置静态路由,使路由器能够访问 我们ping一下抓一下包 发现我们出去的包已经封装成为了另外一个ip 配置动态NAT ,一对一 ...

  6. 华为eNSP上的NAT地址转换配置

    NAT是将IP数据报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能. 1.实验拓扑 地址表: 1.完成各个接口基本配置之后使用pi ...

  7. eNSP上NAT的配置

    NAT介绍: 早在20世纪90年代初,有关RFC文档就提出了IP地址耗尽的可能性.IPv6技术的提出虽然可以从根本上解决地址短缺的问题,但是也无法立刻替换现有成熟且广泛应用的IPv4网络.既然不能 立 ...

  8. eNSP——配置NAT

    原理: 实验案例: 拓扑图: 实验编址: 1.基本配置 根据实验编址进行基本配置,并测试连通性. 2.配置静态NAT 公司在网关路由器R1上配置访问外网的默认路由. 需要在网关路由器R1上配置NAT地 ...

  9. 在ensp上的mstp基础配置

    为什么需要mstp? 因为stp中存在阻塞端口,阻塞后不承载流量,造成了带宽浪费 实验模拟 实验拓扑 相关参数 首先我们在交换机上创建vlan 10,20 设置端口 默认是运行mstp服务看一下

随机推荐

  1. 《剑指offer》面试题25. 合并两个排序的链表

    问题描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2-> ...

  2. 创建app子应用,配置数据库,编写模型,进行数据迁移

    文章目录 web开发django模型 1.创建app子应用 2.配置子应用 3.使用 4.配置子应用管理自已的路由 django数据库开发思维与ORM 1.创建数据库 2.配置数据库 3.安装pymy ...

  3. Javascript中字符串常用方法

    JavaScript字符串常用方法 (1)获取相应位置的字符(charAt()) var str="你好,小小鸟!" var s=str.charAt(1) //获取到索引为1的字 ...

  4. Spark基础知识详解

    Apache Spark是一种快速通用的集群计算系统. 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎. 它还支持一组丰富的高级工具,包括用于SQL和结构化数 ...

  5. rpc基础讲解

    什么是RPC 本地过程调用 远程过程调用带来的3个问题 RPC的调用过程 RPC的具体过程如下 总结 RPC.HTTP.Restful之间的区别 通过httpserver实现rpc 首先一点需要明确: ...

  6. Servlet-ServletConfig类使用介绍

    ServletConfig类(Servlet程序的配置信息类) Servlet 程序和 ServletConfig对象都是由 Tomcat负责创建,我们负责使用. Servlet 程序默认是第一次访问 ...

  7. 请解释final finally finalize的区别

    final  关键字 ,可以定义不能被继承的父类.定义不能被重写的方法,常量 finally   关键字, 异常处理的统一出口 不管是否有异常都执行 finalize   方法(protected   ...

  8. linux 启动过程原理哦

    bios加电自检硬件设备 grub引导加载程序 当内核被加载到内存,内核阶段就开始了. init进程是所有进程的发起者和控制者.因为在任何基于unix的系统中,它都是第一个运行的进程. 然后执行sys ...

  9. Vue之性能调优

    打包优化 1. 屏蔽 sourceMap sourceMap作用:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错. 在config目录的index.js ...

  10. 海康NVR设备上传人脸图片到人脸库

    海康开放平台--海康文档链接--海康开发包和文档下载链接 硬件:海康超脑NVR(全称Network Video Recorder,即网络视频录像机).人脸摄像机. 环境:JDK_1.8 Windows ...