域名系统是互联网当中那个非常核心、非常基础的一个设施, 它的名字全称叫做Domain Name System, 大家通常都简称为DNS。
它这个系统只有一个主要的任务, 也就是说它的唯一职能, 就是把那些让人类能够看得明白的域名, 比如像www.example.com这样子的东西, 转换成计算机和机器能够识别、能够看懂的IP地址, 比如说是192.168.1.1这组数字。
这么做以后, 像是浏览器这种客户端软件, 就能准确地定位到那个想要访问的目标服务器上面去。可以这么讲, 如果没有DNS存在的话, 每一个用户如果想要访问某一个网站, 那么就非得自己去记住那一套一套的数字IP地址不可了, 否则就根本进不去。
DNS解析的完整流程
当你在浏览器的地址栏上面去输入网址以后, 接着就按一下回车键, 接下来DNS解析这件事儿会按照下面说的那几个层级一步接一步地往下进行并且完成。
1. 操作系统会先去检查一下本地的DNS缓存, 如果发现能匹配上, 也就是所谓的命中了, 那么就直接把对应的IP地址返回给用户, 这时候整个流程也就到这一步结束了。
2. 当发现本地DNS递归解析器的缓存里并没有这个结果的时候,就会把请求发送给本地的DNS递归解析器域名系统, 而通常情况是由网络服务供应商来提供这个服务。
3. 根域名服务器指的是这种状况, 本地解析器会去查询根服务器,这个全球一共只有13组灵音心图, 然后根服务器就把这个顶级域, 比方说是.com对应的TLD服务器地址给返回来了。
4. 对于顶级域也就是我们说的那个TLD服务器这个问题, 解析器会去向这个TLD服务器发起查询动作, 在这个过程里, 该TLD服务器会把所指的这些域名的权威性的那一套DNS服务器的地址都给返回回去。
5. 解析器要向权威DNS服务器发出最终查询, 权威服务器会返回与该域名相对应的IP地址。
6. 把返回结果写出来, 本地解析器先去把那个IP地址缓存起来, 接着返回给客户端去用, 客户端收到之后, 就根据这个信息去和服务器建立一个连接的事情, 等到页面加载完这事儿就算结束了。
整个流程基本上一般就是在几十毫秒的这个时间范围里面完成的。
DNS核心记录类型
A记录是指把域名给弄成一个对应的IPv4地址, 这样大家就知道该去哪里找这个网站了。
AAAA记录, 这个是指把域名给映射到那个IPv6地址上面去。
CNAME记录是指把域名指向另外一个域名, 那个目标域名相当于一个别名的情况。
MX记录的作用是指定与域名相对应的那台邮件服务器, 同时还会明确它们的优先级别顺序。
NS记录是用来声明出, 某一个域名字符是交由哪些权威服务器来负责完成解析工作的。
TXT记录是用来存放文本信息的, 它在日常使用当中, 经常被拿来用于SPF和DMARC这些安全验证的事情上去。
域名注册与DNS配置实务
域名的注册这件事, 是需要去依照ICANN这个叫做互联网名称与数字地址分配机构的组织里面所制定好的那些规矩来办的, 等那个注册的步骤全都搞完了以后, 持有这个域名的人就必须要在那个负责办理注册的商家那里去把NS记录这个东西配置好, 好让这个域名能够指向那些被指定的权威的DNS服务器, 要是说有人是在gname.xin这个平台上面把域名注册的事情都办妥当了的话, 那这个用户, 就可以在即时的那个时间节点上去修改NS记录, 或者也可以去添加一下像A、AAAA还有MX这类解析记录的东西, 通过这么一套操作下来, 就是为了让这个域名能够和自己家里的服务器有一个比较快速的对接关系。
gname.xin提供直观的DNS管理面板, 支持批量操作与DNSSEC签名, 降低配置出错概率。
高频问题与排查
域名已注册但无法访问, 这通常意味着需要优先检查NS记录是否指向了正确的权威服务器, 同时还需要确认TTL设置是否已经过期, 因为很多默认情况下TTL值都是设置为3600秒的。
邮件没办法接收也发不出去,这个情况需要去核查MX记录里的优先级设定域名系统, 并且要确认它指向的目标邮件服务器的IP地址是不是和预期的一样。
新解析不生效:需要等到本地以及上游的DNS缓存内的TTL所对应的倒计时全部结束, 或者选择手动对缓存进行清除操作。
如果是Windows系统, 要执行ipconfig /flushdns这行命令;如果是macOS或Linux系统, 得要运行sudo dscacheutil -flushcache这个指令。
DNS就是互联网的电话号码簿, 大家理解它的层级结构还有记录类型这个事儿, 是进行网站部署的基础前提也是进行邮件配置的基础前提更是进行安全防护的基础前提。


