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测试
- nslookup,dig,ping

- 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).
- nslookup默认查询v4地址,所以返回的是No Answer而不是NXDOMAIN可指定记录查询
- dig默认也是v4,虽然查到了v6地址但是未显式返回
- ping默认v4,可用ping6查询
- host默认支持了v4和v6,只要任意返回均可

cncncn

浙公网安备 33010602011771号