如何在没有 DNS 的情况下对远程服务器进行类似 DDNS 的跟踪?

如何在没有 DNS 的情况下对远程服务器进行类似 DDNS 的跟踪?

我有两台服务器,一台有静态 IP 地址(网关),另一个则没有(前端)。

Tunneled directly           │ Over the public network                                        
[FRONTEND]────[GATEWAY]╝    →                   [GATEWAY]╕                 
    │                       →    [INTRANET]────[FRONTEND]┘ 
[INTRANET]                  →   

为了让网关始终知道如何将连接路由到动态寻址的前端,网关还充当 OpenVPN 服务器,因此前端从网关的角度来看具有静态 RFC1918 地址。VPN 链接是站点到站点的连接,也是 WAN 类型的连接,并且使用 OSPF 来路由流量,因此站点之间没有 NAT。它运行良好,只是您可能注意到我在提到地址时使用了复数……

我一直在尝试执行某种负载平衡和/或故障转移,但无论我多么努力,尽管所有路由器的每个接口(被动+主动)上都启用了 OSPF,但还是检测到了一些路由循环,整个系统都崩溃了或出现了有损链接。我想改变我的方法,只通过开放的互联网进行路由,但如果出于某种原因 IP 地址发生变化,我需要,这种情况很少发生,但仍然有可能实现即时更新。所以我也不想设置 BIND。高频率可能意味着我需要不停地刷新缓存。

我有一个Cloudflare STUN 类无服务器工作器或功能或其他你可以curl,它只给出你的 IP 地址作为响应,我在想也许可以设置一个 cron 作业来无休止地执行此操作并将其输出转换为 hosts 文件中的主机名,该文件将rsync位于远程服务器 网关。听起来太简单了,但说实话,我有点担心用我糟糕的技能修改系统文件sedawk而且我不知道任何编程或脚本语言,除非 Bash 是其中之一(它是一个解释器,对吧?)。此外,Cloudflare 工作者在给定的 CPU 时间后开始收取账单,其计费方案比 Cloudflare 自己的更新 DNS 记录的 API 更复杂。我想它有数十万次调用,但我宁愿先探索其他 Cloudflareless 选项。

所有这些系统都属于一个或多个域,因此它们都有自己的 FQDN,只是我迫不及待地希望 DNS 只为这个链接传播。使用该hosts文件的原因很简单,因为 DNS 是一个我可以使用变量,而 hosts 文件是因为它立即起作用并否决其他任何内容*。但它不需要是 DNS,只要前端的结果 <ping/通知/marcopolo/等等> 网关我获取变量或文件中的 IP 地址,可用于创建路由。系统范围的变量可以通过 SSH 更新吗?我刚刚考虑了源的身份验证,似乎 SSH 是最简单的方法,这是我的脑海中想到的。

网关运行 Linux(特别是 RHEL9.2),在前端我可以选择各种操作系统。我突然想到一定已经有一个用于此的工具;也许设计为 DDNS 客户端/服务器解决方案的一个组件,它可以完成这个任务,这样我就不必重新发明轮子了。:)

有什么建议么?


*:除非你使用的是 Windows;我相信它是遥测和其他微软资产,其中一些地址是系统中硬编码的——如果好奇的话,可以搜索一些微软演示文稿,其中有演讲者 Paula Januszkewicz (CQURE)。

相关内容