nslookup,dig,host,ping在集群中域名解析实践(单栈v6)

推一个测试镜像,并起个测试pod

1. docker pull registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3
2. docker tag registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3 xxx/xxx/jessie-dnsutils:1.3
3. 创建yaml
apiVersion: v1
kind: Pod
metadata:
  name: dnsutils
  namespace: default
spec:
  containers:
  - name: dnsutils
    image: xxx/xxx/jessie-dnsutils:1.3
    command:
      - sleep
      - "infinity"
    imagePullPolicy: IfNotPresent
  restartPolicy: Always

双栈集群访问kubernetes.default测试

  1. nslookup,dig,ping
  2. host -a不通,host通

单栈v6集群访问kubernetes.default测试


host -a就查不到了-a is equivalent to -v -t ANY

可以看到,指定-t为AAAA可以查到,ANY就不可以

ping6

结论

单栈v6集群nslookup需指定AAAA记录(ipv6),那么问题就是为什么ANY类型不通? coredns禁用了ANY查询,文档有Block ANY queries (any).

  1. nslookup默认查询v4地址,所以返回的是No Answer而不是NXDOMAIN可指定记录查询
  2. dig默认也是v4,虽然查到了v6地址但是未显式返回
  3. ping默认v4,可用ping6查询
  4. host默认支持了v4和v6,只要任意返回均可

posted @ 2024-02-19 14:39  天才老王1993  阅读(184)  评论(0)    收藏  举报