将 CNAME 记录指向多个通配符 A 记录

将 CNAME 记录指向多个通配符 A 记录

我正在尝试将我的 cname 指向具有多个 A 记录的通配符 FQDN。

挖掘输出:

;; QUESTION SECTION:
;access.domain.intra.   IN      A

;; ANSWER SECTION:
access.domain.intra. 3600 IN    CNAME   *.sub.domain.intra.
*.sub.domain.intra. 3600 IN    A       192.168.1.1
*.sub.domain.intra. 3600 IN    A       192.168.1.2
*.sub.domain.intra. 3600 IN    A       192.168.1.3
*.sub.domain.intra. 3600 IN    A       192.168.1.4
*.sub.domain.intra. 3600 IN    A       192.168.1.5

在 Chrome 上它可以运行,但在 curl、firefox、wget 和 ping 上则不运行。

$ ping access.domain.intra
ping: access.domain.intra: System error
$ wget -v access.domain.intra  
--2023-06-28 12:39:41--  http://access.domain.intra/
Resolving access.domain.intra (access.domain.intra)... failed: Success.
wget: unable to resolve host address ‘access.domain.intra’

我需要使用 *.sub.domain.intra 访问我的集群,但需要从特定的 fqdn 访问。我做错了什么吗?或者有更好的方法吗?

我不想每次有新网站(如 access.domain.intra)时都创建 5 个 A 记录。当集群中添加新节点时,我只想使用 *.sub.domain.intra 更新一次 A 记录。

谢谢!

答案1

虽然 Nikita 的说法部分正确,但原因是不能在 DNS 记录的 RHS 上使用通配符。Chrome 有点松懈。

您需要为 CNAME 值指定一个明确的名称,然后将通配符和别名指向该名称。实现此目的的一种方法是 Nikita 的建议,但如果您添加将 access.domain.intra 添加到已经包含这些循环记录的域,那么该记录的生命周期可能有所不同,因此我将使用一个新的中间名称:

access.domain.intra. 3600 IN    CNAME   multi.domain.intra.
*.sub.domain.intra. 3600 IN    CNAME   multi.domain.intra.
multi.domain.intra. 3600 IN    A       192.168.1.1
multi.domain.intra. 3600 IN    A       192.168.1.2
multi.domain.intra. 3600 IN    A       192.168.1.3
multi.domain.intra. 3600 IN    A       192.168.1.4
multi.domain.intra. 3600 IN    A       192.168.1.5

答案2

应该以相反的方式设置:

access.domain.intra. A 192.168.1.1
                     A 192.168.1.2

; ...

*.sub.domain.intra. CNAME access.domain.intra.

相关内容