go dns解析参数配置

// lookup_dns.go
package main

import (
	"net"
	"time"

	"k8s.io/klog/v2"
)

func main() {
	dns := "kubernetes.default"
	if _, err := net.LookupHost(dns); err != nil {
		klog.Errorf("lookup %s failed, err is %v", dns, err)
	}
	time.Sleep(time.Hour)
}

参数加在/etc/resolv.conf中options里面。

  • 参数1:single-request和single-request-reopen

默认并行。
single-request或者single-request-reopen,表示串行,先A再AAAA。

single-request-reopen表示A和AAAA请求源端口不同,但一般情况下源端口不会相同。
这里的串行和并行是针对相同nameserver和相同域名,解析A和AAAA。

  • 参数2:ndots

默认是1。
如果解析的域名中点的个数比ndots小,那么先拼接search解析,且解析失败后才按原域名来解析;否则,先按原域名来解析,解析失败后拼接search解析。

  • 参数3:timeout

默认5s。
如果udp发生丢包,需要等待5s超时,最小可设置为1s。

 

posted on 2024-02-04 23:14  王景迁  阅读(38)  评论(0编辑  收藏  举报

导航