亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

golang解析域名的步驟全紀錄

2020-04-01 18:50:41
字體:
來源:轉載
供稿:網友

最近遇到了一個問題。

我們的kube-apiserver配置了OIDC認證,OIDC issuer是添加了dns server記錄的,但由于某些原因,我需要覆蓋掉dns server的解析,改用hostAlias的IP地址,但是實測發現總是走了DNS解析,雖然/etc/hosts文件已經添加了自定義的hosts記錄。而那些沒有在dns server注冊的域名,還是可以通過 /etc/hosts 解析的。

原因是,kube-apiserver的基礎鏡像是 busybox ,和 centos 不同,這貨沒有 /etc/nsswitch.conf 文件,所以總是優先使用DNS解析,忽略了 /etc/hosts 文件。

解決辦法很簡單,給鏡像添加 /etc/nsswitch.conf 文件指定解析順序即可,內容如下。

hosts: files dns

即,files優先dns。

順帶完整的理一下linux系統里golang的域名解析。

golang有兩種域名解析方法:內置Go解析器;基于cgo的系統解析器。通過環境變量GODEBUG來配置。

export GODEBUG=netdns=go # force pure Go resolverexport GODEBUG=netdns=cgo # force cgo resolver

默認采用的是內置Go解析器,因為當DNS解析阻塞時,內置Go解析器只是阻塞了一個goroutine,而cgo的解析器則是阻塞了一個操作系統級別的線程。

func init() { netGo = true }

