一、实验拓扑: 二、实验要求: 1、2个ASA都为多模式、路由模式; 2、ASA1、ASA2打开5个接口:no shutdown;因为都要做子防火墙; 3、2个ASA的子防火墙的配置其实是一摸一样的; 4、ASA1的配置:admin-context admin;delete flash:admin.cfg; context c1:allocate-interface g0;allocate-interface g1;config-url flash:c1.cfg context c2:allocate-interface g2;allocate-interface g3;config-url flash:c2.cfg 查看:show run context

changeto context c1: int g0, no shutdown,nameif outside;security-level 0; ip add 202.100.1.10 standby 202.100.1.20 int g1 no shutdown,nameif inside;security-level 100; ip add 10.1.1.10 standby 10.1.1.20 查看:show int ip bri

changeto context c2: int g2, no shutdown,nameif outside;security-level 0; ip add 202.100.2.10 standby 202.100.2.20 int g3 no shutdown,nameif inside;security-level 100; ip add 10.1.2.10 standby 10.1.2.20 查看:show int ip bri

changeto context sys ASA1创建FO group:(ASA2相反:组1为Seconday、组2为primary) failover group 1 primary Preempt 默认抢占就是开启的 failover group 2 secondary preempt 查看show run failover ASA2创建FO group: failover group 1 secondary Preempt 默认抢占就是开启的 failover group 2 primary preempt 查看show run failover

然后组合虚拟防火墙关联在一起 context c1 join‐failover‐group 1 context c2 join‐failover‐group 2

接下来: 查看:show run context,然后复制粘贴到ASA2,再继续show run context验证下是否一样

最后在做FO的配置: ASA1: failover lan unit primary failover lan interface FO G4 failover link FO G4 failover key cisco failover interface ip FO192.168.1.10 255.255.255.0 standby 192.168.1.20 ASA2: failover lan unit secondary failover lan interface FO G4 failover link FO G4 failover key cisco failover interface ip FO192.168.1.10 255.255.255.0 standby 192.168.1.20

做完以后保证ASA2所有接口保持打开状态就可以 ASA1:failover ASA2:failover

查看状态:show failover ASA2:failover active group 2 //抢过来

ASA1:changeto context c1:ping 202.100.1.1/ping 10.1.1.3 ASA2:changeto context c2:ping 202.100.2.2/ping 10.1.2.3

R3要访问R1或者R2有相应的路由就可以搞定: R3:ip route 0.0.0.0 0.0.0.0 10.1.1.10 //R1开启 line vty 0 4 password aa login

在ASA1的C1子防火墙做一个端口NAT: object network inside subnet 10.1.1.0 255.255.255.0 nat (inside,outside) dynamic interface

R3远程登录R1,因为R3有默认路由到ASA,R1不需要默认路由,只需要包能到达ASA的G0口就可以了。 R3 telnet 202.100.1.1 show users 源地址为:202.100.1.10

同理:R3去访问R2 R3 :ip route 202.100.2.0 255.255.255.0 10.1.2.10 R2:line vty 0 6 password aa login ASA2:Changeto context c2 object network inside2 subnet 10.1.2.0 nat (inside,outside) dynamic interface R3:telnet 202.100.2.2 show users 202.100.2.10

异步路由问题: 3.3.3.3访问1.1.1.1的一步路由问题:经过ASA的c1,到达R1的1.1.1.1,然后经过R2、ASA2再回到R3,这样其实也通不了:就是因为有异步路由。其实做Bypass可以,但是这样ASA就没意义了。 解决方法:R2到ASA2的C2后,通过内部操作到达ASA2的c1,其实c1是standby的方式。c1通过ASA2的G0口发回来,然后从ASA1的c1进来。ASA2的c1是standby没关系,只要能把流量发给ASA1的主用c1就可以。 ASA1:route outside 1.1.1.0 255.255.255.0 202.100.1.1 R1:ip route 3.3.3.3.0 255.255.255.0 12.1.1.2 R2:ip route 3.3.3.0 255.255.255.0 202.100.2.10 ASA2 c2:route inside 3.3.3.0 255.255.255.0 10.1.2.3 ASA2 C2: access-list out extended permit ip any any access-group out in interface outside 流量放行了,路由也有了: R3:telnet 1.1.1.1 /source interface loopback 0 会发现这个流量通不了的:原因就是因为序列号的原因,ASA1出去的序列号和ASA2回来的序列号是一样的 ASA2 C2:show access-list 可以看到有匹配项

