域名服务器又被我们叫做DNS Server, 它是互联网基础设施里面最核心的一个组件之一。
它的根本作用是把人类可读的域名(比如 www.example.com)转换成机器能够识别的IP地址, 这让终端设备能够精准定位, 并且访问目标服务器, 如果没有域名服务器, 互联网就只有那一串串的数字IP构成的样子, 这时候网站访问、邮件收发、还有应用的连接这些活儿, 都是没法实现的。
我们把域名服务器的这些个核心功能拿来总结总结, 可以分成下面说的这么四个层面。
域名解析(DNS Resolution)
用户把域名输入之后呢, 解析请求就按照顺序经过了本地DNS还有根服务器再就是顶级域服务器最后到权威服务器这一层层地去做查询动作了, 到最后就返回了对应的那个IP地址。这就是域名服务器里面最基础的功能, 同时也是被调用频率最高的一个功能点。全球范围内的话日均解析这个量达到了数千亿次那么多个。
流量分发与负载均衡
我们可以通过在同一个域名下面配置多条A记录, 同时也可以配置多条CNAME记录, 这样域名服务器在处理访问请求的时候, 就可以把请求均匀地分发到不同地域的服务器节点上面去, 从而实现负载分散的目的, 同时还能实现故障自动切换的功能, 以此来保障我们的业务可以达到高可用的状态。
邮件路由(MX记录)
在域名服务器里面存在一个叫做MX记录的东西, 这个东西指定了该域名对应的邮件接收服务器是什么样子,并且还说明了它们的优先级顺序是怎么排列的, 它是电子邮件能够被正确投递到目标服务器那里的一个关键依据。
安全与权威管理
现在的域名服务器, 大家已经普遍都使用DNSSEC这个数字签名验证办法了, 同时还用CAA记录这种约束机制, 这样一来, 就能比较有效地防止DNS骗人、抢注域名还有中间人攻击这些事儿, 最终就是保证解析出来的数据是完整可靠的, 而且来源也让人能够相信。
在互联网建站和运维的实际操作过程里, 域名服务器的配置工作以及调优工作, 一般都得靠着域名注册平台还有DNS管理平台来完成。以 gname.xin 这样的域名服务平台为例, 用户可以通过后台的界面来对这些工作进行可视化编辑。
用户可以选择A记录, 也可以选择CNAME, 还可以选择TXT或者MX等各种类型的DNS条目进行编辑。用户可以灵活地设置解析生效的时间, 也就是大家常说的TTL参数。通过这几步操作, 人们就能很快地完成域名服务器从部署到优化的全过程了。
在日常使用域名服务器的时候, 大家经常会遇到一些比较高频率出现的问题, 对于这些问题的解决, 有一套标准的处理路径可以遵循。
解析修改后未生效: 您目前需要等待原本的时间周期结束, 或者手动去刷新一下本地 DNS 的缓存, 对于 Windows 系统来说, 执行 ipconfig /flushdns 就可以, 而对于 Linux 系统, 则是执行 sudo systemd-resolve --flush-caches, 全球范围完全生效通常需要 24 至 48 小时。
更换域名服务器(NS记录): 需要到域名注册商的管理后台那里去, 把Nameserver指向新的权威DNS服务商, 这样改完以后大约24小时内全球才会生效, 在这段期间里面, 建议使用原服务商和新的服务商一起来运行, 以此来降低出现中断的风险。
递归查询与迭代查询:终端用户发起的是递归查询, 本地DNS会代为完成全部的查询链路。在各级服务器之间, 它们执行的是迭代查询, 只返回下一跳的地址。这两种方式协同工作, 最终完成解析。
域名服务器这个东西, 它就像一个地址翻译的中枢地带一样, 它是把用户和那个网络资源给连接起来的。它的解析、分发这些功能, 还有路由还有安全这四个方面合在一起, 就共同构成了互联网能够正常运行的那个最底下的基础支撑部分。
所以, 对于网站管理员或者是开发者, 再加上企业里面的那些做IT工作的人员来说, 要去正确地理解并且运用好域名服务器这件事儿, 绝对是一个很需要的基础能力。


