频道栏目
首页 > 资讯 > 微商学院 > 正文

DNS域名详细解析

18-04-27        来源:[db:作者]  
收藏   我要投稿

DNS域名解析

术语解释:

根域,就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。根域服务器我们知道有13台,但是这是错误的观点。根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机。

访问网址的时候,要经过一个由网址到IP的转换过程,这个过程是通过访问DNS实现的,也就是域名服务器来完成的。由于互联网的发展是从美国开始的,因此,美国一直保持着对互联网域名及根服务器的控制。在提供域名解析的多级服务器中,处于最顶端的是13台域名根服务器,均由ICANN统一管理。其中1个为主根服务器,放置在美国弗吉尼亚州的杜勒斯,其余12个为辅根服务器,有9个放置在美国,欧洲有2个,分别位于英国和瑞典,亚洲有1个,位于日本。但2005年7月1日,美国政府宣布,美国商务部将无限期保留对13台域名根服务器的监控权。

美国控制了域名解析的根服务器,也就控制了相应的所有域名,如果美国不想让人访问某些域名,就可以屏蔽掉这些域名,使它们的IP地址无法解析出来,那么这些域名所指向的网站就相当于从互联网的世界中消失了。比如,2004年4月,由于“.LY&RDQUO域名瘫痪,导致利比亚从互联网上消失了3天。另外,凭借在域名管理上的特权,美国还可以对其他国家的网络使用情况进行监控,例如美国可以对某个国家的某类网站进行流量访问统计,从中大致分析出该国热门网站分布情况和网民的访问喜好等。

中国电信的F镜像服务器

国内域名的后缀通常要包括“国际通用域”和“国家域”两部分,而且要以“国家域”作为最后一个后缀。以ISO31660为规范,各个国家都有自己固定的国家域,如:cn代表中国、us代表美国、uk代表英国等。

也许正是因为看到IPv4即将退出,以及中国在IPv6上的迅猛发展,美国才允许中国于2003年和2004年开通根域名服务器的中国镜像服务器 ,也就是引进了域名根服务器的F镜像服务器(大致的说,镜像服务器就是原根服务器的克隆服务器)和J镜像服务器及顶级域名.COM .NET的镜像服务器,国内从此有了域名根服务器的镜像服务器,当时这些镜像服务器安装在中国电信,后来随着国家将中国电信按照南北两大块拆分办法,将中国电信拆分为江南的中国电信与江北的中国网通两大公司,目前F镜像服务器安装在中国电信,J镜像服务器和.COM .NET镜像服务器则安装在中国网通。

有了域名根服务器的镜像服务器后,国内解析.CN域名和COM域名就不用到国外的域名根服务器获得顶级索引了,这将从根本上提高国内网络访问速度。这意味着,自2004年以后中国网民访问com.net网站时,域名解析将不再由设置在境外的域名服务器提供服务,而是直接由设置在中国电信的“F镜像服务器”和设置在中国网通的“J镜像服务器”来提供。

根域名服务器(root-servers.org)是互联网域名解析系统(DNS)中最高级别的域名服务器,全球共13台主要服务器。目前的分布是:主根服务器(A)美国1个,设置在弗吉尼亚州的杜勒斯;辅根服务器(B至M)美国9个,瑞典、荷兰、日本各1个。另外借由任播(Anycast)技术,部份根域名服务器在全球设有多个镜像点(mirror),因此可以抵抗针对其所进行的分布式拒绝服务攻击(DDoS)。

域名后缀,国际顶级域名,有两种划分方式,一种互联网刚兴起时的按照行业性质划分的com.,net.等,一种是按国家划分的如cn.,jp.,等。每个域都会有域名服务器,也叫权威域名服务器。

顶级域或者叫做一级域,baidu.com就是一个顶级域名,而www.baidu.com却不是顶级域名,他是在baidu.com 这个域里的一叫做www的主机。

二级域,三级域,只要我买了一个顶级域,并且我搭建了自己BIND服务器(或者其他软件搭建的)注册到互联网中,那么我就可以随意在前面多加几个域了(当然长度是有限制的)。比如a.www.baidu.com,在这个网址中,www.baidu.com变成了一个二级域而不是一台主机,主机名是a。

域名服务器,能提供域名解析的服务器,上面的记录类型可以是A(address)记录,NS记录(name server),MX(mail),CNAME等。

A记录,A代表的是address,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器。指向的目标主机地址类型只能使用IP地址,如将taobao.com域名下的item.taobao.com指定到115.238.33.11,order.taobao.com指定到112.134.22.34。A记录可以将多个域名解析到一个IP地址,但不能将一个域名解析到多个IP地址。

MX记录,表示的是Mail Exchange(邮件交换记录),用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理。如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的MX记录来处理所有以@mydomain.com结尾的邮件。

