美文网首页
一文读懂DNS服务器、DNS解析、传统DNS存在的问题、如何防止

一文读懂DNS服务器、DNS解析、传统DNS存在的问题、如何防止

作者: 剑老师 | 来源:发表于2021-06-19 16:35 被阅读0次

    本文首发于公众号【一个老码农】

    • 什么是DNS解析

    DNS全称domain name system,中文名为“域名系统”。那么DNS解析又被称为域名解析。
    前面的文章中我们说过,在互联网中,我们访问一台计算机最终都是通过ip来访问。域名和ip之间有一个映射关系,通过域名访问网站最终也会转化成ip来进行访问。从域名解析出ip的整个过程,我们就称之为DNS解析。而DNS的资源信息都是存储在DNS服务器上。

    • 根域名服务器

    全球有13台根域名服务器,包括一台主根服务器和12台辅根服务器。其中一台主根服务器加9台辅根服务器在美国;其它三台辅根服务器,其中欧洲两台分别在英国和瑞典;亚洲一台在日本。

    13个根域名服务器,并不是13台实体服务器。每一个根域名服务器背后都有很多台实体服务器在运行。每个根服务器都有若干个镜像根服务器分布在全球各地。

    • DNS解析过程

    在讲DNS解析过程之前,我们先了解一下域名的组成。
    域名是由两个或两个以上部分组成,各部分之间用”.”分割。最后一个点我们称之为顶级域名,顶级域名的子域名我们称之为二级域名。二级域名的子域名我们称之为三级域名。
    如:域名www.xxxx.com,其中.com就是我们所说的顶级域名;而xxxx.com为.com的子域名,即二级域名;www.xxxx.com为二级域名的子域名,其中www为主机名。

    DNS解析分为迭代查询和递归查询两种。

    迭代查询

    迭代查询是通过逐级获取子域名的权威DNS服务器地址,并通过权威服务器地址最终拿到域名ip地址。流程如下:

    1.客户端向本地DNS服务器发起请求查询www.xxxx.com的ip地址(本地DNS是电脑设置的DNS,一般默认为运营商的DNS,如电信为114.114.114.114)
    2.本地DNS服务器收到请求后,向根域名服务器发起解析请求查询www.xxxx.com的ip地址
    3.根域名服务器向本地DNS服务器返回.com顶级域名服务器地址
    4.本地DNS服务器收到响应后,向顶级域名服务器发起解析请求
    5.顶级域名服务器收到请求后,返回.xxxx.com权威域名服务器地址
    6.本地DNS服务器收到响应后,向.xxxx.com权威域名服务器发起解析请求
    7 .xxxx.com权威域名服务器收到请求后,返回www.xxxx.com对应的域名ip给本地DNS服务器
    8.本地DNS收到域名ip后返回给客户端,并进行缓存

    迭代查询流程图:

    迭代查询

    递归查询

    递归查询是通过递归的访问各级域名服务器,查询到ip地址后递归的返回给客户端,流程如下:

    1.客户端向本地DNS服务器发起请求查询www.xxxx.com的ip地址
    2.本地DNS服务器向根DNS服务器发起解析请求
    3.根DNS服务器收到请求后,向.com顶级DNS服务器发起查询请求
    4..com顶级DNS服务器收到请求后,向.xxxx.com权威服务器发起查询请求
    5..xxxx.com返回www.xxxx.com所对应的ip地址给.com顶级DNS服务器
    6.顶级DNS服务器返回ip地址给根DNS服务器
    7.根DNS服务器返回ip给本地DNS服务器
    8.本地DNS服务器把ip进行缓存,并返回给客户端

    流程图:


    递归查询
    • DNS资源记录

    DNS服务器的资源记录常见的几种有:A记录、NS记录、CNAME记录

    1.A记录
    A记录是指记录域名和其对应的ip,也正是因为A记录,才能由域名到ip解析成功。如果为ipv6地址,则需要添加AAAA记录。

    2.NS记录
    NS记录我们称之为域名解析服务器记录,用来指定子域名解析的域名解析服务器

    3.CNAME记录
    CNAME记录我们称之为别名记录,一般用来指定域名的别名。如www.baidu.com便有一个别名为www.a.shifen.com

    • 传统DNS存在的问题

    1.DNS劫持
    由于传统DNS是通过UDP明文传输的,我们知道UDP数据传输本身是不可靠的,这就可能会被钓鱼DNS服务器劫持,从而解析出错误的ip地址。

    2.域名转发
    如A运营商为了节约成本,将解析请求转发至B运营商,从而返回了域名在B运营商对应的ip地址,造成跨运营商访问,进而影响访问速度。

    3.解析延迟
    因为DNS查询过程,无论递归和迭代都需要请求多个DNS服务器才能最终获取ip,这就可能会造成一定的解析延时,而如果DNS服务器距离客户端较远,解析延时则更为明显。

    • HttpDNS

    为解决传统DNS的诸多问题,人们推出了HttpDNS的域名解析方案,HttpDNS不走传统的DNS解析,而是通过http请求直连的方式获取域名所对应的ip,这样就可以解决传统DNS可能被劫持的问题。由于客户端请求的是HttpDNS服务器,不走运营商本地DNS,所以也就不存在域名转发的问题
    而其DNS服务器集群分布在多个地点多个运营商,它可以根据客户端的国家、省市、运营商等信息选择最佳的服务节点进行解析,这样也从一定程度上解决DNS解析延迟问题。
    如今腾讯、阿里、谷歌等都有自己的HttpDNS服务,我也在项目中使用了阿里的HttpDNS服务,从而极大的提升了国外用户的访问速度。大家可根据实际情况选择适合自己的HttpDNS服务。

    关注公众号【一个老码农】,更多优质技术内容等你来
    原文地址

    相关文章

      网友评论

          本文标题:一文读懂DNS服务器、DNS解析、传统DNS存在的问题、如何防止

          本文链接:https://www.haomeiwen.com/subject/wzqdyltx.html