home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-asid-replica-selection-00.txt < prev    next >
Text File  |  1997-02-25  |  20KB  |  524 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. ASID Working Group                  Paul J. Leach, Microsoft
  8. INTERNET-DRAFT
  9. <draft-ietf-asid-replica-selection-00.txt>
  10. Expires August 23, 1997                     February 23,1997
  11.  
  12.  
  13.  
  14.  
  15.                Selecting a server from among many replicas
  16.  
  17.                          Paul J. Leach, Microsoft
  18.  
  19.                             Preliminary Draft
  20.  
  21.  
  22.  
  23.  
  24. STATUS OF THIS MEMO
  25.  
  26.   This document is an Internet-Draft. Internet-Drafts are working
  27.   documents of the Internet Engineering Task Force (IETF), its areas,
  28.   and its working groups. Note that other groups may also distribute
  29.   working documents as Internet-Drafts. This draft is not a work item
  30.   of the ASID working group, and does not represent WG consensus.
  31.  
  32.   Internet-Drafts are draft documents valid for a maximum of six months
  33.   and may be updated, replaced, or obsoleted by other documents at any
  34.   time. It is inappropriate to use Internet-Drafts as reference
  35.   material or to cite them other than as "work in progress".
  36.  
  37.   WARNING: The specification in this document is subject to change, and
  38.   will certainly change.  It is inappropriate AND STUPID to implement
  39.   to the proposed specification in this document.  In particular,
  40.   anyone who implements to this specification and then complains when
  41.   it changes will be properly viewed as an idiot, and any such
  42.   complaints shall be ignored. YOU HAVE BEEN WARNED.
  43.  
  44.   To learn the current status of any Internet-Draft, please check the
  45.   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
  46.   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  47.   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  48.   ftp.isi.edu (US West Coast).
  49.  
  50.   Distribution of this document is unlimited.  Please send comments to
  51.   the ASID working group at <ietf-asid@umich.edu>.  Discussions of the
  52.   working group are archived at <URL:
  53.   ftp://terminator.rs.itd.umich.edu/ietf-asid/archive>.
  54.  
  55.  
  56.  
  57.  
  58.  
  59.   Leach                        [Page 1]
  60.  
  61.  
  62.   Internet-Draft         Locating LDAP Servers                 02/23/97
  63.  
  64.  
  65. ABSTRACT
  66.  
  67.   Many organizations today have Web servers for their organization,
  68.   which supply information published by their organization to the
  69.   Internet and to internal users via the HTTP protocol [6]. It is
  70.   anticipated that many organizations will in the not-to-distant future
  71.   have directory servers, which supply information about their
  72.   organization to the Internet and to internal users via the LDAP
  73.   protocol [7]. These servers all have DNS [1, 2] names, and they often
  74.   are (or, in the future, will be likely to be) replicated for
  75.   reliability or greater capacity. This leads to the problem of
  76.   selecting among the replicas.
  77.  
  78.   We briefly survey current practice, for both centralized and
  79.   geographically distributed replicas. Then we discuss emerging
  80.   practice, represented by SRV and LOC RRs [3, 4]. We propose a way to
  81.   use both of these together to select among geographically distributed
  82.   replicas which, while not perfect, automates current practice. We
  83.   propose a convention to handle the case of an organization that has a
  84.   large number of sites, each of which needs a small number of replicas
  85.   for availability in case of loss of external connectivity.
  86.  
  87.  
  88. Table of Contents
  89.  
  90. 1. Introduction........................................................2
  91.  
  92. 2. Current Practice....................................................4
  93.  
  94. 3. Emerging Practice: SRV and LOC RRs..................................4
  95.  
  96.  3.1 Discussion.......................................................4
  97.  
  98. 4. Locating a replica..................................................5
  99.  
  100. 5. Locating a local replica............................................7
  101.  
  102. 6. Security Considerations.............................................8
  103.  
  104. 7. References..........................................................8
  105.  
  106. 8. Author's address....................................................9
  107.  
  108.  
  109.  
  110.  
  111. 1.    Introduction
  112.  
  113.   We assume that large organizations will implement various network
  114.   based services (such as directory services and Web services) by
  115.   deploying replicated servers for reliability and load sharing, and
  116.  
  117.   Leach                                         [Page 2]
  118.  
  119.  
  120.   Internet-Draft         Locating LDAP Servers                 02/23/97
  121.  
  122.  
  123.   that geographically distributed organizations will geographically
  124.   distribute some of the replicas. This leads to the problem of
  125.   selecting among the replicas.
  126.  
  127.   In the Internet context, the named entities which exist today about
  128.   which users seek information almost all either have, or contain, DNS
  129.   names [1,2], since it is by far the most widely used naming service
  130.   in the Internet. There has a huge social investment spanning two
  131.   decades to get to the point where names like "john.doe@somecorp.com"
  132.   and "http://www.sony.com" can appear in newspaper articles, TV
  133.   commercials, and on billboards, and millions of people understand
  134.   what do with them. Thus, we can refine the problem statement above to
  135.   "starting with a DNS name for an organization, and the name of a
  136.   desired service, intelligently select a server hosting an instance of
  137.   that service from among the replicas". By an "intelligent" choice, we
  138.   mean one that is expected to be better than one chosen purely at
  139.   random, but not necessarily an optimum choice.
  140.  
  141.   Current practice, discussed below in more detail, can only attempt to
  142.   split the load evenly across replicas, which is not good if the
  143.   replicas are of different capacity. It also doesn't provide for
  144.   anything other than manual selection among geographically distributed
  145.   replicas.  Improvements to current practice have been proposed:
  146.   recently, LOC and SRV resource records have been added to the DNS
  147.   repertoire (see RFC 1876 [3] and RFC 2052 [4], respectively).
  148.  
  149.   The use of SRV records allows for load to be distributed among
  150.   replicas in proportion to statically assigned weights (typically
  151.   chosen to reflect relative server capacity). However, replica
  152.   selection per RFC 2052 using SRV records does not take communication
  153.   cost (throughput, latency) into consideration, which is important if
  154.   the replicas are geographically distributed. The use of LOC records
  155.   would allow a client to choose among the replicas based on geographic
  156.   proximity. As with SRV records, however, replica selection using LOC
  157.   records does not take communication cost into consideration. Neither
  158.   of these are widely used as of yet, but their use is likely to become
  159.   more widespread.
  160.  
  161.   No one (to our knowledge) has proposed a way to use both in
  162.   conjunction for replica selection when replicas are geographically
  163.   distributed.
  164.  
  165.   We describe  how to select an "reasonable" instance from among
  166.   geographically distributed replicated instances of such servers,
  167.   using DNS SRV and LOC RRs  in conjunction. We propose two styles -
  168.   one for use from "outside" an organization, and one for use from
  169.   "inside" when there are a very large number of replicas.
  170.  
  171.  
  172.  
  173.  
  174.  
  175.   Leach                                         [Page 3]
  176.  
  177.  
  178.   Internet-Draft         Locating LDAP Servers                 02/23/97
  179.  
  180.  
  181. 2.    Current Practice
  182.  
  183.   We will consider two approaches in current use that are fairly
  184.   typical.
  185.  
  186.   The first approach works reasonably when all the replicas are at a
  187.   single site and of roughly the same capacity. The idea is to register
  188.   multiple A records under the name of the server; when clients resolve
  189.   the name they pick one at random. Usually, the DNS server also
  190.   randomizes the order of the A records before returning them, in order
  191.   to deal with clients that blindly take the first one. Often the name
  192.   of the server is created by stropping the name of the organization
  193.   with an indication of the type of server desired; for example, the
  194.   Web server for "microsoft.com" is "www.microsoft.com" (see [5] for an
  195.   attempt to make this more formal).
  196.  
  197.   The second approach is used when multiple geographically distributed
  198.   sites are desired so that clients can obtain service from a "nearby"
  199.   replica that hopefully has higher bandwidth to the client than other
  200.   replicas. It is used primarily with Web sites. When heavy load is
  201.   expected, say for downloading new versions of popular software, users
  202.   are presented with a list of sites from which to it may be
  203.   downloaded, and asked (perhaps implicitly) to pick the closest one.
  204.   One implementation presents a map on which the user clicks to
  205.   indicate their geographical location, and the server uses that to
  206.   select a replica.
  207.  
  208.  
  209. 3.    Emerging Practice: SRV and LOC RRs
  210.  
  211.   SRV records were introduced to overcome limitations in the first
  212.   approach. The SRV record allows an administrator to prioritize server
  213.   hosts and divide the load among them according to a weight. SRV
  214.   records work well for selecting among replicas all of which are at a
  215.   single site, and as long as dynamic load information is not required
  216.   to properly balance the load. We are most concerned with the case
  217.   where the replicas are at different sites; in this case, the
  218.   communications costs can be more important than the server capacity,
  219.   so selection based only on capacity often won't yield the best
  220.   performance. We are also concerned with the case where there are
  221.   large numbers of servers, which would lead to too many SRV RRs to to
  222.   return in a UDP DNS response.
  223.  
  224.   LOC records, if present for a host, would allow a client to choose
  225.   among logically equivalent server hosts based on geographic
  226.   proximity.
  227.  
  228.  
  229. 3.1   Discussion
  230.  
  231.   It is well known that geographic proximity is not necessarily the
  232.  
  233.   Leach                                         [Page 4]
  234.  
  235.  
  236.   Internet-Draft         Locating LDAP Servers                 02/23/97
  237.  
  238.  
  239.   same as proximity as measured by network communication costs. A
  240.   nearby server may have worse connectivity (in bandwidth or latency or
  241.   other dimensions) than one significantly farther away. Hence,
  242.   proposing to  select a server based on geographical proximity is
  243.   controversial.
  244.  
  245.   However, we argue that it will produce better server selections than
  246.   when it is not used because of the following:
  247.  
  248.   ╖ A server found by geographic proximity will in practice usually be
  249.      better than one chosen at random without regard to proximity. In
  250.      any case, servers chose this way will be just as good or better as
  251.      the ones chosen manually, because almost none of the users making
  252.      such choices know the network topology well enough to do any
  253.      better.
  254.  
  255.   To summarize -- as long we limit our objectives to selecting servers
  256.   in the same (sub)continent or at the same campus, LOC based selection
  257.   will always work at least as well as current practice, and often much
  258.   better, even if not perfectly.
  259.  
  260.   However, selecting the nearest server doesn't handle well the case
  261.   where a site has several servers to increase capacity - it would be
  262.   desirable to spread the load over "roughly equally nearby" servers,
  263.   instead of always picking the nearest.
  264.  
  265.  
  266. 4.    Locating a replica
  267.  
  268.   For a service that follows this specification, a client that is given
  269.   a DNS name for a domain can obtain an IP address for one of the
  270.   replicas of the service for that domain using DNS as follows.
  271.  
  272.   It MAY choose among the hosts as described in RFC 2052 [4], or it is
  273.   RECOMMENDED that they use the following modification of that
  274.   procedure to locate a list of servers and connect to the preferred
  275.   one:
  276.  
  277.   Let "target" be the name of the domain. Let "service" be the symbolic
  278.   name of the service, as defined in Assigned Numbers or locally. Let
  279.   "protocol" be the transport protocol used by the service; usually
  280.   "tcp" or "udp", but may be any defined in Assigned Numbers of
  281.   locally. (See [4] for more information.)
  282.  
  283.   1. Do a lookup for QNAME=service.protocol.target, QCLASS=IN,
  284.   QTYPE=SRV.
  285.  
  286.   2. If the reply is NOERROR, ANCOUNT>0 and there is at least one SRV
  287.   RR which specifies the requested Service and Protocol in the reply:
  288.  
  289.       If there is precisely one SRV RR, and its Target is "." (the root
  290.  
  291.   Leach                                         [Page 5]
  292.  
  293.  
  294.   Internet-Draft         Locating LDAP Servers                 02/23/97
  295.  
  296.  
  297.       domain), abort.
  298.  
  299.       For all SRV RR's, build a list of (Priority, Weight, Target)
  300.       tuples
  301.  
  302.       Sort the list by priority (lowest number first)
  303.  
  304.       Create a new empty list
  305.  
  306.       For each distinct priority level
  307.  
  308.              For each element at this priority level
  309.  
  310.                     query the DNS for LOC RR for the Target (if not
  311.                     found in the Additional Data section of the earlier
  312.                     SRV query).
  313.  
  314.              Find the nearest target
  315.  
  316.              Find all targets "close" to the nearest target (target to
  317.              target distance less than 2-3% of client to nearest target
  318.              distance)
  319.  
  320.              Remove all other targets at this priority level
  321.  
  322.              While there are still elements left at this priority level
  323.  
  324.                     Select an element randomly, with probability
  325.                     Weight, and move it to the tail of the new list
  326.  
  327.              For each element in the new list
  328.  
  329.                     query the DNS for A RR's for the Target or use any
  330.                     RR's found in the Additional Data section of the
  331.                     earlier SRV query.
  332.  
  333.                     for each A RR found, if the protocol is TCP
  334.                     (connection-oriented) try to connect to the
  335.                     (protocol, address, service); if the protocol is
  336.                     UDP, send a service request
  337.  
  338.                     Stop if connection is successful (TCP) or a
  339.                     response is received (UDP)
  340.  
  341.   3. Else if the service desired is SMTP
  342.  
  343.       skip to RFC 974 (MX).
  344.  
  345.   4. Else
  346.  
  347.       Do a lookup for QNAME=target, QCLASS=IN, QTYPE=A
  348.  
  349.   Leach                                         [Page 6]
  350.  
  351.  
  352.   Internet-Draft         Locating LDAP Servers                 02/23/97
  353.  
  354.  
  355.       for each A RR found, try to connect to the (protocol, address,
  356.       service)
  357.  
  358.   For IPv6, one would follow the same procedure, except using AAAA
  359.   records instead of A records.
  360.  
  361.   As an example, if a client wanted to find the FTP server for
  362.   Universal Exports (the fictitious holding company that employed James
  363.   Bond), whose domain name was "univexports.com", then in the procedure
  364.   above, "service" would be "ftp", "protocol" would be "tcp", and
  365.   "target" would be "univexports.com", and the name to lookup in step 1
  366.   above would be Error! Bookmark not defined..
  367.  
  368.  
  369. 5.    Large numbers of replicas
  370.  
  371.   Imagine an organization (such as a bank) which has thousands of
  372.   branch offices. For reliability, each office may want to have a
  373.   replica of (at least) certain critical information in case of loss of
  374.   connectivity to the Internet. An example of such information might be
  375.   an address book for employees or an authentication database. It is
  376.   not reasonable to use the method of the previous section to locate a
  377.   replica for the information - there would be thousands of SRV entries
  378.   for the service being replicated. Instead, it would be desirable to
  379.   have a method that first looked to see if there is a replica for the
  380.   service at the branch office, and only used the previous method if
  381.   there werenÆt.
  382.  
  383.   Let us generalize the notion of branch office to that of "site" - a
  384.   site is a collection of hosts that have good enough connectivity that
  385.   use of a service instance at the site is always to be preferred to
  386.   one at another, and that there is no connectivity reason to prefer
  387.   one replica within a site to another. A site has a site name which
  388.   incorporates a site specific component and the domain name of the
  389.   organization of the form
  390.       <site>@<org-domain-name>
  391.   For example, the Dublin office of Universal Exports might have the
  392.   site name Error! Bookmark not defined.. Assume that each client has
  393.   been configured to know its site name. (The configuration could be
  394.   manual or automatic; the exact mechanism is beyond the scope of this
  395.   document, although DHCP seems an obvious candidate for automatic
  396.   configuration).
  397.  
  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 in RFC 2052.  If
  404.   the procedure fails, then it should try with
  405.       <domain-name>
  406.  
  407.   Leach                                         [Page 7]
  408.  
  409.  
  410.   Internet-Draft         Locating LDAP Servers                 02/23/97
  411.  
  412.  
  413.   as the value of "target" using the procedure in section 4 above. Note
  414.   that within a site, this means the client just uses straight SRV
  415.   records; by definition of "site", there would be no advantage to be
  416.   gained from using LOC records.
  417.  
  418.   For example, suppose a client at the site "dublin@univexports.com"
  419.   wanted to access the LDAP server for the Asian region of Universal
  420.   Exports, whose domain name was "fareast.univexports.com". It would
  421.   observe that  its <org-domain-name> of "univexports.com" was a suffix
  422.   of "fareast.univexports.com", and first construct the name
  423.   "dublin.sites.fareast.univexports.com" to use as the "target" in the
  424.   procedure above; this would cause it to then lookup
  425.   "ldap.tcp.dublin.fareast.univexports.com" searching for SRV RRs.
  426.  
  427.   Note that the list of SRV records for a site does not have to point
  428.   at only hosts at that site - for example, the highest priority
  429.   records could be for hosts at the site, and then some lower priority
  430.   records for hosts at the best-connected alternate site for backup.
  431.  
  432.   Using this method, a client looking for a service that has an replica
  433.   at its site will only have to fetch SRV records for its site, not for
  434.   the whole organization. The SRV records associated with the unadorned
  435.   organization name can be reserved to clients from outside the
  436.   organization, who have no idea of the site structure of the
  437.   organization.
  438.  
  439.  
  440. 6.    Security Considerations
  441.  
  442.   The security considerations for the use of this procedure are the
  443.   same as for the use of  SRV or LOC RRs in general; see RFC 1876 [3]
  444.   and RFC 2052 [4].
  445.  
  446.  
  447. 7.    References
  448.  
  449.   [1] P. Mockapetris, RFC 1034, "DOMAIN NAMES - CONCEPTS AND
  450.      FACILITIES",  November, 1987.
  451.  
  452.   [2] P. Mockapetris, RFC 1035, "DOMAIN NAMES - IMPLEMENTATION AND
  453.      SPECIFICATION", November, 1987.
  454.  
  455.   [3] C. Davis, P. Vixie, T. Goodwin, I. Dickinson, RFC 1876,"A Means
  456.      for Expressing Location Information in the Domain Name System",
  457.      01/15/1996.
  458.  
  459.   [4] A. Gulbrandsen, P. Vixie, RFC 2052, "A DNS RR for specifying the
  460.      location of services (DNS SRV)", 10/31/1996.
  461.  
  462.   [5] M. Hamilton, R. Wright, "Use of DNS Aliases for Network
  463.      Services", Internet Draft <draft-ietf-ids-dnsnames-01.txt>, August
  464.  
  465.   Leach                                         [Page 8]
  466.  
  467.  
  468.   Internet-Draft         Locating LDAP Servers                 02/23/97
  469.  
  470.  
  471.      1996. (Work in Progress)
  472.  
  473.   [6] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee,
  474.      RFC 2068, "Hypertext Transfer Protocol -- HTTP/1.1", 01/03/19
  475.  
  476.   [7] M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access
  477.      Protocol(v3)".  Internet-Draft <draft-ietf-asid-ldapv3-
  478.      protocol.txt>, ASID Working Group, June 5, 1996.
  479.  
  480.  
  481. 8.    Author's address
  482.  
  483.   Paul J. Leach
  484.   Microsoft
  485.   1 Microsoft Way
  486.   Redmond, Washington, 98052, U.S.A.
  487.   Email: paulle@microsoft.com
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.   Leach                                         [Page 9]
  524.