将动态 DNS 解析为内部 IP

将动态 DNS 解析为内部 IP

我不太熟悉动态 DNS,并且很好奇它是否可以用于某个特定的用例。

我有几个 Raspberry Pi,我正在设置它们来模拟我们在大型设置的小规模上使用的应用程序的服务器设置。它们具有无线访问功能。我希望能够将它们扔进包里,并在各种设置中使用我的笔记本电脑来操作它们。但是,每次在新网络上与它们通信时都要计算出 IP 和地址会非常烦人(必须更改所有应用程序/配置所引用的端点)。

我可以让普通的 DNS A 记录指向内部 IP,它们在私有网络上工作得很好。但是,这对于更改 IP 来说不太理想。我是否可以使用动态 DNS 将 DNS 记录解析为内部地址?(这样,连接到新的无线网络后,所有查找都会在一切连接后工作,而无需摆弄路由器、自定义 DNS 服务器等。)

初步研究表明,动态 DNS 通常解析为外部 IP,而在这种情况下,我希望自动解析为每个客户端在特定接口上获得的地址,例如 Eth0。

答案1

最简单的方法是使用移动DNS在同一子网中的计算机之间进行“临时”DNS解析。这基本上就像安装avahi-daemonlibnss-mdns(Debian 软件包名称;根据需要进行调整)并确保防火墙未阻止一样简单。这将涵盖正向和反向 DNS 条目,并为本地子网上的所有其他计算机5353/udp创建可解析的名称。<hostname>.local

TSIG如果您需要在本地多播域之外可用的命名,您可能需要在互联网上的某个地方设置一个接受经过身份验证的查询的 DNS 服务器UPDATE,然后配置您的客户端机器使用nsupdate(或其他等效方法)发送更新。

答案2

如果您所说的“动态 DNS”是指公共 DynDNS 服务之一,例如 dyn.com 或 noip.com,那么您不能让这些服务指向私有 IP 地址。这是因为,根据设计,这些服务会将其 A 记录指向它们在您的注册或更新请求中看到的源 IP 地址,根据定义,该地址是您的公共地址。

但是,您可以设置自己的动态 DNS 服务,该服务在本地网络中运行,因此可以看到内部 IP 地址。有很多方法可以实现这一点,从传统的 DHCP 向 DNS 服务器发送更新到本地安装类似 dyn.com 的服务。选择取决于您想要在其中使用 Pi-s 的“各种设置”的确切性质。

请注意,您可能会遇到 Pi-s 如何找到要注册的动态 DNS 服务的引导问题。这可以通过使用基于广播的技术(如 DHCP 或 mDNS)来解决,或者通过将服务放在 Internet 上的公共位置并进行设置,使其接收要在更新请求的有效负载中注册的 IP 地址,而不是从其源 IP 地址中获取该地址来解决。

答案3

如果您不需要与此类新网络中的其他设备通信,则非常简单。只需为每个 Pi 提供一个静态 IP 并相应地维护 /etc/hosts。然后,无论您在什么环境中,它们都可以互相访问(只要它们都已连接)。但您必须考虑到您需要另一个子网,而不是您连接的网络,否则您可能会遇到 IP 地址冲突。

如果您需要与位于另一个子网中的其他设备进行通信,则有几种选择。首先,您需要与上述相同的设备。要确定最佳设备,您需要更具体了解您的应用程序和用例。

  1. 您可以将一个 Pi 设置为路由器,在两个子网之间进行路由。(优点:不太复杂,缺点:您想要与之通信的每个设备都需要一个子网路由)

  2. 配置你的 PI,使其另外拥有来自该子网的 DHCP 服务器的 IP,然后使用ddns 客户端调整你的 ddns 服务器(运行在您的一个 pi 上,并配置为您的子网的 DNS 服务器)。因此,您配置 ddns 的初始通信将通过您自己的子网进行。而进一步的通信将通过您所处的新子网进行。(优点:更灵活,缺点:更复杂,因此更容易出错)

我想还有其他选择和可能性,但这就是我想到的。

答案4

对于未来的观众来说......

MDNS 可以解决这个问题,但需要进行一些额外的安装才能在 Windows 上获得支持,这并不理想。动态 DNS 最终确实可以正常工作。

使用将接口设置为 wlan0 的 DDClient 而不是检查外部网站的 IP 会导致客户端拉取私有地址以更新动态 DNS 提供商,并且它运行良好。

相关内容