DNS是如何工作的?

DNS解析全过程解析

互联网是依托于IP地址进行通信的,可人更习惯于使用域名,于是便有了DNS提供将域名翻译成IP的服务。

本文就说说DNS具体是怎么做的。

在这里插入图片描述
一、权威域名服务器(1)

我们假设有个站长购买了一个服务器,并因此得到一个公网IP,那么当他在域名服务商那里购买到域名并绑定IP后,这个域名和IP的映射关系将会被保存到一个叫“权威域名服务器”的地方。

在这里插入图片描述

如上图所示,我们假设站长注册的域名是a.com,且保存了其“域名与IP映射关系”的服务器叫“权威域名服务器a”。

二、本地域名服务器

这时,再假设有个叫“张三”的网民想通过a.com访问站长的网站,那么当他在浏览器中输入a.com之后,其主机就会就近去请求“本地域名服务器”,以便获知域名a.com对应的IP。

在这里插入图片描述

三、根域名服务器

但前面已经说过,站长的“域名与IP的映射关系”是被存储在了“权威域名服务器a”中,而非网民张三的“本地域名服务器”。所以如果是第一次访问的话,后者肯定无法直接提供IP,这时“本地域名服务器”就会请求“根域名服务器”。

在这里插入图片描述

某种程度上说,DNS系统就像一个巨大的蜂巢,而“根域名服务器”就是这个蜂巢的“蜂后”,所有的域名都是它的崽。

四、顶级域名服务器

于是就像真正的蜂后一样,根域名服务器并不负责具体的域名解析任务,而是将其交给了下层的“顶级域名服务器”。

根域名服务器会根据a.com的后缀com得知负责该域名的具体的顶级域名服务器,并将其IP返回给本地域名服务器,于是后者便借此继续向“顶级域名服务器”发起请求。

在这里插入图片描述

五、权威域名服务器(2)

然而顶级域名服务器也并不直接负责解析任务,它继续外包了任务给“权威域名服务器”。通过本地域名服务器提供的域名a.com,顶级域名服务器很快就查到了其是将该域名的解析任务交给“权威域名服务器a”了。

至此,原本和保存了站长“域名和IP映射关系”的“权威域名服务器a”毫不搭嘎的“本地域名服务器”,就这样一步一步和“权威域名服务器a”建立了联系。

在这里插入图片描述

“权威域名服务器a”会将域名a.com对应的IP返回给“本地域名服务器”,而“本地域名服务器”则继续将其返回给用户张三。

六、DNS系统总览

在这里插入图片描述

至此,一个完整的DNS的工作过程就全部都呈现出来了,其大概结构如上图“灰色背景虚线框”的部分所示,请求顺序则可以依据从1到8的阿拉伯数字序号来观察。

七、DNS缓存

需要强调的是,本地域名服务器在这第一次解析了a.com的对应IP后,是会对结果进行缓存的,这样之后谁再请求其解析a.com它就可以直接返回IP了。

八、补充

还要补充的一条就是,真正的DNS系统肯定远比这里的模型更复杂,仅仅是IPv4的根域名服务器全球就有13台,里面又分为主根和辅根。且这里的“台数”并不是物理意义的设备台数,而是逻辑层面的数量。

最后再分享一条,就是关于DNS系统的架构,个人发现其和一般酒店的人事结构有点像,二者结合起来可能更便于理解和记忆。

在这里插入图片描述

我们可以把“本地域名服务器”看作“服务员”,它直接面对最终用户。

“根域名服务器”则是总经理,是总负责人。“顶级域名服务器”是分管各个部门的部门经理,“权威域名服务器”则是领班。

一些牛逼的客户到酒店消费,如果不满意了可能对服务员喊,“把你们管事的叫来!”,“把你们总经理叫来!”。然后总经理过来了解情况后,根据客户的具体情况再将任务逐层下达给具体负责的人去执行,这和DNS多少有些异曲同工。

题外话

黑客&网络安全如何学习

如果你也对网路安全技术感兴趣,但是又没有合适的学习资源,我可以把私藏的网安学习资料免费共享给你们,来看看有哪些东西。

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。
在这里插入图片描述

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

### DNS的定义及工作原理 DNS(Domain Name System,域名系统)是一个分布式数据库系统,用于实现域名和IP地址之间的相互映射[^3]。它的主要功能是为用户提供一种更便捷的方式访问互联网资源,而无需记忆复杂的IP地址。通过将域名解析为对应的IP地址(正向解析),或者将IP地址解析为域名(反向解析),DNS在互联网通信中起到了至关重要的作用。 #### DNS的功能 1. **域名解析**:DNS的核心功能是将易于记忆的域名(如www.example.com)转换为计算机可识别的IP地址(如192.168.1.1)。这种解析过程被称为正向解析[^2]。 2. **反向解析**:除了正向解析外,DNS还支持从IP地址到域名的解析,称为反向解析。 3. **负载均衡**:通过配置多个IP地址对应一个域名,DNS可以实现简单的负载均衡,从而提高服务的可用性和性能。 4. **缓存机制**:为了减少网络延迟并提高效率,DNS代理会缓存常用的解析结果,并根据TTL(Time-to-Live)值来管理这些缓存的有效期[^1]。 #### DNS工作原理 1. **用户请求**:当用户输入一个域名时,本地设备上的DNS客户端会发起一个DNS查询请求。 2. **递归查询**:如果本地DNS缓存中没有该域名的解析记录,则DNS客户端会向配置的DNS服务器发出递归查询请求。递归查询意味着DNS服务器负责继续查询直到找到答案。 3. **迭代查询**:DNS服务器可能需要向根服务器、顶级域(TLD)服务器以及权威DNS服务器进行多次迭代查询,以最终获取目标域名的IP地址。 4. **返回结果**:一旦找到对应的IP地址,DNS服务器会将结果返回给用户,并更新本地缓存以便后续更快地响应相同的查询请求[^1]。 ```python # 示例代码:模拟简单的DNS解析过程 import dns.resolver def resolve_domain(domain_name): try: answers = dns.resolver.resolve(domain_name, 'A') for rdata in answers: print(f"域名 {domain_name} 的IP地址是: {rdata.address}") except dns.resolver.NoAnswer: print("未找到对应的IP地址") except dns.resolver.NXDOMAIN: print("域名不存在") resolve_domain("www.example.com") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值