实验目的:
1/开机零配置中性企业网络骨干架构。
2/部署出口防火墙HA(Active/Standby)并验证测试。
3/部署双出口自动冗余切换并验证测试。
实验材料:
EVE-NG ,ASAv(v9.8) ,路由器,L3交换机。
实验前提
此次实验防火墙为routed模式,并且为single模式
实验拓扑:
拓扑说明:
1/名称说明:
Net云为通EVE-NG模拟器主机桥接的NAT网卡,负责该网络拓扑向外通信;ISP指代为运营商设备,BSW为边界交换机用于透传vlan和扩展接口,ASA为出口防火墙,CSW为核心交换机,ASW为介入交换机,DMZSW为DMZ网关交换机。
2/网段说明:
ISP1:100.100.100.x/30 ISP2:200.200.200.x/30 DMZ PAT地址为100.100.101.x/24 ,核心上联网段为10.10.10.x/24 ,核心下联网段为10.10.20.0/24和10.10.21.0/24,用户端为10.10.30.0/24,DMZ上联网段为172.16.10.0/24 ,服务器网段为172.16.20.0/24
3/关键功能点说明
①出口双线冗余自动切换,采用静态浮动路由的方式(默认ISP1为主)。
②防火墙双击冗余,采用failover Active/Standby 机制(默认ASA-A为主)。
③关键难点,在防火墙配置了AS模式后,主备防火墙配置是一模一样的,包括接口配置/路由配置/ACL/NAT等基础策略,当主防火墙在故障(宕机或者监控接口down )在切换到备墙后上下联设备配置如何自动适应墙的主备切换。上联防火墙通过交换机vlan将2个墙的出口和对应线路的ISP网关组到了一个广播域中,无论是哪台墙工作都可以自动通ISP网关自适应,另外ISP提供的IP是极其有限的,我们不能在上联进行HSRP这样的冗余切换配置,只能是通过二层vlan通ISP网关打通(土豪无所谓)。对于下联我们就可以用HSRP的方式实现通墙切换的联动。注意这里有个小细节因为防火墙上联至二层和ISP 网关打通的所以切换过程中不涉及路由的切换,而下联是通过三层联动,这里会涉及路由的切换,如果同样也在墙中启用了动态路由协议那就不用考虑这个问题,但大多数情况下生产环境墙内是不会去跑路由协议的(墙主要职能是安全规则不是控制路由,静态完全游刃有余,而且清晰明了)。从核心层到用户网关层之间我们启用OSFP,核心到上联使用静态路由,所以这里上联的静态路由也需要加track,否则即使防火墙从A切换到B核心层上来的路由依旧会在CSW-1,然后再转发到CSW-2,在CSW-1静态路由中加入track ,引入OSPF时不添加always 参数,当ASA-A异常切换到ASA-B时,CSW-1中的track被触发,静态路由消失,CSW-1的OSPF中就不会向下发布默认路由,而CSW-2中的静态路由和CSW-1中的时一样的加track和相同的OSPF路由引入配置,这样就不会存在墙且到备以后,路由的横向折返,直接有主防火墙下联交换机下发默认路由,下联交换机直接转发数据包到对于的下一条。
二.设备核心配置
所有设备配置中均不包含二层/三层安全及调优/管理配置
ISP
- interface Ethernet0/0
ip address dhcp
!
interface Ethernet0/1
ip address 100.100.100.2 255.255.255.252
!
interface Ethernet0/2
ip address 200.200.200.2 255.255.255.252
ip route 100.100.101.0 255.255.255.0 100.100.100.1
ip route 200.200.201.0 255.255.255.0 200.200.200.1
//以上配置为ISP中配置,路由为DMZ中做PAT pool的public IP
BSW
interface Port-channel10
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/0
switchport access vlan 100
switchport mode access
media-type rj45
negotiation auto
!
interface GigabitEthernet0/1
switchport access vlan 100
switchport mode access
media-type rj45
negotiation auto
!
interface GigabitEthernet0/2
switchport access vlan 200
switchport mode access
media-type rj45
negotiation auto
!
interface GigabitEthernet1/2
switchport trunk encapsulation dot1q
switchport mode trunk
media-type rj45
negotiation auto
channel-group 10 mode active
!
interface GigabitEthernet1/3
switchport trunk encapsulation dot1q
switchport mode trunk
media-type rj45
negotiation auto
channel-group 10 mode active
!
ASA-A
!
failover
failover lan unit primary
failover lan interface Folink GigabitEthernet0/5
failover polltime unit 1 holdtime 5
failover polltime interface msec 500 holdtime 25
failover polltime link-state msec 500
failover standby config-lock
failover link statelink GigabitEthernet0/6
failover interface ip Folink 2.2.2.1 255.255.255.252 standby 2.2.2.2
failover interface ip statelink 3.3.3.1 255.255.255.252 standby 3.3.3.2
failover ipsec pre-shared-key *****
!
interface GigabitEthernet0/0
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif outside1
security-level 0
ip address 100.100.100.1 255.255.255.252
!
interface GigabitEthernet0/2
nameif outside2
security-level 0
ip address 200.200.200.1 255.255.255.252
!
interface GigabitEthernet0/3
nameif DMZ
security-level 80
ip address 172.16.10.1 255.255.255.252
!
interface GigabitEthernet0/5
description LAN Failover Interface
!
interface GigabitEthernet0/6
description STATE Failover Interface
!
!
object network InUsers
subnet 10.0.0.0 255.0.0.0
object network DMZ
subnet 172.16.0.0 255.255.0.0
object network Pub_DMZ
host 100.100.101.200
object service TCP_8080
service tcp destination eq 8080
object service TCP_80
service tcp destination eq www
object network DMZ_172.16.20.200
host 172.16.20.200
access-list inside_in extended permit icmp any any
access-list inside_in extended permit ip 10.0.0.0 255.0.0.0 any
access-list outside1_in extended permit icmp any any
access-list outside1_in extended permit ip any host 172.16.20.200
access-list outside2_in extended permit icmp any any
access-list outside2_in extended permit ip any host 172.16.20.200
access-list dmz_in extended permit icmp any any
access-list dmz_in extended permit ip object DMZ any
nat (any,DMZ) source static any any destination static Pub_DMZ DMZ_172.16.20.200 service TCP_8080 TCP_80
nat (inside,outside1) source dynamic InUsers interface
nat (DMZ,outside1) source dynamic DMZ interface
nat (inside,outside2) source dynamic InUsers interface
nat (DMZ,outside2) source dynamic DMZ interface
access-group inside_in in interface inside
access-group outside1_in in interface outside1
access-group outside2_in in interface outside2
access-group dmz_in in interface DMZ
route outside1 0.0.0.0 0.0.0.0 100.100.100.2 1 track 1
route outside2 0.0.0.0 0.0.0.0 200.200.200.2 10
route inside 10.0.0.0 255.0.0.0 10.10.10.2 1
route DMZ 172.16.0.0 255.255.0.0 172.16.10.2 1
!
!
sla monitor 1
type echo protocol ipIcmpEcho 100.100.100.2 interface outside1
timeout 1000
sla monitor schedule 1 life forever start-time now
!
!
track 1 rtr 1 reachability
!
ASA-B中只有failover配置略有不同,其他配置全部同步子ASA-A完全一致。
failover
failover lan unit secondary
failover lan interface Folink GigabitEthernet0/5
failover polltime unit 1 holdtime 5
failover polltime interface msec 500 holdtime 25
failover polltime link-state msec 500
failover standby config-lock
failover link statelink GigabitEthernet0/6
failover interface ip Folink 2.2.2.1 255.255.255.252 standby 2.2.2.2
failover interface ip statelink 3.3.3.1 255.255.255.252 standby 3.3.3.2
failover ipsec pre-shared-key *****
PS:在防火墙的部署中,在开机零配置的情况下最后保证2台设备完全一致,首先分别配置failover,之后所有配置只需在主墙中配置即可。
ASDM配置
CSW-1
!
interface Port-channel10
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/0
switchport access vlan 1000
switchport mode access
media-type rj45
negotiation auto
!
!
interface GigabitEthernet0/1
no switchport
ip address 10.10.20.1 255.255.255.252
negotiation auto
!
!
interface GigabitEthernet1/2
switchport trunk encapsulation dot1q
switchport mode trunk
media-type rj45
negotiation auto
channel-group 10 mode on
!
interface GigabitEthernet1/3
switchport trunk encapsulation dot1q
switchport mode trunk
media-type rj45
negotiation auto
channel-group 10 mode on
!
!
interface Vlan1000
ip address 10.10.10.3 255.255.255.0
standby 10 ip 10.10.10.2
standby 10 priority 200
standby 10 preempt
standby 10 track 1 decrement 50
!
!
router ospf 1
router-id 10.10.10.3
network 10.10.10.0 0.0.0.255 area 0
network 10.10.20.0 0.0.0.255 area 0
default-information originate metric-type 1
!
!
ip route 0.0.0.0 0.0.0.0 10.10.10.1 track 1
!
!
ip sla 1
icmp-echo 10.10.10.1 source-ip 10.10.10.3
frequency 5
ip sla schedule 1 life forever start-time now
!
!
track 1 ip sla 1 reachability
!
CSW-B
!
interface Port-channel10
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/0
switchport access vlan 1000
switchport mode access
media-type rj45
negotiation auto
!
!
interface GigabitEthernet0/1
no switchport
ip address 10.10.21.1 255.255.255.252
negotiation auto
!
!
interface GigabitEthernet1/2
switchport trunk encapsulation dot1q
switchport mode trunk
media-type rj45
negotiation auto
channel-group 10 mode on
!
interface GigabitEthernet1/3
switchport trunk encapsulation dot1q
switchport mode trunk
media-type rj45
negotiation auto
channel-group 10 mode on
!
!
interface Vlan1000
ip address 10.10.10.4 255.255.255.0
standby 10 ip 10.10.10.2
standby 10 priority 180
!
!
router ospf 1
router-id 10.10.10.4
network 10.10.10.0 0.0.0.255 area 0
network 10.10.21.0 0.0.0.255 area 0
default-information originate metric 1 metric-type 1
!
!
ip route 0.0.0.0 0.0.0.0 10.10.10.1 track 1
!
!
ip sla 1
icmp-echo 10.10.10.1 source-ip 10.10.10.4
frequency 5
ip sla schedule 1 life forever start-time now
!
!
track 1 ip sla 1 reachability
!
ASW-1
!
ip dhcp pool users
network 10.10.30.0 255.255.255.0
dns-server 223.5.5.5 114.114.114.114
default-router 10.10.30.254
!
!
interface GigabitEthernet0/2
switchport access vlan 30
switchport mode access
media-type rj45
negotiation auto
spanning-tree portfast edge
!
!
interface GigabitEthernet0/0
no switchport
ip address 10.10.20.2 255.255.255.252
negotiation auto
!
interface GigabitEthernet0/1
no switchport
ip address 10.10.21.2 255.255.255.252
negotiation auto
!
!
router ospf 1
router-id 10.10.20.2
network 10.10.20.0 0.0.0.255 area 0
network 10.10.21.0 0.0.0.255 area 0
network 10.10.30.0 0.0.0.255 area 0
!
DMZSW-1
!
interface GigabitEthernet0/0
switchport access vlan 10
switchport mode access
media-type rj45
negotiation auto
!
interface GigabitEthernet0/1
switchport access vlan 10
switchport mode access
media-type rj45
negotiation auto
!
interface GigabitEthernet0/2
switchport access vlan 20
switchport mode access
media-type rj45
negotiation auto
spanning-tree portfast edge
!
!
interface Vlan10
ip address 172.16.10.2 255.255.255.252
!
interface Vlan20
ip address 172.16.20.254 255.255.255.0
!
!
ip route 0.0.0.0 0.0.0.0 172.16.10.1
!
三.切换验证
1.出口切换
切换前:
再ISP中关闭线路1接口切换后:
在线路切换中正常业务丢包大约在4-8个包左右。
2.防火墙HA
切换前:
重启ASA-A切换后:
切换只丢1个包。
PS:这里在做验证的时候又发现了一个小问题,就是在已经做完上面线路出口切换的情况下不会退,再来进行HA的切换演练,会存在一个问题,但HA切换以后ASA-B中的默认路由依旧还是线路1的,而线路1在实验室已经down了,这就会导致切换后出现问题,解决办法就是清理路由表缓存 clear route all (或者指定下一条,生产中最后最小清除),这时候就会切换到线路2 ,同样在做线路切换模拟时,ASA-A 中的路由刷新等待时间时比较久的,这时候也可以手动刷新加快收敛速度。
四.遗留问题
1.上面虽然用手动刷新了路由表解决了这个缓存的问题,但在实际环境中这种切换时随机发生,我们不可能立马发现并受到刷新,所以如何避免因为路由缓存而影响HA切换故障时效时后面考虑的一个点。
2.在上面的拓扑中存在一个缺陷即核心时单上联防火墙,所以当主核心宕机而防火墙正常的情况下,数据是没有办法上行的,这里必须要进行双上联,否则双核心没有任何意义。
3.对于DMZ区域的NAT,在配置PAT的时候要注意PAT配置的顺序要优于DMZ NAT的顺序,否则PAT无法生效,具体参考另一篇文章https://blog.51cto.com/pinglife/2507602
由于时间有限,行文潦草,还缺少很多细节,后续再做完善。