面试题24解析-详谈DNS域名解析过程

简介: 题目:描述一下DNS域名解析的过程?

前面的文章我们已经说过了,网站一般都是用B/S架构,统一使用应用层协议HTTP来进行数据交互,并且HTTP是无状态的短连接。每一个请求后台都有一个业务逻辑相对应。下面,咱们来看一下B/S网络架构的设计,如图所示:


image.png


我们可以从图中发现,首先,DNS把域名解析成对应的ip地址,然后再根据ip地址找到对应的服务器并发送GET请求,最终,服务器将相应的资源返回到客服端。接下来,我们来分析一下DNS到底是怎么进行解析的(红框标注的) ?



1域名解析的那几种方式?


A记录:用来指定域名对应的IP地址,A纪录可以将多个域名解析到一个IP地址,但不能将一个域名解析到多个IP地址。


MX记录:即Mail Exchange,它可以将域名下的邮箱服务器指向自己的Mail Server。


CNAME记录:即Canonical Name(别名解析),可以为一个域名设置一个或者多个别名。


NS记录:为某个域名指定DNS解析服务器,即该域名用指定的DNS服务器去解析IP地址。


TXT记录:为域名设置说明。


2怎么用工具查看域名解析过程?


在windows和linux环境,都可以用nslookup工具来查看解析结果,如图所示:

image.png

在linux系统,也可以使用dig命令来查询DNS的解析过程,如图所示:


image.png


image.png

从上面我们可以清楚的看到整个域名是如何发起和解析的。从根域名(.)到gtld server (.com),再到Name Server(baidu.com.)的整个过程,我们可以发现baidu的dns备份服务器有好几个。


3怎么清除缓存的域名?


在windows环境,我们可以用ipconfig工具来处理,命令如下:

ipconfig  /flushdns

结果如图所示:

image.png


在linux环境,我们可以用nscd 工具来处理,命令 如下:

sudo apt-get install nscd
sudo /etc/init.d/nscd restart

结果如图所示:


image.png


4JVM中DNS缓存设置


一般像高级语言的虚拟机都会缓存DNS解析结果,因为这样可以节约DNS解析时间,同样JVM也不例外;JVM的DNS缓存一般是在InetAddress类中完成的,它有两种缓存结果,一种是正确解析结果的缓存,另一种是失败解析结果的缓存。由两个配置项来控制,配置项是在%JAVA_HOME%\lib\security\java.security文件中配置的。两个配置项分布是networkaddress.cache.ttl和networkaddress.cache.negtive.ttl,其默认值分别是-1(永不失效)和10(保留10秒钟)。


怎么进行修改呢?

  1. 直接修改java.secury文件的默认值。
  2. 在JAVA启动时加启动参数 -Dsun.NET.inetaddress.ttl=XXX来修改默认值。


5DNS域名解析详细过程


主要请求过程实例图如下所示:


image.png


下面,咱们结合图来详细聊聊它的请求流程:


首先,浏览器会检查缓存中有没有这个域名所对应的ip地址;如果有,整个解析过程就结束了;如果没有,则会查找操作系统缓存中是否有这个域名对应的DNS解析结果。操作系统也可以通过改hosts文件来改变DNS解析过程。


操作系统会把域名发送到你系统设置的LDNS(本地区域服务器)进行解析;如果没有命中,直接向Root Server域名服务器发送请求,根域名服务器直接返回本地域名服务器一个所查询域的主域名服务器(gTLD),如  .com/.cn/.org等;


本地域名服务器再向上一步返回的gTLD服务器发送请求,gTLD服务器查找并返回该域名对应的Name Server域名服务器地址,该Name Server通常是你注册的域名服务器;Name Server会查找域名和IP的映射表,并返回对应的IP和TTL;


Local DNS Server会缓存这个域名和IP的映射关系,缓存时间由TTL决定,并把解析结果返回给用户,用户的本地域名缓存时间也由TTL决定。


6造成DNS域传输漏洞原因?


DNS区域传送:指一台备用服务器使用来自主服务器的数据刷新自己的域数据库。


