HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 03:14:04 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Mon, 03 Jun 1996 22:00:00 GMT ETag: "2edbf8-5248-31b36060" Accept-Ranges: bytes Content-Length: 21064 Connection: close Content-Type: text/plain INTERNET-DRAFT Martin Hamilton draft-ietf-ids-dnsnames-00.txt Loughborough University Expires in six months Russ Wright Lawrence Berkeley Laboratory May 1996 Use of DNS Aliases for Network Services Filename: draft-ietf-ids-dnsnames-00.txt Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract It has become a common practice to use symbolic names (usually CNAMEs) in the Domain Name Service (DNS - [1,2]) to refer to network services such as anonymous FTP [3] servers, Gopher [4] servers, and most notably World-Wide Web HTTP [5] servers. This is desirable for a number of reasons. It provides a way of moving services from one machine to another transparently, and a mechanism by which people or agents may programatically discover that an organization runs, say, a World-Wide Web server. Although this approach has been almost universally adopted, there is no standards document or similar specification for these commonly used names. This document seeks to rectify this situation by gathering together the extant "folklore" on naming conventions, and proposes a mechanism for accommodating new protocols. Distribution of this document is unlimited. Comments should be sent to the IETF Integrated Directory Services mailing list, ietf-ids@umich.edu, or [Page 1] INTERNET-DRAFT May 1996 directly to the authors. 1. Rationale In order to locate the network services offered at a particular Internet domain one is faced with the choice of selecting from a growing number of centralized databases - typically Web or Usenet News "wanderers", or attempting to infer the existence of network services from whatever DNS information may be available. The former approach is not practical in some cases, notably when the entity seeking service information is a program. Perhaps the most visible example of the latter approach at work is in the case of World-Wide Web HTTP servers. It is common practice to try prefixing the domain name of an organization with "http://www." in order to reach its World-Wide Web site, e.g. taking "hivnet.fr" and arriving at "http://www.hivnet.fr." Some popular World-Wide Web browsers have gone so far as to provide automatic support for this domain name expansion. Ideally, the DNS or some complementary directory service would provide a means for programs to determine automatically the network services which are offered at a particular Internet domain, the protocols which are used to deliver them, and other technical information such as TCP [6] and UDP [7] port numbers. Unfortunately, although much work has been done on developing "yellow pages" directory service technologies, and on attempting to define new types of DNS resource record to provide this type of information, there is no widely agreed upon or widely deployed solution to the problem - except in a small number of cases. The first case is where the DNS already provides a lookup capability for the type of information being sought after. For example: Mail Exchanger (MX) records specify how mail to a particular domain should be routed [8], the Start of Authority (SOA) records make it possible to determine who is responsible for a given domain, and Name Server (NS) records indicate which hosts provide DNS name service for a given domain. The second case is where the DNS does not provide an appropriate lookup capability, but there is some widely accepted convention for finding this information. Some use has been made of Text (TXT) records in this scenario, but in the vast majority of cases a Canonical Name (CNAME) or Address (A) record pointer is used to indicate the host or hosts which provide the service. This document proposes a slight formalization of this well-known alias approach. [Page 2] INTERNET-DRAFT May 1996 It should be noted that the DNS provides a Well Known Services (WKS) lookup capability, which makes it possible to determine the services offered by a particular host given its domain name. In practice this is not widely used, and was deprecated in the Host Requirements specification [9]. In fact, WKS is really trying to solve a different problem - advertising the services provided by a particular machine, rather than which machines provide particular services for a domain as a whole. 2. A generic framework One approach to dealing with aliases for new protocols would be to define a standard set of DNS aliases for the most popular network services, and an accompanying review procedure for registering new protocols - such as has been attempted with Internet Media (MIME) Types [10]. We suggest that in the rapidly changing world of computer networking this may not be the most appropriate way of tackling the problem. The Internet Assigned Numbers Authority (IANA) maintains a registry of well known port numbers, registered port numbers, protocol and service names [11]. We propose that this list be used to determine the a default port number, transport protocol (e.g. TCP or UDP) and DNS alias for a given application protocol. e.g. ----------------------------------------------------------- Name Port Transport Protocol ----------------------------------------------------------- finger 79 TCP Finger [12] ftp 21 TCP File Transfer Protocol gopher 70 TCP Internet Gopher Protocol ldap 389 TCP/UDP Lightweight Directory Access Protocol [13] ntp 123 UDP Network Time Protocol [14] rwhois 4321 TCP Referral WHOIS [15] whois 43 TCP NICNAME/WHOIS [16] ----------------------------------------------------------- If it is not appropriate to use the information registered with IANA for a particular application protocol, we suggest the protocol specification should indicate why this is the case - and preferably propose an alternative mechanism. For example, a Remote Procedure Call (RPC) based application protocol which does not use a fixed port number by default might determine which port to use by contacting a remote RPC portmapper. [Page 3] INTERNET-DRAFT May 1996 We suggest that the DNS alias to be used for a service be taken initially from the IANA lists of well known port numbers (in the traditionally "restricted" rage 0 to 1023) and registered port numbers (1024 to 65535), with recourse to the list of protocol and service names if there is some confusion over the preferred alias. This might be necessary if, for example, the name associated with the IANA registered port number for a protocol contains the underscore character "_", the plus character "+", or the dot character "." - these are not legal as domain name components. 3. Special cases In addition to the character set problems outlined above, there are a small number of special cases which are not currently catered for in the IANA registry. We propose that IANA maintain a list of these in addition to the existing assigned numbers information. Some common examples: ----------------------------------------------------------- Alias Service ----------------------------------------------------------- archie archie [17] (alias for "prospero") cso CCSO nameserver [18] (alias for "csnet-ns") fsp File Service Protocol [19] news Usenet News via NNTP [20] (alias for "nntp") ns DNS servers, and CCSO nameservers (aliases for "domain" and "csnet-ns") ph CCSO (alias for "csnet-ns") wais Wide Area Information Server [21] (alias for "z39.50") www World-Wide Web HTTP (alias for "http") ----------------------------------------------------------- 4. (Ab)Use of the DNS as a directory service The widespread use of these common aliases effectively means that it is sometimes possible to "guess" the domain names associated with an organization's network services, though this is becoming more difficult as the number of organizations registered in the DNS increases. It should be understood by implementors that the existence of a DNS entry such as www.hivnet.fr does not constitute a registration of a World-Wide Web service. [Page 4] INTERNET-DRAFT May 1996 There is no requirement that the domain name resolve to an IP address or addresses. There is no requirement that a host be listening for HTTP connections, or if it is, that the HTTP server be running on port 80. Finally, even if all of these things are true, there can be no guarantee that the World-Wide Web server will be prepared to honor requests from arbitrary clients. Having said this, the aliases do provide useful "hints" about the services offered. We propose that they be taken in this spirit. The conventions described in this document are, essentially, only useful when the organization's domain name can be determined - e.g. from some external database. A number of groups, including the IETF, have been working on ways of finding domain names given a set of information such as organization name, location, and business type. It is hoped that one or more of these will eventually make it possible to augment the basic lookup service which the DNS provides with a more generalised search and retrieval capability. 5. DNS server configuration In the short term, whilst directory service technology and further types of DNS resource record are being developed, domain name administrators are encouraged to use these common names for the network services they run. They will make it easier for outsiders to find information about your organization, and also make it easier for you to move services from one machine to another. There are two conventional approaches to creating these DNS entries. One is to add a single CNAME record to your DNS server's configuration, e.g. ph.hivnet.fr. IN CNAME baby.hivnet.fr. Note that in this scenario no information about ph.hivnet.fr should exist in the DNS other than the CNAME record. An alternative approach would be to create an A record for each of the IP addresses associated with ph.hivnet.fr, e.g. ph.hivnet.fr. IN A 194.167.157.2 Recent DNS server implementations provide a "round-robin" feature which causes the host's IP addresses to be returned in a different order each time the address is looked up. Network clients are starting to appear which, when they encounter a host with multiple addresses, use heuristics to determine the address to contact - e.g. picking the one which has the shortest round-trip- [Page 5] INTERNET-DRAFT May 1996 time. Thus, if a server is mirrored (replicated) at a number of locations, it may be desirable to list the IP addresses of the mirror servers as A records of the primary server. This is only likely to be appropriate if the mirror servers are exact copies of the original server. 6. Limitations of this approach Some services require that a client have more information than the server's domain name and (default) port number. For example, an LDAP client needs to know a starting search base within the Directory Information Tree in order to have a meaningful dialogue with the server. This document does not attempt to address this problem. In some cases, different aliases are in common use for the same service - e.g. "ph", "cso" and "ns" for the CCSO nameserver. It might appear to be in everyone's interest to narrow the choice of alias down to a single name. However, if current practice implies that a number of aliases are equally valid, it would be advisable to support them all. This increases the likelihood of the service being found. <> Given the confusion over the multiple use of the "ns" alias in particular, we could suggest/mandate that everyone move to a single name, e.g. the IANA registered "csnet-ns" or one of "cso" and "ph". Should we be trying to do this ? Discuss! <> Another problem is the use of a single alias to refer to multiple network services, e.g. "ns" is commonly used to refer to both hosts which run the CCSO nameserver, and DNS servers themselves. In this particular case the DNS already provides a lookup capability for nameservers via the NS record. As noted, implementations should be resilient in the event that the name does not point to the expected service. 7. Security considerations The DNS is open to many kinds of "spoofing" attacks, and it cannot be guaranteed that the result returned by a DNS lookup is indeed the genuine information. Spoofing may take the form of denial of service, such as directing of the client to a non-existent address, or a passive attack such as an intruder's server which masquerades as the legitimate one. Work is ongoing to remedy this situation insofar as the DNS is concerned [22]. In the meantime it should be noted that stronger authentication mechanisms such as public key cryptography with large key sizes are a pre-requisite if the DNS is being used in any [Page 6] INTERNET-DRAFT May 1996 sensitive situations. Examples of these would be on-line financial transactions, and any situation where privacy is a concern - such as the querying of medical records over the network. Strong encryption of the network traffic may also be advisable, to protect against TCP connection "hijacking" and packet sniffing. 8. Conclusions The service names registered with the IANA provide a sensible set of defaults which may be used as an aid in determining the hosts which offer particular services for a given domain name. This document has noted some exceptions which are either inherently unsuitable for this treatment, or already have a substantial installed base using alternative aliases. 9. Acknowledgements Thanks to Jeff Allen, Tom Gillman, Renato Iannella, Thomas Lenggenhager, Bill Manning, Andy Powell, Sri Sataluri, and <> for their comments on draft versions of this document. This work was supported by grants from the UK Electronic Libraries Programme (eLib) and the European Commission's Telematics for Research Programme. 10. References Request For Comments (RFC) and Internet Draft documents are available from and numerous mirror sites. [1] P. V. Mockapetris. "Domain names - concepts and facilities", RFC 1034. November 1987. [2] P. V. Mockapetris. "Domain names - implementation and specification", RFC 1035. November 1987. [3] J. Postel, J. K. Reynolds. "File Transfer Proto- col", RFC 959. October 1985. [4] F. Anklesaria, M. McCahill, P. Lindner, D. Johnson, D. Torrey & B. Albert. "The Internet Gopher Proto- col (a distributed document search and retrieval protocol)", RFC 1436. March 1993. [Page 7] INTERNET-DRAFT May 1996 [5] T. Berners-Lee, R. Fielding, H. Nielsen. "Hyper- text Transfer Protocol -- HTTP/1.0", RFC 1945. May 1996. [6] J. Postel. "Transmission Control Protocol", RFC 793. September 1981. [7] J. Postel. "User Datagram Protocol", RFC 768. August 1980. [8] C. Partridge. "Mail routing and the domain sys- tem", RFC 974. January 1986. [9] R. T. Braden. "Requirements for Internet hosts - application and support", RFC 1123. October 1989. [10] J. Postel. "Media Type Registration Procedure", RFC 1590. March 1994. [11] J. Reynolds, J. Postel. "ASSIGNED NUMBERS", RFC 1700. October 1994. [12] D. Zimmerman. "The Finger User Information Proto- col", RFC 1288. December 1992. [13] W. Yeong, T. Howes, S. Kille. "Lightweight Direc- tory Access Protocol", RFC 1777. March 1995. [14] D. Mills. "Network Time Protocol (Version 3) Specification, Implementation", RFC 1305. March 1992. [15] S. Williamson & M. Kosters. "Referral Whois Proto- col (RWhois)", RFC 1714. November 1994. [16] K. Harrenstien, M. K. Stahl, E.J. Feinler. "NICNAME/WHOIS", RFC 954. October 1985. [Page 8] INTERNET-DRAFT May 1996 [17] A. Emtage, P. Deutsch. "archie - An Electronic Directory Service for the Internet", Winter Usenix Conference Proceedings 1992. Pages 93-110. [18] R. Hedberg, S. Dorner, P. Pomes. "The CCSO Nameserver (Ph) Architecture", Internet Draft. February 1996. [19] FSP software distribution: [20] B. Kantor, P. Lapsley. "Network News Transfer Pro- tocol", RFC 977. February 1986. [21] M. St. Pierre, J. Fullton, K. Gamiel, J. Goldman, B. Kahle, J. Kunze, H. Morris & F. Schiettecatte. "WAIS over Z39.50-1988", RFC 1625. June 1994. [22] D. E. Eastlake 3rd, C. W. Kaufman. "Domain Name System Security Extensions", Internet Draft. Janu- ary 1996. 11. Authors addresses Martin Hamilton Department of Computer Studies Loughborough University of Technology Leics. LE11 3TU, UK Email: m.t.hamilton@lut.ac.uk Russ Wright Information & Computing Sciences Division Lawrence Berkeley National Laboratory 1 Cyclotron Road, Berkeley Mail-Stop: 50B-2258 CA 94720, USA Email: wright@lbl.gov [Page 9] INTERNET-DRAFT May 1996 This Internet Draft expires 29th November, 1996. [Page 10]