学习日志--防火墙目的NAT

在前面学习的防火墙NAT都是基于源NAT的技术配置,源NAT就是对源地址进行NAT转换。那在网络配置中不仅有源NAT的网络配置还有目的NAT的网络配置。在内主动访问到外,就是转换源地址和端口,从外主动访问到内,就是转换目的地址和端口。源NAT是数据包要从防火墙出去,源地址要转换为公有地址才可以出去,于是就进行源地址的转换;目的NAT是数据包要从外面进来,目的地址是公有地址要转换为私有地址才能进去,于是就进行目的地址的转换。就其本质来说,源NAT就是公司内网的主机进行上网,目的NAT就是公司内的服务器对外提供访问服务。

一、目的NAT

目的NAT就是指报文中的目的地址和端口进行转换,通过NAT转换技术将公网的IP地址转换成私网的IP地址,使公网用户可以利用公网地址访问内部的server服务器。当外网用户访问内部的server时,因为内部的server服务器地址是私有地址,外部主机不能直接访问,就要在防火墙进行NAT转换,将公有地址转换成内部的私有地址,回包数据是通过防火墙将内部的私有地址转换成外部的公有地址。

比如,现在内部的服务器192.168.1.1配置的公有地址是12.1.1.1,在外部的用户需要访问公司的服务器。那内部的主机就要先访问12.1.1.1到防火墙,然后在防火墙中进行目的NAT转换,转换成私网地址192.168.1.1。回包的时候就进行源NAT的转换,将私网地址192.168.1.1转换成公有地址12.1.1.1将数据转发出去。

根据转换后的目的地址是否固定,目的NAT分为静态目的NAT和动态目的NAT。静态NAT配置过程较为复杂,同时也较为重要。在每一进行地址转换,且转换的地址都是固定的对应关系就称为静态的NAT。举例子说明就是,每次进行NAT转换的时候私有地址192.168.1.1和公有地址12.1.1.1每次都是固定的,就是静态的NAT 转换。

介绍两个名词 Intranet内部网internet互联网

一般在公司需要将内部的网络中的资源提供给外部网络中的客户和出差的员工使用的时候就配置静态的NAT。

二、实验环境配置

a95857d2174b409e9d170ed2e1fb66e6.png

将之前配置的三元组策略删除掉
命令:[FW01-policy-nat]undo rule name np01,删除之前的NAT策略,NAT策略的名字是np01

将之前配置的nat地址组删掉
命令:[FW01]undo nat address-group ag01,删除之前的NAT地址组,地址组名字是ag01

将之前配置的安全策略删除
命令:[FW01-policy-security]undo rule name tru-to-utru,删除之前的安全策略,策略的名字是tru-to-utru

删除完之前的配置后,剩下的防火墙配置是,接口的IP地址,划分的端口安全区域和防火墙的默认路由。

重新配置防火墙安全策略
命令:[FW01]security-policy,进入到安全策略视图
命令:[FW01-policy-security]rule name utru-to-tru,创建的安全策略名字是utru-to-tru
注意:在实际网络配置过程中,一般会将内网的服务器配置在DMZ的安全区域,这里将他们配置在trust安全区域,但是不影响我们学习
命令:[FW01-policy-security-rule-utru-to-tru]source-zone untrust,配置源区域是utrust
命令:[FW01-policy-security-rule-utru-to-tru]destination-zone trust,配置目的区域是turst
命令:[FW01-policy-security-rule-utru-to-tru]destination-address 192.168.1.201 32,配置目的地址是192.168.1.201,服务器server7的地址
命令:[FW01-policy-security-rule-utru-to-tru]destination-address 192.168.1.202 32,配置目的地址是192.168.1.202,服务器server3的地址
命令:[FW01-policy-security-rule-utru-to-tru]action permit,配置动作为允许通过d2e6b55757844ddab65996993e97e1a2.png

配置内网两台服务器server给外网提供服务,开启内网服务器的http服务

用内网的主机访问内网的两台服务器,测试服务器是否正常配置成功666b440e65774f78bab225b72754ec07.pngd34d0bbb62c4419c872a2d5a95c010d7.png内网的两台服务器192.168.1.201和192.168.1.202都能被内网的主机访问,则内网的服务器配置没有问题。