一般只有在真的需要备用域名DNS服务器的安全网络环境中才有必要使用DNS区域传送,但是许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息,造成这个漏洞的主要原因是:允许了不受信任的网络环境用户执行DNS区域传送(zone transfer)操作。




相关文章
|
1月前
|
存储 缓存 NoSQL
Redis常见面试题全解析
Redis面试高频考点全解析:从过期删除、内存淘汰策略,到缓存雪崩、击穿、穿透及BigKey问题,深入原理与实战解决方案,助你轻松应对技术挑战,提升系统性能与稳定性。(238字)
|
3月前
|
存储 安全 测试技术
Python面试题精选及解析
本文详解Python面试中的六大道经典问题,涵盖列表与元组区别、深浅拷贝、`__new__`与`__init__`、GIL影响、协程原理及可变与不可变类型,助你提升逻辑思维与问题解决能力,全面备战Python技术面试。
149 0
|
1月前
|
监控 Java 关系型数据库
面试性能测试总被刷?学员真实遇到的高频问题全解析!
面试常被性能测试题难住?其实考的不是工具,而是分析思维。从脚本编写到瓶颈定位,企业更看重系统理解与实战能力。本文拆解高频面试题,揭示背后考察逻辑,并通过真实项目训练,帮你构建性能测试完整知识体系,实现从“会操作”到“能解决问题”的跨越。
|
1月前
|
监控
新功能上线:云解析DNS-重点域名监控功能发布
新功能上线:云解析DNS-重点域名监控功能发布
|
2月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
|
5月前
|
存储 安全 Java
2025 最新史上最全 Java 面试题独家整理带详细答案及解析
本文从Java基础、面向对象、多线程与并发等方面详细解析常见面试题及答案,并结合实际应用帮助理解。内容涵盖基本数据类型、自动装箱拆箱、String类区别,面向对象三大特性(封装、继承、多态),线程创建与安全问题解决方法,以及集合框架如ArrayList与LinkedList的对比和HashMap工作原理。适合准备面试或深入学习Java的开发者参考。附代码获取链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
3088 48
|
5月前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
319 6
|
5月前
|
NoSQL Java 微服务
2025 年最新 Java 面试从基础到微服务实战指南全解析
《Java面试实战指南:高并发与微服务架构解析》 本文针对Java开发者提供2025版面试技术要点,涵盖高并发电商系统设计、微服务架构实现及性能优化方案。核心内容包括:1)基于Spring Cloud和云原生技术的系统架构设计;2)JWT认证、Seata分布式事务等核心模块代码实现;3)数据库查询优化与高并发处理方案,响应时间从500ms优化至80ms;4)微服务调用可靠性保障方案。文章通过实战案例展现Java最新技术栈(Java 17/Spring Boot 3.2)的应用.
450 9
|
5月前
|
缓存 算法 NoSQL
校招 Java 面试高频常见知识点深度解析与实战案例详细分享
《2025校招Java面试核心指南》总结了Java技术栈的最新考点,涵盖基础语法、并发编程和云原生技术三大维度: 现代Java特性:重点解析Java 17密封类、Record类型及响应式Stream API,通过电商案例演示函数式数据处理 并发革命:对比传统线程池与Java 21虚拟线程,详解Reactor模式在秒杀系统中的应用及背压机制 云原生实践:提供Spring Boot容器化部署方案,分析Spring WebFlux响应式编程和Redis Cluster缓存策略。
148 0
|
5月前
|
网络协议 安全 区块链
DNS+:互联网的下一个十年,为什么域名系统正在重新定义数字生态? ——解读《“DNS+”发展白皮书(2023)》
DNS+标志着域名系统从基础寻址工具向融合技术、业态与治理的数字生态中枢转变。通过与IPv6、AI和区块链结合,DNS实现了智能调度、加密传输等新功能,支持工业互联网、Web3及万物互联场景。当前,中国IPv6用户达7.6亿,全球DNSSEC支持率三年增长80%,展现了其快速发展态势。然而,DNS+仍面临安全威胁、技术普惠瓶颈及生态协同挑战。未来,需推动零信任DNS模型、加强威胁情报共享,并加速标准制定,以筑牢数字时代网络根基,实现更安全、高效的数字生态建设。
425 3

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS