A 记录故障转移?

Myl*_*ray 7 domain-name-system failover a-record redundancy

我有一台 Fortigate 100D,带有 2 个 BT Business Infinity 光纤连接,用作 WAN1 和 WAN2。

BT 线路各有 5 个静态公共 IP,我的 DNS 通过 CloudFlare 托管,指向 WAN 连接之一上的静态 IP。

(假设您在 mylesgray.com 上执行 nslookup,您将看到 217.45.201.1 作为公共 IP)。

我们希望为我们的 A 记录(用于托管网站、VPN、ssh 等)提供冗余,但显然 2 条 BT 线路有 2 组不同的公共 IP,因此如果 WAN1 出现故障,我们将陷入困境 - 没有故障转移,因为地址是静止的。

我已经查找了外部 DNS 故障转移,但这对我来说似乎很混乱而且非常错误(循环法让我很恼火)。然后任播作为一个选项出现,然而,任播似乎需要整个 /24 块或在某些 ISP 的强制转换中甚至是 /22。我们正在运行企业级路由器,因此使用 BGP 等不是问题。

任何人都可以了解如何在不购买 /22 块 IP 或使用循环 DNS 的情况下实现 DNS A 记录的故障转移吗?

Rex*_*Rex 11

只是一些注意事项:任播并没有真正提供 A 记录故障转移。你提到了“外部 DNS 故障转移”和循环——这些根本不是一回事。Roundrobin 对同一主机名有多个 A 记录。DNS 故障转移是在链接断开时将单个 A 记录更改为不同的 IP 地址,理想情况下,在链接恢复时将其改回。

正如 Lukas 所提到的,由于他提到的原因,DNS 故障转移通常不是最好的方法。它确实适用于大多数用户,但缓存和 DNS 服务器会延迟忽略 TTL,这会影响故障转移到备用 IP 地址的时间。

如果您希望继续沿着这条路走下去,有各种 3rd 方 DNS 服务(DNSMadeEasy、Amazon Route 53 等)提供此服务。一些不同的链接平衡器(PepLink、Baraccuda)如果充当您的 DNS 服务器,也可以执行 DNS 故障转移的变体。根据您的环境,您也可以编写自定义脚本来检查链接状态并根据需要更新 IP 地址。

除非您拥有并管理自己的 ASN 和 IP 地址块,否则 BGP 不会为您提供任何帮助。理想的解决方案是向您当地的区域互联网注册中心 (RIPE/ARIN/etc) 申请您自己的 IP 块和 ASN,并运行您自己的路由器以从适当的链接中通告路由。

  • @Epaphus 整个互联网世界的地址块都很低,不仅是欧洲地区。无论如何,阻止、​​支付和维护 256 个以上的地址对于 OP 的预期用途来说将是太多的开销。 (2认同)

Luk*_*kas 5

很多管理员认为使用 DNS 记录进行故障转移是不好的做法,因为:

  • DNS 记录有一个生存时间,您必须在性能(高 TTL = 长缓存)和更新行为(低 TTL = 更改传播速度更快)之间进行平衡。

  • 一些 DNS 客户端和递归服务器(如 ISP 的)倾向于完全忽略 TTL 值或设置它们自己的值。

  • AFAIK,CF 的最小 TTL 是 5 分钟(至少在免费帐户上)。

我自己不使用 BT 服务,但是否可以选择在两个上行链路之间移动 IP 地址?不过,我不确定如何通过您的设置完成此操作。