亚马逊AWS官方博客

亚马逊云科技网关负载均衡集成FortiGate双臂模式

一、概述

亚马逊云科技 网关负载均衡(GWLB)的最佳实践手册介绍GWLB支持双臂和单臂工作模式网关负载1。FortiGate 与GWLB集成单臂工作模式已完成验证,请参考相关测试日志。本文档记录FortiGate 与GWLB集成双臂工作模式。安全网关双臂工作模式,从GWLB负载流量不回到流量发起VPC, 安全网关本地转发到互联网,简化了数据转发流程。

GWLB网关单臂模式和双臂模式网络逻辑拓扑图:

网关单臂模式

网关双臂模式

网关双臂模式适用于业务主机访问互联网出向业务流量,多个VPC的出向流量全部经过安全VPC网关NAT访问互联网。

二、FortiGate双臂模式网络拓扑

业务系统主机出向流量经GWLBE服务链路负载均衡到安全VPC  FortiGate,FortiGate直接转发出向流量到Internet,不需要像单臂模式把出向流量经FortiGate检查后路由回业务VPC,简化数据转发路径,并且不影响在线业务系统提供业务服务。

三、GWLB集成FortiGate双臂模式 测试步骤

本测试所使用的资源及服务:

  • GWLB 服务 (网关负载均衡)
  • Endpoint Service(终端节点服务)
  • FortiGate-AWS 公有云版安全网关( 本文档采用亚马逊云科技中国区市场上线版本0.6)

VPC配置

1、创建两个VPC

APP-VPC                 10.0.0.0/16

SEC-VPC          10.1.0.0/16

2、创建子网

APP-VPC 6个子网

pub-sub1 10.0.1.0/24 可用区1 公网子网
pri-sub1 10.0.2.0/24 可用区1 应用子网
gwlbe-sub1 10.0.3.0/24 可用区1 GWLB endpoint 子网
pub-sub2 10.0.11.0/24 可用区2 公网子网
pri-sub2 10.0.12.0/24 可用区2 应用子网
gwlbe-sub2 10.0.13.0/24 可用区2 GWLB endpoint 子网

SEC-VPC 4个子网

sec-pub-sub1 10.1.1.0/24 可用区1 公网子网
sec-pri-sub1 10.1.2.0/24 可用区1 GWLB子网和HA同步子网
sec-pub-sub2 10.1.11.0/24 可用区2 公网子网
sec-pri-sub2 10.1.12.0/24 可用区2 GWLB子网HA同步子网

3、创建路由表

APP-VPC 2个路由表,SEC VPC 全部子网在一个路由表里:

rt-pub关联public子网,

rt-pri关联应用pri-sub子网

部署FortiGate

此测试FortiGate加载三个网卡,第一个网卡连接Internet 弹性IP,第二个网卡用于GWLB连接,第三块网卡用于HA同步。

1、从marketplace选择FortiGate镜像部署FortiGate实例

2、按EC2向导部署FortiGate,添加二、三块网卡,手动分配网卡地址,安全组允许全部流量。

3、取消网卡源/目的 检查

创建负载均衡目标群组

1、EC2服务,选择负载均衡,新建目标群组,选择目标为ip地址,协议选GENEVE,健康检查协议TCP 端口443, 在FortiGate port2接口上开启HTTPS管理服务。

2、注册FortiGate为目标网关

3、等待目标网关从pending状态进入health状态。(FortiGate port2端口允许https健康检查)

创建GWLB

1、EC2服务,创建负载均衡器

2、选择Gateway Load Balancer

3、选择SEC VPC, FortiGate如果是双可用区部署,就选择两个可用区,每个可用区用单独的地址与同可用区的FortiGate 建立GENEVE隧道

4、注册目标组,选择所有FortiGate实例

5、完成GWLB创建,启用跨区域负载均衡, 在负载均衡描述栏目下的属性字段配置。

6、查看GWLB 网卡地址。创建完GWLB后,GWLB在SEC VPC 私有子网创建两个虚拟网卡,网卡描述里包含ELB gwy 标记,记下这两个网卡的IP。

点击菜单EC2à网络与安全à网络接口

配置防火墙接口IP和管理权限

实例初始化完成后,平台会给这三个网卡分配IP,第一块连接internet网卡启用了DHCP获取IP地址和网关,绑定一个弹性IP到第一块网卡,通过https或 SSH登入FortiGate。第二块连接gwlb网关启用DHCP获取地址,关闭获取网关,第三块HA同步网卡设置静态IP模式,IP为平台分配的IP.

config system interface
    edit "port1"
        set mode dhcp
        set allowaccess ping https ssh fgfm
        set mtu-override enable
        set mtu 9001
    next
    edit "port2"
        set mode dhcp
        set allowaccess ping https
        set defaultgw disable
        set mtu-override enable
        set mtu 9001
    next
