过去,我一直通过端口转发在我的网络上提供服务(即 HTTP、VPN 等)。每项服务都有自己的域名(即、、home.domain.name
等),并在网络内的不同机器上运行。在路由器上运行动态 DNS 客户端进行更新,其他子域只是的 CNAME 。我的区域通过 CloudFlare 进行管理。deluge.domain.name
vpn.domain.name
home.domain.name
home.domain.name
现在,我通过 DHCPv6-PD 获得了 1 个 IPv4 地址 (/32) 和 1 个 IPv6 网络 (/48)。我的路由器(运行 OpenWRT Trunk)发出路由器通告 (RA),让网络上的计算机知道分配的 IPv6 前缀。网络内的全局地址配置是通过无状态配置完成的。因此,虽然每台机器共享相同的全局 IPv4 地址,但它们具有不同的 IPv6 地址。
因此,我不能再使用 CNAME。
我想到的一个解决方案是编写一个动态 DNS 客户端,在每台提供服务的机器上运行。但是,我更希望路由器执行此操作,因为它能够监听 WAN 端的网络状态变化,这样我的客户端就不必轮询 CloudFlare API。
我想知道是否有人有更好的、集中的解决方案来解决这个问题。
答案1
如果您想在这些机器上运行服务,那么为它们提供固定的 IPv6 地址并将其放入 DNS 中要容易得多。这样您根本不需要更新记录。
我假设您的 ISP 足够理智,每次都会给您相同的 IPv6 前缀。但他们应该给您超过 /64 的前缀。/48 或 /56 是正常的,这样您就可以拥有多个子网(例如访客网络、服务器的 DMZ 等)。