【干货】思科ASA防火墙上配置透明模式的Failover Active/Acitve

2022-10-27 19:15:05 浏览数 (1)

【感谢波总投搞】

Failover Active/Acitive是ASA学习中不可绕过的环节,网络上现有的大量案例都是在路由模式下完成的,鲜有透明模式下的Failover Active/Acitve,所以在GNS3仿真器上,借助于asa8.02多模防火墙qemu镜像,完成了下面的实验。

一、拓扑

图-1 GNS3上的逻辑拓扑

其中上面交换机sw1和sw2中的接口及vlan关系如表-1所示,设备接口和IP地址如表-2所示,

表-1 vlan和接口关系

表-2 设备及IP地址配置

由于Failover配置中要用到虚拟防火墙的概念,所以必须在fw1和fw2上创建虚拟防火墙vfw1和vfw2,划分至各虚拟防火墙中的物理接口如表-3所示:

表-3 虚拟防火墙vfw1和vfw2的接口划分

由于透明模式的防火墙,必须在建立桥接关系的接口之间配置全局管理地址,防火墙才能正常工作,现划分全局管理地址如表-4所示:

表-4 虚拟防火墙及管理地址划分

由于Failover Active/Active运行时,各虚拟防火墙要通过Lan-Base和Stateful连线进行状态监控和状态化列表传递,故必须配置Lan-Base地址和Stateful地址,现划分如表-5所示:

表-5 Lan-Base和Stateful接口划分

二、配置过程

Failover配置时,划分为两个部分,即fw1配置和fw2配置,其中fw2配置很少,主要在fw1上配置。

1.物理防火墙fw1配置:

⑴开启物理接口:

此步特别重要,一定要将所有的物理接口开启,这里就不展示具体开启过程。

⑵配置FO和Stateful链路,用于Failover组互相监控

代码语言:javascript复制
fw1(config)#failover lan unit primary    //注意此外为primary
fw1(config)#failover lan interface FO Ethernet0/4
fw1(config)#failover link Stateful Ethernet0/5
fw1(config)#failover interface ip FO 10.10.30.1 255.255.255.0 standby 10.10.30.2
fw1(config)#failover interface ip Stateful 10.10.40.1 255.255.255.0 standby 10.10.40.2

⑶调整failover组监控时间

代码语言:javascript复制
此步可做可不做,但建议做一下,便于后面测试看的效果更清
fw1(config)#failover polltime unit msec 200 holdtime msec 800

⑷配置failover组

代码语言:javascript复制
Failover组中的primary是一个物理概念,不会因为网络的运行而发生变化。
fw1(config)#failover group 1
fw1(config-fover-group)#primary
fw1(config-fover-group)#preempt
fw1(config)#failover group 2
fw1(config-fover-group)#secondary
fw1(config-fover-group)#preempt

⑸配置管理虚拟墙admin

Admin防火墙用于对物理墙(包括所有虚拟墙)进行管理,必须提前配置,否则后面的虚拟墙无法配置。

代码语言:javascript复制
fw1(config)#context admin
fw1(config-ctx)#config-url flash:/admin.cfg

⑹定义虚拟防火墙

定义虚拟防火墙时,包括分配接口、加入failover组等操作,必须在配置虚拟墙之间完成。

代码语言:javascript复制
fw1(config)#context vfw1
fw1(config-ctx)#allocate-interface e0/0
fw1(config-ctx)#allocate-interface e0/1
fw1(config-ctx)#join-failover-group 1
fw1(config-ctx)#config-url flash:/vfw1.cfg
fw2(config)#context vfw1
fw2(config-ctx)#allocate-interface e0/2
fw2(config-ctx)#allocate-interface e0/3
fw2(config-ctx)#join-failover-group 2
fw2(config-ctx)#config-url flash:/vfw2.cfg

⑺配置虚拟防火墙

前面一步完成了对虚拟墙的定义,但并未配置虚拟墙的功能,这里完成配置。

①配置虚拟防火墙vfw1

