当前位置: 网站首页>>协议大全>>DNS协议>>

域名的概念与机制(2)

时间:2005-11-01 来源: 作者: 点击:
| +---------------------------------------------------+ Additional | | +---------------------------------------------------+ 这个响应和上面的响应不同,AA位不同,TTL不同,此数据可能不来自于一个区,而
   | +---------------------------------------------------+ Additional | | +---------------------------------------------------+

这个响应和上面的响应不同,AA位不同,TTL不同,此数据可能不来自于一个区,而来自缓冲。认证TTL和这里的TTL不同是因为处于缓冲中的原因,响应区中的RR的不同不用注意。

5.2.2. QNAME=SRI-NIC.ARPA,QTYPE=*

这个查询和上面的很象,但是QTYPE=*,从C.ISI.EDU接收到的响应如下:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=*           |
               +---------------------------------------------------+
    Answer     | SRI-NIC.ARPA. 86400 IN  A     26.0.0.73           |
               |                         A     10.0.0.51           |
               |                         MX    0 SRI-NIC.ARPA.     |
               |                         HINFO DEC-2060 TOPS20     |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+
如果相同的查询发到两个非SRI-NIC.ARPA区中的非认证性质的服务器,响应如下:
               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE                           |
               +---------------------------------------------------+
    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=*           |
               +---------------------------------------------------+
    Answer     | SRI-NIC.ARPA. 12345 IN     A       26.0.0.73      |
               |                            A       10.0.0.51      |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+
               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE                           |
               +---------------------------------------------------+
    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=*           |
               +---------------------------------------------------+
    Answer     | SRI-NIC.ARPA. 1290 IN HINFO  DEC-2060 TOPS20      |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

未设置AA位,因此响应不是认证数据,TTL不同,表示缓冲的时候不同,头一个是因为QTYPE=A查询而缓冲的,第二个是进行HINFO查询后响应而缓冲的。

5.2.3. QNAME=SRI-NIC.ARPA,QTYPE=MX

此类的查询可以来自邮件发送者,它希望查询邮件地址HOSTMASTER@SRI-NIC.ARPA的路由信息,从C.ISI.EDU获得的响应可能是:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=MX          |
               +---------------------------------------------------+
    Answer     | SRI-NIC.ARPA. 86400 IN     MX      0 SRI-NIC.ARPA.|
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional | SRI-NIC.ARPA. 86400 IN     A       26.0.0.73      |
               |                            A       10.0.0.51      |
               +---------------------------------------------------+

响应中包括MX RR,附加区域包括地址RR,因为C.ISI.EDU的名字服务器猜测请求者可能需要这个地址。

5.2.4. QNAME=SRI-NIC.ARPA,QTYPE=NS C.ISI.EDU的响应如下:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=NS          |
               +---------------------------------------------------+
    Answer     |                                            |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

响应与查询的区别在于AA位和RESPONSE位,此服务器是名字的认证权威,而且名字存在。

5.2.5. QNAME=SIR-NIC.ARPA,QTYPE=A

如果主机名错误,C.ISI.EDU的响应如下:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA, RCODE=NE             |
               +---------------------------------------------------+
    Question   | QNAME=SIR-NIC.ARPA., QCLASS=IN, QTYPE=A           |
               +---------------------------------------------------+
    Answer     |                                            |
               +---------------------------------------------------+
    Authority  | . SOA SRI-NIC.ARPA. HOSTMASTER.SRI-NIC.ARPA.      |
               |       870611 1800 300 604800 86400                |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

响应表示名字不存在,错误码在头的RCODE区中给出。认证区中的SOA RR是可选的否定缓冲数据,它可以让resolver使用这个响应来使请求者在SOA MINIMUM(86400)秒内认为此名字不存在。

5.2.6. QNAME=BRL.MIL,QTYPE=A

