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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 题目:描述一下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)操作。




相关文章
|
16天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
64 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
2月前
|
网络协议 Linux Docker
在Linux中,如何指定dns服务器,来解析某个域名?
在Linux中,如何指定dns服务器,来解析某个域名?
|
26天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
219 37
|
21天前
|
缓存 Android开发 开发者
Android RecycleView 深度解析与面试题梳理
本文详细介绍了Android开发中高效且功能强大的`RecyclerView`,包括其架构概览、工作流程及滑动优化机制,并解析了常见的面试题。通过理解`RecyclerView`的核心组件及其优化技巧,帮助开发者提升应用性能并应对技术面试。
44 8
|
21天前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
42 8
|
1月前
|
网络协议
DNS正向解析实现
文章介绍了DNS正向解析的实现,包括资源记录的定义、配置区域解析记录的步骤,并通过实际操作展示了如何为"yinzhengjie.com"域名配置DNS解析记录。
34 2
DNS正向解析实现
|
28天前
|
域名解析 缓存 网络协议
域名系统DNS_基础知识
域名系统(DNS)使我们能够通过易记的域名访问互联网资源,而非直接使用IP地址。DNS采用层次树状结构,由多个分量组成,如顶级域名(如.com或.cn)位于最右侧。域名长度限制为255个字符,各级域名由相应管理机构监管,顶级域名由ICANN管理。DNS分为国家顶级域名、通用顶级域名和反向域等。域名解析涉及根域名、顶级域名及权限域名服务器,通过递归和迭代查询完成。为提高效率,DNS使用分布式服务器和高速缓存技术。
|
2月前
|
消息中间件 域名解析 网络协议
【Azure 应用服务】部署Kafka Trigger Function到Azure Function服务中,解决自定义域名解析难题
【Azure 应用服务】部署Kafka Trigger Function到Azure Function服务中,解决自定义域名解析难题
|
3天前
|
移动开发 安全 API
阿里云最新域名注册及续费和转入收费价格表参考
目前域名注册管理机构(Verisign)已上调.com中英文域名成本,这一变动将直接影响到全球范围内.com域名价格,各大注册商的.com域名注册、续费、转移价格已同步上涨。以阿里云为例,此次涨价之后,.com英文域名的注册价格由原来的78元涨价到了83元,续费价格也涨到了90元,下面是2024年9月1日涨价之后,阿里云最新的域名注册及续费和转入最新收费价格表。
|
1月前
|
域名解析 运维
阿里云日常运维-购买域名
这篇文章是关于如何在阿里云进行日常运维,包括购买域名的详细步骤和一些推荐阅读资源。
66 4

相关产品

  • 云解析DNS
  • 推荐镜像

    更多