DNS域名解析

查询配置

查询域名对应的ip地址常用两种方式:文件和dns服务器

  • 文件
    在/etc/hosts中可配置ip和域名对,该文件中默认有127.0.0.1对应localhost。
  • DNS服务器
    DNS服务器有多级查询,这个在后面会介绍。

除了上面两种方式外,还有不常用的方式,实际上可以控制ip地址的查询顺序,在/etx/nsswitch.conf文件中,默认是如下配置;

hosts:          files mdns4_minimal [NOTFOUND=return] dns

DNS查询

有两种常见的命令查看DNS查询过程:dig和host。使用这两个命令时会自动跳过hosts文件。

host www.baidu.com
dig www.baidu.com

现在,将域名进行分解,以www.baidu.com为例:

  • com:类别
  • baidu:域名
  • www:主机

实际上后面还有一个'.'+根DNS服务器,默认不写,查询时从后往前查询。
使用'+trace'参数显示完整查询路径。
查询的方式有两种:迭代查询和递归查询。

  • 迭代查询

在迭代查询中,首先发起请求的主机会请求本地DNS服务器,当无法解析域名是,本地DNS服务器请求根服务器。当根服务器也无法解析是,根服务器会把其它可以解析此域名的DNS服务器的ip地址返回给本地DNS服务器。本地DNS服务器再请求刚才返回的服务器,如果还是无法解析,则请求的服务器也会返回其它的服务器ip地址。当有服务器将解析的结果返回给本地DNS服务器,本地DNS服务器再将结果返回给发起请求的主机。

  • 递归查询

与迭代查询不同的地方在于递归查询在DNS服务器无法解析域名时不会返回其它服务器的ip地址,而是自己向其它服务器发起请求。直到有主机可以解析该域名,然后逐级返回。

资源记录

在DNS服务器上,DNS信息通过一个叫作资源记录的格式进行保存。
常用的属性有:

  • NAME
  • CLASS
  • TYPE
  • DATA
NAME CLASS TYPE DATA
www IN A 192.168.1.1
mail IN A 192.168.1.2
serverl IN CNAME www
serverl IN MX mail.qq.com

其中,CLASS主要是IN,表示Internet。
资源记录类型TYPE有多种类型,如下:

资源记录类型 表示内容
A IPv4地址
AAAA IPv6地址
MX 邮件记录
CNAME 别名
PTR 指针(逆向解析)
SRV 服务资源

服务器类型

  • 主服务器
    一个域的主服务器保存该域的zone配置文件,该域的所有的配置、更改都在该服务器上进行。
  • 从服务器
    从服务器一般作为冗余负载使用,一个域的从服务器从该域的主服务器上抓取zone配置文件,从服务器不进行信息修改,所有的修改与主服务器同步。
  • 缓存服务器
    DNS从服务器不存在任何zone文件,仅仅依靠缓存为客户端提供服务,通常用于负载均衡加速使用。

zone文件

一个域通过一个zone文件保存该域的相关信息。
常用如下几个命令获取相关信息:

// 查询对应的邮件服务器
dig -t MX mail.qq.com
// 逆向解析
dig -x mail.qq.com
// 获取soa信息
dig -t soa mail.qq.com
posted @ 2018-03-14 15:20  Suraer  阅读(464)  评论(0编辑  收藏  举报