如果查询发到C.ISI.EDU,响应是:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE                           |
               +---------------------------------------------------+
    Question   | QNAME=BRL.MIL, QCLASS=IN, QTYPE=A                 |
               +---------------------------------------------------+
    Answer     |                                            |
               +---------------------------------------------------+
    Authority  | MIL.             86400 IN NS       SRI-NIC.ARPA.  |
               |                  86400    NS       A.ISI.EDU.     |
               +---------------------------------------------------+
    Additional | A.ISI.EDU.                A        26.3.0.103     |
               | SRI-NIC.ARPA.             A        26.0.0.73      |
               |                           A        10.0.0.51      |
               +---------------------------------------------------+

响应有一个空的回答区,但它不是认证的,只是一个参考。在C.ISI.EDU知道自己不是MIL的认证权威,因此向请求者推荐了在A.ISI.EDU和SRI-NIC.ARPA上的服务器,它们是MIL的认证权威。

5.2.7. QNAME=USC-ISIC.ARPA,QTYPE=A

从A.ISI.EDU的响应如下:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=USC-ISIC.ARPA., QCLASS=IN, QTYPE=A          |
               +---------------------------------------------------+
    Answer     | USC-ISIC.ARPA. 86400 IN CNAME      C.ISI.EDU.     |
               | C.ISI.EDU.     86400 IN A          10.0.0.52      |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

请注意,头中的AA域保证匹配的QNAME是认证过的,但对于C.ISI.EDU的数据是不是认证的可没有说,由于A.ISI.EDU可能是ARPA域和ISI.EDU的认证权威,而且找到了USC-ISIC.ARPA和C.ISI.EDU的数据,因此此响应是可能的。如果相同的查询发到C.ISI.EDU,响应差不多:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=USC-ISIC.ARPA., QCLASS=IN, QTYPE=A          |
               +---------------------------------------------------+
    Answer     | USC-ISIC.ARPA.   86400 IN CNAME   C.ISI.EDU.      |
               +---------------------------------------------------+
    Authority  | ISI.EDU.        172800 IN NS      VAXA.ISI.EDU.   |
               |                           NS      A.ISI.EDU.      |
               |                           NS      VENERA.ISI.EDU. |
               +---------------------------------------------------+
    Additional | VAXA.ISI.EDU.   172800    A       10.2.0.27       |
               |                 172800    A       128.9.0.33      |
               | VENERA.ISI.EDU. 172800    A       10.1.0.52       |
               |                 172800    A       128.9.0.32      |
               | A.ISI.EDU.      172800    A       26.3.0.103      |
               +---------------------------------------------------+

响应包括对别名USC-ISIC.ARPA的认证响应,而且包括一个对ISI.EDU的推荐。

5.2.8. QNAME=USC-ISIC.ARPA,QTYPE=CNAME

如果查询发到A.ISI.EDU或C.ISI.EDU,响应如下:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=USC-ISIC.ARPA., QCLASS=IN, QTYPE=A          |
               +---------------------------------------------------+
    Answer     | USC-ISIC.ARPA. 86400 IN CNAME      C.ISI.EDU.     |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

因为QTYPE=CNAME,CNAME RR本身就响应了查询,服务器不用查询别的东西。

5.3. 解析例子

下面的例子表示了resolver的动作,我们假设resolver开始时没有缓冲,我们假设查询主机在26号网络,而且它的SBELT如下:

    Match count = -1
    SRI-NIC.ARPA.   26.0.0.73       10.0.0.51
    A.ISI.EDU.      26.3.0.103

其中的匹配记数为-1,表示服务器不靠近目标,这个靠近不靠近是一个相对值,不能精确表示什么,它为以后的算法提供了一个数据。下面的例子显示缓冲的使用,所以每个例子都假设前一个例子中的查询已经完成。

5.3.1. 解析ISI.EDU的MX

假设第一个解析是为了解析PVM@ISI.EDU的地址。resolver会检查缓冲,但空的缓冲区可是帮不上什么忙,resolver然后会查询ISI.EDU,EDU和根域,查询也失败了,于是resolver就从SBELT中获得数据,并复制到SLIST中。此时resolver会检查3个有用的服务器地址进行尝试,因为resolver在26号网络,它会首先选择26.0.0.73或26.3.0.103,发出的请求如下:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY                                     |
               +---------------------------------------------------+
    Question   | QNAME=ISI.EDU., QCLASS=IN, QTYPE=MX               |
               +---------------------------------------------------+
    Answer     |                                            |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

