DNS域名解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: DNS域名解析互联网是通过url来发布和请求资源的,而url中的域名需要解析称为IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴DNS域名解析从用户在浏览器输入一段url进行请求资源的时候开始,DNS...

DNS域名解析

互联网是通过url来发布和请求资源的,而url中的域名需要解析称为IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴

img_786ccc15a987c1646144aa114d8f0f8d.png
DNS域名解析

从用户在浏览器输入一段url进行请求资源的时候开始,DNS解析将会有将近10个步骤

  • 第一步
    浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中存在,这个解析过程就将结束,浏览器进行缓存域名解析的IP不仅受限于浏览器的缓存大小,也同时应该注意缓存时间,如果缓存时间太短,那么一次DNS的过程确实也十分耗时,但是如果时间过长的话,一旦一些域名被解析到的IP发生变化,就导致该域名不能被正确地解析,域名被缓存的时间通常是几分钟到几小时不等,域名被缓存的时间可以通过设置TTL参数来设置
    TTL(Time To Live )是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

  • 第二步
    如果浏览器缓存中没有,浏览器会查找操作系统缓存中是否存在这个域名对应DNS解析的结果,其实操作系统也会有一个域名解析的过程,在Windows中可以通过hosts文件来设置,在这个文件中,你可以配置任何一个域名解析到一台测试服务器上.但是也同时是因为有这种本地DNS的解析规程,所以黑客就有可能通过修改你的域名解析来把你的特定域名解析到它指定的IP地址上,导致这些域名被劫持
    域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。
    域名劫持一方面可能影响用户的上网体验,用户被引到假冒的网站进而无法正常浏览网页,而用户量较大的网站域名被劫持后恶劣影响会不断扩大;另一方面用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
    这在早期的Windows系统中产生了很严重的问题,所以Windows7中将hosts设置为只读,防止这个文件被轻松修改,在linux的/etc/hosts文件中修改同样可达到这种效果,当解析到这个配置文件中的某个域名的时候,操作系统会在缓存中缓存这个解析结果,缓存时间同样也是受这个域名的失效时间和缓存空间的大小决定的

  • 第三步
    如果在上面两步都还没有得到正确的域名解析结果,那么这个时候就会真正地去请求DNS服务器,在我们的网络配置中都会有DNS服务器地址这一项,这个地址就用于解决前面两个情况无法解析到IP时需要做什么的情况,操作系统会把这个未解析出的域名发送给LDNS(本地域名服务器) ,这个DNS通常都提供给你本地互联网接入的一个DNS解析服务,例如如果是在学校接入的互联网,那么这个LDNS服务器一定是在学校内部,linux下通过cat /etc/resolv.conf查看配置的DNS SERVER
    这个专门的域名解析服务器性能都会很好,他们以不安都会缓存域名解析的结果,当然缓存时间是受域名的失效时间来控制的,一般缓存空间不是影响域名失效的主要因素,大约80%的DNS到这里就已经完成了,所以LDNS承担了域名解析的绝大多数工作

  • 第四步
    如果LDNS仍然没有命中,就直接到ROOT SERVER域名服务器进行请求解析

  • 第五步
    根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD SERVER)地址,gTLD是国际顶级域名服务器,如.com .cn .org等

  • 第六步
    本地域名服务器在向上一步返回的gTLD服务器发送请求

  • 第七步
    接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器,例如你在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成

  • 第八步
    Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器

  • 第九步
    返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间由TTL决定

  • 第十步
    把解析的结果返回给用户,用户根据TTL的值缓存在本地系统缓存中,域名解析结束

在实际的DNS解析过程中,可能还不止这10个步骤,Name Server也可能有多急或者有一个GTM来负载均衡控制,这都有可能会影响到域名解析的过程

在Java应用中,JVM也会缓存DNS的解析结果,这个缓存是在InetAddress类中完成的,而且这个缓存时间还比较特殊,它有两种缓存策略:一种是正确解析结果配置,另一种是失败解析结果缓存,这两个缓存时间由两个配置项控制,如果我们使用InetAddress解析域名,必须是单例模式,不然会有严重的性能问题,如果每次都实例化一个对象,通过这个对象去进行操作,那么这个将会非常耗时

几种域名解析的方式

域名解析记录主要分为A记录,MX记录,CNAME记录,NS纪录和TXT纪录

  • A记录
    A代表的是Address,用来指定域名对应的IP地址,如将item.taobao.com指定到115.238.23.xxx将switch.taobao.com指定到121.14.24.xxx A记录可以将多个域名解析到一个IP地址,但是不能讲一个域名解析到多个IP地址

  • MX记录
    MX记录表示的是Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server,如taobao.com域名的A记录IP地址是115.238.25.xxx 如果将MX记录设置为111.238.25.xxx,即xxx@taobao.com的邮件路由,DNS会将邮件发送到115.238.25.xxx所在的服务器,而正常通过Web请求的话依然可以解析到A类记录上去

  • CNAME记录
    全称是Canonical Name(别名解析).所谓的别名解析就是可以为一个域名设置或多个别名,如将taobao.com解析到xulingbo.net,将srcfan.com也解析到xulingbo.net.其中xulingbo.net分别是taobao.com和srcfan.com的别名

  • NS记录
    为某个域名指定DNS服务器,也就是这个域名有指定的IP地址的DNS服务器去解析

  • TXT记录
    为某个主机名或域名设置说明

相关文章
|
25天前
|
域名解析 缓存 网络协议
减少域名dns解析时间
域名解析中的TTL值设置多少合适
50 5
|
8天前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
1月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
53 6
|
1月前
|
域名解析 网络协议 安全
反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性
在网络世界中,反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性。它在邮件服务器验证、网络安全等领域至关重要,帮助识别恶意行为,增强网络安全性。尽管存在配置错误等挑战,但正确管理下,反向DNS解析能显著提升网络环境的安全性和可靠性。
100 3
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
106 3
|
1月前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
2月前
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
67 4
|
2月前
|
域名解析 弹性计算
内网域?名解析记录是否会覆盖公网域名解析记录?
内网域?名解析记录是否会覆盖公网域名解析记录?
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
76 2
|
2天前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

相关产品

  • 云解析DNS
  • 推荐镜像

    更多