实验需求:
在公司内部存在多个用户,需要为其提供互联网访问需求。并且公司有一台ftp服务器需要为公网用户提供文件访问服务。为了在边界增加可靠性,现在网络边界采用单设备多宿主方案。现希望将不同用户流量分担到不同的运营商,并且默认采用SP1为主链路,SP2链路为备链路。
实验拓扑:
基础要求:
熟悉防火墙基础配置
熟悉NAT工作原理
实验步骤:
1、 按图所示,完成防火墙及路由器IP地址配置及防火墙安全区域规划配置。
并在防火墙上配置两条默认路由,设置ISP1为主,ISP2为备,并结合IP-link做连通性探测。命令如下:
此时,在防火墙上查看路由器,会看到路由表中,加载了一条默认路由,另外一条默认路由由于有更高的管理距离值,所以并没有被active.
2、 在防火墙上配置源nat,因为连接不同的运营商,所以不同的NAT地址池会有不同的网段,此处,ISP1公网地址池为110.1.1.1,ISP2公网地址池为120.1.1.1.
因为客户拿到的地址池IP与自己本接口的IP地址,并不在同一网段,所以需要在运营商侧分别配置回程路由。
在R1上指定回程路由:
在R2上指定回程路由:
3、 接下来在防火墙上配置源NAT,在这里特别要注意,因为要通过不同的运营商同时负载流量,所以需要为不同的运营商配置不同的安全区域,并且在配置安全策略时,定义不同的目的安全区域,否则会引起NAT策略地址池被覆盖的问题。
为不同的运营商定义不同的地址池。
为不同的运营商定义不同的NAT策略,由于目的区域不一致,所以NAT策略之间不会出现覆盖的问题。
4、 为了实现不同用户通过不同运营商进行流量转发,可以配置策略路由实现此需求。
命令行如下:
至此,就可以将不同的用户流量通过特定的运营商进行转发。
5、 放行安全策略后,接下来进行测试。
测试中会发现新的问题。
运营商侧服务器指定网关时,指定SP1时,client1访问成功,client2访问不成功。指定ISP2时,client2访问成功,client1不成功。造成此原因是,来回路径不一致导致服务器回程报文到达防火墙后无法进行正确的NAT转换。
解决方法是分别在R1与R2上为client流量进一步做NAT,并且取消服务器网关的设置,做NAT的目的是,从各SP1出去的流量在服务器回程时,能将流量再从原路径返回。
R1上NAT配置如下:
R2上NAT配置如下:
至此,分别在client上测试。
6、 在防火墙上配置NAT-server配置。将内网服务映射到SP2中。配置如下:
并配置安全策略放行此流量。
Client3网关指向SP2.
访问120.1.1.1,发现无法访问内网的FTP服务。因为client3流量从SP2过来,但回程流量首选SP1进行传递,所以又会出现来回路径不一致的问题,导致无法进行正常的NAT转换。
解决方法:
在防火墙上打开源进源出功能。配置如下:
此时再来测试:
测试成功。完成实验需求。
7、 NAT优化。
因为目前在防火墙上做NAT时,公网地址与防火墙连接运营商接口的IP不在同一网段,如果此时,在互联网中,对NAT公网地址做ping测试。我们来看测试报文。
我们在运营商设备向此IP发了一个ping包。
从图中看到,一个request包,会一直在防火墙和运营商之间进行循环发送,直到TTL为1后,超时丢弃。说明这里出现了环路问题。
避免此问题的解决方法:
配置黑洞路由完美解决此问题,当有去往此地址的非NAT转换报文,报文会直接被发送到黑洞中。将报文终结于防火墙本地。
实验总结:
本实验结合策略路由实现到运营商的流量负载,在实际工作中,可以基于不同的应用和协议进行精细化路由。在多出口案例中,要同时在不同路径实现源NAT时,一定要对不同的SP定义不同的安全区域,并配置不同的NAT策略,防止策略间出现覆盖问题。
对于内网端口映射服务,需要考虑是否要开启源进源出功能,防止来回路径不一致问题导致回程流量NAT转换失败。
注意:
在实验过程中要时刻考虑防火墙的安全策略配置是否正确。