说明:MX记录可以使用主机名或IP地址;·MX记录可以通过设置优先级实现主辅服务器设置,“优先级”中的数字越小表示级别越高。也可以使用相同优先级(即随机)达到负载均衡的目的;·如果在“主机名”中填入子域名则此MX记录只对该子域名生效。

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

说明:CNAME的目标主机地址只能使用主机名,不能使用IP地址;·主机名前不能有任何其他前缀,如:http://等是不被允许的;A记录优先于CNAME记录。即如果一个主机地址同时存在A记录和CNAME记录,则CNAME记录不生效。

NS记录,解析服务器记录,为某个域名指定DNS解析服务器,也就是这个域名由指定的IP地址的DNS域名服务器去解析。例如用户希望由12.34.56.78这台服务器解析news.mydomain.com,则需要设置news.mydomain.com的NS记录。

说明:“优先级”中的数字越小表示级别越高;·“IP地址/主机名”中既可以填写IP地址,也可以填写像ns.mydomain.com这样的主机地址,但必须保证该主机地址有效。如将news.mydomain.com的NS记录指向到ns.mydomain.com,在设置NS记录的同时还需要设置ns.mydomain.com的指向,否则NS记录将无法正常解析;NS记录优先于A记录。即,如果一个主机地址同时存在NS记录和A记录,则A记录不生效。这里的NS记录只对子域名生效。

TXT记录,为某个主机名或域名设置说明,如可以为taobao.com设置TXT记录为“天下第一”这样的说明。

DNS解析过程

当用户在浏览器中输入域名并按下回车键后

第一步:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果有,这个解析过程就结束了,直接拿到IP进行访问。这个浏览器缓存域名是有限制的,除了缓存大小有限制,缓存的时间也有限制,通常情况下由TTL属性来设置。

第二步:如果用户浏览器缓存中没有,浏览器会查找操作系统中是否有这个域名对应的DNS解析结果。windows中c:/windows/system32/drivers/etc/hosts文件设置,linux中/etc/hosts文件中设置。当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果。(修改文件后不立即生效的原因)

第三步:在网络配置中都会有“DNS服务器地址”这一项,当前面两步都不能解析时,操作系统会把这个域名发送给设置的DNS服务器(简称LDNS)-local缩写,一般是本地区的域名服务器也可以是自己设置的域名服务器地址,如果命中,那解析就此结束并返回IP并标记为非权威服务器的应答。如是学校的互联网,那么你的DNS服务器肯定在你的学校,如果你是一个小区接入互联网,那这个DNS就是提供给你接入互联网的应用供应商,即电信或联通。windows中能用ipconfig查看DNS服务器地址,linux中cat /etc/resolv.conf查看DNS Server。

第四步:如果LDNS没有命中,LDNS就会向Root Server域名服务器请求解析。LDNS会从配置文件里面读取13个根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中),然后像其中一台发起请求。

第五步:根服务器拿到这个请求后,知道他是com.这个顶级域名下的,所以就会返回com.域中的NS记录,一般来说是13台主机名和IP(主域名服务器地址即gTLD-国际顶级域名服务器地址),返回给本地域名服务器即LDNS,

第六步:LDNS再向上一步返回的其中一台gTLD服务器发送请求。com.域的服务器(gTLD)发现你这请求是baidu.com这个域的,一查发现了这个域的NS(一般就是你注册的域名服务器),那就返回给你,你再去查。

第七步:LDNS接受gTLD返回的域服务器地址(即域名服务提供商的域服务器)并向其中一台再次发起请求,在baidu.com的域下面查了下有www的这台主机,就把这个IP返回给你了。

第八步:LDNS接受返回的IP和TLL值

第九步:LDNS缓存这个域名和IP的对应关系,缓存时间有TLL控制

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

ps:

一般经历从根域名(.)到gTLD Server(.com.)到Name Server(taobao.com.)

DNS的服务器有多个备份,可以从任何一台查询到解析结果。

跟踪域名解析过程的命令

nslookup  查询域名的解析结果  linux&windows

dig host +trace  查询DNS的解析过程  linux

清除缓存的域名

ipconfig /flushdns  刷新缓存  windows

/etc/init.d/nscd restart  重启  linux

JVM也会缓存DNS的解析结果,这个缓存是在InetAddress类中完成的,而且这个缓存时间比较特殊,它有两种策略:一种是正确解析结果缓存,另一种是失败的解析结果缓存。这两个缓存时间由两个配置项控制,配置项在%JAVA_HOME%\lib\security\java.security文件中。两个配置项分别是networkaddress.cache.ttl和networkaddress.cache.negative.tll,默认值分别是-1(永不失效)和10(缓存10秒)。

-Dsun.net.inetaddr.tll=***可以来修改默认值,InetAddress类也可以动态修改。

相关TAG标签
上一篇:Zabbix监控PostgreSQL
下一篇:清华男生悬挂创意横幅,诙谐潮语迎“三七”女生节
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站