edit "port3"
    set mode static
        set ip 10.1.3.131 255.255.255.0
        set allowaccess ping
        set mtu-override enable
        set mtu 9001
next
end

FortiGate单机配置同步

FortiGate作为GWLB的负载对像,每一个FortiGate独立运行。FortiGate单机配置同步HA模式,目的为简化策略配置操作,平时运维只需维护主设备上的策略。单机配置同步会同步防火墙策略、策略对象,GENEVE隧道,安全区域。不同步静态路由,网卡IP和其它系统配置。在建立GENEVE隧道前,需要先启用单机配置同步。

Primary FortiGate配置

config system ha
    set group-name "cluster"
    set hbdev "port3" 50 
    set standalone-config-sync enable
    set override enable
    set priority 200
    set unicast-status enable
    set unicast-gateway 10.1.3.1
end
config system ha
config unicast-peers
        edit 1
            set peer-ip 10.1.13.100
        next
    end
end

Secondary FortiGate配置

config system ha
    set group-name " cluster "
    set hbdev "port3" 50 
    set standalone-config-sync enable
    set override enable
    set priority 100
    set unicast-status enable
    set unicast-gateway 10.1.13.1
end
config system ha
config unicast-peers
        edit 1
            set peer-ip 10.1.3.100
        next
    end
end

FortiGate与GWLB对接

1、创建GWLB接口(只需在主上面操作)

config system geneve
    edit "geneve1"
        set interface "port2"
        set type ppp
        set remote-ip 10.1.2.46    
next
edit "geneve2"
        set interface "port2"
        set type ppp
        set remote-ip 10.1.12.100    
    next
end

2、添加防火墙策略

config firewall policy
    edit 1
        set name "1"
        set srcintf "geneve1"
        set dstintf "port1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set nat enable
next
edit 1
        set name "2"
        set srcintf "geneve2"
        set dstintf "port1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set nat enable
    next
end

3、添加FortiGate路由,业务主机VPC回程路由

config router static
 edit 1
        set dst 10.0.12.0 255.255.0.0
        set device "port2"
        set gateway 10.1.2.1
next
edit 2
        set dst 10.0.0.0 255.255.0.0
        set device "geneve1"
next
edit 3
        set dst 10.0.0.0 255.255.0.0
        set device "geneve2"
    next
end

创建GWLB endpoint服务

1、VPC > Virtual Private Cloud >终端节点服务

2、关联GWLB, 取消需要接受以使终端节点选项,

3、复制GWLB 终端服务全名

4、VPC > Virtual Private Cloud> 创建GWLB 终端节点虚拟网卡

5、按名称查找服务,点验证服务可用,选择 APP VPC,一个服务节点只创建一个可用区。

调整路由

业务主机子网默认网关指向GWLBE

验证业务主机出向流量GWLBE负载到FortiGate出互联网

1、从app服务器访问互联网

FortiGate上流量记录。

2、查看FortiGate GENEVE封装数据

在FortiGate上抓包分析, FortiGate 与GWLB之间的通信数据包封装在GENEVE协议内, FortiGate与GWLB的状态检测为FortiGate接口上开放的https服务端口

关于Fortinet

Fortinet是全球领先的网络安全解决方案供应商,在下一代防火墙,Web应用防火墙,SD-WAN等领域均处于市场领先地位。Fortinet Security Fabric安全平台通过全面的产品线覆盖数字化攻击面,紧密集成的解决方案消除单点作战与系统复杂度,并通过自动化工作流提升网络安全防御/检测/响应的效率,即实现全面覆盖、深度集成、动态协同的安全解决方案来全方位护航企业进行数字化创新。全球超过50万客户选择Fortinet保护其数字化创新成果。

关于FortiGate

FortiGate是Fortinet旗舰下一代防火墙产品,集下一代防火墙、高性能SSL/IPSec VPN网关、SD-WAN 于一身,该产品同时被Gartner列于企业防火墙和SD-WAN魔力象限领导者象限。

FortiGate与亚马逊云科技平台进行了API级别的集成,能够原生支持同AZ和跨AZ的主被/双主高可用部署模式,以及通过API驱动AutoScaling弹性扩缩,最大程度保障稳定与性能。同时支持Transit Gateway,能够用来帮助用户构建云安全服务中心来实现安全集中管控。此外,FortiGate还支持SR-IOV和C5n机型以获得更高的性能。通过内置的轻量级编排引擎,自定义触发条件(实例连接到恶意IP)和执行动作(调用Lambda脚本隔离实例)实现更高效的安全响应。

本篇作者

刘瀚文

产品技术专家,亚马逊云科技产品部网络方向。

岑义涛

Fortinet亚太区产品市场总监, AWS 认证Solutions Architecture- Professional 及 Security- Specialty 负责Fortinet SD-WAN,SASE,云安全等战略产品在亚太地区的落地与推广。10年以上企业级网络安全和云服务经验。在云、网、安全融合方面有丰富的规划与实践经验。