DNS域名解析
域名
域名通常是用户所用的主机的名字或地址。域名格式由若干部分组成,每个部分又称子域名,它们之间用“.”分开,每个部分最少由两个字母或数字组成。域名通常按分层结构来构造,每个子域名都有其特定的含义。
-
通常情况下,一个完整、通用层次型主机域名由4个部分组成:计算机主机名.本地名.组名.最高层域名。
- GOV=政府部门
- TECH=科技/技术
- EDU=教育机构
- ORG=组织(非盈利型或非商业型)
- COM=商业
- MIL=军事
- NET=网络服务供给者
- TOP=顶级、巅峰(行业标杆)
如果一个主机所在网络级别较高,它可能拥有的域名仅包含3个部分:本地名.组名.最高层域名。
域名服务
Internet中的域名地址和IP地址是等价的,他们之间通过域名服务完成映射变换。
DNS是一种分布式地址信息数据库系统,服务器中包含整个数据库的某部分信息,供客户查询。DNS允许局部控制整个数据库的某部分,但数据库的每一部分都可通过全网查询。
域名系统采用的是客户端/服务器模式,整个系统由解析器和域名服务器组成。解析器是客户方,负责查询域名服务器、解释从服务器返回来的应答、将信息返回给请求方等工作。域名服务器是服务器方,通常保存着一部分域名空间的全部信息,这部分域名空间称为区。一个域名服务器可以管理一个或多个分区。
域名系统是一个分布式系统,其管理和控制也是分布式的。
在访问主机的时候只需要知道域名,通过DNS服务器将域名变换为IP地址。DNS所用的是UDP端口,端口号为53。
解析过程
以下内容转自:https://blog.****.net/u010555682/article/details/52127451
https://blog.****.net/zhangyuan19880606/article/details/51141610
网络客户端就是我们平常使用的电脑,打开浏览器,输入一个域名。比如输入www.163.com。
浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。
如果用户浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,在Linux中可以通过/etc/hosts文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上,导致这些域名被劫持。
操作系统缓存中没有这个域名对应的DNS解析结果。这时,你使用的电脑会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。
查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。
根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。
本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。
最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。
注意
-
关于DNS解析的TTL参数:
- 我们在配置DNS解析的时候,有一个参数常常容易忽略,就是DNS解析的TTL参数,Time To Live。TTL这个参数告诉本地DNS服务器,域名缓存的最长时间。用阿里云解析来举例,阿里云解析默认的TTL是10分钟,10分钟的含义是,本地DNS服务器对于域名的缓存时间是10分钟,10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述复杂的流程。