域名的概念与机制(4)

80酷酷网    80kuku.com

  

  4.3.3. 算法

  大体上,算法有四步:

  1.   检查结果是否在本地,如果是则直接返回;

  2.   向最合适的服务器查询;

  3.   向多个服务器发出请求,直到得到响应;

  4.   分析结果:

  •   如果响应给出了结果或包含名字错误,缓冲并返回结果给用户;

  •   如果响应指出更合适的服务器,缓冲这个结果,转第2步;

  •   如果响应显示CNAME,但并不是答案,缓冲CNAME,将SNAME改为CNAME RR中的统一名称,然后转第1步;

  •   如果响应显示服务器失败或其它不可识别的内容,从SLIST中删除此服务器,然后转第3步。

  第1步在缓冲内查找,如果找到了,那就返回给用户。有些resolver可以设置不使用缓冲内的数据,但并不推荐把它做为默认情况。如果resolver能够直接访问服务器的区,而且能够找到数据的认证形式,则不要使用缓冲内的数据。

  第2步向服务器查询需要的数据,通常的办法是寻找本地提供的服务器RR,提供SNAME,然后给出SNAME的父域名,父域名的父域名,以此类推,直到根。因此,如果SNAME=Mockapetris.ISI.EDU,查询NS RR的顺序为Mockapetris.ISI.EDU,ISI.EDU,EDU,最后是.(根)。NS RR列出了此区的或在SNAME之上的主机名,复制名字到SLIST,使用本地信息设置它们的地址,可能地址不可用,此时resolver有几种不同的选择,最好是进行并行搜索,一个搜索现在可用的,一个去寻找新的,当然实现起来就有麻烦了,我们把实现的一些规则列于下面:

  •   加入一些限制,让请求不会进入无限循环,也不会造成对链式请求和对其它服务的链式请求,即使在有人错误配置的情况下也不能造成上述情况

  •   尽一切可以获得响应

  •   避免不必要的传输

  •   尽快获得响应

  如果查询NS RR失败,resolver从SBELT中初始化SLIST,基本的思想是当resolver不知道哪个服务器在工作时,它会从一个配置文件中取得相应的信息。虽然是特殊情况,但基本上要有两个根服务器地址存在于这种配置文件中。有两个是为了冗余,根服务器可以对所有的域空间进行探索,两个本地服务器将允许resolver继续尝试利用本地资源解析域名。除了名字的名字和地址,SLIST中可以保存服务器的优先查询顺序,保证高优先级在前,本地服务器在远程服务器前,也可能是由成功的统计结果得到,算法不尽相同。

  第3步发出请求,直到收到响应。算法基本思想是对所有列出的服务器以循环方式进行发送。实际上,要重视多穴(multihomed)主机的多个地址,在使用多个resolver的时候要注意对相同主机进行重新传输对时间的影响。SLIST通常包括一个值,用于控制和监视传输的超时。

  第4步涉及分析结果,resovler应该检查响应的ID域看是不是和请求的ID一致。理想的响应是从认证权威那里收到的数据,它要么给出需要的数据,要么给出名字错误。在TTL大于0的时候,结果保存于缓冲,同时结果返回给用户。如果结果指出其它服务器A,要对这个服务器A和SLIST中的主机进行比较,看是不是更合适,这可以通过比较SLIST中的匹配计数完成,这个匹配计数是通过SNAME和服务器A中的NS RR计算得到。如果不合适,这个响应会被忽略,如果合适,结果会被缓冲,相应的服务器会进入SLIST,新的查询开始。如果响应包括CNAME,新查询将从CNAME开始,除非响应有标准格式的数据,或CNAME就中结果。

  5.例子

  在我们的例子空间中,假设我们希望将根管理权分散到MIL,EDU,MIT.EDU和ISI.EDU区,我们可以按下图分配名字服务器:(认证权威将被加上括号)

  |(C.ISI.EDU,SRI-NIC.ARPA                                   | A.ISI.EDU)             +---------------------+------------------+             |                     |                  |            MIL                   EDU                ARPA             |(SRI-NIC.ARPA,       |(SRI-NIC.ARPA,    |             | A.ISI.EDU           | C.ISI.EDU)       |       +-----+-----+               |     +------+-----+-----+       |     |     |               |     |      |           |      BRL  NOSC  DARPA             |  IN-ADDR  SRI-NIC     ACC                                   |       +--------+------------------+---------------+--------+       |        |                  |               |        |      UCI      MIT                 |              UDEL     YALE                |(XX.LCS.MIT.EDU, ISI                |ACHILLES.MIT.EDU) |(VAXA.ISI.EDU,VENERA.ISI.EDU,            +---+---+              | A.ISI.EDU)            |       |              |           LCS   ACHILLES +--+-----+-----+--------+            |             |  |     |     |        |            XX            A  C   VAXA  VENERA Mockapetris

  根名字服务器在C.ISI.EDU,SRI-NIC.ARPA和A.ISI.EDU,MIL域由SRI-NIC.ARPA和A.ISI.EDU支撑;EDU域由SRI-NIC.ARPA和C.ISI.EDU,服务器拥有的区可以连接也可以不连接,本例中,C.ISI.EDU和根及EDU域连接,A.ISI.EDU和根及MIL域有连接,但和ISI.EDU有一个不连接的区。

  5.1. C.ISI.EDU名字服务器

  C.ISI.EDU是IN级的根,MIL,EDU域的名字服务器,也拥有这些域的区,对根域的区数据如下:

  .       IN      SOA     SRI-NIC.ARPA. HOSTMASTER.SRI-NIC.ARPA. (                            870611          ;serial                            1800            ;refresh every 30 min                            300             ;retry every 5 min                            604800          ;expire after a week                            86400)          ;minimum of a day                    NS      A.ISI.EDU.                    NS      C.ISI.EDU.                    NS      SRI-NIC.ARPA.    MIL.    86400   NS      SRI-NIC.ARPA.            86400   NS      A.ISI.EDU.    EDU.    86400   NS      SRI-NIC.ARPA.            86400   NS      C.ISI.EDU.    SRI-NIC.ARPA.   A       26.0.0.73                    A       10.0.0.51                    MX      0 SRI-NIC.ARPA.                    HINFO   DEC-2060 TOPS20    ACC.ARPA.       A       26.6.0.65                    HINFO   PDP-11/70 UNIX                    MX      10 ACC.ARPA.    USC-ISIC.ARPA.  CNAME   C.ISI.EDU.    73.0.0.26.IN-ADDR.ARPA.  PTR    SRI-NIC.ARPA.    65.0.6.26.IN-ADDR.ARPA.  PTR    ACC.ARPA.    51.0.0.10.IN-ADDR.ARPA.  PTR    SRI-NIC.ARPA.    52.0.0.10.IN-ADDR.ARPA.  PTR    C.ISI.EDU.    103.0.3.26.IN-ADDR.ARPA. PTR    A.ISI.EDU.    A.ISI.EDU. 86400 A      26.3.0.103    C.ISI.EDU. 86400 A      10.0.0.52

  这些数据可能存在于配置文件中(master file)中。大多数RR是一行一个,唯一的例外是SOA RR,它表示多行RR的结束。因为一个区中的所有RR的class必须相同,因此只有区中的第一个RR需要指定class。当服务器装入一个区时,它设置所有认证数据的TTL至少于SOA域的MINUMUM那么大或为一天,这里为86400秒。NS RR标记了MIL和EDU域的相关服务器,它和服务器地址关联RR一起的,但是NS RR并不是区中认证数据。

  有四个RR和根结点相关:一个描述根区的RR,3个用于列出根的名字服务器。在SOA RR中的数据描述对区的管理。区数据由主机SRI-NIC.ARPA保存,区的责任方是HOSTMASTERSRI-NIC.ARPA,SOA的主要条目是86400秒(TTL),这就意味着区中所有认证数据至少是TTL,也可以指定更大的数值。

  MIL和EDU域的NS RR标准了根区和MIL,EDU区的边界。注意本例中支持最低区的服务器也支持根区。EDU区中的配置文件(master file)必须相对于源EDU设置,EDU域中的数据可能是:

  EDU.  IN SOA SRI-NIC.ARPA. HOSTMASTER.SRI-NIC.ARPA. (                            870729 ;serial                            1800 ;refresh every 30 minutes                            300 ;retry every 5 minutes                            604800 ;expire after a week                            86400 ;minimum of a day                            )                    NS SRI-NIC.ARPA.                    NS C.ISI.EDU.    UCI 172800 NS ICS.UCI                    172800 NS ROME.UCI    ICS.UCI 172800 A 192.5.19.1    ROME.UCI 172800 A 192.5.19.31    ISI 172800 NS VAXA.ISI                    172800 NS A.ISI                    172800 NS VENERA.ISI.EDU.    VAXA.ISI 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 172800 A 26.3.0.103    UDEL.EDU.  172800 NS LOUIE.UDEL.EDU.                    172800 NS UMN-REI-UC.ARPA.    LOUIE.UDEL.EDU. 172800 A 10.0.0.96                    172800 A 192.5.39.3    YALE.EDU.  172800 NS YALE.ARPA.    YALE.EDU.  172800 NS YALE-BULLDOG.ARPA.    MIT.EDU.  43200 NS XX.LCS.MIT.EDU.                      43200 NS ACHILLES.MIT.EDU.    XX.LCS.MIT.EDU.  43200 A 10.0.0.44    ACHILLES.MIT.EDU. 43200 A 18.72.0.8

  请注意相对名字的使用,ISI.EDU.的拥有者是一个相对名。文件可以使用相对名和绝对名,混合使用。

  5.2. 标准查询例子

  下面的查询和响应显示了服务器的动作,除非说明,查询都没有进行循环查询。注意,对非循环查询的响应必须依赖于查询的服务器,不依赖于请求者。

  5.2.1. QNAME=SRI-NIC.ARPA,QTYPE=A

  查询如下:

  +---------------------------------------------+    Header     | OPCODE=SQUERY                               |               +---------------------------------------------+    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=A     |               +---------------------------------------------+    Answer     |                                      |               +---------------------------------------------+    Authority  |                                      |               +---------------------------------------------+    Additional |                                      |               +---------------------------------------------+
  响应应该是:               +--------------------------------------------+    Header     | OPCODE=SQUERY, RESPONSE, AA                |               +--------------------------------------------+    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=A    |               +--------------------------------------------+    Answer     | SRI-NIC.ARPA. 86400 IN A 26.0.0.73         |               |               86400 IN A 10.0.0.51         |               +--------------------------------------------+    Authority  |                                     |               +--------------------------------------------+    Additional |                                     |               +--------------------------------------------+

  响应的头和查询头挺象,除了RESPONSE位的设置不同,还有就是AA位的设置,表示此数据来自认证权威。响应的question区和查询的question区一致。如果相同的查询发送到其它非SRI-NIC.ARPA的认证性质服务器,响应可能是:

  +---------------------------------------------------+    Header     | OPCODE=SQUERY,RESPONSE                            |               +---------------------------------------------------+    Question   | QNAME=SRI-NIC.ARPA., QCLASS=IN, QTYPE=A           |               +---------------------------------------------------+    Answer     | SRI-NIC.ARPA. 1777 IN A 10.0.0.51                 |               |               1777 IN A 26.0.0.73                 |               +---------------------------------------------------+    Authority  |                                            |               +---------------------------------------------------+    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

  此类的查询可以来自邮件发送者,它希望查询邮件地址HOSTMASTERSRI-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

  假设第一个解析是为了解析PVMISI.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在同一网络上。上表中有许多服务器,其中之一就可以响应请求。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: