1、域名结构:
域名系统采用层次结构的命名方法,每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(AZ,az,大小写等价)、数字(09)和连接符()组成,标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label),每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
级别最低的域名写在左边,级别最高的域名写在右边,www.baidu.com”,com”是顶级域名(TLD,TopLevel Domain),“baidu”是二级域名(SLD,Second Level Domain)。
2、域名服务器:
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器,本地域名服务器如果解析不了域名就会向根域名服务器求助,全球共有13个不同IP地址的根域名服务器,它们的名称用一个英文字母命名,从a一直到m,这些服务器由各种组织控制,并由ICANN(互联网名称与数字地址分配机构)授权。
顶级域名服务器:负责管理在该顶级域名服务器下注册的二级域名,当根域名服务器告诉查询者顶级域名服务器地址时,查询者紧接着就会到顶级域名服务器进行查询。
权限域名服务器:负责一个区的域名解析工作。
本地域名服务器:当一个主机发出DNS查询请求的时候,这个查询请求首先就是发给本地域名服务器的。
3、域名解析过程:
总体可分为两大步骤,第一个步骤是本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;第二个步骤是本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址。
具体的流程可描述如下:主机先向本地域名服务器进行递归查询,本地域名服务器采用迭代查询,向一个根域名服务器进行查询,根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址,本地域名服务器再向顶级域名服务器进行查询,顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址,本地域名服务器再向权限服务器进行查询,权限服务器最后把查询结果告诉本地域名服务器,本地域名服务器再把这个查询结果告诉主机。
4、DNS协议报文格式:
头部:会话标识(2字节)是DNS报文的ID标识,对于请求报文和其对应的应答报文,这个字段是相同的,通过它可以区分DNS应答报文是哪个请求的响应;标志(2字节),包含了QR(1bit,查询/响应标志,0为查询,1为响应)、opcode(4bit,操作码,0表示标准查询,1表示反向查询,2表示服务器状态请求)、AA(1bit,表示授权回答)、TC(1bit,表示可截断的)、RD(1bit,表示期望递归)、RA(1bit,表示可用递归)、rcode(4bit,表示返回码,0表示没有差错,3表示名字差错,2表示服务器错误)等字段。
问题区域:包含着正在进行的查询信息,该区域包括名字字段(表示正在被查询的主机名字)、类型字段(表示有关改名字的正被询问的问题类型,例如类型A表示主机地址是与一个名字相关联,类型MX表示主机地址域邮箱服务器相关联)、类字段(指定了被查询名字的类别)。
回答区域:包含了对最初请求的名字的资源记录。
权威区域:包含了其他权威服务器的记录。
附加区域:包含了其他有帮助的记录。
5、DNS缓存:
DNS的缓存是为了改善DNS解析的延迟性问题,同时减少因特网上的DNS报文数量,有了缓存之后,DNS服务器可以记住通过自己所解析的域名地址,并将他们缓存起来(缓存不是永久有效的,缓存时会有一个缓存时间设置TTL),本地服务器也可以缓存TLD服务器的ip地址,从而在查询解析时绕过根DNS服务器,直接访问TLD服务器。
6、DNS记录类型:
A记录:将主机名映射到一个IP地址。
NS记录:将一个域映射到一个或多个DNS服务器。
CNAME记录:规范名称记录,允许一个别名指向另一个主机名。
MX记录:将一个域映射到一个或多个邮件服务器。
TXT记录:提供关于主机的任意文本信息。
7、相关问题与解答:
问题1:什么是递归查询?
解答:递归查询是指本机向本地域名服务器发出一次查询请求后,就静待最终的结果,如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。
问题2:什么是迭代查询?
解答:迭代查询是指本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/130671.html