0x01 引言
本文旨在帮助理解AWS的GWLB架构,不涉及具体部署过程。
包括如何在AWS部署VM系列以及AWS平台操作不多赘述
本架构目前适合绝大多数虚拟化防火墙使用(具体请根据对应品牌的设备)
混合编排和细节处理还在完善中
0x02 服务介绍
GWLB全称Gateway Load Balancer,用于部署、管理支持GENEVE的第三方虚拟设备。
简而言之可以理解为GWLB将第三方服务打包成了一个AWS的服务使用
GWLB在OSI模型的第三层运行。它会侦听所有端口上的所有 IP 数据包,并使用 GENEVE 协议通过端口 6081 将流量转发到侦听器规则中指定的目标组。
0x03 基本编排
GWLB有以下几个基本概念:
目标组
目标组用于指定对象,用于路由到指定目标或对其执行状态检查。之后应用通过侦听器将流量传入对应第三方设备。
在GWLB的场景下,协议必须选择GENEVE且端口为6081
侦听器
用于检查连接请求的进程,相当于一个服务入口。从架构上可以理解成一张网卡/网关。
侦听器用于侦听所有端口上的所有 IP 数据包。不能指定协议或端口。
侦听器需要绑定目标组才能实现全部功能。
GENEVE
全程Generic Network Virtualization Encapsulation具体理论请自行百度 协议元数据本身可扩展、Ethernet over UDP、header中增加TLV
在有了基本概念之后可以引入以下拓扑:
后文会将GWLB的侦听器称为GLWBE。
在最基本的引用场景当中,GWLBE才是我们主要的转发对象。
在通常的Troubleshooting中,GWLB部署妥善的情况下一般可以忽略,只需要考虑业务VPC的路由情况即可。
1x01 Outbound
1x02 Inbound(需要边缘关联IGW)
1x03 GWLB内实际转发场景:
0x04 进阶编排
1x01 使用NGW (南北)
在AWS中IGW(Internet Gatway)与NGW(Nat Gateway)为主要访问互联网手段。
两者最大区别在于:IGW可以作为互联网接口使用,而NGW需要绑定IGW后才能获取到互联网资源。
2x01 Outbound
2x02 Inbound
1x02 使用TGW(东西)
由于AWS的不同VPC之间不能互相通信,所以当需要过GWLB时,通常使用TGW打通跨VPC之间的流量。
2x01 标准做法—GLWB单独VPC
2x02 非标准做法—复用GWLBのVPC (省点钱)
0x05 究极编排
施工中
0x06 其他做法
1x01 子接口区分流量
##interface 为需要手动输入创建出的子接口
##vpc-endpoint 为需要手动输入的终端服务节点(vpce)
request plugins vm_series aws gwlb associate interface ethernet1/1.1 vpc-endpoint vpce-0128fdf4bf84b4620
request plugins vm_series aws gwlb associate interface ethernet1/1.2 vpc-endpoint vpce-0c6fde56ba5b8cf5a
1x02 关于SG的应用
如果需要对PA所在的GWLB的接口使用SG:
需要控制的对象(源地址)并非为会话发起方(数据包五元组),而是对应VPCE节点的IP(数据包流出到PA的对应网络接口/网卡IP)
需要控制的端口并非访问对象的目的端口,而是UDP 6081