到这里为止,实验环境的配置就已经完成。

三、防火墙目的NAT---静态1对1-地址到地址模式

4153de0961a442cf9cce3a6c098395c6.png给两台服务器配置公网地址,公有地址是由运营商分配的,现在开启启用192.168.1.201的服务器,暂停192.168.1.202的服务器。

目的NAT的配置
命令:[FW01]nat-policy,进入到nat策略视图
命令:[FW01-policy-nat]rule name dnat01,配置nat策略名字是dnat01
命令:[FW01-policy-nat-rule-dnat01]source-zone untrust,配置源区域是untrust
注意:在配置目的NAT的时候,是不需要配置目的区域的,如果想配置目的,可以配置目的IP地址
命令:[FW01-policy-nat-rule-dnat01]destination-address range 12.1.1.201 12.1.1.201,配置目的地址,目的地址是转换前的公有地址
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static address-to-address address 192.168.1.201 32,配置静态目的NAT地址到地址模式转换后的私有地址

查看配置后的安全策略aa4ec8d1dac04c7a8496df6f5ada184c.png

在配置静态目的NAT的策略的命令中54cdeeab10124cf78705cca7030d590e.png有四种模式地址到地址、地址到端口、端口到地址和端口到端口

在配置转换后的私有地址中7d709b5c8d5646999af267e35460ef94.png可以配置单个地址和可以配置地址组,单个地址用来一对一配置,地址组用来多对多配置。

现在配置的结果就是,将公有地址12.1.1.201和私用地址192.168.1.201进行绑定,配置的安全策略和NAT策略可以让外部的主机主动访问内部的主机。

配置好后,用外网的客户端去访问内部192.168.1.201的服务器目的地址是12.1.1.201,然后查看防火墙的会话表df9d7c6f0dfc4f7eace25647996ba2b2.png成功访问到内部的服务器1aab52e4b53a4f92a38a8f3664be3181.png成功创建防火墙会话表,在地址到地址的模式中是公有地址和私有地址直接进行绑定的,但是静态NAT不能生成server-map表。

分析整个过程,在首包到达防火墙的时候是没有防火墙的会话表的,这个时候流量会匹配防火墙中的NAT策略,策略通过之后会生成防火墙的会话表,匹配会话表之后就允许流量通过。

1aab52e4b53a4f92a38a8f3664be3181.png通过会话表可以知道在访问的过程中是直接访问的80端口,在转换中不进行端口转换还是80端口。

现在如果访问其他端口,尝试能否访问成功09f13fe3905e4ee0a7acfa7ca743049d.png访问4560的端口失败2275edbe6dd046c8996450b8b95d5974.png进行目的NAT转换的时候只对IP进行转换,不进行端口转换。482b6028ff9e46358d1e6f65c29405b6.png在内部服务器配置中http配置的端口是80,只有访问内部服务器的80端口才可以成功访问http服务。这就是目的NAT静态一对一地址到地址的转换模式。

注意:在配置目的NAT的时候,在防火墙的NAT安全策略下不需要配置目的区域,如果配置目的区域的话,将会和destination的动作冲突。9116bfa73b5d4fa2a76c0048a0d86f8e.png在配置的过程就会报错。

地址到地址就是转换前的地址和转换后的地址进行一对一映射,那在地址到地址后面其实是可以添加制定端口
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static address-to-address ad
dress 192.168.1.201 80,配置目的NAT静态一对一转换转换后的IP地址和制定端口

这样转换后,无论是访问哪个地址的端口,都能制定访问到服务器的80端口,都能成功访问服务器65a98e4e15e145f8918d9e06eee34afb.pngd76becfbc29044dfb3fae006a009c647.png访问的是4560端口,然后防火墙NAT策略转换为制定的80端口,并且成功访问服务器。这个就是地址到地址之地址配端口。就是转换前和转换后的端口不进行一对一的映射,不管是任何端口,都在转换过程中转换为制定的端口。为了防止用户对我的服务器做各种端口的渗透测试,都将他们的端口转换成制定的端口。

因为是一对一的配置,如果想要配置192.168.1.202的服务器就需要再新添配置。
命令:[FW01]nat-policy,进入到NAT策略视图
命令:[FW01-policy-nat]rule name dnat02,配置新的策略名字是dnat02
命令:[FW01-policy-nat-rule-dnat02]source-zone untrust,配置源区域
命令:[FW01-policy-nat-rule-dnat02]destination-address range 12.1.1.202 12.1.1.202,配置目的地址
命令:[FW01-policy-nat-rule-dnat02]action destination-nat static address-to-address ad
dress 192.168.1.202 80,配置静态目的NAT一对一的转换后地址192.168.1.202和端口80

同样的再配置目的NAT的时候,不可以配置目的区域,否则会和目的NAT的策略动作冲突050abc9617da445e915d273cee3d2a1f.png

查看配置后的结果8d65c98ddd9c465d97d3910f241681f6.png

配置好后,用外部的主机访问内部的192.168.1.202服务器32e1f35f636b4ff7bd374992039072c1.png产生会话表,公有地址12.1.1.202和私有地址192.168.1.202,端口是从4560转到指定的80端口,能成功访问服务器。配置过程中,如果需要将端口引导指定的端口,就需要配置端口,如果不需要就不用配置指定端口。5ae68ba748194579a37f542ef95dba90.png成功访问到服务器

命令:[FW01]dis nat-policy rule all,查看防火墙的nat策略

2e10d72258de4e9eb12bc985e8e7360f.png总共有三条nat策略。一条是默认的,还有两条是刚刚配置的,如果要访问192.168.1.201的服务器就匹配dnat01的策略,如果要访问192.168.1.202的服务器就匹配dnat02的策略。

四、防火墙目的NAT---静态1对1-端口到端口模式

端口到端口模式,就相当于将访问公网的端口和私网的端口进行一对一映射,给内网做成隐秘端口。

现在内网192.168.1.201服务器的端口是80,指定公网的端口是1080,只有访问公网的1080端口才能成功访问内部的服务器。

配置前需要将之前的动作策略删除掉
命令:[FW01-policy-nat-rule-dnat01]undo action destination-nat,进入到nat策略视图下,删除动作3e42577b2ded47789b4a02774cf05bd9.png

端口到端口配置,在原有nat策略配置的基础上配置端口到端口的动作
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static port-to-port address 
192.168.1.201 80 81,配置静态目的NAT端口到端口转换后的地址是192.168.1.201端口是80 8158f0977cc1e643619d275a128c6f3983.png注意:在配置动作策略之前需要先配置公有网络的端口,不然就会报错误的提示服务的匹配条件没有设置
命令:[FW01-policy-nat-rule-dnat01]service protocol tcp destination-port 1080,配置服务的目的端口号1080

然后再配置动作
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static port-to-port address 
192.168.1.201 80,配置静态目的nat端口到端口转换后地址192.168.1.201 端口是8012c26ea0ca61417c856dbdcc9b87cb7f.png配置后的作用就是,在访问内网的服务器时,只能通过访问公有地址12.1.1.201端口是1080才能访问到内部的服务器192.168.1.201端口是80。

用外网的客户端访问公有地址12.1.1.201端口是1080,就能成功访问内网的服务器。adf0887c0e704a43a68c2c5bb4ea2cdc.png

刚刚配置的是端口到端口一对一,即一个端口和一个端口映射,端口到端口模式还可以配置端口到端口多对多,多个端口和多个端口映射,本质上还是一对一,只不过能同时映射多对端口。

命令:[FW01-policy-nat-rule-dnat01]service protocol tcp destination-port 1080 1081,配置公网的端口是1080 1081
22447203a20e4b08b412117b89d50767.png但是配置出现报错,原因是这个服务配置在NAT动作策略中使用,需要动作删除之后才能修改或删除配置的目的端口
命令:[FW01-policy-nat-rule-dnat01]undo action destination-nat ,删除nat的动作策略
命令:[FW01-policy-nat-rule-dnat01]undo service protocol tcp destination-port 1080,删除配置的转换前的端口
命令:[FW01-policy-nat-rule-dnat01]service protocol tcp  destination-port 1080 1081,配置转换前服务的目的端口是1080 1081
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static port-to-port address 
192.168.1.201 80 to 81,配置动作是静态目的NAT转换后的地址192.168.1.201和端口80 81c8a826702b0944f083d624c5190205c1.png注意:在配置端口的时候,转换前公有地址的端口数量要和转换后的端口地址的数量一致,刚刚在配置中,转换前的端口是1080 和1081,转换后的端口是80 81,这两个端口的数量是一致的,如果数量不一致,就会出现报错85602560865d4e28b71cafb469b5cea1.png当我只配置转换后的端口数量是一个的时候,会提示报错目的端口数量的配置必须要和服务端口的数量配置一致,才能配置NAT动作

配置好后,用外网的客户端用不同的端口范围服务器,然后在防火墙中查看会话表3de407c1fd724de8899657267e8e11d4.png产生会话表,流量可以通过。需要注意的是,转换前的地址和转换后的地址是一一对应的,即1081就和81对应,1080就和80对应,不会出现1080和81对应,1081和80对应。

五、防火墙目的NAT---静态地址多对多

前面介绍的是静态地址的一对一模式,那么,就需要对每一台的内部服务器配置NAT的安全策略,如果公司内部的服务器数量较多的情况下,配置效率就会有点慢。这种情况下就需要用到静态的多对多的配置,其本质还是一对一的配置,只不过能够以地址组的形式同时配置多个地址。

在配置之前,先删除之前给192.168.1.202服务器配置的NAT策略。
命令:[FW01-policy-nat]undo rule name dnat02,删除策略名字叫dnat02

静态多对多的配置是以nat地址组的形式来配置的,因此在配置静态目的NAT的时候需要配置一个NAT地址组
命令:[FW01]destination-nat address-group ag01,创建一个目的NAT地址组名字是ag01
命令:[FW01-dnat-address-group-ag01]section 192.168.1.201 192.168.1.202,给地址组添加上地址,这个地址组是目的NAT转换后的地址组,所以添加的是转换后的私有地址c81519b7af4d483198b93236aef6d812.png

配置好地址组后,用这个地址组和转换前的地址进行绑定,即在策略动作种调用
命令:[FW01]nat-policy,进入策略视图
命令:[FW01-policy-nat]rule name dnat01,进入配置的策略
命令:[FW01-policy-nat-rule-dnat01]undo action destination-nat,删除之前配置的动作
命令:[FW01-policy-nat-rule-dnat01]destination-address range 12.1.1.201 12.1.1.202,配置需要访问的目的地址
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static address-to-address ad
dress-group ag01,配置动作调用转换后的目的地址组ag011c25efc864db4f06904b9f11349ae82c.png注意:在配置的时候,公有地址组的数量要和私有地址组的数量一致,才能匹配成功,否则就会报错。

现在配置一个错误案例
命令:[FW01-policy-nat-rule-dnat01]undo action destination-nat,现删除之前配置的策略动作,只有删除了策略动作,才可以修改策略
命令:[FW01]destination-nat address-group ag01,进入到之前配置的NAT地址组
命令:[FW01-dnat-address-group-ag01]undo section 192.168.1.201 192.168.1.202,删除掉之前的地址组的地址
命令:[FW01-dnat-address-group-ag01]section 192.168.1.201 192.168.1.203,重新配置转换后的地址,从192.168.1.201到192.168.1.203一共有三个地址
命令:[FW01-policy-nat-rule-dnat01]dis th,查看之前配置的NAT的策略3ec7c8fbd20f45e497c0856e053920e5.png之前配置的nat策略中转换前的公有地址是12.1.1.201到12.1.1.202一共是两个地址,但是配置的转换后的地址组中一共有三个地址。
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static address-to-address ad
dress-group ag01,配置策略动作,调用转换后的地址组ag01        e2802e840d6744beb9e82bec0645de45.png配置后报错,说转换前的目的地址必须和转换后的地址的数量保持一致。

重新修改nat策略,确保配置成功

重新配置的目的nat地址组的地址fdee07f06d9a414d84b40e2b3ad8e570.png

重新配置的NAT策略动作3926d940cb3146e589e5788f75699a35.png

配置好后,用外部的主机去访问内部的两台服务器,然后查看防火墙的会话表.

还有一条错误,现在配置的是静态目的NAT地址对地址,所以关于端口的服务server的配置就应该删除
命令:[FW01-policy-nat-rule-dnat01]undo service protocol tcp destination-port 1080 1081,删除之前关于端口的配置07e1cfd60e334e34af84235953ffbbcb.png最后防火墙NAT策略的配置就是这样的

配置好后,用外网的主机访问内网的两台服务器,然后在防火墙查看会话表2711344879f34ffe88ff0a214c5b34b8.png访问成功,生成五元素会话表,只进行IP地址的转换,不进行端口的转换。

如果需要将外网的所有端口都转换到内网的指定地址的话,需要在动作调用地址组后面加端口
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static address-to-address address-group ag01 80,配置静态目的NAT多对多指定转换内网端口到80a8d5804cb1e84113ab6f1dc02a48e5a9.pngc3d7cac43ac747318ca2569b1b25b616.png防火墙生成五元素会话表,外部客户端访问内部服务器成功,访问端口是固定转到指定的内网80端口。

需要注意的是在配置静态的目的NAT多对多端口的时候,只能给这个地址组指定一个端口,如指定多个端口,会出现报错76fd00da3cfb447d90eeb6a39d5eb2a0.png报错,说参数太多,所以只能指定一个端口。

如果需要配置静态的NAT多对多端口到端口应该怎么配置呢?
如果需要配置端口到端口,就需要进行服务端口的配置
命令:[FW01-policy-nat-rule-dnat01]service protocol tcp destination-port 1080,配置外网的服务端口
命令:[FW01-policy-nat-rule-dnat01]undo action destination-nat,删除之前配置的动作策略
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static port-to-port address-
group ag01 80,配置静态NAT端口到端口调用地址组ag01转内网端口是80c42a2ba6067c405e87362dcb4c1ec7a0.png但是配置完后,就报错,说只能有一个公网地址才可以配置端口到端口,就是在808f0c196df24e0285a4244d98ed5b18.png这个目的地址的配置中,只能配置一个地址才能去配置端口到端口。所以说无论是端口到端口一对一,还是端口到端口多对多,都只有在公有地址为一个地址的时候才能配置端口到端口。否则就会报错。报错就不能实现策略动作的配

所以说在静态目的NAT地址对地址多对多的配置环境下是能配置端口到端口的关于端口的一对一的映射,只能配置公网的任意端口指定转换到内网的端口,且这个端口只能指定一个。造成这个原因主要是,在配置中会提示报错,只能有一个公有地址配置的时候,才能使用端口到端口的配置,但是如果使用一个公有地址配置,就不是地址到地址的多对多的配置了。

六、防火墙目的NAT---静态一对多端口到地址

一对多端口到地址就是通过一个公有地址的不同端口去映射不同地址的同一个端口。在配置静态多对多的端口到端口的时候,是不允许有多个公有地址的,那现在用一个公有地址去配置端口到端口,还能通过使用一个公有地址减少租用公有地址的费用。

实验说明就是用一个公有地址12.1.1.201,然后配置两个不同的公有地址的端口1080和1081,去映射内网两台服务器的不同地址192.168.1.201和192.168.1.202的同一个端口80,相当于用不同的公有地址端口去映射不同的私有地址。

实验前配置,直接删除之前的NAT策略,重新配置新的策略
命令:[FW01-policy-nat]und rule name dnat01,删除之前的策略配置名字是dnat01

实验配置
命令:[FW01-policy-nat]rule name dnat01,配置新的NAT安全策略名字是dant01
命令:[FW01-policy-nat-rule-dnat01]source-zone untrust,源区域是untrust
命令:[FW01-policy-nat-rule-dnat01]destination-address range 12.1.1.201 12.1.1.201,配置目的地址即公网地址为一个12.1.1.201
命令:[FW01-policy-nat-rule-dnat01]service protocol tcp destination-port 1080 1081,配置公网地址的不同端口为1080和1081
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static port-to-address addre
ss-group ag01 80,配置静态目的NAT一对多端口到地址的动作策略端口是80,调用的地址组是之前配置地转换后的地址组119b60578653426b9db7745e57c2a07d.png

配置好后用,外网的客户端去访问内网的主机,然后在防火墙查看会话表cc801cb4112b44608144408e0e81126c.png外网客户端访问内网服务器成功c365f9fd9a00486187cdb8d4551427f1.png查看会话表,1080的端口映射给了192.168.1.201的80端口,1081端口映射给了192.168.1.202的80端口。相当于不同的端口去映射不同的地址,同时也只需要一个公有地址。