解决方法: ASR‐Group配置 C1 Active: ASA1/c1(config)# interface G0 ASA1/c1(config‐if)# asr‐group 1 C2 Active: ASA2/c2(config)# interface G2 ASA2/c2(config‐if)# asr‐group 1 补一条:ASA/c1 route inside 3.3.3.0 255.255.255.0 10.1.1.3 R3:telnet 1.1.1.1 show users 3.3.3.3 这时候可以删掉ASA2/c2 的组:interface G2;no asr-group 1,再去telnet 1.1.1.1,这时候就不行了

总结:跨越虚拟防火墙、跨越物理防火墙,思科防火墙可能觉得有这个问题,所以有这种技术;华为的防火墙不可以这么做,它的防火墙两个虚拟防火墙完全物理隔绝的,当然思科也是物理隔绝的,只不过思科有组这个例外,华为防火墙就没有这个例外了。 三、命令部署: 1、路由基本配置IP地址、环回口: R1(config)#int lo0 R1(config-if)#ip add R1(config-if)#ip add 1.1.1.1 255.255.255.0 R1(config)#int f0/0 R1(config-if)#no shutdown R1(config-if)#ip add 202.100.1.1 255.255.255.0 R1(config)#int f1/0 R1(config-if)#no shutdown R1(config-if)#ip add 12.1.1.1 255.255.255.0

R2(config-if)#int f0/0 R2(config-if)#no shutdown R2(config-if)#ip add 12.1.1.2 255.255.255.0 R2(config)#int f1/0 R2(config-if)#no shutdown R2(config-if)#ip add 202.100.2.2 255.255.255.0

R3(config)#int f0/0 R3(config-if)#no shutdown R3(config-if)#ip add 10.1.1.3 255.255.255.0 R3(config)#int f1/0 R3(config-if)#no shutdown R3(config-if)#ip add 10.1.2.3 255.255.255.0 R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.0

2、ASA基本配置:多模式、路由器等: ASA1# show mode Security context mode: multiple ASA1# show firewall Firewall mode: Router

ASA2# show mode Security context mode: multiple ASA2# show firewall Firewall mode: Router

3、ASA1、ASA2打开所有接口,为接下来做子防火墙做准备: ASA1(config)# int g0 ASA1(config-if)# no shutdown ASA1(config-if)# int g1 ASA1(config-if)# no shutdown ASA1(config-if)# int g2 ASA1(config-if)# no shutdown ASA1(config-if)# int g3 ASA1(config-if)# no shutdown ASA1(config-if)# int g4 ASA1(config-if)# no shutdown

ASA2(config)# int g0 ASA2(config-if)# no shutdown ASA2(config-if)# int g1 ASA2(config-if)# no shutdown ASA2(config-if)# int g2 ASA2(config-if)# no shutdown ASA2(config-if)# int g3 ASA2(config-if)# no shutdown ASA2(config-if)# int g4 ASA2(config-if)# no shutdown

4、2个ASA的子防火墙的配置其实是一模一样的: ASA1配置: ASA1(config)# delete flash:admin.cfg Delete filename [admin.cfg]? Delete disk0:/admin.cfg? [confirm] //删除之前的管理子防火墙文件admin.cfg

ASA1(config)# admin-context admin //配置管理子防火墙admin ASA1(config)# context c1 //配置子防火墙c1 ASA1(config-ctx)# allocate-interface g0 ASA1(config-ctx)# allocate-interface g1 ASA1(config-ctx)# config-url flash:c1.cfg ASA1(config)# context c2 ASA1(config-ctx)# allocate-interface g2 ASA1(config-ctx)# allocate-interface g3 ASA1(config-ctx)# config-url flash:c2.cfg 配置完成后查看验证: ASA1(config)# show run context admin-context admin context admin config-url disk0:/admin.cfg context c1 allocate-interface GigabitEthernet0 allocate-interface GigabitEthernet1 config-url disk0:/c1.cfg context c2 allocate-interface GigabitEthernet2 allocate-interface GigabitEthernet3 config-url disk0:/c2.cfg

配置子防火墙接口地址、内外、安全级别等: ASA1(config)# changeto context c1 ASA1/c1(config)# int g0 ASA1/c1(config-if)# no shutdown ASA1/c1(config-if)# nameif outside ASA1/c1(config-if)# security-level 0 ASA1/c1(config-if)# ip add 202.100.1.10 255.255.255.0 standby 202.100.1.20

ASA1/c1(config)# int g1 ASA1/c1(config-if)# no shutdown ASA1/c1(config-if)# nameif inside ASA1/c1(config-if)# security-level 100 ASA1/c1(config-if)# ip add 10.1.1.10 255.255.255.0 standby 10.1.1.20 查看验证: ASA1/c1(config)# show int ip bri Interface IP-Address OK? Method Status Protocol GigabitEthernet0 202.100.1.10 YES manual up up
GigabitEthernet1 10.1.1.10 YES manual up up

ASA1/c1(config)# changeto context c2 ASA1/c2(config)# int g2 ASA1/c2(config-if)# no shutdown ASA1/c2(config-if)# nameif outside ASA1/c2(config-if)# security-level 0 ASA1/c2(config-if)# ip add 202.100.2.10 255.255.255.0 standby 202.100.2.20

ASA1/c2(config)# int g3 ASA1/c2(config-if)# no shutdown ASA1/c2(config-if)# nameif inside ASA1/c2(config-if)# security-level 100 ASA1/c2(config-if)# ip add 10.1.2.10 255.255.255.0 standby 10.1.2.20 查看验证: ASA1/c2(config)# show int ip bri Interface IP-Address OK? Method Status Protocol GigabitEthernet2 202.100.2.10 YES manual up up
GigabitEthernet3 10.1.2.10 YES manual up up

配置Failover Group ASA1/c2(config)# changeto context sys ASA1(config)# failover group 1 ASA1(config-fover-group)# primary ASA1(config-fover-group)# preempt

ASA1(config)# failover group 2 ASA1(config-fover-group)# secondary ASA1(config-fover-group)# preempt 查看验证: ASA1(config)# show run failover no failover failover group 1 preempt failover group 2 secondary preempt

ASA2(config)# failover group 1 ASA2(config-fover-group)# secondary ASA2(config-fover-group)# preempt

ASA2(config)# failover group 2 ASA2(config-fover-group)# primary ASA2(config-fover-group)# preempt

关联虚拟防火墙和Failover Group: ASA1(config)# context c1 ASA1(config-ctx)# join-failover-group 1

ASA1(config)# context c2 ASA1(config-ctx)# join-failover-group 2 查看context配置,并粘贴到ASA2: ASA1(config)# show run context admin-context admin context admin config-url disk0:/admin.cfg context c1 allocate-interface GigabitEthernet0 allocate-interface GigabitEthernet1 config-url disk0:/c1.cfg join-failover-group 1 context c2 allocate-interface GigabitEthernet2 allocate-interface GigabitEthernet3 config-url disk0:/c2.cfg join-failover-group 2 ASA2粘贴后查看: ASA2(config)# show run context admin-context admin context admin config-url disk0:/admin.cfg context c1 allocate-interface GigabitEthernet0 allocate-interface GigabitEthernet1 config-url disk0:/c1.cfg join-failover-group 1 context c2 allocate-interface GigabitEthernet2 allocate-interface GigabitEthernet3 config-url disk0:/c2.cfg join-failover-group 2

5、最后在做Failover的配置: ASA1(config)# failover lan unit primary ASA1(config)# failover lan interface FO g4 ASA1(config)# failover link FO g4 ASA1(config)# failover key cisco ASA1(config)# failover interface ip FO 192.168.1.10 255.255.255.0 standby 192.168.1.20

ASA2(config)# failover lan unit secondary ASA2(config)# failover lan interface FO g4 ASA2(config)# failover link FO g4 ASA2(config)# failover key cisco ASA2(config)# failover interface ip FO 192.168.1.10 255.255.255.0 standby 192.168.1.20 确保ASA2的接口处于打开状态后,开启Failover功能: ASA1(config)# failover ASA2(config)# show failover 查看验证: ASA1(config)# show failover ASA2(config)# show failover

自动协商有问题,手动调整: ASA1(config)# failover active group 1 ASA2(config)# failover active group 2

测试: ASA1(config)# changeto context c1 ASA1/c1(config)# ping 202.100.1.1 //可以Ping通 ASA1/c1(config)# ping 10.1.1.3 //可以Ping通