resolver会等待结果,如果超时,它会尝试另一个地址,下来是相同服务器的不同地址,最后再试试试过的地址,它最终可能从SRI-NIC.ARPA获得响应:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE                           |
               +---------------------------------------------------+
    Question   | QNAME=ISI.EDU., QCLASS=IN, QTYPE=MX               |
               +---------------------------------------------------+
    Answer     |                                            |
               +---------------------------------------------------+
    Authority  | ISI.EDU.        172800 IN NS       VAXA.ISI.EDU.  |
               |                           NS       A.ISI.EDU.     |
               |                           NS       VENERA.ISI.EDU.|
               +---------------------------------------------------+
    Additional | VAXA.ISI.EDU.   172800    A        10.2.0.27      |
               |                 172800    A        128.9.0.33     |
               | VENERA.ISI.EDU. 172800    A        10.1.0.52      |
               |                 172800    A        128.9.0.32     |
               | A.ISI.EDU.      172800    A        26.3.0.103     |
               +---------------------------------------------------+

resolver发现响应是给出的推荐服务器比现在的SLIST要好,resolver会缓冲响应中的信息,并用它建立新的SLIST:

    Match count = 3
    A.ISI.EDU.      26.3.0.103
    VAXA.ISI.EDU.   10.2.0.27       128.9.0.33
    VENERA.ISI.EDU. 10.1.0.52       128.9.0.32

A.ISI.EDU在列表上,这是巧合,resolver将再一次开始发送,等待,最终得到响应:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=ISI.EDU., QCLASS=IN, QTYPE=MX               |
               +---------------------------------------------------+
    Answer     | ISI.EDU.                MX 10 VENERA.ISI.EDU.     |
               |                         MX 20 VAXA.ISI.EDU.       |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional | VAXA.ISI.EDU.   172800  A  10.2.0.27              |
               |                 172800  A  128.9.0.33             |
               | VENERA.ISI.EDU. 172800  A  10.1.0.52              |
               |                 172800  A  128.9.0.32             |
               +---------------------------------------------------+

resolver缓冲结果,同时返回结果给客户。

5.3.2. 获得地址26.6.0.65的主机名

resolver会将查询转换为对65.0.6.26.IN-ADDR.ARPA.有PTR RR=查询。此信息不在缓冲中,所以要查询别的服务器,又是没有找到合适的服务器,需要再次使用SBELT。因为请求的数据在缓冲中两个服务器的认证数据中,所以响应如下所示:

               +---------------------------------------------------+
    Header     | OPCODE=SQUERY, RESPONSE, AA                       |
               +---------------------------------------------------+
    Question   | QNAME=65.0.6.26.IN-ADDR.ARPA.,QCLASS=IN,QTYPE=PTR |
               +---------------------------------------------------+
    Answer     | 65.0.6.26.IN-ADDR.ARPA.    PTR     ACC.ARPA.      |
               +---------------------------------------------------+
    Authority  |                                            |
               +---------------------------------------------------+
    Additional |                                            |
               +---------------------------------------------------+

这会是一个对poneria.ISI.EDU的A请求,resolver找不到缓冲数据,但是能够在ISI.EDU的缓冲中的找到NS RR,使用这样的数据,它可以建立下面的SLIST表:

    Match count = 3
    A.ISI.EDU.      26.3.0.103
    VAXA.ISI.EDU.   10.2.0.27       128.9.0.33
    VENERA.ISI.EDU. 10.1.0.52

A.ISI.EDU列在最前面,因为它是最合适的服务器,A.ISI.EDU和resolver在同一网络上。上表中有许多服务器,其中之一就可以响应请求。

------分隔线----------------------------
顶一下
(2)
66.7%
踩一下
(1)
33.3%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容