1. 本网站的系统架构
2. (阿里云)域名解析配置
2.1. 快速配置
2.2. 自定义配置
2.2.1. 记录类型
2.2.2. 主机记录
2.2.3. 记录值
2.2.4. 解析请求来源
3. 域名解析原理
3.1. 什么是DNS
3.2. DNS的解析原理
3.2.1. 1.本地查询
3.2.2. 2.客户机到服务器查询
3.2.3. 3.服务器到服务器查询
3.3. 递归查询与迭代查询
3.3.1. 递归查询
3.3.2. 迭代查询
4. 常用的公共DNS服务器
1. 本网站的系统架构
网站示例: sunlogging.com
服务器: 阿里云ECS
服务器系统: Ubuntu 24.04 LTS
博客框架: Hexo
网站主题: Volantis
2. (阿里云)域名解析配置
2.1. 快速配置
对阿里云购买的域名进行,使其指向自己购买的云服务器的IP。也就是域名与IP绑定。
操作路径:
阿里云控制台 -> 产品与服务 -> 域名 -> 域名列表 -> 解析
示例:
进入域名配置页面
选择新手引导进行快速配置
填写域名和IP
将 sunlogging.com 和 www.sunlogging.com 解析(绑定)到自己的服务器的公网IP。
2.2. 自定义配置
除了新手引导进行快速配置外,还可以点击添加记录进行自定义配置域名解析。
2.2.1. 记录类型
记录类型指解析记录的用途,例如:网站、邮箱等。
记录类型
含义
备注
A
将域名指向一个IPV4地址
最常用的一种方式
AAAA
将域名指向一个IPV6地址
CNAME
将域名指向另外一个域名
CDN加速时需要用到
NS
将子域名指定其他DNS服务器解析
MX
将域名指向邮件服务器地址
SRV
记录提供特定的服务的服务器
TXT
文本长度限制512,通常做SPF记录(反垃圾邮件)
CAA
CA证书颁发机构授权校验
显性URL
将域名重定向到另外一个地址
隐性URL
与显性URL类似,但是会隐藏真实目标地址
2.2.2. 主机记录
主机记录指域名前缀,例如:www、mail等。
主机记录
含义
备注
@
表示主域名,如: sunlogging.com
@是一个固定值,不能用其他字符代替
.
泛解析,表示满足格式*.sunlogging.com的所有域名
记录类型为显性URL时不允许设置泛解析
abc
表示二级域名abc.sunlogging.com
这里的abc可以替换成任意自定义的子域名,常见的二级域名参加下个表格
abc.def
表示三级域名abc.def.sunlogging.com
这里的abc.def可以替换成任意自定义的二级和三级域名
常用的二级域:
常用二级域
含义
www
表示域名: sunlogging.com,常用于互联网的网站业务
表示域名: mail.sunlogging.com,常用于邮箱业务
m
表示域名: m.sunlogging.com,常用于手机网站
2.2.3. 记录值
记录值指解析记录的具体内容,例如:IP地址、域名等。
记录类型不同,记录值填写的内容也不一样,具体如下:
记录类型
记录值
A
填写 IPv4 的地址
AAAA
填写 IPv6 的地址
CNAME
填写 CNAME 指向的域名
NS
填写 要授权的 DNS 服务器域名,例如腾讯云解析的DNS服务器域名ns3.dnspod.net
MX
输入内容通过联系邮箱注册商提供。例如阿里云邮提供的需要配置的解析记录值是mx1.qiye.aliyuncom
SRV
格式为优先级权重 端口目标地址 ,每项中间需以空格分隔;例如:0 5 5060 www.cloud-example.com
TXT
常用情况 TXT 记录是用来做验证类的操作,比如托管子域名时需要添加TXT记录验证,记录值5d597b2c12464a7a8d0dde6b858ce543
CAA
CA证书颁发机构授权校验
显性URL
填写具体的URL
隐性URL
填写具体的URL,如:http://www.aliyun.com:80
2.2.4. 解析请求来源
指域名访问者所在的地区和使用的运营商网络。如:中国联通、中国电信、百度、必应、谷歌等。
非必填项,可以不用管,选默认值就可以了。
3. 域名解析原理
3.1. 什么是DNS
DNS(Domain Name System,域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。
网络上计算机之间的通讯是通过IP地址来完成的,但IP地址并不便于记忆,我们需要一个方便记忆的名字来识别每一台计算机,这就是域名,而维护域名的系统就叫做域名系统,域名系统其实就是名字系统。域名是唯一的,IP也是唯一的,给你一个域名要知道它对应的IP地址,就需要有一个域名到IP的映射。 由域名去找IP地址的查找过程就是DNS的解析,进行DNS解析的服务器叫DNS服务器,而DNS服务器便充当了“翻译官”的角色,将域名翻译成IP地址。
3.2. DNS的解析原理
DNS的解析也就是通过域名查找主机的过程,其查找过程主要有三个步骤:
本地查询(客户机的DNS解析器)
客户机到服务器查询
服务器到服务器查询
3.2.1. 1.本地查询
在浏览器中输入www.microsoft.com域名,操作系统会先检查自己本地的hosts文件是否有这个域名的映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
Win7系统下本地的hosts文件在C:\Windows\System32\drivers\etc\hosts,Linux系统下在:/etc/hosts。
如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器(也就是上图中中间部分的DNS Server),在本地DNS服务器中查找 。
Win7系统下TCP/IP参数的设置在:控制面板 ->网络和 Internet ->网络连接 ->本地链接 ->属性 ->网络 ->Internet协议版本4(TCP/IPv4)
3.2.2. 2.客户机到服务器查询
本地DNS服务器收到查询时,如果要查询的域名,包含在本地配置的区域资源文件中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
如果本地DNS服务器区域资源文件解析 与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询。
3.2.3. 3.服务器到服务器查询
如果未用转发模式,本地DNS就把请求发至根DNS服务器,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名管理的服务器的IP。本地DNS服务器收到IP信息后,将会联系"负责.com域名解析的这台服务器“。这台“负责.com域名解析的服务器”收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(microsoft.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找microsoft.com域服务器,重复上面的动作,进行查询,直至找到www.microsoft.com主机。
如果用的是转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器(microsoft.com),由上一级服务器进行解析,上一级服务器如果不能解析,会把转请求转至上上级(.com)或找根DNS服务器,以此循环。不管是本地DNS服务器用是是转发模式,还是非转发模式,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
3.3. 递归查询与迭代查询
3.3.1. 递归查询
主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询,即:完全代理掉主机的查询请求。因此,递归查询返回的查询结果要么是所要查询的IP地址,要么是报错(表示无法查询到所需的IP地址)。
3.3.2. 迭代查询
本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。
4. 常用的公共DNS服务器
参见文档: 博客建站 - 常用的公共DNS服务器
大家好,我是陌尘。
IT从业10年+, 北漂过也深漂过,目前暂定居于杭州,未来不知还会飘向何方。
搞了8年C++,也干过2年前端;用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。
感谢大家的关注,期待与你一起成长。
【SunLogging】
扫码二维码,关注微信公众号,阅读更多精彩内容