DNS解析
DNS的几个概念:
一、根域
“.”,即域名最后的“.”,浏览器输入一般都会省略。
根域服务器具有13个IP地址,但是机器数量却不是13台,这些IP地址借助了任播技术,我们可以在全球设立这些IP的镜像。
二、域的划分
根域下来就是顶级域或者一级域,如com.、net.、cn.、jp.等。
每个域都会有域名服务器,也叫权威域名服务器。权威域名服务器不做递归。
三、域名服务器
域名服务器即能够提供域名解析的服务器,上面的记录类型可以是A(address)记录、NS(name server)记录、MX(mail)、CNAME等。
四、DNS查询模式
递归:A查询B,如果B找不到,那么就会B向C发起请求,直到找到请求,后将结果发送給A.
迭代:A查询B,如果B找不到,但是知道C有,那么告诉B的C服务器地址,让B去向C服务器发起请求。
递归查询:在该模式下,服务器接收到客户端DNS查询请求,必须响应一个准备的查询结果。如果DNS服务器本地没有存储查询DNS信息,会询问其他服务器,并将返回查询结果响应给客户端。
迭代查询:DNS服务器会向客户端响应本地能否解析的DNS服务器地址。如果DNS服务器本地没有存储查询DNS信息,会响应客户端另一个DNS服务器地址,客户端再向新的DNS服务器提交请求,依次循环直到返回查询结果。
五、DNS解析常用命令
host
host语法:
Host [option] [domain] [server]
选项支持:
- -a:即-v -t Any
- -c,指定查询class。
- -d,即-v
- -l,列出域名对应所有hosts,使用AXFR
- -r,关闭递归
- -t,指定查询记录类型
- -T,TCP/IP模式
- -v,打开verbose输出
- -4,只使用IPv4传输
- -6,只使用IPv6传输
- -V,打印版本号
nslookup
nslookup [-option] [name] [server]
如果在nslookup后面没有加上任何主机或者ip,那将进入nslookup查询功能,可以设置其他参数,如
set type=any :查询所有类型记录。
set type=mx :查询mx记录
dig
dig(domain information groper):用于探测DNS,会打印出DNS name server的回应。
dig语法:dig [@server] domain [type]
域名解析:dig [@server] domain
反向解析:dig -x IP @server
查找域的授权dns服务器:dig domain +nssearch
从根服务器追踪一个域名解析过程:dig domain +trace
六、附录
其他关键信息
DNS请求端口号默认53。
/etc/hosts :记录hostname对应的ip地址(配置IP不符合规范则不生效)
/etc/resolv.conf :设置DNS服务器的ip地址
/etc/host.conf :指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)
A记录与CNAME记录
A记录是把一个域名解析到一个IP地址,而CNAME记录是把域名解析到另外一个域名,而这个域名最终指向一个A记录,在功能实现上A记录与CNAME记录没有区别。
CNAME记录在做IP地址变更时比A记录方便。
DNS域名解析中的域名记录
A记录:指向IPv4地址的记录。
CNAME记录:也叫别名记录,可以将多个记录映射到同一台计算机上。
MX记录:MX记录的权重对Mail服务很重要,发送邮件的时候,Mail服务器先对域名进行解析,查询mx记录,优先查找权重数最小的服务器。
TXT记录:一般是某条记录的设置说明,还可以用于验证域名的所有者。
AAAA记录:指向IPv6地址的记录。
NS记录:是域名服务器记录,用来指定域名由哪台服务器解析。
SRV记录:记录了哪台计算机提供了哪个服务,格式为:服务的名字.协议的类型。
SOA记录:起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中哪一台是主服务器。
TTL(time to live)值:表示记录在DNS服务器中的缓存时间,TTL的单位是秒,一般为3600秒。