讀取 resolv.conf 失敗則強制使用cgo。

	confVal.resolv = dnsReadConfig("/etc/resolv.conf")	if confVal.resolv.err != nil && !os.IsNotExist(confVal.resolv.err) &&		!os.IsPermission(confVal.resolv.err) {		// If we can't read the resolv.conf file, assume it		// had something important in it and defer to cgo.		// libc's resolver might then fail too, but at least		// it wasn't our fault.		confVal.forceCgoLookupHost = true	}

當使用內置Go解析器時,根據解析優先級的不同,還會細分為下面四種。

const (	// hostLookupCgo means defer to cgo.	hostLookupCgo hostLookupOrder = iota	hostLookupFilesDNS   // files first	hostLookupDNSFiles   // dns first	hostLookupFiles   // only files	hostLookupDNS   // only DNS)

當 /etc/nsswitch.conf 文件不存在或者文件存在但是沒有指定 hosts 字段時,linux下使用的是 hostLookupDNSFiles ,也就是說,dns解析優先hosts解析,所以就會出現開頭出現的問題。

	nss := c.nss	srcs := nss.sources["hosts"]	// If /etc/nsswitch.conf doesn't exist or doesn't specify any	// sources for "hosts", assume Go's DNS will work fine.	if os.IsNotExist(nss.err) || (nss.err == nil && len(srcs) == 0) {		if c.goos == "linux" {			// glibc says the default is "dns [!UNAVAIL=return] files"			// http://www.gnu.org/software/libc/manual/html_node/Notes-on-NSS-Configuration-File.html.			return hostLookupDNSFiles		}		return hostLookupFilesDNS }

通過 nsswitch.conf 可以指定解析順序。代碼挺簡單的。

	var mdnsSource, filesSource, dnsSource bool	var first string	for _, src := range srcs {		if src.source == "files" || src.source == "dns" {			if !src.standardCriteria() {				return fallbackOrder // non-standard; let libc deal with it.			}			if src.source == "files" {				filesSource = true			} else if src.source == "dns" {				dnsSource = true			}			if first == "" {				first = src.source			}			continue		}		// Some source we don't know how to deal with.		return fallbackOrder	}	// Cases where Go can handle it without cgo and C thread	// overhead.	switch {	case filesSource && dnsSource:		if first == "files" {			return hostLookupFilesDNS		} else {			return hostLookupDNSFiles		}	case filesSource:		return hostLookupFiles	case dnsSource:		return hostLookupDNS	}

所以指定 hosts: files dns,解析策略就是 hostLookupFilesDNS,即優先使用 /etc/hosts 。

詳細的解析順序請參見 hostLookupOrder。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品草莓在线免费观看| 国产精品国产福利国产秒拍| 久久精品91久久久久久再现| 日韩av高清不卡| 午夜精品一区二区三区在线视| 91在线|亚洲| 国产精品白丝av嫩草影院| 大胆人体色综合| 国产在线精品一区免费香蕉| 亚洲国产精品成人av| 国产亚洲欧洲在线| 亚洲人成在线一二| 日韩美女av在线免费观看| 国产日韩在线看| 日韩黄色高清视频| 欧美成人全部免费| 一区二区三区四区在线观看视频| 欧美精品videossex性护士| 最近日韩中文字幕中文| 亚洲美女性视频| 国产日韩视频在线观看| 97超碰色婷婷| 成人网址在线观看| 国产精品com| 日韩中文在线观看| 久久99久久99精品中文字幕| 精品久久久视频| 亚洲国产中文字幕在线观看| 国产狼人综合免费视频| 91精品国产91久久久久福利| 久久躁日日躁aaaaxxxx| 日韩中文在线中文网在线观看| 亚洲精品综合精品自拍| 欧美成aaa人片在线观看蜜臀| 国产精品jizz在线观看麻豆| 日韩av电影手机在线观看| 精品久久久久久久中文字幕| 日韩黄色在线免费观看| 欧美亚洲国产视频| 91免费电影网站| 午夜欧美大片免费观看| 成人黄色在线观看| 国产亚洲一级高清| 97国产成人精品视频| www.日韩免费| 亚洲欧美日韩一区二区三区在线| 欧美日韩国产成人在线| 国产丝袜精品视频| 国产精品午夜视频| 国产精品成久久久久三级| 久久九九亚洲综合| 久久久久久亚洲精品中文字幕| 国产不卡在线观看| 国产一区二区三区视频| 日韩av综合中文字幕| 91手机视频在线观看| 国产91精品高潮白浆喷水| 热久久这里只有| 国产成人av在线播放| 中文字幕日韩欧美精品在线观看| 国产美女精彩久久| 亚洲国产日韩一区| 欧美激情欧美激情| 国产精品免费电影| 日本高清久久天堂| 国产精品黄色影片导航在线观看| 2019av中文字幕| 欧美丰满少妇xxxx| 久久天天躁狠狠躁老女人| www.日韩欧美| 一本色道久久88综合亚洲精品ⅰ| 国产一区二区三区在线观看网站| 中文字幕国产日韩| 九色成人免费视频| 欧美亚洲国产日本| 亚洲视频日韩精品| 国产欧美精品xxxx另类| 日韩精品视频观看| 日本亚洲欧美成人| 久久久久久网站| 国产精品美女免费| 国产精品99一区| 亚洲自拍高清视频网站| 国产成人在线亚洲欧美| 久久久国产一区二区三区| 欧美日韩不卡合集视频| 日韩成人网免费视频| 欧美日本国产在线| 亚洲午夜av久久乱码| 91免费版网站入口| 国模极品一区二区三区| 国产成+人+综合+亚洲欧洲| 国产亚洲欧美日韩美女| 欧美中文在线观看国产| 91久久精品美女高潮| 国产精品极品美女在线观看免费| 国产日产欧美精品| 色哟哟入口国产精品| 精品国产91久久久久久| 久久噜噜噜精品国产亚洲综合| 日本精品中文字幕| 国产日韩欧美成人| 欧美理论片在线观看| 国产97在线|亚洲| 亚洲国产第一页| 成人做爽爽免费视频| 国产精品女人久久久久久| 欧美第一黄网免费网站| 日韩av在线最新| 日韩精品日韩在线观看| 亚洲成av人影院在线观看| 欧美片一区二区三区| 55夜色66夜色国产精品视频| 美女999久久久精品视频| 国产亚洲一区精品| 日韩成人在线网站| 国产亚洲精品综合一区91| 亚洲人成在线一二| 欧美成人午夜激情在线| 国产精品久久久久久亚洲调教| 日韩电影中文字幕在线观看| 日韩的一区二区| 久久99久国产精品黄毛片入口| 成人黄色中文字幕| 欧美最猛性xxxxx亚洲精品| 日韩欧美精品中文字幕| 久久久久国产精品免费| 欧美精品制服第一页| 中文字幕最新精品| 欧美精品videos另类日本| 91免费观看网站| 成人性生交大片免费看视频直播| 色99之美女主播在线视频| 欧美日韩亚洲一区二| 岛国精品视频在线播放| 亚洲精品天天看| 国产精品视频yy9099| 一区二区日韩精品| 亚洲人成网站在线播| 亚洲第一综合天堂另类专| 韩国日本不卡在线| 亚洲成人激情视频| 国产视频精品免费播放| 国产精品自拍偷拍视频| 国产精品极品美女在线观看免费| 久久精品国产91精品亚洲| 亚洲毛片在线观看| 国产精品r级在线| 欧美成人精品一区二区| 人体精品一二三区| 久久色精品视频| 欧美福利视频网站| 青青在线视频一区二区三区| 亚洲精品理论电影| 欧美成人免费网| 中文字幕欧美在线| 亚洲国产欧美一区| 久久国产精品久久久久久久久久| 欧美大片va欧美在线播放| 亚洲第一视频在线观看| 精品亚洲精品福利线在观看| 68精品国产免费久久久久久婷婷| 亚洲高清免费观看高清完整版| 亚洲桃花岛网站|