Route 53 对 FTP 服务器进行健康检查

Route 53 对 FTP 服务器进行健康检查

我们希望在端口 21 上使用 TCP 运行状况检查,以便对在具有弹性 IP 的 EC2 实例上运行的一对 FTP 服务器进行 Route 53 故障转移。

问题是,我们将 FTP 服务器放在一个安全组中,该安全组只允许来自一小部分 CIDR 块白名单的连接(FTP 已经够糟糕了,但完全开放的 FTP 就更可怕了)。

安全组阻止了来自 Route 53 健康检查器的连接。我知道有办法轮询当前的健康检查器列表,理论上你可以相应地更新你的安全组,但这似乎很不靠谱。

因此我甚至尝试通过 PHP 构建一个小型 HTTP 状态页面,该页面将连接到端口 21(理论上甚至可以传输文件以确保一切正常)。我想我可以让 Route 53 访问这个状态页面(不幸的是,它必须向全世界开放,但这仍然比让 FTP 服务器完全开放要好)。

由于我事先不知道 EC2 实例的 IP 地址,因此我正在配置安全组以允许来自安全组内所有主机的连接。

但显然,如果您尝试连接到弹性 IP 地址,安全组设置就不会转换(这有点道理,但它使我的方法失效)。

所以我开始想不出主意了。有人有什么好方法来解决通过 CIDR 块限制访问的实例上的 TCP 健康检查的一般问题吗?

答案1

追踪历史AWS 发布的 IP 范围从 2015-07(我在下面查询的系统中拥有的最早快照)到 2017-03(我拥有的最新快照)——超过一年半的时间——你会发现零变化到 Route 53 健康检查器的 IPv4 地址范围。

将这些内容列入安全组中的白名单似乎是一个非常合理的策略。

在 Route 53 可以发起检查的 8 个区域中,每个区域都分配了两小块 IPv4 地址用于发起健康检查。(Route 53 不会从所有 AWS 区域发起检查)。

对于测试您的端点的每个区域(默认情况下,所有区域都测试您的端点),您的健康检查将与每个区域的每个块中的一个检查器相关联...当您查看控制台中的“健康检查器”时,您可以看到检查器单独报告的结果,包括检查器的 IP 地址(当然也会出现在服务器日志中)。

这是相关值的摘录:

+-------------------+----------------+
| ip_prefix         | region         |
+-------------------+----------------+
| 54.183.255.128/26 | us-west-1      |
| 54.228.16.0/26    | eu-west-1      |
| 54.232.40.64/26   | sa-east-1      |
| 54.241.32.64/26   | us-west-1      |
| 54.243.31.192/26  | us-east-1      |
| 54.244.52.192/26  | us-west-2      |
| 54.245.168.0/26   | us-west-2      |
| 54.248.220.0/26   | ap-northeast-1 |
| 54.250.253.192/26 | ap-northeast-1 |
| 54.251.31.128/26  | ap-southeast-1 |
| 54.252.79.128/26  | ap-southeast-2 |
| 54.252.254.192/26 | ap-southeast-2 |
| 54.255.254.192/26 | ap-southeast-1 |
| 107.23.255.0/26   | us-east-1      |
| 176.34.159.192/26 | eu-west-1      |
| 177.71.207.128/26 | sa-east-1      |
+-------------------+----------------+

我没有理由跟踪 IPv6 方面,所以我不能肯定地说情况也是如此,但有理由相信同样的情况也适用于那里。

答案2

您还可以使用 dyn-dns 之类的服务为动态地址提供静态命名。每次在新的 IP 上激活主机时,会话中运行的代理都会使用正确的动态地址更新 dyn-DNS 服务器。

我们发现这会增加一些端点 vpn 映射的重新连接率。

相关内容