home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-svrloc-discovery-04.txt < prev    next >
Text File  |  1997-10-14  |  16KB  |  481 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Internet-Draft                                                Ryan Moats
  8. draft-ietf-svrloc-discovery-04.txt                                  AT&T
  9. Expires in six months                                    Martin Hamilton
  10.                                                  Loughborough University
  11.                                                            Paul J. Leach
  12.                                                                Microsoft
  13.                                                             October 1997
  14.  
  15.                              Finding Stuff
  16.                        (How to discover services)
  17.               Filename: draft-ietf-svrloc-discovery-04.txt
  18.  
  19. Status of This Memo
  20.  
  21.       This document is an Internet-Draft.  Internet-Drafts are working
  22.       documents of the Internet Engineering Task Force (IETF), its
  23.       areas, and its working groups.  Note that other groups may also
  24.       distribute working documents as Internet-Drafts.
  25.  
  26.       Internet-Drafts are draft documents valid for a maximum of six
  27.       months and may be updated, replaced, or obsoleted by other
  28.       documents at any time.  It is inappropriate to use Internet-
  29.       Drafts as reference material or to cite them other than as ``work
  30.       in progress.''
  31.  
  32.       To learn the current status of any Internet-Draft, please check
  33.       the ``1id-abstracts.txt'' listing contained in the Internet-
  34.       Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net
  35.       (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
  36.       Coast), or ftp.isi.edu (US West Coast).
  37.  
  38. Abstract
  39.  
  40.    This document proposes a solution to the problem of finding
  41.    information about that services are being offered at a particular
  42.    Internet domain.  Therefore, it is possible for clients, using this
  43.    approach, to locate services in a domain with only prior knowledge of
  44.    the domain name.
  45.  
  46. 1. Rationale
  47.  
  48.    Currently, there is no one single way of discovering the network
  49.    services and application protocols supported at a particular Internet
  50.    domain.  The Domain Name System (DNS) provides some basic facilities
  51.    for finding the hosts that offer particular services, such as DNS
  52.    servers themselves (NS records), mail exchangers (MX records [3]).
  53.    Recently general service records (SRV records [1]) have been proposed
  54.    for DNS, along with storing geographic information (LOC records [6]).
  55.  
  56.  
  57.  
  58. Expires 4/30/98                                                 [Page 1]
  59.  
  60.  
  61.  
  62.  
  63.  
  64. INTERNET DRAFT               Finding Stuff                  October 1997
  65.  
  66.  
  67.    In addition, there are evolving methods for doing service location
  68.    via other methods [4] & [5].
  69.  
  70.    This document sets forth a process to rationalize how a client could
  71.    use these various methods for service location.  In this process, the
  72.    use of the Service Location Protocol [4] is highlighted to allow
  73.    clients to discover services by characteristics rather than by type
  74.    alone.  With the use of SRVs alone, all services are assumed to be
  75.    identical except for weight.  While this may be the case at some
  76.    locations, SLP will still be useful as it provides a dynamic
  77.    registration framework for services.
  78.  
  79. 2. The process
  80.  
  81.    This process is an aggregation of several different ideas.  To
  82.    explicitly point out which ideas are being used, the steps of the
  83.    process have been grouped by section according to which technique is
  84.    being used.
  85.  
  86.    For a client in domain "srcdom" that wants to locate service
  87.    "service" in domain "tgtdom", the steps of this process are numbered
  88.    and should be explicitly followed (i.e. do step 1, then 2, etc.).
  89.  
  90. 2.1 Support for SVRLOC
  91.  
  92.       1. If "srcdom" == "target" and the client supports it, use the
  93.       Service Location Protocol to determine if the service can be found
  94.       that way.
  95.  
  96. 2.2 Support for "Sites" Alias Structure (see Appendix A)
  97.  
  98.       2. If "srcdom" is of the form "<site>@<org-domain-name>" and
  99.       "<org-domain-name>" is a suffix of "tgtdom", then do steps 3
  100.       through 9 with "target" set to "<site>.sites.<domain-name>".  If
  101.       this procedure fails or the condition is not met, set "target" to
  102.       "tgtdom".
  103.  
  104.       3. If the client supports Service Location Protocol, look for SRV
  105.       records [1] for a directory agent (i.e. da.udp."target" or
  106.       da.tcp."target").  This consists of:
  107.  
  108.       3a. Do a lookup of QNAME=da.tcp.target, QCLASS=IN, QTYPE=SRV.
  109.  
  110.       3b. If the reply is NOERROR, ANCOUNT>0 and there is at least one
  111.       SRV RR that specifies the requested Service and Protocol in the
  112.       reply:
  113.  
  114.         If there is precisely one SRV RR, and its Target is "." (the
  115.  
  116.  
  117.  
  118. Expires 4/30/98                                                 [Page 2]
  119.  
  120.  
  121.  
  122.  
  123.  
  124. INTERNET DRAFT               Finding Stuff                  October 1997
  125.  
  126.  
  127.         root domain), go to step 3c.
  128.  
  129.         For all SRV RR's build a list of (Priority, Weight, Target)
  130.         tuples and sort the list by priority (lowest number first).
  131.  
  132.         Create a new empty list.
  133.  
  134.         For each distinct priority level:
  135.  
  136.           For each element at this priority level:
  137.             While there are still elements left at this priority level,
  138.             select an element randomly, with probability weight, and
  139.             move it to the tail of the new list.
  140.  
  141.           For each element in the new list:
  142.             Query the DNS for A RR's for the target or use any RR's
  143.             found in the additional data section of the earlier SRV
  144.             query.
  145.  
  146.             For each A RR found, try to connect to the directory agent
  147.             using the Service Location Protocol over TCP.
  148.  
  149.       3c. Else do a lookup of QNAME=da.udp.target, QCLASS=IN, QTYPE=SRV.
  150.  
  151.       3d. Process the reply as in 3b, except that if there is precisely
  152.       one SRV RR with a target of ".", go to step 4 and connections to
  153.       the directory agent use Service Location Protocol over UDP.
  154.  
  155. 2.3 Support for SRV records
  156.  
  157.       4. Look for SRV records for service.protocol.target, where
  158.       protocol is whichever protocol (TCP or UDP) is associated with
  159.       service.  This consists of:
  160.  
  161.       4a. Do a lookup for QNAME=service.protocol.target, QCLASS=IN,
  162.       QTYPE=SRV.
  163.  
  164.       4b. If the reply is NOERROR, ANCOUNT>0 and there is at least one
  165.       SRV RR that specifies the requested Service and Protocol in the
  166.       reply:
  167.  
  168.         If there is precisely one SRV RR, and its Target is "." (the
  169.         root domain), go to step 5.
  170.  
  171.         For all SRV RR's, build a list of (Priority, Weight, Target)
  172.         tuples and sort the list by priority (lowest number first).
  173.  
  174.         Create a new empty list.
  175.  
  176.  
  177.  
  178. Expires 4/30/98                                                 [Page 3]
  179.  
  180.  
  181.  
  182.  
  183.  
  184. INTERNET DRAFT               Finding Stuff                  October 1997
  185.  
  186.  
  187.         For each distinct priority level:
  188.  
  189.           For each element at this priority level:
  190.             Query the DNS for LOC RR [6] for the Target (if not found in
  191.             the Additional Data section of the earlier SRV query).
  192.  
  193.             Find the nearest target and all targets "close" to the
  194.             nearest target (target to target distance less than 2-3% of
  195.             client to nearest target distance).
  196.  
  197.             Remove all other targets at this priority level.
  198.  
  199.             While there are still elements left at this priority level,
  200.             select an element randomly, with probability weight, and
  201.             move it to the tail of the new list.
  202.  
  203.           For each element in the new list:
  204.             Query the DNS for A RR's for the Target or use any RR's
  205.             found in the Additional Data section of the earlier SRV
  206.             query.
  207.  
  208.             For each A RR found, if the protocol is TCP (connection-
  209.             oriented) try to connect to the (protocol, address,
  210.             service); if the protocol is UDP, send a service request.
  211.  
  212.       5. If the service desired is SMTP, skip to RFC 974 (MX records)
  213.       else go to step 6.
  214.  
  215. 2.3 Support for "Well Known" Aliases
  216.  
  217.       6. If the service has a "well known" alias (see [2]) service',
  218.       look for A RRs for service'.target.  This is done in the following
  219.       way:
  220.  
  221.       6a. Do a lookup for QNAME=service'.target, QCLASS=IN, QTYPE=A.
  222.  
  223.         If no A RR's returned, go to step 7.
  224.  
  225.         For each A RR found, try to connect to the (protocol, address,
  226.         service).  If successful, stop.
  227.  
  228.         If all A RR's have been tried go to step 7.
  229.  
  230. 2.4 Support for Service Advertising via Service URLs
  231.  
  232.       7. Look for "service:" URLs stored in TXT RRs for service.target:
  233.  
  234.       7a. Do a lookup for QNAME=service.target, QCLASS=IN, QTYPE=TXT.
  235.  
  236.  
  237.  
  238. Expires 4/30/98                                                 [Page 4]
  239.  
  240.  
  241.  
  242.  
  243.  
  244. INTERNET DRAFT               Finding Stuff                  October 1997
  245.  
  246.  
  247.         If no TXT RR's returned, go to step 8.
  248.  
  249.         For each TXT RR found, try to connect to the (address, port)
  250.         specified in the service: URL. If successful, stop.
  251.  
  252.         If all TXT RR's have been tried go to step 8.
  253.  
  254.       8. Look for "service:" URLs stored in TXT RRs for target:
  255.  
  256.       8a. Do a lookup for QNAME=target, QCLASS=IN, QTYPE=TXT.
  257.  
  258.         If no TXT RR's returned, go to step 9.
  259.  
  260.         For each TXT RR found, try to connect to the (address, port)
  261.         specified in the service: URL. If successful, stop.
  262.  
  263.         If all TXT RR's have been tried go to step 9.
  264.  
  265. 2.5 Fallback
  266.  
  267.       9. Do a lookup for QNAME=target, QCLASS=IN, QTYPE=A
  268.  
  269.         For each A RR found, try to connect to the (protocol, address,
  270.         service).  If successful, stop.
  271.  
  272. 3. Security Considerations
  273.  
  274.    Because of the suggested mechanisms for service discovery, this
  275.    document inherits all the security considerations of using DNS RR's
  276.    and the Service Location Protocol.  Implementors should consider both
  277.    [7] and the security section of [4] for appropriate methods.
  278.  
  279. 4. Conclusion
  280.  
  281.    By following the above process, a client may be reasonably certain of
  282.    determining whether a particular service is provided for a particular
  283.    domain name, given the domain name.
  284.  
  285. 5. Acknowledgments
  286.  
  287.    This document is partially supported by the National Science
  288.    Foundation, Cooperative Agreement NCR-9218179, the UK Electronic
  289.    Libraries Programme (eLib) grant 12/39/01, and the European
  290.    Commission's Telematics for Research Programme grant RE 1004.
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298. Expires 4/30/98                                                 [Page 5]
  299.  
  300.  
  301.  
  302.  
  303.  
  304. INTERNET DRAFT               Finding Stuff                  October 1997
  305.  
  306.  
  307. 6. References
  308.  
  309.    Request For Comments (RFC) and Internet Draft documents are available
  310.    from <URL:ftp://ftp.internic.net> and numerous mirror sites.
  311.  
  312.          [1]         A. Gulbrandsen, P. Vixie, "A DNS RR for specifying
  313.                      the location of services (DNS SRV)," RFC 2052,
  314.                      October 1996.
  315.  
  316.  
  317.          [2]         M. Hamilton, R. Wright,  "Use of DNS Aliases for
  318.                      Network Services," RFC 2219, October 1997.
  319.  
  320.  
  321.          [3]         S. C. Partridge, "Mail routing and the domain sys-
  322.                      tem," RFC 974, January 1, 1986.
  323.  
  324.  
  325.          [4]         J. Veizades, E. Guttman, C. Perkins, S. Kaplan,
  326.                      "Service Location Protocol," Internet Draft (work
  327.                      in progress), April 3, 1997.
  328.  
  329.  
  330.          [5]         R. Moats, M. Hamilton, "Advertising Services,"
  331.                      Internet Draft (work in progress), February 1997.
  332.  
  333.  
  334.          [6]         C. Davis, P. Vixie, T. Goodwin, I. Dickinson, "A
  335.                      Means for Expressing Location Information in the
  336.                      Domain Name System," RFC 1876, January 15, 1996.
  337.  
  338.  
  339.          [7]         D. Eastlake, C. Kaufman, "Domain Name System Secu-
  340.                      rity Extensions," RFC 2065, January 3, 1997.
  341.  
  342. 7. Authors' addresses
  343.  
  344.    Ryan Moats
  345.    AT&T
  346.    15621 Drexel Circle
  347.    Omaha, NE 68135-2358
  348.    USA
  349.    Phone:  +1 402 894-9456
  350.    EMail:  jayhawk@ds.internic.net
  351.  
  352.    Martin Hamilton
  353.    Department of Computer Studies
  354.    Loughborough University of Technology
  355.  
  356.  
  357.  
  358. Expires 4/30/98                                                 [Page 6]
  359.  
  360.  
  361.  
  362.  
  363.  
  364. INTERNET DRAFT               Finding Stuff                  October 1997
  365.  
  366.  
  367.    Leics. LE11 3TU, UK
  368.    Email:  m.t.hamilton@lut.ac.uk
  369.  
  370.    Paul J. Leach
  371.    Microsoft
  372.    1 Microsoft Way
  373.    Redmond, Washington, 98052, U.S.A.
  374.    Email: paulle@microsoft.com
  375.  
  376. A. Discovery with Large numbers of replicas
  377.  
  378.    Imagine an organization (such as a bank) which has thousands of
  379.    branch offices. For reliability, each office may want to have a
  380.    replica of (at least) certain critical information in case of loss of
  381.    connectivity to the Internet. An example of such information might be
  382.    an address book for employees or an authentication database. It is
  383.    not reasonable to use the method of the previous section to locate a
  384.    replica for the information - there would be thousands of SRV entries
  385.    for the service being replicated. Instead, it would be desirable to
  386.    have a method that first looked to see if there is a replica for the
  387.    service at the branch office, and only proceed with the more general
  388.    discovery method if there weren't.
  389.  
  390.    Let us generalize the notion of branch office to that of "site" - a
  391.    site is a collection of hosts that have good enough connectivity that
  392.    use of a service instance at the site is always to be preferred to
  393.    one at another, and that there is no connectivity reason to prefer
  394.    one replica within a site to another. A site has a site name that
  395.    incorporates a site specific component and the domain name of the
  396.    organization of the form
  397.       <site>@<org-domain-name>
  398.    Then a client at site
  399.       <site>@<org-domain-name>
  400.    looking for a service for domain <domain-name>, where <org-domain-
  401.    name> is a suffix of <domain-name>, should use the name
  402.       <site>.sites.<domain-name>
  403.    as the value of "target" in the procedure described herein.  If
  404.    the procedure fails, then it should try with
  405.          <domain-name>
  406.    as the value of "target" using the procedure presented above. Note
  407.    that within a site, this means the client either uses SVRLOC (if
  408.    supported) or straight SRV records; by definition of "site", there
  409.    would be no advantage to be gained from using LOC records.
  410.  
  411.    For example, suppose a client at the site "dublin@univexports.com"
  412.    wanted to access the LDAP server for the Asian region of Universal
  413.    Exports, whose domain name was "fareast.univexports.com". It would
  414.    observe that  its <org-domain-name> of "univexports.com" was a suffix
  415.  
  416.  
  417.  
  418. Expires 4/30/98                                                 [Page 7]
  419.  
  420.  
  421.  
  422.  
  423.  
  424. INTERNET DRAFT               Finding Stuff                  October 1997
  425.  
  426.  
  427.    of "fareast.univexports.com", and first build the name
  428.    "dublin.sites.fareast.univexports.com" to use as the "target" in the
  429.    procedure above; this might cause it to then lookup
  430.    SRV records for "ldap.tcp.dublin.sites.fareast.univexports.com" or
  431.    A records for "ldap.dublin.sites.fareast.univexports.com" or even
  432.    TXT records for "dublin.sites.fareast.univexports.com" (looking
  433.    for "service:" URLs of the type wp-ldap).
  434.  
  435.    Note that the list of records for a site does not have to point
  436.    at only hosts at that site - for example, the highest priority
  437.    records could be for hosts at the site, and then some lower priority
  438.    records for hosts at the best-connected alternate site for backup.
  439.  
  440.    Using this method, a client looking for a service that has an replica
  441.    at its site will only have to fetch records for its site, not for
  442.    the whole organization. The records associated with the unadorned
  443.    organization name can then be used to aid clients from outside the
  444.    organization, who have no idea of the site structure of the
  445.    organization.
  446.  
  447.                 This Internet Draft expires April 30, 1998.
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478. Expires 4/30/98                                                 [Page 8]
  479.  
  480.  
  481.