一文看懂DNS及其工作原理

网络
DNS使用分层、分布式的结构来管理域名与IP地址的映射关系。它通过递归和迭代查询过程,使得在互联网上轻松地使用人类可读的域名来访问各种网络资源。

Labs 导读

想象一下你的智能手机联系人名单,就像是整个地球上的人的名字和联系方式列表。每当你想要给某人打电话或发短信时,你只需要在联系人名单中找到他们的名字,而不必记住他们的电话号码或电子邮件地址。这就像是一个巨大的电话簿,让你能够轻松找到并与世界上的任何人进行交流。

类似地,互联网上的每个设备都有一个独特的标识号码,称为IP地址。当你在浏览器中键入网址访问网站时,计算机需要知道该网址对应的IP地址,就像你需要知道某人的电话号码才能联系他一样。DNS就像是互联网上的巨大联系人名单,它把易于记忆的域名(比如www.example.com)与对应的IP地址进行匹配,从而使你能够轻松地访问网站,发送电子邮件等。所以,尽管你可能不了解DNS的技术细节,但每天在互联网上的各种活动中,你都在使用它来使得不同设备能够互相沟通。

Part 01、DNS简史 

- ARPANET时代(1960s-1980s):早期的互联网并没有一个全球的域名系统,而是使用主机名(hostname)来识别网络上的计算机。这些主机名存储在一个称为"hosts.txt"的文本文件中,该文件由网络管理员手动维护。

- DNS的创建(1983):随着互联网的增长,需要一种更有效的方法来管理和查找主机名与IP地址之间的映射关系。1983年,Paul Mockapetris和Jon Postel开始开发DNS。他们发布了RFC882和RFC883,其中详细说明了DNS的设计。

- DNS的层次结构(1980s-1990s):DNS被设计成一个层次结构系统,由多个域名服务器组成,每个服务器负责管理特定区域内的域名和IP地址映射。根域名服务器位于顶层,下面是顶级域名服务器(TLD),然后是权威域名服务器和缓存域名服务器。

- 商业化和增长(1990s-2000s):随着互联网的商业化,域名的注册数量急剧增加,导致DNS系统面临压力。为了满足需求,域名注册机构和托管服务商开始提供域名注册和管理服务。

- DNSSEC的引入(2000s):为了提高DNS安全性,DNSSEC(Domain Name System Security Extensions)被引入。它通过数字签名机制确保域名解析的完整性和真实性,防止DNS劫持和缓存投毒等攻击。

- 新顶级域名的推出(2010s):ICANN(互联网名称与数字地址分配机构)开始批准新的顶级域名,如".app"、".blog" 等,丰富了互联网域名的多样性。

- IPv6和DNS64/NAT64(2010s):随着IPv6的推出,DNS也需要适应新的IP地址格式。DNS64/NAT64技术允许IPv6和IPv4之间的通信,使得IPv6网络可以访问IPv4网络上的资源。

- 持续的发展(至今):DNS仍在不断演进,以适应新的互联网需求和安全挑战。随着云计算、物联网等新兴技术的发展,DNS在网络生态中的作用变得越来越重要。

Part 02、DNS是如何工作的

DNS使用分层、分布式的结构来管理域名与IP地址的映射关系。它通过递归和迭代查询过程,使得在互联网上轻松地使用人类可读的域名来访问各种网络资源。这个系统的设计使得整个互联网能够更高效地工作,同时也带来了更好的灵活性和可扩展性,它的工作原理涉及多个层次的域名服务器以及查询和响应的过程。

(一)域名服务器的分类

域名服务器可以根据其角色和层级划分为以下四种不同类型:

(1)根域名服务器(Root Name Servers)

根域名服务器位于DNS层次结构的最高层,共有13个不同IP地址的根域名服务器分布在全球各地。它们保存了顶级域名服务器的信息,负责管理顶级域名(如.com、.org、.net等)的域名服务器的IP地址。当本地域名服务器收到查询请求时,如果需要查询顶级域名服务器的IP地址,它会向根域名服务器发起查询,获取相应的顶级域名服务器地址。

(2)顶级域名服务器(Top-Level Domain Servers)

顶级域名服务器负责管理特定顶级域(如.com、.org、.net等)下的域名和其子域的映射。例如,.com顶级域名服务器会存储所有使用.com域名结尾的域名映射信息。当本地域名服务器向根域名服务器查询后,如果需要查询特定顶级域的IP地址,它会请求相应的顶级域名服务器,以获取下一步的指引。

(3)权限域名服务器(Authoritative Name Servers) 

权威域名服务器是每个特定域名的“官方”域名服务器,它们存储着该域名与IP地址的映射信息。当本地域名服务器需要解析特定域名时,它会向该域名的权威域名服务器发送查询请求。这些服务器能够提供确切的映射信息,或者指示更低级别的域名服务器进行进一步的查询。

(4)本地域名服务器(Local Name Servers)

本地域名服务器位于用户的本地网络中,通常由互联网服务提供商(ISP)提供。当用户发起域名查询请求时,本地域名服务器首先被联系。如果本地域名服务器已经缓存了相应的映射信息,它会直接返回结果。否则,它会根据查询的域名层级结构,通过递归查询或迭代查询的方式,向根域名服务器、顶级域名服务器和权限域名服务器发起查询,以获取所需的映射信息。


(二)DNS域名解析过程

域名解析包含两种查询方式,分别是递归查询和迭代查询。

(1)递归查询

客户端将查询请求发送给递归DNS服务器,服务器必须返回结果,不能简单把请求转发给其他服务器。如果递归服务器不能解析,它会向其他DNS服务器迭代查询,直到获取结果,然后再返回给客户端。整个过程对客户端透明,本地服务器负载重,但查询快。

