一、实验拓扑:
28-思科防火墙:状态化AA_第1张图片
二、实验要求:
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,这时候就不行了

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