科普:DNS 是什么?全网最详细齐全的 DNS 科普

    DNS是域名系统 (Domain Name System) 是互联网重要服务之一。是将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

    当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS主要做什么?

DNS主要负责将域名(例:fuyeor.com)解析为IP地址(例:47.99.212.245)

    假设网站服务器的IP地址为 47.99.212.245,要访问它,则要在浏览器地址栏内输入:47.99.212.245。然而IP地址是难以记忆的,所以人们发明了DNS服务,用便于记忆的域名(例如:fuyeor.com)代替IP地址。访问域名时,DNS服务器将域名解析到IP地址上。

那么,访问诸如域名 docs.fuyeor.com 的时候,浏览器中都发送了什么呢?

其实,主要发生了以下几步:

  • 1.根据域名,进行DNS域名解析;
  • 2.根据解析的IP地址,建立TCP连接;
  • 3.向IP地址,发送HTTP请求;
  • 4.服务器处理请求;
  • 5.返回响应结果;
  • 6.关闭TCP连接;
  • 7.浏览器解析HTML;
  • 8.浏览器布局渲染;

其中:

  • 浏览器先去浏览器的DNS Cache(DNS缓存)里查询,如若DNS缓存中没有则请求DNS服务器。
  • 请求DNS服务器进行DNS解析前,首先检查域名是否在 Hosts 文件里,如若无,则去DNS服务器解析。

DNS都支持那些记录类型?

DNS一般支持A、CNAME、MX、TXT、SRV、AAAA、NS、CAA记录类型。

记录类型功能描述
AIPV4记录,支持将域名映射到IPv4地址使用。添加 A 记录可实现将域名指向 IP 地址。
AAAAIPV6记录,支持将域名映射到IPv6地址使用。实现访问者通过 IPv6 地址访问网站。
CNAME别名记录,支持将域名指向另外一个域名。
MX(MX mail exchanger)电邮交互记录,支持将域名指向邮件服务器地址。设置邮箱时需要添加 MX 记录。
TXT文本记录,是任意可读的文本DNS记录。对域名进行标识和说明,可以使用 TXT 记录。
SRV服务器资源记录,用来标识某台服务器使用了某个服务,常见于微软系统的目录管理
NS名称服务器记录,支持将子域名委托给其他DNS服务商解析
CAACAA资源记录,可以限定域名颁发证书和CA(证书颁发机构)之间的联系
PTR 指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名

DNS解析记录都有:

A记录

A记录是DNS最常见、最常用。最本质的服务。即将域名解析为IP地址。

添加 A 记录可实现将域名指向 IP 地址。

  • 记录类型:选择 A
  • 主机记录:一般是指子域名的前缀(如需创建子域名为www.dns-example.com, 主机记录输入 www;如需实现dns-example.com,主机记录输入 @)。
  • 解析线路:选择 默认 (默认为必选项,如未设置会导致部分用户无法访问 )。
  • 记录值:记录值为 IP 地址,填写 IPv4 地址。
  • TTL:为缓存时间,数值越小,修改记录各地生效时间越快,默认为10分钟。

windows 下使用 Ping 域名 的方式获取解析结果。

CNAME 记录

CNAME 记录又叫做 “别名”

当需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录,最常用到 CNAME 的场景包括做 CDN、企业邮箱、全局流量管理等。

  • 记录类型:选择 CNAME
  • 主机记录:一般是指子域名的前缀(如需创建子域名为www.dns-example.com的解析, 主机记录输入“ www”;如需实现根域名,例如fuyeor.com的解析,主机记录输入“@”)
  • 解析线路:默认为必填项,否则会导致部分用户无法解析。
  • 记录值:记录值为 CNAME 指向的域名,只可以填写域名。
  • TTL:为缓存时间,数值越小,修改记录各地生效时间越快,默认为10分钟。

MX记录

用于设置域名邮箱的记录

设置邮箱时,让邮箱能收到邮件,就需要添加 MX 记录。MX全称为mail exchanger,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当有人发邮件给“[email protected]”时,系统将对“example.com”进行DNS中的MX记录解析。如果MX记录存在,系统就根据MX记录的优先级,将邮件转发到与该MX相应的邮件服务器上。

  • 记录类型:选择 MX
  • 主机记录:一般是指子域名的前缀,(要做[email protected]的邮箱,所以主机记录输入“ @ ”;要做[email protected],如果主机记录填 mail)。
  • 解析线路:默认为必填项,否则会导致部分用户无法解析,邮件无法收取;
  • 记录值:输入内容通过联系邮箱注册商提供。例如阿里云邮提供的需要配置的解析记录值是 mx1.qiye.aliyun.com;
  • MX优先级:输入内容通过联系邮箱注册商提供,MX 优先级的数值越低,优先级别就越高(如下图,邮件会先尝试发送到 MX 优先级为 5 的mx1.qiye.aliyun.com,如果尝试失败,才会发送到 MX 优先级为10 的mx2.qiye.aliyun.com)。
  • TTL:为缓存时间,数值越小,修改记录各地生效时间越快,默认为10分钟。