ASA2(config)# changeto context c2 ASA2/c2(config)# ping 202.100.2.2 //不能Ping通,和刚刚的Failover失败有关系 ASA2/c2(config)# ping 10.1.2.3 //不能Ping通,和刚刚的Failover失败有关系

测试1: R3要访问R1或者R2有相应的路由就可以搞定: R3(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.10 //默认路由到ASA1的c1接口地址
R1(config)#line vty 0 4 R1(config-line)#password aa R1(config-line)#login

在ASA1的C1子防火墙做一个端口NAT: ASA1/c1(config)# object network inside ASA1/c1(config-network-object)# subnet 10.1.1.0 255.255.255.0 ASA1/c1(config-network-object)# nat (inside,outside) dynamic interface

R3远程登录R1,因为R3有默认路由到ASA,R1不需要默认路由,只需要包能到达ASA的G0口就可以: R3#telnet 202.100.1.1 Trying 202.100.1.1 ... Open User Access Verification Password: R1>show users Line User Host(s) Idle Location 0 con 0 idle 00:01:53
*130 vty 0 idle 00:00:00 202.100.1.10

同理:R3去访问R2 R3(config)#ip route 202.100.2.0 255.255.255.0 10.1.2.10 //静态路由到ASA2的c2子防火墙地址 R2(config)#line vty 0 6 R2(config-line)#password aa R2(config-line)#login

ASA2/c2(config)# object network inside2 ASA2/c2(config-network-object)# subnet 10.1.2.0 255.255.255.0 ASA2/c2(config-network-object)# nat (inside,outside) dynamic interface R3#telnet 202.100.2.10 //??? R2> show users //202.100.2.10 ???

异步路由问题: 3.3.3.3访问1.1.1.1的一步路由问题:经过ASA的c1,到达R1的1.1.1.1,然后经过R2、ASA2再回到R3。 这样其实也通不了:就是因为有异步路由。其实做Bypass可以,但是这样ASA就没意义了。 命令部署: ASA1/c1(config)# route outside 1.1.1.0 255.255.255.0 202.100.1.1 //ASA1中的c1子防火墙去往1.1.1.1的路由 R1(config)#ip route 3.3.3.0 255.255.255.0 12.1.1.2 //R1去往3.3.3.3的路由,下一跳为R2连接的接口地址 R2(config)#ip route 3.3.3.0 255.255.255.0 202.100.2.10 //R2去往3.3.3.3的路由,下一跳为ASA2中的c2子防火墙地址; ASA2/c2(config)# route inside 3.3.3.0 255.255.255.0 10.1.2.3 //ASA2中的c2去往3.3.3.3的路由,下一跳为R3连接的接口地址

ASA2/c2(config)# access-list out extended permit ip any any ASA2/c2(config)# access-group out in interface outside

流量放行了,路由也有了: R3#telnet 1.1.1.1 /source-interface loopback 0 Trying 1.1.1.1 ... % Connection timed out; remote host not responding

结果:这个流量通不了的:原因就是因为序列号的原因,ASA1出去的序列号和ASA2回来的序列号是一样的 ASA2/c2(config)# show access-list // 可以看到有匹配项,但是就是不通的。

解决方法: R2到ASA2的C2后,通过内部操作到达ASA2的c1,其实c1是standby的方式。c1通过ASA2的G0口发回来,然后从ASA1的c1进来。ASA2的c1是standby没关系,只要能把流量发给ASA1的主用c1就可以。

ASR‐Group配置 C1 Active: ASA1/c1(config)# interface g0 ASA1/c1(config-if)# asr-group 1 C2 Active: ASA2/c2(config)# interface g2 ASA2/c2(config-if)# asr-group 1

补一条:ASA1/c1(config)# route inside 3.3.3.0 255.255.255.0 10.1.1.3 R3#telnet 1.1.1.1 show users 3.3.3.3 这时候可以删掉ASA2/c2 的组:interface G2;no asr-group 1,再去telnet 1.1.1.1,这时候就不行了

总结:跨越虚拟防火墙、跨越物理防火墙,思科防火墙可能觉得有这个问题,所以有这种技术;华为的防火墙不可以这么做,它的防火墙两个虚拟防火墙完全物理隔绝的,当然思科也是物理隔绝的,只不过思科有组这个例外,华为防火墙就没有这个例外了。