问题描述
说我有以下记录:
*.foo.bar CNAME *.baz.qux
如果我在test.foo.bar
上进行DNS查询,它将返回test.baz.qux
的记录吗?还是会做其他事情?
编辑:有一个原因要这样做。 AWS的Client VPN为终端提供了随机前缀,例如*.cvpn-endpoint-foo.bar.clientvpn.us-west-2.amazonaws.com
,这意味着它将接受具有用于前缀的任何值的连接(使用该连接,因此没有OpenVPN的remote-random-hostname
选项所对应的终结点A记录的DNS缓存)。我想提供一个像*.vpn.mydomain.com
这样的连接端点。因此,我想知道是否存在一种方法,可以在自定义域中使用随机前缀,并将其传递给CNAME所指向的域。
总结:有没有一种方法可以通过自定义DNS记录使用AWS的Client VPN随机前缀?
解决方法
此类CNAME
记录是非法的。您不能使用通配符*
作为CNAME
的值,而只能使用CNAME
的RHS的单个域名。你可以有类似的东西
*.foo.bar. CNAME zuka.baz.qux.
此外,请注意域名末尾的点。没有它们,区域名称将被追加。
更新进行澄清。 RHS中的'*'是 not 通配符,它是
视为普通域名。因此,除非您拥有名为*.baz.qux
的主机或子域,否则对whatewer.foo.bar
的任何查询都将返回not found: 3(NXDOMAIN)
在对通配符和 CNAMES 遇到同样的困惑之后,我遇到了这个问题。由于 Yuri 的回答让我找到了正确的方向,我设法找到了一个很好的解决方案。
基本上,我只是为 VPN 端点选择了我自己的“随机”固定子域,并将我的 CNAME
条目指向它。因此,如果 VPN 端点 DNS 名称是:
*.cvpn-endpoint-xxxxxx.prod.clientvpn.<region>.amazonaws.com
然后我使用以下 CNAME 条目:
vpn.my-domain.com CNAME <random>.cvpn-endpoint-xxxxxx.prod.clientvpn.<region>.amazonaws.com.
以上条目处理没有 remote-random-hostname
功能的客户端。然后我可以添加另一个通配符 CNAME
来捕获启用此选项的客户端:
*.vpn.my-domain.com CNAME vpn.my-domain.com
有了这两个条目,我可以很高兴地分发指向 vpn.my-domain.com
的 vpn 配置,并在需要替换 VPN 端点时将其重新映射到 Route53 中。
稍微相关的文档:https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#resolve-host-name