注意:以上仅是对MX记录的设置为例,完整的创建邮箱,还需要同时设置CNAME、TXT记录。

AAAA 记录

当预期是实现访问者通过 IPv6 地址访问网站,可以使用 AAAA 记录实现。

  • 记录类型:选择 AAAA
  • 主机记录:一般是指子域名的前缀( 如需创建子域名为 www.fuyeor.com, 主机记录输入 www;如需实现 fuyeor.com,主机记录输入 @
  • 解析线路:默认为必选项,未设置会导致部分用户无法访问;
  • 记录值:记录值为IP地址,填写 IPV6 地址
  • TTL:为缓存时间,数值越小,修改记录各地生效时间越快,默认为10分钟。

TXT 记录

如果希望对域名进行标识和说明,可以使用 TXT 记录, TXT 记录多用来做 SPF 记录(反垃圾邮件)。

  • 记录类型:选择 TXT
  • 主机记录:一般是指子域名的前缀(如需为子域名为 www.dns-example.com 添加 TXT 记录, 主机记录输入 www;如需为dns-example.com添加TXT记录,主机记录输入 @
  • 解析线路:默认 为必选项,未设置会导致部分用户无法解析。
  • 记录值:常用情况TXT 记录是用来做 SPF 反垃圾邮件的,最典型的 SPF 格式的 TXT 记录例子为“v=spf1 a mx ~all”,表示只有这个域名的 A 记录和 MX 记录中的 IP 地址有权限使用这个域名发送邮件。
  • TTL:为缓存时间,数值越小,修改记录各地生效时间越快,默认为10分钟。

URL 显/隐性转发

将一个域名指向另外一个已经存在的站点时,需要添加 URL 记录。

URL 隐性转发

URL隐性转发是iframe框架技术,非重定向技术。

实现效果如下例子:

为浏览器地址栏输入 http://database.fue 回车,打开网站内容是目标地址 http://fuyeor.fu/home/database-fue 的网站内容,但地址栏显示url是:http://database.fue

缺点:无论用户点击任何链接,地址栏显示url都不会改变。

URL 显性转发

支持URL转发301永久重定向、302暂时性定向

示例:

为浏览器地址栏输入 http://live.fue 后访问,直接重定向到 http://fuyeor.fu/home/live-fue

其中,URL显性转发一般在云服务器上有如下限制:

  • URL转发时记录值不能为IP地址
  • URL转发不支持泛解析设置。
  • URL转发前域名支持HTTP,不支持HTTPS,转发后的目标地址支持HTTP、HTTPS。

SRV记录

SRV记录是服务器资源记录的缩写,SRV记录是DNS记录中的新鲜面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。

SRV记录主要作用是记录哪台计算机提供了哪个服务。SRV记录在微软的Active Directory(AD域)中有着重要地位,大家知道在NT4时代域和DNS并没有太多关系。但从Win2000开始,域就离不开DNS的帮助了,为什么呢?因为域内的计算机要依赖DNS的SRV记录来定位域控制器!

微软的即时通讯服务器Live Communications Server也可以依靠SRV记录定位即时通讯服务器,有鉴于SRV记录可以定位特定服务器的位置,我们可以预计,在微软将来的服务器产品中SRV记录将发挥越来越多的作用。

PTR记录

PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名

$$ 域名 \overset{A记录}{\underset{PTR记录 }{\rightleftharpoons}}IP地址 $$

反向解析是从 IP 地址到域名的映射,相对于将域名映射到 IP 地址的正向解析。一般在云解析上需要与IDC机房或主机服务商联系实现。

因为一个IP可能被多个域名使用,所以在进行反向解析时要先验证一个 IP 地址是否对应一个或者多个域名。若从 IP 出发遍历整个DNS系统来验证,将会因工程浩大而无法实现。因此,RFC1035 定义了 PTR(Pointer Record)记录。PTR 记录将 IP 地址指向域名。

windows 下使用 nslookup IP 的方式获取解析结果。

至此,我们把DNS服务器中的几种常用记录都简单进行了介绍,如果大家掌握了,那么应付一般的应用就基本上没有问题了。

延伸阅读

留下评论