我正在尝试将我的 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.