七、防火墙目的NAT---静态多对一地址到端口

多对一地址到端口就是,通过不同的公有地址的相同端口来映射到内网的相同地址的不同端口。比如说,用不同的公有地址的同一个端口,去访问内网通一台服务器(即同一个内网地址)的不同端口。

实验前配置,先删除之前的NAT策略
命令:[FW01-policy-nat]undo rule name dnat01

实验配置
命令:[FW01-policy-nat]rule name dnat01,配置安全策略名字是dnat01
命令:[FW01-policy-nat-rule-dnat01]source-zone untrust,配置源区域
命令:[FW01-policy-nat-rule-dnat01]destination-address range 12.1.1.201 12.1.1.202,配置不同的公有地址
命令:[FW01-policy-nat-rule-dnat01]service protocol tcp destination-port 1080,配置公网的服务端口1080
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static address-to-port addre
ss 192.168.1.201 80 81,配置静态目的NAT地址到端口的动作策略转换后的地址是192.168.1.201转换的端口是80和81c4e188ebad0f411d96887e85938b5a6c.png配置好后,用外网的客户端访问内网的服务器,然后查看防火墙的会话表063bb6a4c3d943d38cbdcd11fff218d5.pngf267b5a96fad4e119ea5841d6da70559.png防火墙生成五元素会话表,通过不同的公有地址的同一个端口去访问同一个私有地址的不同端口。地址到端口,配置了多少个公有地址就需要配置多少个内网的端口。可以适用在公网只允许开放某一个端口的时候,然后通过防火墙引导到需要访问服务的内部访问端口。

从地址对地址的方式来看,是多对一,多个公有地址配置一个私有地址;从地址到端口来看是一对一,一个公有地址配置一个内网的端口。

八、防火墙目的NAT---动态NAT

动态目的NAT是一种动态转换目的IP地址的方式,转换前后的地址是不存在固定的映射关系。一般适用在移动终端通过转换目的地址去访问无线网络。

实验前配置,删除之前配置的NAT安全策略
命令:[FW01-policy-nat]undo rule name dnat01

实验配置
命令:[FW01-policy-nat]rule name dnat01,配置NAT安全策略
命令:[FW01-policy-nat-rule-dnat01]source-zone untrust,配置源区域
命令:[FW01-policy-nat-rule-dnat01]destination-address range 12.1.1.201 12.1.1.202配置目的IP地址
命令:[FW01-policy-nat-rule-dnat01]action destination-nat address-group ag01,配置动态目的NAT调用地址组ag012dd20a72716149909afd3ce358ae4394.png

配置好后,用外网的客户连续两次访问内网的服务器,然后查看防火墙会话表

先访问192.168.1.202然后再访问192.168.1.2015fd8762f0f844f46b455ed30e9920d0a.png
防火墙会话表IP地址的映射方式是12.1.1.202映射为192.168.1.201;12.1.1.201映射为192.168.1.202

先访问192.168.1.201然后再访问192.168.1.2020cee03cfaef84f38b766ca348b00b7f9.png防火墙的会话表IP地址的映射方式是12.1.1.201映射为192.168.1.201;12.1.1.202映射为192.168.2.202

上面的两个访问方式可以看到,两个公有地址和两个私有地址之间的关系不是固定的,会按访问顺序的先后进行地址的分配,所以说分配过程是动态的。 

动态目的NAT的配置过程较静态目的NAT简单,只有地址到地址的配置,没有哪些端口到端口,地址到端口,端口到地址的配置。当不需要建立固定的地址绑定关系的时候,可以采用动态目的NAT的配置。

九、目的NAT黑洞问题

关于黑洞的问题,再关于防火墙的源NAT转换中提到过,因为在运营商在给用户分配公有地址的时候,不一定分配到的地址就和出接口的地址在同一个网段,如果不在同一个网段,在查找路由表的时候,就查找不到路由信息,就会在防火墙和路由器之间进行成环转发,这个时候就需要配置一个黑洞接口,将找不到路由信息的数据包转发到黑洞接口,然后将这个数据包丢弃掉。

在目的NAT的黑洞问题中,也是类似的情况。

