ensp上防火墙上配置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,做了NATServer(精细)的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/u_14154700/2426966
ensp上防火墙上配置nat的更多相关文章
- 在ensp上VLAN基础配置以及Access接口
什么是VLAN? 早期的局域网技术是基于总线型的结构,也就是说所有主机共享一条传输线路.这就带来了很多问题:冲突域和安全问题.为了避免冲突域,我们使用二层交换机.但想想,一台计算机在总线上传输数据的时 ...
- 在ensp上简单的配置交换机
在ensp中我们经常用到交换机,但是我们还没有配置过,下面我们来学习一下怎样简单的配置交换机的速率,双工模式等. 全双工:同时发送和接收数据 半双工:只能在一个时间做一件事 速率:交换机每秒 ...
- 使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)
使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)一.NAT介绍NAT(Network Address Translation,网络地址转换):简单来说就是将内部私有地址转换成公网地 ...
- ensp上防火墙的实现
使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)一.NAT介绍NAT(Network Address Translation,网络地址转换):简单来说就是将内部私有地址转换成公网地 ...
- 在ensp上的动态NAT的配置
原理 实验模拟 搭建实验拓扑 相关参数 配置静态NAT ,一对一映射 首先设置静态路由,使路由器能够访问 我们ping一下抓一下包 发现我们出去的包已经封装成为了另外一个ip 配置动态NAT ,一对一 ...
- 华为eNSP上的NAT地址转换配置
NAT是将IP数据报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能. 1.实验拓扑 地址表: 1.完成各个接口基本配置之后使用pi ...
- eNSP上NAT的配置
NAT介绍: 早在20世纪90年代初,有关RFC文档就提出了IP地址耗尽的可能性.IPv6技术的提出虽然可以从根本上解决地址短缺的问题,但是也无法立刻替换现有成熟且广泛应用的IPv4网络.既然不能 立 ...
- eNSP——配置NAT
原理: 实验案例: 拓扑图: 实验编址: 1.基本配置 根据实验编址进行基本配置,并测试连通性. 2.配置静态NAT 公司在网关路由器R1上配置访问外网的默认路由. 需要在网关路由器R1上配置NAT地 ...
- 在ensp上的mstp基础配置
为什么需要mstp? 因为stp中存在阻塞端口,阻塞后不承载流量,造成了带宽浪费 实验模拟 实验拓扑 相关参数 首先我们在交换机上创建vlan 10,20 设置端口 默认是运行mstp服务看一下
随机推荐
- 《剑指offer》面试题25. 合并两个排序的链表
问题描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2-> ...
- 创建app子应用,配置数据库,编写模型,进行数据迁移
文章目录 web开发django模型 1.创建app子应用 2.配置子应用 3.使用 4.配置子应用管理自已的路由 django数据库开发思维与ORM 1.创建数据库 2.配置数据库 3.安装pymy ...
- Javascript中字符串常用方法
JavaScript字符串常用方法 (1)获取相应位置的字符(charAt()) var str="你好,小小鸟!" var s=str.charAt(1) //获取到索引为1的字 ...
- Spark基础知识详解
Apache Spark是一种快速通用的集群计算系统. 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎. 它还支持一组丰富的高级工具,包括用于SQL和结构化数 ...
- rpc基础讲解
什么是RPC 本地过程调用 远程过程调用带来的3个问题 RPC的调用过程 RPC的具体过程如下 总结 RPC.HTTP.Restful之间的区别 通过httpserver实现rpc 首先一点需要明确: ...
- Servlet-ServletConfig类使用介绍
ServletConfig类(Servlet程序的配置信息类) Servlet 程序和 ServletConfig对象都是由 Tomcat负责创建,我们负责使用. Servlet 程序默认是第一次访问 ...
- 请解释final finally finalize的区别
final 关键字 ,可以定义不能被继承的父类.定义不能被重写的方法,常量 finally 关键字, 异常处理的统一出口 不管是否有异常都执行 finalize 方法(protected ...
- linux 启动过程原理哦
bios加电自检硬件设备 grub引导加载程序 当内核被加载到内存,内核阶段就开始了. init进程是所有进程的发起者和控制者.因为在任何基于unix的系统中,它都是第一个运行的进程. 然后执行sys ...
- Vue之性能调优
打包优化 1. 屏蔽 sourceMap sourceMap作用:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错. 在config目录的index.js ...
- 海康NVR设备上传人脸图片到人脸库
海康开放平台--海康文档链接--海康开发包和文档下载链接 硬件:海康超脑NVR(全称Network Video Recorder,即网络视频录像机).人脸摄像机. 环境:JDK_1.8 Windows ...