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 Ser
ver(粗泛)这种类型的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
..............................
剑侠情缘3 职业
注: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号                          -->
转⾃:blog.51cto/u_14154700/2426966