使用 Azure 内部负载均衡器和 BIG-IP 的实际注意事项

2020-04-14 15:23:58

本文于1 个月前更新,原帖发布于 2019 11 19 日,作者:Michael OLeary F5


背景

最近,我遇到一个场景,做了一些测试,觉得值得在此分享一下。一位用户告诉我他想将 BIG-IP 放入 Azure,但是他有一些要求:

 1. 他希望使用 Azure 负载均衡器 (ALB) 来确保其 BIG-IP 的高可用性。与其他选项相比,这样做可缩短 Azure 中故障转移时间。

 2. 他不想使用外部负载均衡器。他部署了面向互联网的防火墙,该防火墙可以将入站流量代理到 BIG-IP,因此无需将BIG-IP暴露给互联网。他只需要内部负载均衡器。

 3. 不希望自己的流量进行源地址转换。他希望应用服务器能看到真实的客户端 IP

 4. 他希望不要在故障转移时自动更新 Azure 路由。

 5. 他希望以双活模式运行其 BIG-IP 对,但也要支持主备模式。

 

备注:部署 BIG-IP 时为何要使用 Azure 负载均衡器?这不就像在一个负载均衡器前面再放一个负载均衡器吗?在本例中,我们将 ALB 用作基本的 3/4 层流量分类器,简单地将流量发送到多个 BIG-IP 设备,并在发生 VM 级别故障时提供故障转移。但是,当我们需要高级应用服务(TLS 处理、身份验证、高级运行状况监视、复杂的负载均衡方法等)时,我们希望流量经过 BIG-IP

 

分析

首先,我整理了一个快速演示,以便轻松地向他展示如何在 ALB 后端部署 BIG-IP。我在演示中使用了一个外部(面向互联网)ALB 和一个内部 ALB。此演示使用的是 F5 提供的官方模板,但额外部署了一个应用服务器并为 BIG-IP 配置了一个路由和 AS3 声明。如果不是因为他只需要内部负载均衡器,此设置已经可满足他的要求:



约束条件

但此用例需要的是不面向互联网的负载均衡器。此时,我们遇到了两个问题:

 

1.  Azure 不允许在相同的可用性集中使用 2 个内部负载均衡器,否则将会出现冲突错误: NetworkInterfacesInAvailabilitySetUseMultipleLoadBalancersOfSameType。因此,不能使用 2 个内部负载均衡器来实施上图中的架构。

2.  仅使用 1 个内部负载均衡器时,“如果入站规则跨所有端口和协议进行负载均衡,则应只部署一条规则。”由于我们希望所有端口都至少有 1 条规则(用于来自服务器的出站流量),因此我们也不能为应用单独的负载均衡规则。这样做将会显示上面引号中的错误消息。

 

备选解决方案

我们有几个备选方案。有一种方法可以同时满足他的全部要求,但较为复杂。接下来我将讨论三个选项以及它们是如何满足要求的。每个选项都将 BIG-IP 放在一个内部 ALB 的后面:

 

 1.  BIG-IP 会将流量源地址转到 Web 服务器,并发送 XFF 标头。默认路由可以是防火墙,因此来自服务器的流量(如补丁更新)仍可以到达互联网。可以是双活或主备模式,但必须进行源地址转换。

 2.  或者,不要对流量进行源地址转换,这样 Web 服务器会看到真实的源 IP。您将需要 UDR(用户自定义路由)来指向主动 BIG-IP 上的默认路由以及所有客户端子网。故障转移时,您将需要自动更新此 UDR(通过 F5 自动更新)。但这种办法只适用于主备模式。

 3.  高级:使用双网卡 BIG-IP1 个网卡用于管理,1 个网卡用于数据平面)。部署仅具有 1 条负载均衡规则且设置“高可用性”端口(所有端口)的单个内部 Azure 负载均衡器,将 “F5 对”放置在其后面。然后,我们将服务器子网的默认路由指向 Azure 负载均衡器,后者将由 F5 上的 VIP 0.0.0.0/0 提供服务。由于这仅允许您在 Azure 负载均衡器上使用 1 条负载均衡规则,因此请在 Azure 负载均衡规则上启用DSR。指定一个“外部子网范围”,该范围不在VNET中,而只可以存在于 BIG-IP上。创建一个该范围的路由,并将下一个跳转指向唯一负载均衡规则下的前端 IP。最终,让您的防火墙将流量发送到外部范围内的 F5 实际 VIP(而不是前端 IP),最终流量将转发到 Azure 负载均衡器和 F5

 

在这种情况下,我个人建议使用选项 B 中的架构。原因如下:

 - 这也许是最简单的设置。主备场景很常见,方便企业中大多数员工理解。

 - 使用此设置,出站服务器生成的流量仍会经过 BIG-IP,因此可以得到有效管理和保护。

 - 不需要进行源地址转换。有时,发送 XFF 标头不是很好理解,也不是非 HTTP 应用的一个选项。

 - UDR 可通过 F5(或客户工具,如果需要)轻松实现自动更新

 

尽管选项 C 从技术上可以满足要求,但我不建议使用,因为该选项复杂难懂。“外部”IP 范围不是技术术语,而是变通方案。所有流量都必须在 BIG-IP 上使用相同的网卡。无论如何,Azure 中的路由更新应自动进行,任何拥有云基础设施的企业都了解自动化的价值。




结语

如果您的使用需求决定您应采取非默认部署架构,那么您可以采用多种方法来部署 BIG-IP。综合考虑应用服务、操作支持性和高可用性等要素,我便能够为给定场景选择最佳架构。

 

感谢阅读,如果您有任何疑问,请与我联系。

本文主题:Azure

 


发布评论 加入社群

发布评论

相关文章

Login

手机号
验证码
© 2019 F5 Networks, Inc. 版权所有。京ICP备16013763号-1