业界动态
DNS完整解析流程
2024-11-01 00:08
一、DNS介绍

  域名(Domain Name)是一个标记主机或主机组的名称,相当于IP地址的别名。

DNS完整解析流程

  域名系统(Domain Name Server)是将域名解析成IP地址的互联网基础服务,提供该服务的服务器成为域名解析服务器。

二、域名结构

域名系统是一个分布式系统,Internat采用树状结构命名,结构如下图所示
在这里插入图片描述

三、DNS解析过程

在这里插入图片描述

1、DNS域名解析服务器分类
  • 本地域名服务器(Local DNS)

    如果通过DHCP配置,Local DNS由ISP提供

  • 根域名服务器(Root DNS)

    当Local DNS解析不到时,第一步向Root DNS查询,并获得顶级域名服务器的IP地址。Root DNS本身并不直接用于域名解析,仅用于返回可供查询的顶级域名服务器IP地址。

  • 顶级域名服务器(Top Level DNS)

    负责管理在该顶级域名服务器下注册的二级域名

  • 权威域名服务器(Authoritative DNS)

    在特定区域内具有唯一性,负责维护该区域内的域名和IP地址映射关系,在DNS应答报文中,标识为AA标识本次DNS记录是否来自于权威域名服务器,否则可能来自于缓存。

2、DNS域名解析中添加的各项解析记录

​ DNS服务器会把一个域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。域名解析时会添加解析记录,包括:A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录、SRV记录、URL转发。

  • A记录:将域名指向一个IPv4地址,需要增加A记录
  • CNAME记录:如果将一个域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务提供商提供的一个域名。
  • MX记录:建立电子邮箱服务,将指向电子邮箱服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写改记录。
  • NS记录:域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录。
  • AAAA记录:将主机名或域名指向一个IPv6地址,需要添加AAAA记录
  • SRV记录:添加服务器记录服务器服务器记录时会添加此项,SRV记录了那台计算机提供了那哪个服务,格式为:服务的名字.协议的类型
  • SOA记录:SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器
  • DS记录:委托签发者,此记录用于鉴定DNSSEC已授权区域的签名密钥
  • RRSIG记录:DNSSEC 证书,DNSSEC 安全记录集证书,与 SIG 记录使用相同的格式
  • PTR记录:PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名
  • 现实URL转发记录:将域名指向一个http(s)协议地址,访问域名时,直接跳转至目标地址。
  • 隐士URL转发记录:将域名指向一个http(s)协议地址,访问域名时,直接跳转至目标地址,隐性转发会隐藏真实的目标地址(浏览器显示源域名)。

​ A记录是把域名解析到IP地址,二CNAME是把域名解析到另一个域名,而这个域名最终会指向一个A记录,在实现功能上A记录和CNAME没有区别。

​ CNAME记录在做IP变更时要比A记录方便。CNAME允许将多个域名映射到一台机器,当有多个域名需要指向同一服务器IP,此时可以将一个域名做A记录指向服务器IP,然后将其他的域名做别名(即:CNAME)到A记录的域名上。当服务器IP地址变更时,只需要更改A记录的那个域名到新IP上,其它做别名的域名会自动更改到新的IP地址上,而不必对每个域名做更改。

