如何使用dynamicDNSpipe理冗余ISP

我试图通过添加一个备用ISP来使我的小型企业networking更健壮。 我无法弄清楚的是如何pipe理入站连接的DNS。 我的networking简化视图如下所示:

+-------+ +-------+ | ISP 1 | | ISP 2 | +-------+ +-------+ | | +-----------------+ | Dual WAN Router | +-----------------+ | +----------+ | Server | +----------+ 

当我只有一个ISP时,我只有一个广域网IP地址需要担心,只要我的dynamicIP改变了,我就更新了DNS Alogging。 我正在使用AWS(Route 53)进行DNS,所以编写脚本来获取当前的IP非常容易,然后使用CLI工具来相应地更新DNSlogging。

现在我有两个WAN IP地址,我不确定如何继续。 我有两个主要问题:

  1. 我希望ISP 1是主要的(它有一个更好的连接),但我想回退到ISP 2,如果1不可用。 我使用服务器的VoIP以及HTTP和SSH。 VoIP需要相当高的可用性(因此是冗余ISP)。 但是,我不知道如何实现这样的故障转移。

  2. 我怎样才能保持两个DNSlogging最新? 只需一个ISP,我就可以使用如下命令从服务器可靠地确定WAN IP: dig +short myip.opendns.com @resolver1.opendns.com 。 有了两个ISP,我无法想象如何从服务器获得两个IP。

#1的想法

我已经阅读了有关多个Alogging的DNS循环,但是在任何地方我都发现它提到了它的build议。 另一个select似乎是BGP,但我不明白,我觉得我没有什么我需要实现它( 这篇文章似乎适用)。

#1的另一个解决scheme可能是一个负载均衡器,指向一个单一的IP地址。 然后,负载均衡器根据一些健康检查select哪个ISP来路由stream量。 问题是这需要协议不可知(即与VoIPstream量以及HTTP等无缝工作)。 这就是为什么DNS级别的解决scheme似乎很有吸引力。

我偶然发现了这个看起来很有希望的AWS博客文章 ,但当我试图弄清楚如何保持dynamicIP在健康检查和各种相应的DNSlogging中是最新的时候,我的脑袋就爆炸了。

阅读完这篇文章之后 ,在我的水平上做到这一点的“正确”方式似乎是这样的一个链接平衡器,但是这个系列中最便宜的模型大约是$ 1,200,这比我所期望的要多一点。 另外,当我的域名服务器从ISP获取dynamicIP时,我的链接平衡器仍然有点模糊。

#2的想法

我想我可以configuration双WAN口路由器在IP变化时调用webhook ,但实现起来会很复杂。

有一些我失踪的魔术解决scheme吗?

这取决于您的双WAN路由器的function,但我相信最直接的解决scheme可能是让路由器只有在检测到ISP / WAN 1closures时才使用ISP / WAN 2。 这样你可以拥有服务器及其dynamicDNS脚本; 当WAN1发生故障时,它将更新相同的logging以parsingWAN2的公共IP。

当然这会花费TTL秒,直到它有效,但是像300这样短的TTL不应该造成太长的停机时间百分比。

我使用AWS Route53运行状况检查进行入站DNSparsing和Internet故障转移。

创build一个健康检查。

在这里输入图像说明

在这里输入图像说明

为每个服务创build一个公共DNS条目。

在这里输入图像说明

将运行状况检查与DNS条目相关联。

在这里输入图像说明