📄 dns协议.htm
字号:
align=justify>它是一个16位值,指定RR内的资源类型,它指一个抽象资源,具体的标记有以下几个:</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>A</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>主机地址</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>CNAME</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>一个拟名的统一命名</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>HINFO</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>标记由主机使用折CPU和OS</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>MX</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>标记用于域的邮件交换资源</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>NS</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>此域的权威认证名字服务器</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>PTR</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>指向其它域名空间的指针</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" height=9><FONT face=宋体 size=3>
<P align=justify>SOA</FONT></P></TD>
<TD vAlign=top width="80%" colSpan=2 height=9><FONT face=宋体 size=3>
<P align=justify>标记区认证权威的开始</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%"><FONT face=宋体 size=3>
<P align=justify>class</FONT></P></TD>
<TD vAlign=top width="90%" colSpan=2><FONT face=宋体 size=3>
<P
align=justify>它是一个16位值,标记协议族或某一个协议实例,本文中使用IN代表internet系统,CH代表Chaos系统</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%"><FONT face=宋体 size=3>
<P align=justify>TTL</FONT></P></TD>
<TD vAlign=top width="90%" colSpan=2><FONT face=宋体 size=3>
<P
align=justify>它是RR的生存时间,它是32位整数,单位是秒,它主要用于resolver缓存RR多长时间</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="90%" colSpan=3 height=6><FONT face=宋体 size=3>
<P align=justify>它是一种类型,有时是依赖于数据的类,它描述了以下资源:</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" colSpan=2 height=6><FONT face=宋体 size=3>
<P align=justify>A</FONT></P></TD>
<TD vAlign=top width="80%" height=6><FONT face=宋体 size=3>
<P
align=justify>对于class是IN的,它是一个32位IP地址,对于CH,它是后面跟一个16位八进制Chaos地址的域名</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" colSpan=2 height=6><FONT face=宋体 size=3>
<P align=justify>CNAME</FONT></P></TD>
<TD vAlign=top width="80%" height=6><FONT face=宋体 size=3>
<P align=justify>域名</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" colSpan=2 height=6><FONT face=宋体 size=3>
<P align=justify>MX</FONT></P></TD>
<TD vAlign=top width="80%" height=6><FONT face=宋体 size=3>
<P align=justify>作为一个域的邮件服务资源的主机名,主机名后有一个16位的配置值</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" colSpan=2 height=6><FONT face=宋体 size=3>
<P align=justify>NS</FONT></P></TD>
<TD vAlign=top width="80%" height=6><FONT face=宋体 size=3>
<P align=justify>主机名</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" colSpan=2 height=6><FONT face=宋体 size=3>
<P align=justify>PTR</FONT></P></TD>
<TD vAlign=top width="80%" height=6><FONT face=宋体 size=3>
<P align=justify>域名</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="10%" colSpan=2 height=6><FONT face=宋体 size=3>
<P align=justify>SOA</FONT></P></TD>
<TD vAlign=top width="80%" height=6><FONT face=宋体 size=3>
<P align=justify>一些域</FONT></P></TD></TR></TBODY></TABLE><FONT face=宋体
size=3>
<P
align=justify>拥有资源的名字通常是隐式的,不构成RR的一部分。TTL时间只影响缓冲内的数据,不影响区内的已经保存的认证数据。TTL通常由管理员设置,TTL=0表示禁止缓冲。RDATA内的数据是二进制串和域名的混合。域名通常使用指针指向DNS内的其它数据。</P>
<P align=justify>2.6.1. RR的文本表示</P>
<P
align=justify>RR在DNS中是以二进制形式表示的,而在名字服务器或resolver中保存的时是经过压缩编码处理的。本文中我们采用相同于主文件中表示的表示方法,也就是不压缩的方法,以便显示RR的内容。行开始时给出谁拥有RR,如果这一位置空出,就表示本行RR的拥有者和上面RR的拥有者是一个。其后是TTL,type和RR的class。RR的RDATA部分是在当前数据的表示类型的基础上得到的。下面是一些RR的例子:</P>
<P align=justify>ISI.EDU. MX 10 VENERA.ISI.EDU.</P>
<P align=justify>MX 10 VAXA.ISI.EDU.</P>
<P align=justify>VENERA.ISI.EDU. A 128.9.0.32</P>
<P align=justify>A 10.1.0.52</P>
<P align=justify>VAXA.ISI.EDU. A 10.2.0.27</P>
<P align=justify>A 128.9.0.33</P>
<P
align=justify>其中我们注意到MX那一部分,它的RDATA部分有是一个16位数后面跟一个域名组成。其它的也就不说了。本例子显示了6个RR,第三个域名有两个RR。下面是一个例子,它显示在不同的class下如何表示:</P>
<P align=justify>XX.LCS.MIT.EDU. IN A 10.0.0.44</P>
<P align=justify>CH A MIT.EDU. 2420</P>
<P align=justify>2.6.2. 别名和统一命名</P>
<P
align=justify>现存的系统中有时会对相同的资源有不同的命名,不但主机是这样,邮箱也是这样,不同的名字指向的是同一个位置。大部分系统都能够对多个名字指定一个是统一命名的结果,另外的是别名。域名系统提供使用统一命名的机制(CNAME
RR),CNAME RR标记它的owner名为别名,并指出在RDATA部分的相应统一命名。如果一个结点存在CNAME
RR,不应该有其它的数据,这保证了统一命名和它的别名不能不同。这也使得缓冲的CNAME可以不用检索认证权威服务器就可以提供服务。在有CNAME
RR时,DNS软件如果查询不到与域名相关的资源,它会检查资源集中是不是有一个有匹配class的CNAME,如果有,名字服务器返回的应答中包括这个CNAME记录,并根据在CNAME中指定的数据开始新的查询。下面我们看一个例子,假设名字服务器处理对USC-ISIC.ARPA的查询,它要求查询A信息,下面是RR的内容:</P>
<P align=justify>USC-ISIC.ARPA IN CNAME C.ISI.EDU</P>
<P align=justify>C.ISI.EDU IN A 10.0.0.52</P>
<P align=justify>这两个RR都作为响应返回,而只查询CNAME的*查询则只返回CNAME。</P>
<P
align=justify>RR中指向其它名字的域名应该指向主名而不是别名,这就避免了查询中过多的转向查询。例如,对于上面的RR,它的IN-ADDR.ARPA记录应该是:</P>
<P align=justify>52.0.0.10.IN-ADDR.ARPA IN PTR C.ISI.EDU</P>
<P
align=justify>最后指向的是C.ISI.EDU,而不是USC-ISIC.ARPA,当然一个健壮的域名软件不会因为提供了循环的CNAME而失败。</P>
<P align=justify>2.7. 查询</P>
<P
align=justify>查询就是发向名字服务器要求响应的一个请求。在Internet上,这种请求以UDP或TCP传输,名字服务器的响应可以是查询结果,或是另一个名字名字器地址,要么就是一个错误信息。通常用户并不直接发送请求,而是向resolver发送请求,由resolver依次将一个或多个请求发向名字服务器,并负责处理错误情况。请求和响应有标准格式,它们包括一个头和数个固定的域,然后是包括查询参数和RR的四个部分。头中最重要的域是称为操作符的东西,它指出要进行什么操作。在所有可能的16个值中,标准查询是必须的,反向查询和状态查询是可选的,有一个完全查询已经过时,其它的还未指定。而上面的提到的四个部分如下:</FONT></P>
<TABLE cellSpacing=1 cellPadding=7 width="100%" border=1>
<TBODY>
<TR>
<TD vAlign=top width="22%"><FONT face=宋体 size=3>
<P align=justify>Question</FONT></P></TD>
<TD vAlign=top width="78%"><FONT face=宋体 size=3>
<P align=justify>包括查询名和其它参数</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="22%"><FONT face=宋体 size=3>
<P align=justify>Answer</FONT></P></TD>
<TD vAlign=top width="78%"><FONT face=宋体 size=3>
<P align=justify>包括查询结果的RR</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="22%"><FONT face=宋体 size=3>
<P align=justify>Authority</FONT></P></TD>
<TD vAlign=top width="78%"><FONT face=宋体 size=3>
<P align=justify>包括一个RR,但这个RR包括的是另一个名字服务器</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="22%"><FONT face=宋体 size=3>
<P align=justify>Additional</FONT></P></TD>
<TD vAlign=top width="78%"><FONT face=宋体 size=3>
<P
align=justify>包括了一个些在其它部分中使用RR时会有用的信息</FONT></P></TD></TR></TBODY></TABLE><FONT
face=宋体 size=3>
<P align=justify>请注意:因头中操作符(码)的不同,这些部分的内容可能不同,但格式可是一样的。</P>
<P align=justify>2.7.1. 标准查询</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -