前言
DNS(Domain Name System,域名系统),用于将域名解析成IP地址的服务,能够使用户更方便的访问互联网,而不用去记IP地址。DNS协议运行在UDP协议之上,使用端口号53。
工作机制

域名服务器的分类:
- 根域名服务器(.root)
- 顶级域名服务器(.com .cn .net等)
- 权威域名服务器(例如:阿里万网提供的dns9.hichina.com,dns10.hichina.com等,腾讯DNSPod提供的 f1g1ns1.dnspod.net,f1g1ns2.dnspod.net等,自己申请搭建的权威域名服务器等)
- 本地域名服务器(设备连上网要么会自动分配,或者自己手动指定的本地域名服务器)
- 公共域名服务器(例如:google提供的8.8.8.8,国内公共域名服务器:114.114.114.114等)
DNS域名解析流程(www.pandan.xyz):
- 客户端查询本机DNS缓存www.pandan.xyz对应的IP地址(hosts文件配置,机器一启动就会加载到本机DNS缓存中)
- 如果没有找到,客户端查询本地配置的域名服务器(即:本地域名服务器,可以是第三方提供的公共域名服务器)
- 如果本地域名服务器没有查到,则由本地域名服务器迭代查询根域名服务器
- 根域名服务器返回.xyz顶级域名对应的NS记录(即解析.xyz顶级域名的权威域名服务器)
- 本地域名服务器根据.xyz的NS记录,查询出pandan.xyz二级域名的NS记录(即pandan.xyz二级域名的权威域名服务器)
- 本地域名服务器根据pandan.xyz的NS记录,查询出www.pandan.xyz域名的IP地址并缓存起来
- 本地域名服务器返回客户端www.pandan.xyz域名对应的IP地址,客户端收到IP地址并缓存起来
使用dig命令查看DNS解析的全过程,如下图:
DNS解析记录
通常一条解析记录包含以下信息:
记录类型
A记录:将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
CNAME记录:如果将域名指向另一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录
MX记录:建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录
NS记录:域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录:可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用
AAAA记录:将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SRV记录:记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)
显性URL:将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。
隐性URL:与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.net.cn隐性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址仍然为:www.net.cn)。主机记录
主机记录就是域名前缀,常见用法有:
www:将域名解析为www.example.com,填写www
@:将域名解析为example.com(不带www),填写@或者不填写
mail:将域名解析为mail.example.com,通常用于解析邮箱服务器
*:泛解析,所有子域名均被解析到统一地址(除单独设置的子域名解析)
二级域名:如:mail.example.com或abc.example.com,填写mail或abc
手机网站:如:m.example.com,填写m解析线路(运营商)
解析线路一般情况下选择:默认,
当为了满足DNS线路智能解析,比如联通用户解析到联通服务器机房IP,电信用户解析到电信机房IP功能时,就需要指定DNS解析记录的解析线路了。
常见解析线路:默认,联通,电信,移动,教育网,海外,百度,谷歌等记录值
A记录的值填写服务器IP地址(必须为IPv4地址,例如:202.106.0.20)
CNAME记录的值填写另外一个域名(例如:cname.pandan.xyz)
NS记录的值填写要解析该域名的权威域名服务器的域名(例如:万网权威DNS解析服务dns9.hichina.com,dns10.hichina.com)
......MX优先级
专门针对MX记录使用的,其他记录类型不用关心(用来指定邮件服务器接收邮件优先顺序,1-10,数值越小优先级越高)。
TTL
TTL(全称:Time To Live)指各地DNS服务器缓存该域名记录信息的时间,一般默认10分钟。
总结
一般情况下,我们常用的记录类型有:A记录,NS记录,MX记录,CNAME记录这些。
当我们需要将域名解析成对应的IP时,则选择A记录,如果是IPv6则选择AAAA记录;
当我们需要将域名作为邮件域名解析时,选择MX记录,例如:139.com,qq.com,163.com等;
当我们需要将该域名委托给其他权威域名服务器解析时,则选择NS记录,指定该域名的权威解析域名服务器;
当我们需要将我们的域名解析到CDN时,我们可以修改解析记录,选择CNAME别名记录,记录值则是CDN服务提供商的域名。