Azure DNS中泛域名解析被非匹配的更具体域名记录干扰的问题咨询
Azure DNS中泛域名解析被非匹配的更具体域名记录干扰的问题咨询
嘿,我来帮你捋捋这个问题~先把你的场景再明确下:
- 你在Azure DNS里给根域名
example.com配置了泛域名CNAME记录(应该是*.example.com吧?),指向foo.com - 同时还加了一条
dummy.api.example.com的TXT记录,值是dummy - 现在解析
bla.example.com的时候,能正常通过泛域名CNAME指向foo.com,但解析api.example.com时却失败了。你纳闷的是,明明只有更深层级的dummy.api.example.com有记录,怎么会影响到api.example.com的泛域名匹配呢?
首先说第一个问题:这种情况在Azure DNS里是符合预期的。虽然按照通用DNS规范,子域的记录不应该影响父级子域的泛域名匹配,但Azure DNS有个特殊的处理逻辑——只要某个父域下面存在任何子域的记录(不管记录类型是什么),它就会认为这个父域“已经被占用”,不会再返回泛域名记录给它。也就是说,哪怕只是dummy.api.example.com这条TXT记录存在,api.example.com就没法触发泛域名解析了。
然后是第二个问题:除了给api.example.com加显式CNAME记录之外,有没有其他办法?
- 如果你是为了处理Let's Encrypt的ACME挑战,其实可以考虑申请通配符证书,这样只需要在
_acme-challenge.example.com下加一条TXT记录就行,不用给每个子域单独创建挑战记录,从根源上避免这个冲突。 - 要是你必须保留现有子域的TXT记录,那最稳妥的办法还是给
api.example.com加一条显式的CNAME记录——毕竟Azure DNS的这个逻辑是默认行为,暂时没有配置项能直接修改它。
备注:内容来源于stack exchange,提问作者Alexander Overvoorde
相关产品推荐
相关产品推荐

