resolv.conf

本文主要分析linux下的/etc/resolv.conf文件

内容示例

nameserver 8.8.8.8
nameserver 114.114.114
search baidu.com google.com
options ndots:5

nameserver(or ns)

DNS域名服务器的地址。一个域名服务器对应一条nameserver x.x.x.x记录。目前最多只能有三个nameserver。当有多个nameserver时,按先后顺序进行查询。如果没有指明nameserver记录,则默认使用本机上的域名服务器。

先解释两个概念:

  • 绝对域名:以点号结尾的域名,比如 bai.com.

  • 相对域名:不以点号结尾的域名

search记录只对相对域名起作用,且search会与 ndots:n 一起工作。

  • 当用户传入的相对域名中点号.的个数小于n时,syscall会依次往传入的域名后追加search列表中的后缀,直到解析出IP地址;如果都没有解析IP成功,则最后将相对域名当成绝对域名去解析

  • 当用户传入的相对域名中点号.的个数大于等于n时,则先用相对域名去解析IP,如果没有解析成功则依次添加后缀去解析

search最多能有六条记录,最多256个字符。

domain

to be continued

options

options后面可以跟随以下的参数,每个参数之间用空格隔开

ndots:n

ndots的默认值为1,最大值为15

attempts:n

resolver发送域名解析请次的次数。当超过这个次数时还没有解析成功时,则向调用程序返回错误。默认值为2,最大值为5。

timeout:n

resolver向某个nameserver发送域名解析请求的超时时间,单位为秒。当超时后,则向下一个nameserver发送解析请求。默认值为5,最大值为30

Reference

[1] https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html

Last updated