当如果说运营商给用户分配的公有地址和路由的出接口的IP地址不在同一个子网上,就需要在运营商的路由器上配置路由,假设分配的地址是100.1.1.201,在运营商的路由器上配置了静态路由之后,由外网上的客户端对内进行ping访问,访问地址是100.1.1.201。在之前配置目的NAT策略的时候,在流量进入防火墙匹配到策略之后,才会生成会话表,然后允许流量通过,但是需要注意的是,之前配置目的NAT中是客户端以访问网页的方式进行访问是TCP协议,而现在PING访问是ICMP的包,就不能匹配NAT策略,流量就不能通过,不能通过的流量就会通过防火墙上配置的默认路由转发到运营商的路由器上,然后运营商的路由器因为配置了100.1.1.201的静态路由,就会重新将数据包转发回防火墙上,然后防火墙会因为流量不能通过就会匹配默认路由又将数据转发回运营商的路由器中去,然后循环转发,产生环路。15d5c053cbac4d06b6db6ba7e8a39793.png防火墙的路由上面没有100.1.1.201的路由条目

黑洞实验复现

先将之前的NAT配置删除
命令:[FW01-policy-nat]undo rule name dnat01,删除之前的NAT安全策略
命令:[FW01-policy-nat]rule name dnat01,新配置NAT策略名字dnat01
命令:[FW01-policy-nat-rule-dnat01]source-zone untrust,配置源区域
命令:[FW01-policy-nat-rule-dnat01]destination-address range 100.1.1.201 100.1.1.201,配置访问的公有地址,是运营商分配的公有地址100.1.1.201
命令:[FW01-policy-nat-rule-dnat01]service protocol tcp destination-port 8080,配置公有地址的服务端口
命令:[FW01-policy-nat-rule-dnat01]action destination-nat static port-to-port address 
192.168.1.201 80,配置静态目的NAT端口到端口的动作策略配置,转换后的地址是192.168.1.201端口是809623b4c6a92d45b592e77a97588c205d.png

配置好防火墙之后,需要在运营商的路由器上配置分配给用户公有地址的静态路由
命令:[ISP]ip route-static 100.1.1.201 32 GigabitEthernet 0/0/1 12.1.1.1,在运营商的路由器上配置静态路由,目的地址是100.1.1.201转出接口是0/0/1下一跳是12.1.1.1

配置好后用外网的客户端去访问内网的服务器192.168.1.201,访问地址是100.1.1.201端口是80802bb5065ee5394b9a90e1c4675dcf289f.png以客户端的模式,就能成功访问

接下来用客户端去ping100.1.1.201,看一下能不能成功b258fd3ae37d482f81d58cc5dc8eaa5c.png这次ping失败

在防火墙的g1/0/1的接口上抓包查看数据,然后再重新发送ping请求4619de8e534b4a0fb37b2f47efc20b9f.png出现很多请求数据,但是没有回复数据,于是出现了环路问题。

出现环路问题之后,需要通过再防火墙中配置黑洞接口将匹配不到路由条目的数据转发丢弃掉去
命令:[FW01]ip route-static 100.1.1.201 32 NULL 0,配置一个指向null0的路由条目a7b62ead21e04882a2e3a4f96e79e0fb.png防火墙中路由条目就存在一个指向黑洞接口的路由条目。

一般情况下都应该给防火墙的目的NAT匹配黑洞路由,防止再发生环路转发的时候消耗设备的资源,占用公司的出口带宽,影响公司的网络的稳定性。

配置好黑洞路由之后,再用外网的客户端ping100.1.1.201,再重新查看接口g1/0/1的数据包003c4ad48b9f40cdb89f41ebca153042.png945e0dc5ab4146aabe95dc3ca1ea944f.png依旧是ping失败,但是这个再防火墙g1/0/1接口的数据中只存在一条数据,其他的数据都通过防火墙的黑洞路由条目转发丢弃掉了。

配置了黑洞路由,看看还能不能通过客户端访问服务器996119774eed46b9b73493620a01228c.png32f992242b8040578788039627288621.png在配置了黑洞路由之后,还能成功通过客户端访问服务器。

在访问过程中,只要是访问100.1.1.201的路由,在没被安全策略通过的的情况下,就会被转发进黑洞路由中,在防火墙中,安全策略的优先级还是高于黑洞路由的优先级,只有先匹配安全策略失败之后,才会匹配黑洞路由。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值