3、DNS解析流程
  • 查询本地hosts文件映射

    手动设置IP与域名的映射关系,保存在hosts文件中

    • windows:C:WindowsSystem32driversetchosts
    • linux:/etc/hosts
  • 查询浏览器或本地DNS缓存

    浏览器或本机都会对DNS进行缓存

  • 委托LSP-DNS查询(递归查询

    本机向LDNS查询一般都是采用递归查询:如果本机所询问的本地域名服务器不知道查询的IP地址,那么本地域名服务器就以DNS客户的身份,想其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步查询。因此递归查询的结果或者是所要查询的IP,或者报错。

  • LSP-DNS做迭代查询

    本地域名服务器向根域名服务器查询通常采用迭代查询:当跟服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出查询对应的IP地址,要么告诉本地域名服务器下一步应该向哪个域名服务器查询。

    然后本地域名服务器进行后续查询,根域名服务器通常把自己知道的顶级域名服务器告诉本地域名服务器,本地域名服务器再去顶级域名服务器查询。

  • LSP-DNS将查询结果返回到本机

4、DNS解析步骤

在这里插入图片描述

  • 首先检查DNS缓存,如果缓存过期或未命中,客户端需要向Local DNS发起查询请求报文
  • 客户端向 Local DNS 发送查询报文 ,Local DNS 首先检查自身缓存,如果存在记录则直接返回结果,查询结束;如果缓存老化或未命中,则下一步
  • Local DNS 向根域名服务器发送查询报文 ,返回 .com 顶级域名服务器的地址
  • Local DNS 向 .com 顶级域名服务器发送查询报文 ,返回所在的权威域名服务器的地址
  • Local DNS 向 baidu.com 权威域名服务器发送查询报文 ,得到 IP地址,存入自身缓存并返回给客户端
5、实时跟踪解析过程
  • 查询域名对应的IP地址
  • 追踪解析过程

​ 事实上,返回CNAME的同一个包中,也返回了 对应的NS列表,之后的解析流程没有跟踪到。
在这里插入图片描述

  • 本机向Local DNS请求查询
  • Local DNS向根域名服务器Root-DNS请求查询,根域名服务器返回com.域的顶级域名服务器GTLS-DNS
  • 向com.域GTLS-DNS请求查询,com. 域返回baidu.com域的服务器IP名称列表(通过NS的方式
  • 向baidu的权威域名解析服务器请求查询,返回A记录和CNAME
  • 向Root-DNS请求
  • 向com.域GTLS-DNS请求查询
  • 向shifen.com域DNS查询
  • 向a.shifen.com域查询
  • 拿到的A记录
  • Local DNS返回的CNAME以及的IP
6、DNS缓存

​ 一次完整的 DNS 查询过程需要访问多台 DNS 服务器才能得到最终的结果,这肯定会带来一定的时延。为了改善时延,DNS 服务并不是每次请求都要去访问 DNS 服务器,而是访问过一次后将 DNS 记录缓存在本地。具体来说,DNS 服务是一个多级的缓存

​ 浏览器缓存 -> 操作系统缓存 -> 路由器缓存 -> Local DNS 缓存 -> DNS 查询

​ 缓存并不是永久有效的,前面提到过 DNS 应答报文中的 TTL(Time to Live)值,它决定了 DNS 记录在缓存中的有效时间。需要注意的是,TTL 只是一个参考值,实际使用的缓存有效时间不一定等于该值,甚至是固定值。

四、DNS存在的问题
1、DNS查询时延

​ 一次完整的 DNS 查询过程需要访问多台 DNS 服务器才能得到最终的结果,这肯定会带来一定的时延。从实践来看,这个时间还不容小觑。

2、缓存一致性

​ DNS 缓存的存在虽然减少了时延,却是以牺牲一致性(consistency)为代价的。具体来说:Local DNS 是分地区、分运营商的,在域名解析缓存的处理上,实现策略就不统一了。有时候 Local DNS 的解析结果可能不是最近、最优的节点,有的时候并不会遵从 TTL 的限制,而是设置一个固定时间。这就会导致域名指向新的 IP 地址后,一些客户端依然访问了缓存中 旧的 IP 地址。

3、DNS劫持

​ 由于 DNS 缺乏加密、认证、完整性保护的安全机制,容易引发网络完全问题。最常见的域名劫持攻击是针对 DNS 报文首部的事务 ID进行欺骗,由于事务 ID 在查询报文和应答报文中是匹配的,因此伪装 DNS 服务器可以提前将事务 ID 相同的伪造报文发送到客户端,以实现域名劫持(前提是合法的报文还未到达,把目标网站域名解析到错误的 IP 地址。

4、调度不精确

​ 由于存在缓存、转发、NAT 等问题,权威的 DNS 服务器可能会误判客户端所在的位置和运营商,从而导致解析出跨运营商访问的 IP 地址,用户的访问速度降低。

在这里插入图片描述
在这里插入图片描述
公众号:编程之蝉 专注后台开发、CDN、算法、大数据,欢迎关注,阅读最新更新
公众号<em></em>:编程之蝉

五、参考
最新新闻
“撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
tiktok怎么搭建外网 详细教程及步骤
TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
  走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
如何用生意参谋算出同行店铺真实销售额
怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
向佐快乐大本营2024年精彩回顾:四年时光共欢笑
张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
PingTools app
《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
抖音能看到谁搜索过自己吗?
尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
什么是人工智能“语料库”?为什么每个人都在谈论它?
编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
LED行业词语中英对应
1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
本企业新闻

点击拨打: