DNS域名解析过程(《深刻分析JAVAWEB技术内幕》读感)

互联网使用URL 来发布和请求资源,而URL中的域名须要解析从IP地址才能与远程主机创建链接,如何将域名解析成IP地址就属于DNS域名解析的工做浏览器

1、从输入www.xxx.com时,DNS解析会有如下几个步骤:缓存

1.用户输入URL,浏览器检查自身有没有缓存该域名的IP地址。服务器

浏览器缓存域名有时间限制,这个时间能够由TTL限制,太长或者过短都很差,太长了,若是被解析的域名的IP发生变化,则会致使没法正常解析;若是过短,则会致使用户每一次访问网站都要解析域名负载均衡

2.若是没有,浏览器检查操做系统缓存中是否有这个DNS解析结果。网站

操做系统也会有一个域名解析过程,在WINDOWS中,能够经过C:\Windows\System32\drivers\etc\hosts文件来设置,能够将任何域名解析到任何能访问的IP地址上,若是在这里指定了一个域名的ip地址,那么浏览器会首先使用这个IP地址正是由于有这种本地DNS解析的过程,因此黑客就有可能经过修改你的域名解析来把特定的某个域名解析到它但愿的IP上,致使域名劫持。spa

3.若是缓存中尚未,则操做系统会把这个域名发送给LDNS(Local DNS)即本地域名服务器。操作系统

咱们得网路配置中都会有DNS服务器地址,这个DNS服务器地址就是本地区的域名服务器。这个DNS服务器一般提供给你本地互联网接入的一个DNS解析服务。例如你在学校接入互联网,那么你的DNS服务器在你的学校;你在小区接入互联网,你的DNS服务器由通讯提供商(电信、移动...)提供。blog

4.若是LDNS中尚未,则只能去Root Server域名服务器中请求解析了。这样的状况比较罕见,由于全球只有13台左右这样的服务器。dns

目前世界上的整个互联网有几个DNS根域名服务器。ip

5.根域名服务器会返回一个本地域名服务器所查域的主域名服务器(gTLD Server)地址。

gTLD是国际顶尖域名服务器,如.com、.cn、.org等等

6.LDNS向gTLD发送请求。

7.gTLD接受此请求,返回一个此域名对应的Name Server域名服务器的地址。这个Name Server一般就是你注册的域名服务器。

假如你在某个域名服务提供商申请的域名,那么这个域名解析的任务就由这个域名提供商的服务器来完成。

8.Name Server返回该域名对应的IP和TTL值,而后Local DNS Server会缓存这个对应关系,缓存时间由TTL控制。

9.解析结果返回LDNS SERVER。LDNS SERVER根据TTL值缓存此对应关系

10.解析结果返回用户。用户根据TTL值缓存此对应关系。

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

大体过程以下图:

2、清除本地缓存的域名

Windows下能够经过 ipconfig /flushdns命令来刷新本机的DNS缓存

在JAVA应用中JVM也会缓存DNS的解析结果,这个和缓存是在InetAddress类中完成的

3、几种域名解析方式

 

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

 

A记录:A 表明的是Address,用来指定域名对应的IP地址。域名能够多对一可是不能一对多。

 

MX记录:Mail Exchange,就是讲某个域名下的邮件服务器指向本身的Mail Server。

 

CNAME记录:别名解析。将一个域名设置一个或者多个别名。

 

NS记录:为某个域名指定DNS解析服务器。

 

TXT记录:为某个主机名或者域名设置文字说明。

相关文章
相关标签/搜索