(2)迭代查询

整个迭代查询过程中,本地域名服务器逐级向上查询,然后逐级向下查询,直到获得所需的IP地址。这种查询模式确保了每一步查询都是逐级完成的,保持了数据的一致性和正确性。同时,每个查询环节都可以被缓存,以提高查询效率,并减轻DNS服务器的负担。

图片

①本地域名服务器启动查询:当用户在浏览器中输入一个域名,本地域名服务器(通常由互联网服务提供商提供)被触发进行域名解析。

②本地域名服务器向根域名服务器发起查询:本地域名服务器向一个根域名服务器发起查询请求,该请求包含了所需解析的域名。

③根域名服务器的响应:根域名服务器不会直接提供所需的IP地址,而是回复给本地域名服务器一个指向顶级域名服务器的IP地址。这个顶级域名服务器与所查询域名的顶级域相关联,例如".com"、".org"等。

④本地域名服务器向顶级域名服务器发起查询:本地域名服务器向得到的顶级域名服务器发起新的查询请求,继续请求所需的域名映射。

⑤顶级域名服务器的响应:顶级域名服务器回复给本地域名服务器一个指向权限域名服务器的IP地址。这个权限域名服务器是负责管理特定域名的官方服务器,可以提供确切的映射信息。

⑥本地域名服务器向权限域名服务器发起查询:本地域名服务器向得到的权限域名服务器发起新的查询请求,请求所需域名的IP地址。

⑦权限域名服务器的响应:权威域名服务器回复给本地域名服务器查询所需域名的IP地址。

⑧本地域名服务器返回结果:本地域名服务器将获取到的IP地址返回给用户的计算机,使其可以建立与目标服务器的连接,从而实现对网站或资源的访问。

Part 03、DNS安全

DNS作为互联网的关键基础设施,其安全性直接影响着整个网络的稳定运行。然而DNS系统也面临着各种威胁,主要包括:

  • DDoS攻击:通过流量水平拒绝服务攻击耗尽DNS服务器资源
  • 域名劫持:恶意绑定域名至攻击者控制的IP地址
  • DNS投毒/缓存污染:通过植入错误的DNS记录进行网络钓鱼、传播恶意软件等

为增强DNS的安全性,业界采取了各种技术手段进行防护

  • DNSSEC提供数字签名,防止解析记录被篡改
  • Anycast和多域名服务器避免单点故障
  • 递归DNS服务器过滤恶意查询保护用户
  • DNS over HTTPS加密传输保障查询隐私和安全性等

针对DNS面临的安全威胁,我们为用户提供了全方位的安全防护:

  • 支持DNS over HTTPS传输加密,防窃听
  • 任播技术和多节点部署,保证服务高可用性
  • 基于大数据分析的威胁情报,检测和防御攻击
  • 智能解析和过滤机制,拦截恶意网站保护用户

通过综合应用各技术手段,中国移动安全DNS服务可有效抵御常见威胁,保障用户的查询安全和体验。

Part 04、总结展望

DNS作为互联网的数字电话簿,其发展历史反映了互联网技术和治理模式的演变,而它独特的层次树状结构也使DNS成为一个高效可靠的核心服务。面向未来,DNS将面临来自新兴网络的挑战,其安全性和性能仍有改进空间。新技术如区块链、人工智能等也可以应用到未来的DNS系统中,以增强其功能。随着5G时代的到来,DNS将扮演更重要的角色,支撑超大规模的网络连接。在多利益相关方的共同努力下,DNS必将不断进化,继续推动互联网技术的发展。

👉参考文献

[1] 20 年前的网络安全:大规模 DDoS 攻击击中互联网的根源,2022年07月21日,https://www.wangan.com/p/7fy7f89367420767【访问日期:2023年9月6日】.

[2] 关于DNS系统面临危重安全漏洞风险紧急公告,2008年07月24日,https://www.datarecovery.com.tw/news/times/2010-10-31/277.html【访问日期:2023年9月6日】.

[3] 盘点2021年全球十大系统崩溃事件,2022年01月13日,https://dbaplus.cn/news-152-4243-1.html【访问日期:2023年9月6日】.

[4] 智安网络|勒索病毒来势汹汹,提前掌握“杀毒”自救方法,2023年05月17日,https://baijiahao.baidu.com/s?id=1766131804485461279【访问日期:2023年9月6日】.

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2017-04-17 13:10:09

神经网络人工智能网络

2023-07-07 11:36:29

人工智能基础模型

2021-10-18 14:55:17

人脸识别AI人工智能

2020-03-31 14:40:24

HashMap源码Java

2022-05-12 10:53:42

keepalivevrrp协议

2021-08-01 08:05:39

Linux信号原理

2016-08-18 00:21:12

网络爬虫抓取网络

2024-08-12 12:30:27

2020-12-08 20:20:15

神经网络深度学习机器学习

2019-10-30 05:32:17

网址URLIP地址

2020-02-28 19:00:31

docker架构模块

2021-08-02 06:56:19

TypeScript编程语言编译器

2023-08-27 21:41:14

Git文件系统版本

2023-08-15 08:46:30

Git指针移动

2021-10-20 07:18:51

Linux延时队列

2021-11-12 09:35:33

网址URLLinux

2022-12-01 17:23:45

2019-09-29 08:32:08

Docker容器模块

2020-01-10 09:44:30

Docker容器模块

2019-05-22 09:50:42

Python沙箱逃逸网络攻击
点赞
收藏

51CTO技术栈公众号