禁用 ipv6

如何利用coredns 禁用ipv6的解析
如果K8S集群宿主机没有关闭IPV6内核模块的话,容器请求coredns时的默认行为是同时发起IPV4和IPV6解析。
由于我们通常只使用IPV4地址,或者是你对主机环境暂无支持ipv6,那么实际的业务场景中,AAAA解析成功返回来的IPv6地址,是会访问失败的。
所以此时如果我们仅仅在coredns中配置DOMAIN -> IPV4地址的解析的话,当coredns收到IPV6解析请求的时候就会因为本地找不到配置而foward到upstream DNS服务器解析,从而导致容器的DNS解析请求变慢。
coredns提供了一种plugin叫做template,经过配置后可以给所有的IPV6请求立即返回一个空结果的应答,避免请求forward到上游DNS。
而对于业务来说,ipv6解析不成功,会降级到ipv4的A解析。
template插件默认是在coredns启用的,只需要在配置文件中添加如下配置即可:

  1. template ANY AAAA {
  2. rcode NXDOMAIN
  3. }
文档更新时间: 2022-05-03 18:07   作者:张尚