代码语言:javascript复制
fw1(config)#changeto context vfw1
vfw1(config-if)#interface e0/0
vfw1(config-if)#nameif outside
vfw1(config-if)#security-level 0
vfw1(config-if)#mac-address 1.a.1 standby 1.a.2   #可以不配,但建议配上,可避免意外问题。
vfw1(config-if)#interface e0/1
vfw1(config-if)#nameif inside
vfw1(config-if)#security-level 100
vfw1(config-if)#mac-address 1.b.1 standby 1.b.2   #可以不配,但建议配上,可避免意外问题。
vfw1(config)#ip address 10.10.10.100 255.255.255.0 standby 10.10.10.110
vfw1(config-if)#access-list OUT permit icmp any any echo-reply
vfw1(config-if)#access-list OUT permit icmp any any time-exceeded
vfw1(config-if)#access-list OUT permit icmp any any unreachable
vfw1(config-if)#access-group OUT in interface outside
vfw1(config-if)#policy-map global_policy
vfw1(config-pmap)#class inspection_default
vfw1(config-pmap-c)#inspect icmp

②配置虚拟防火墙vfw2

代码语言:javascript复制
fw1(config)#changeto context vfw2
vfw2(config-if)#interface e0/2
vfw2(config-if)#nameif outside
vfw2(config-if)#security-level 0
vfw2(config-if)#mac-address 2.a.1 standby 2.a.2   #可以不配,但建议配上,可避免意外问题。
vfw2(config-if)#interface e0/3
vfw2(config-if)#nameif inside
vfw2(config-if)#security-level 100
vfw2(config-if)#mac-address 1.b.1 standby 1.b.2   #可以不配,但建议配上,可避免意外问题。
Vfw2(config)#ip address 10.10.20.100 255.255.255.0 standby 10.10.20.110
vfw2(config-if)#access-list OUT permit icmp any any echo-reply
vfw2(config-if)#access-list OUT permit icmp any any time-exceeded
vfw2(config-if)#access-list OUT permit icmp any any unreachable
vfw2(config-if)#access-group OUT in interface outside
vfw2(config-if)#policy-map global_policy
vfw2(config-pmap)#class inspection_default
vfw2(config-pmap-c)#inspect icmp

此时物理防火墙fw1配置完成,只剩下启动failover,但由于物理防火墙上的配置尚未进行,故暂时不启用。

⒉物理防火墙fw2配置:

⑴开启物理接口

此步物别重要,一定要将所有的物理接口开启,这里就不展示具体开启过程。

⑵配置FO和Stateful链路,用于Failover组互相监控

代码语言:javascript复制
fw1(config)#failover lan unit secondary     //注意此处为secondary
fw1(config)#failover lan interface FO Ethernet0/4
fw1(config)#failover link Stateful Ethernet0/5
fw1(config)#failover interface ip FO 10.10.30.1 255.255.255.0 standby 10.10.30.2
fw1(config)#failover interface ip Stateful 10.10.40.1 255.255.255.0 standby 10.10.40.2

由于物理防火墙会自动从failover lan 中的主设备自动传递配置,故仅只配上面两步即可,其它的不用去配置,不要画蛇添足。

⒊开启failover功能

⑴物理防火墙fw1上开启failover

代码语言:javascript复制
fw1(config)#failover

⑵物理防火墙fw2上开启failover

代码语言:javascript复制
fw2(config)#failover

4.修改提示符

由于failover active/active配置后,两台物理防火墙会自动同步配置,会导致物理防火墙fw2上的提示符和物理防火墙fw1是一模一样的,不便于查看,故必须在fw1上修改提示符。

代码语言:javascript复制
fw1(config)#prompt hostname priority state
fw1/pri/stby(config)#

其中上面的hostname代表物理防火墙的名称,priority代表物理墙在failover组中是primary设备还是secondary设备,而state代表墙是active状态,还是standby状态,从上面的提示符中可看到此时,物理防火墙fw1此时primary设备,并处于stby状态。

三、查看和测试:

⒈初次启动后调整状态:

当在两台物理防火墙fw1和fw2上启动failover后,利用命令show failover看到的状态是不正常的,笔者曾在gns3上完成多次实现,都发现这个现象,还以为是没有配置成功,其实是初次启动后存在的问题,必须进行调整。

图-2 fw1上显示的failover组状态

在初次启动failover后,常常发现从物理防火墙fw1上看到的failover组状态,出现两个active,而正常时,常如图-2所示的一个active和一个standby状态,许多初学者会以为自己配置不正确引发的,处理方法是在物理防火墙fw1和fw2上保存配置,然后关闭并重启fw1和fw2,等再次启动后,常会正常,如果还不正常,则采用关闭监控链路的方法调整。

⒉正常状态下测试:

当fw1和fw2上的failover active/active配置成功后,无论是在fw1还是fw2上查看到的正常信息如图-3、图-4所示:

图-3 fw1上看到的正常的failover信息

图-4 fw2上看到的正常的failover信息

分别从PC10、PC20上通过无状态方式和有状态方式访问r1上的1.1.1.1/24,可看到正常的信息如图-5、图-6所示:

图-5 fw1上通过无状态和有状态方式访问r1

图-6 fw2上通过无状态和有状态方式访问r1

正常时PC10通过fw1上的vfw1访问r1,而PC20通过fw2上的vfw2访问r1。

⒊模拟上行链路故障的切换

在实际中,有可能sw1(e0/0)和vfw1(e0/0)之间的链路发生故障,而failover active/active会发生切换,并且PC10上的有状态连接不会中断,现人为关闭sw1上的接口e0/0,模拟链路故障的现象,特别注意,一定不能从fw1的e0/0上进行关闭。

图-7 人为关掉sw1上的e0/0

稍等一会,则fw1上的vfw1会发生切换,即fw1上的状态全为standby/standby,而fw2上的状态为active/active,

图-8 fw1上的failover状态

图-9 fw2上的failover状态

接着查看PC10上的状态化连接和无状态化连接的情况

图-10 PC10上出现的切换影响

可以看到PC10上的状态连接,根本不会出现断开的现象,而无状态连接,出现丢包5个,又自动连接,说明切换非常好,对客户来说,根本不会因为切换,导致状态化连接的断开,满足会话要求。

4.模拟上行链路故障排除的切换

可以开启sw1的e0/0接口,模拟vfw1和sw1之间的链路故障排除的现象,

图-11 sw1上排除故障,开启接口

接着查看fw1和fw2上的failover状态,

图-12 fw1上查看到的failover状态信息

图-13 fw2上看到的failover状态信息

可以看到,fw1处于active/standby状态,而fw2处于standby/active状态,即处于负载均衡的状态。

5.模拟下行链路故障的切换

在fw2上将sw2和vfw2之间的链路断开,即关闭fw2上的e1/3接口,查看failover的切换,

图-14 人为关闭sw2上的e1/3接口

查看fw1和fw2上的failover状态信息,

图-15 fw1上的failover信息

图-16 fw2上的failover信息

可以看到fw1处于active/active状态,而fw2处于standby/failed状态,即完成了自动切换。

接着查看PC20上的状态化连接和无状态化连接,

图-17 PC20上的状态化连接和无状态化连接

可以看到PC20上的状态化会话一直处于连接状态,满足了需要。

6.模拟下行链路故障恢复

打开sw2的e1/3接口,模拟故障排除,链路恢复,

图-18 sw2上打开e1/3接口

查看fw1和fw2上的failover状态信息,

图-19 fw1上的failover信息

图-20 fw2上的failover信息

可以看到此时fw1处于active/standby状态,而fw2处于standby/active状态,即failover状态切换正常。

最后强调一点,为什么采用asa8.02的qemu镜像来做该实验,由于asa8.02的镜像占用内存很小,仅需256mb,6个物理接口可以同时使用,启动快的优点,在物理机内存不是很充足的情况下,用来完成实验,是比较好的选择。

0 人点赞