内部 zone 可以包含 Cloudflare 为公共 zone 支持的相同 DNS 记录类型。
你可以采用与管理公共 DNS 记录相同的方式管理内部 DNS 记录,区别在于代理状态不适用于内部 DNS 记录。
借助 CNAME flattening,Cloudflare 会查找 CNAME 指向的最终目标内容,然后返回该内容而不是 CNAME 记录。在 Internal DNS 中,默认应用 CNAME flattening,且无法关闭。
Cloudflare 将结合指定的 DNS view 与任何现有的引用 zone 尝试扁平化 CNAME 记录。若引用 zone 中还有另一个 CNAME,则会再次从原始 view 的角度考虑该记录。
示例
- 使用 view ID 111 查询
abc.example.local的A记录。 - Zone 600 引用 zone 700,而 zone 700 未链接到任何 view。
flowchart LR accTitle: Internal DNS zones and CNAME flattening example accDescr: Diagram exemplifying Internal DNS zones and containing CNAME and A records subgraph Internal DNS subgraph Zone 700 - net A["@ A 192.0.2.10"] B["xyz CNAME def.example.local"] end subgraph View 111 - London subgraph Zone 600 - example.local X["@ A 192.0.2.1"] Y["abc CNAME xyz.net"] U["def TXT 15192-51"] Z["def A 192.0.2.9"] end end end
在找到指向 xyz.net 的 CNAME 记录后,Cloudflare 无法在 zone 600 内解析它。不过,由于该 zone 引用了 zone 700,解析过程中会考虑 zone 700。
zone 700 中的记录指向 def.example.local,Cloudflare 随后会尝试在原始 view 中解析它。由于可以为 def.example.local 找到 A 记录,Cloudflare 将返回对应的 IP 地址——在此示例中为 192.0.2.9。
若无法扁平化 CNAME 记录,将发生以下情况:
- CNAME 记录原样返回给 Gateway resolver。
- Gateway resolver 将根据 Fallback through public DNS 配置处理返回的记录:
- On:Gateway 会将该查询发送到 Cloudflare 的公共 DNS 解析器(1.1.1.1)尝试解析。
- Off:Gateway 将响应原样返回给客户端。