在AWS Ningxia区域实践FortiGate Cross-AZ
基本架构图如下:
两台FortiGate可以部署在不同的AZ同时工作,如果其中一台出现故障可以自动切换路由表下一跳,实现自动切换。
自动切换通过两个逻辑触发Lambda脚本执行修改路由表
1. Cloud watch event 周期性执行Lambda脚本
2. FortiGate发现故障可以触发事件发送给API Gateway,执行Lambda脚本
宁夏区域部署Cloudformation脚本
填写VPC子网信息
填写instance类型及keypair等信息
使用默认的option配置
预览总体配置,部署Stack
通过Cloud formation查看部署过程
5-10分钟后,所有的服务都创建成功
两台FortiGate自动创建成功
通过EIP登录到两台FortiGate,默认用户名admin,密码instance id
登录后修改初始密码
由于BYOL的镜像,我们需要手动上传license,上传成功后,FortiGate会自动重启
启动后的FortiGate无需额外配置,基本的切换配置已经预配置在其中
FGA
FGB
路由表信息
AZ1路由表与FGT1网卡ID
AZ2路由表与FGT2网卡ID
切换测试
正常情况下Cloud watch log中会显示两个FortiGate的状态都为true状态
当FGA故障,可以看到FortiGate状态变为False,并有路由表切换的详细情况
当FortiGate恢复后,会自动回切路由表
由于Cloud watch event的监控间隔为1分钟,如处于健康检查监控间隙出现故障,就需要FortiGate发起故障切换请求
60秒定期检查间隔,防火墙主动触发路由表切换
在FortiGate上的debug信息显示链路检查失败,触发aws-lambda的动作
总结
Ningxia区域使用CFT部署还是需要修改一下我们原生的脚本,现在在中国的region中可以使用template快速在现有的VPC中部署FortiGate还是方便了不少。
FortiGate在同一个AZ中本来就可以实现HA ,Cross AZ的解决方案大大增加了FortiGate在AWS环境中的适应性。