DNS 01-DNS简介

DNS简介

  • DNS--域名系统(Domain Name System)
  • 用于查询域名对应的IP地址。
  • 域名与目录树类似形成一个树状结构, 最右侧为顶级域, 向左域名级别降低。
  • 所有域名都属于根域。根域由13组根域名服务器管理。
A.ROOT-SERVERS.NET - M.ROOT-SERVERS.NET
  • 根域的下一级为顶级域 TLD (top level domain)
    • 通用顶级域名:.com,.net,.gov
    • 地区顶级域名:.cn,.jp
    • 次级域名:cnblogs,baidu,google
    • 最低级的为主机名:www,mail

DNS解析过程

  • 查询本地hosts文件, unix系操作系统一般在/etc/hosts。
  • 若hosts文件不存在相关记录, 则检查本地DNS缓存。
  • 若本地DNS缓存不存在相关记录则查询首选名称服务器。

DNS功能分类

  • 主DNS服务器:存储着原始资料的DNS服务器
  • 从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器(辅助DNS服务器)
  • 缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也就递归服务器。
  • 转发器:发现非本机负责的查询请求时,不在向根域发起请求。而是直接转发给指定的一台或多台服务器。

DNS记录类型

  • DNS是一个分布式的数据库, 主要是保存域名和IP之间的关系。
  • 名称服务器使用区域文件保存自己的记录, 区域文件中除了DNS记录外还定义了一些环境变量。
    • $ORIGIN:表示本NS管理的域, 如$ORIGIN example.com。
    • $TTL:表示解析记录在缓存中的默认过期时间。

A记录和AAAA记录

A记录是IPv4主机记录;AAAA记录是IPv6主机记录

example.com.  IN  A     192.0.2.1
              IN  AAAA  2001:db8:10::1
  • 表示主机example.com对应的IPv4地址为192.0.2.1, IPv6地址为2001:db8:10::1.
  • 第二个字段IN表示Internet
  • 最后加.表示采用绝对路径, 区域文件也可以用相对路径来配置

SOA记录

授权开始:SOA(Start of Authority)记录是区域文件的第一条记录, 用于记录为本服务器授权的上级名称服务器。

example.com.  IN  SOA   ns.example.com. username.example.com. (         
    2007120710 ; serial number
    1d ; refresh interval 
    2h ; retry interval
    4w ; expiry period
    1h ; negative TTL
)
  • 上述记录表示域example.com的主名称服务器为ns.example.com.
  • username.example.com.表示管理员邮箱为username@example.com, 注意@被替换为.
  • serial number:本服务器记录的版本号
    • 每次修改版本号就会加1
    • 通过比较本服务器版本号和上级服务器版本号已进行同步。
  • refresh interval:向SOA服务器请求更新记录的间隔
  • retry interval:向SOA服务器请求更新记录失败时的重试周期
  • expiry period:SOA服务器若在此时间内不响应, 则不再将其作为SOA服务器
  • negative ttl:当查询结果为无此记录时, 缓存该结果的时间

NS记录

用于表示某个域的名称服务器

example.com.  IN  NS    ns   
example.com.  IN  NS    ns2.example.com.
  • 上述两条记录表示example.com域的名称服务器为ns.example.com, 备用名称服务器为ns2.example.com。
  • 每个区域文件中至少定义两个名称服务器,以便在一个服务器出现问题时还能正确运行。
  • 在自顶向下查询过程中, 父域的名称服务器根据自己的ns记录确定子域的名称服务器。

MX记录

MX记录用于表示某个域的邮件服务器

example.com.  IN  MX  10 mail.example.com.
  • 上述记录表示mail.example.com是example.com域的邮件服务器。
  • 也可以使用@表示根域, 使用相对路径表示邮件服务器。
@             IN  MX    20 mail2.example.com. 
@             IN  MX    50 mail3
  • 记录中第4个字段的数字表示优先级, 数字越小优先级越高。

CNAME记录

CNAME记录用于记录域名别名:

www           IN  CNAME example.com.          
wwwtest       IN  CNAME www
  • 上述记录表示www.example.com是example.com的一个别名。
  • wwwtest.example.com又是www.example.com的一个别名。

DNS相关命令

host

常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

host 选项 参数

选项
   -a:显示详细的DNS信息;
	-c<类型>:指定查询类型,默认值为“IN“;
	-C:查询指定主机的完整的SOA记录;
	-r:在查询域名时,不使用递归的查询方式;
	-t<类型>:指定查询的域名信息类型;
	-v:显示指令执行的详细信息;
	-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
	-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
	-4:使用IPv4;
	-6:使用IPv6.
	

实例

host www.baidu.com
host -a  www.baidu.com

nslookup

常用域名查询工具,就是查DNS信息用的命令。

  • nslookup有两种工作模式,即“交互模式”和“非交互模式”。
    • 在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。
    • 在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
  • 进入交互模式,直接输入命令,不加任何参数:(此时nslookup会连接到默认的域名服务器,即/etc/resolv.conf的第一个dns地址。)
nslookup
  • 进入非交互模式,输入命令:
nslookup -nameserver/ip
  • 选项:-sil:不显示任何警告信息。

dig

常用的域名查询工具,可以用来测试域名系统工作是否正常。

dig 选项 参数 
选项
   @<服务器地址>:指定进行域名解析的域名服务器;
	-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
	-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
	-P:指定域名服务器所使用端口号;
	-t<类型>:指定要查询的DNS数据类型;
	-x<IP地址>:执行逆向域名查询;
	-4:使用IPv4;
	-6:使用IPv6;
	-h:显示指令帮助信息。

参数
    主机:指定要查询域名主机;
    查询类型:指定DNS查询的类型;
    查询类:指定查询DNS的class;
    查询选项:指定查询选项。

实例

dig www.baidu.com
原文地址:https://www.cnblogs.com/liangjingfu/p/9475699.html