Difference between revisions of "RFC1101"

From RFC-Wiki
imported>Admin
(Created page with " Network Working Group P. Mockapetris Request for Comments: 1101 ISI Updates: RFCs 1034, 103...")
 
Line 10: Line 10:
  
  
          DNS Encoding of Network Names and Other Types
+
            DNS Encoding of Network Names and Other Types
  
  
== STATUS OF THIS MEMO ==
+
1. STATUS OF THIS MEMO
  
This RFC proposes two extensions to the Domain Name System:
+
  This RFC proposes two extensions to the Domain Name System:
  
  - A specific method for entering and retrieving RRs which map
+
      - A specific method for entering and retrieving RRs which map
    between network names and numbers.
+
        between network names and numbers.
  
  - Ideas for a general method for describing mappings between
+
      - Ideas for a general method for describing mappings between
    arbitrary identifiers and numbers.
+
        arbitrary identifiers and numbers.
  
The method for mapping between network names and addresses is a
+
  The method for mapping between network names and addresses is a
proposed standard, the ideas for a general method are experimental.
+
  proposed standard, the ideas for a general method are experimental.
  
This RFC assumes that the reader is familiar with the DNS [[[RFC1034|RFC 1034]],
+
  This RFC assumes that the reader is familiar with the DNS [RFC 1034,
[[RFC1035|RFC 1035]]] and its use.  The data shown is for pedagogical use and
+
  RFC 1035] and its use.  The data shown is for pedagogical use and
does not necessarily reflect the real Internet.
+
  does not necessarily reflect the real Internet.
  
Distribution of this memo is unlimited.
+
  Distribution of this memo is unlimited.
  
== INTRODUCTION ==
+
2. INTRODUCTION
  
The DNS is extensible and can be used for a virtually unlimited
+
  The DNS is extensible and can be used for a virtually unlimited
number of data types, name spaces, etc.  New type definitions are
+
  number of data types, name spaces, etc.  New type definitions are
occasionally necessary as are revisions or deletions of old types
+
  occasionally necessary as are revisions or deletions of old types
(e.g., MX replacement of MD and MF [[[RFC974|RFC 974]]]), and changes described
+
  (e.g., MX replacement of MD and MF [RFC 974]), and changes described
in [[[RFC973|RFC 973]]].  This RFC describes changes due to the general need to
+
  in [RFC 973].  This RFC describes changes due to the general need to
map between identifiers and values, and a specific need for network
+
  map between identifiers and values, and a specific need for network
name support.
+
  name support.
  
Users wish to be able to use the DNS to map between network names and
+
  Users wish to be able to use the DNS to map between network names and
numbers.  This need is the only capability found in HOSTS.TXT which
+
  numbers.  This need is the only capability found in HOSTS.TXT which
is not available from the DNS.  In designing a method to do this,
+
  is not available from the DNS.  In designing a method to do this,
there were two major areas of concern:
+
  there were two major areas of concern:
  
  - Several tradeoffs involving control of network names, the
+
      - Several tradeoffs involving control of network names, the
    syntax of network names, backward compatibility, etc.
+
        syntax of network names, backward compatibility, etc.
  
  - A desire to create a method which would be sufficiently
+
      - A desire to create a method which would be sufficiently
    general to set a good precedent for future mappings,
+
        general to set a good precedent for future mappings,
    for example, between TCP-port names and numbers,
+
        for example, between TCP-port names and numbers,
  
  
  
 +
Mockapetris                                                    [Page 1]
  
 +
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
  
    autonomous system names and numbers, X.500 Relative
 
    Distinguished Names (RDNs) and their servers, or whatever.
 
  
It was impossible to reconcile these two areas of concern for network
+
        autonomous system names and numbers, X.500 Relative
names because of the desire to unify network number support within
+
        Distinguished Names (RDNs) and their servers, or whatever.
existing IP address to host name support. The existing support is
 
the IN-ADDR.ARPA section of the DNS name space.  As a result this RFC
 
describes one structure for network names which builds on the
 
existing support for host names, and another family of structures for
 
future yellow pages (YP) functions such as conversions between TCP-
 
port numbers and mnemonics.
 
  
Both structures are described in following sectionsEach structure
+
  It was impossible to reconcile these two areas of concern for network
has a discussion of design issues and specific structure
+
  names because of the desire to unify network number support within
recommendations.
+
  existing IP address to host name support.  The existing support is
 +
  the IN-ADDR.ARPA section of the DNS name spaceAs a result this RFC
 +
  describes one structure for network names which builds on the
 +
  existing support for host names, and another family of structures for
 +
  future yellow pages (YP) functions such as conversions between TCP-
 +
  port numbers and mnemonics.
  
We wish to avoid defining structures and methods which can work but
+
  Both structures are described in following sectionsEach structure
do not because of indifference or errors on the part of system
+
  has a discussion of design issues and specific structure
administrators when maintaining the databaseThe WKS RR is an
+
  recommendations.
example.  Thus, while we favor distribution as a general method, we
 
also recognize that centrally maintained tables (such as HOSTS.TXT)
 
are usually more consistent though less maintainable and timely.
 
Hence we recommend both specific methods for mapping network names,
 
addresses, and subnets, as well as an instance of the general method
 
for mapping between allocated network numbers and network names.
 
(Allocation is centrally performed by the SRI Network Information
 
Center, aka the NIC).
 
  
== NETWORK NAME ISSUES AND DISCUSSION ==
+
  We wish to avoid defining structures and methods which can work but
 +
  do not because of indifference or errors on the part of system
 +
  administrators when maintaining the database.  The WKS RR is an
 +
  example.  Thus, while we favor distribution as a general method, we
 +
  also recognize that centrally maintained tables (such as HOSTS.TXT)
 +
  are usually more consistent though less maintainable and timely.
 +
  Hence we recommend both specific methods for mapping network names,
 +
  addresses, and subnets, as well as an instance of the general method
 +
  for mapping between allocated network numbers and network names.
 +
  (Allocation is centrally performed by the SRI Network Information
 +
  Center, aka the NIC).
  
The issues involved in the design were the definition of network name
+
3. NETWORK NAME ISSUES AND DISCUSSION
syntax, the mappings to be provided, and possible support for similar
 
functions at the subnet level.
 
  
=== Network name syntax ===
+
  The issues involved in the design were the definition of network name
 +
  syntax, the mappings to be provided, and possible support for similar
 +
  functions at the subnet level.
  
The current syntax for network names, as defined by [[[RFC952|RFC 952]]] is an
+
3.1. Network name syntax
alphanumeric string of up to 24 characters, which begins with an
 
alpha, and may include "." and "-" except as first and last
 
characters.  This is the format which was also used for host names
 
before the DNS.  Upward compatibility with existing names might be a
 
goal of any new scheme.
 
  
However, the present syntax has been used to define a flat name
+
  The current syntax for network names, as defined by [RFC 952] is an
space, and hence would prohibit the same distributed name allocation
+
  alphanumeric string of up to 24 characters, which begins with an
method used for host names.  There is some sentiment for allowing the
+
  alpha, and may include "." and "-" except as first and last
NIC to continue to allocate and regulate network names, much as it
+
  characters.  This is the format which was also used for host names
allocates numbers, but the majority opinion favors local control of
+
  before the DNSUpward compatibility with existing names might be a
 +
  goal of any new scheme.
  
 +
  However, the present syntax has been used to define a flat name
 +
  space, and hence would prohibit the same distributed name allocation
 +
  method used for host names.  There is some sentiment for allowing the
 +
  NIC to continue to allocate and regulate network names, much as it
 +
  allocates numbers, but the majority opinion favors local control of
  
  
  
 +
Mockapetris                                                    [Page 2]
  
network names.  Although it would be possible to provide a flat space
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
or a name space in which, for example, the last label of a domain
 
name captured the old-style network name, any such approach would add
 
complexity to the method and create different rules for network names
 
and host names.
 
  
For these reasons, we assume that the syntax of network names will be
 
the same as the expanded syntax for host names permitted in [HR].
 
The new syntax expands the set of names to allow leading digits, so
 
long as the resulting representations do not conflict with IP
 
addresses in decimal octet form.  For example, 3Com.COM and 3M.COM
 
are now legal, although 26.0.0.73.COM is not.  See [HR] for details.
 
  
The price is that network names will get as complicated as host
+
  network names.  Although it would be possible to provide a flat space
names.  An administrator will be able to create network names in any
+
  or a name space in which, for example, the last label of a domain
domain under his control, and also create network number to name
+
  name captured the old-style network name, any such approach would add
entries in IN-ADDR.ARPA domains under his control.  Thus, the name
+
  complexity to the method and create different rules for network names
for the ARPANET might become NET.ARPA, ARPANET.ARPA or Arpa-
+
  and host names.
network.MIL., depending on the preferences of the owner.
 
  
=== Mappings ===
+
  For these reasons, we assume that the syntax of network names will be
 +
  the same as the expanded syntax for host names permitted in [HR].
 +
  The new syntax expands the set of names to allow leading digits, so
 +
  long as the resulting representations do not conflict with IP
 +
  addresses in decimal octet form.  For example, 3Com.COM and 3M.COM
 +
  are now legal, although 26.0.0.73.COM is not.  See [HR] for details.
  
The desired mappings, ranked by priority with most important first,
+
  The price is that network names will get as complicated as host
are:
+
  names.  An administrator will be able to create network names in any
 +
  domain under his control, and also create network number to name
 +
  entries in IN-ADDR.ARPA domains under his control.  Thus, the name
 +
  for the ARPANET might become NET.ARPA, ARPANET.ARPA or Arpa-
 +
  network.MIL., depending on the preferences of the owner.
  
  - Mapping a IP address or network number to a network name.
+
3.2. Mappings
  
    This mapping is for use in debugging tools and status displays
+
  The desired mappings, ranked by priority with most important first,
    of various sorts.  The conversion from IP address to network
+
  are:
    number is well known for class A, B, and C IP addresses, and
 
    involves a simple mask operation.  The needs of other classes
 
    are not yet defined and are ignored for the rest of this RFC.
 
  
  - Mapping a network name to a network address.
+
      - Mapping a IP address or network number to a network name.
  
    This facility is of less obvious application, but a
+
        This mapping is for use in debugging tools and status displays
    symmetrical mapping seems desirable.
+
        of various sorts.  The conversion from IP address to network
 +
        number is well known for class A, B, and C IP addresses, and
 +
        involves a simple mask operation.  The needs of other classes
 +
        are not yet defined and are ignored for the rest of this RFC.
  
  - Mapping an organization to its network names and numbers.
+
      - Mapping a network name to a network address.
  
    This facility is useful because it may not always be possible
+
        This facility is of less obvious application, but a
    to guess the local choice for network names, but the
+
        symmetrical mapping seems desirable.
    organization name is often well known.
 
  
  - Similar mappings for subnets, even when nested.
+
      - Mapping an organization to its network names and numbers.
  
    The primary application is to be able to identify all of the
+
        This facility is useful because it may not always be possible
    subnets involved in a particular IP address. A secondary
+
        to guess the local choice for network names, but the
 +
        organization name is often well known.
  
 +
      - Similar mappings for subnets, even when nested.
  
 +
        The primary application is to be able to identify all of the
 +
        subnets involved in a particular IP address.  A secondary
  
  
  
    requirement is to retrieve address mask information.
+
Mockapetris                                                    [Page 3]
  
=== Network address section of the name space ===
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
  
The network name syntax discussed above can provide domain names
 
which will contain mappings from network names to various quantities,
 
but we also need a section of the name space, organized by network
 
and subnet number to hold the inverse mappings.
 
  
The choices include:
+
        requirement is to retrieve address mask information.
  
  - The same network number slots already assigned and delegated
+
3.3. Network address section of the name space
    in the IN-ADDR.ARPA section of the name space.
 
  
    For example, 10.IN-ADDR.ARPA for class A net 10,
+
  The network name syntax discussed above can provide domain names
    2.128.IN-ADDR.ARPA for class B net 128.2, etc.
+
  which will contain mappings from network names to various quantities,
 +
  but we also need a section of the name space, organized by network
 +
  and subnet number to hold the inverse mappings.
  
   - Host-zero addresses in the IN-ADDR.ARPA tree.  (A host field
+
   The choices include:
    of all zero in an IP address is prohibited because of
 
    confusion related to broadcast addresses, et al.)
 
  
    For example, 0.0.0.10.IN-ADDR.ARPA for class A net 10,
+
      - The same network number slots already assigned and delegated
    0.0.2.128.IN-ADDR.arpa for class B net 128.2, etc.  Like the
+
        in the IN-ADDR.ARPA section of the name space.
    first scheme, it uses in-place name space delegations to
 
    distribute control.
 
  
    The main advantage of this scheme over the first is that it
+
        For example, 10.IN-ADDR.ARPA for class A net 10,
    allows convenient names for subnets as well as networks. A
+
        2.128.IN-ADDR.ARPA for class B net 128.2, etc.
    secondary advantage is that it uses names which are not in use
 
    already, and hence it is possible to test whether an
 
    organization has entered this information in its domain
 
    database.
 
  
  - Some new section of the name space.
+
      - Host-zero addresses in the IN-ADDR.ARPA tree.  (A host field
 +
        of all zero in an IP address is prohibited because of
 +
        confusion related to broadcast addresses, et al.)
  
    While this option provides the most opportunities, it creates
+
        For example, 0.0.0.10.IN-ADDR.ARPA for class A net 10,
    a need to delegate a whole new name space. Since the IP
+
        0.0.2.128.IN-ADDR.arpa for class B net 128.2, etc.  Like the
    address space is so closely related to the network number
+
        first scheme, it uses in-place name space delegations to
    space, most believe that the overhead of creating such a new
+
        distribute control.
    space is overwhelming and would lead to the WKS syndrome. (As
 
    of February, 1989, approximately 400 sections of the
 
    IN-ADDR.ARPA tree are already delegated, usually at network
 
    boundaries.)
 
  
 +
        The main advantage of this scheme over the first is that it
 +
        allows convenient names for subnets as well as networks.  A
 +
        secondary advantage is that it uses names which are not in use
 +
        already, and hence it is possible to test whether an
 +
        organization has entered this information in its domain
 +
        database.
  
 +
      - Some new section of the name space.
  
 +
        While this option provides the most opportunities, it creates
 +
        a need to delegate a whole new name space.  Since the IP
 +
        address space is so closely related to the network number
 +
        space, most believe that the overhead of creating such a new
 +
        space is overwhelming and would lead to the WKS syndrome.  (As
 +
        of February, 1989, approximately 400 sections of the
 +
        IN-ADDR.ARPA tree are already delegated, usually at network
 +
        boundaries.)
  
  
Line 217: Line 223:
  
  
== SPECIFICS FOR NETWORK NAME MAPPINGS ==
 
  
The proposed solution uses information stored at:
+
Mockapetris                                                    [Page 4]
  
   - Names in the IN-ADDR.ARPA tree that correspond to host-zero IP
+
RFC 1101    DNS Encoding of Network Names and Other Types   April 1989
    addresses.  The same method is used for subnets in a nested
 
    fashion.  For example, 0.0.0.10.IN-ADDR.ARPA. for net 10.
 
  
    Two types of information are stored here: PTR RRs which point
 
    to the network name in their data sections, and A RRs, which
 
    are present if the network (or subnet) is subnetted further.
 
    If a type A RR is present, then it has the address mask as its
 
    data.  The general form is:
 
  
    <reversed-host-zero-number>.IN-ADDR.ARPA. PTR <network-name>
+
4. SPECIFICS FOR NETWORK NAME MAPPINGS
    <reversed-host-zero-number>.IN-ADDR.ARPA. A  <subnet-mask>
 
  
    For example:
+
  The proposed solution uses information stored at:
  
    0.0.0.10.IN-ADDR.ARPA. PTR    ARPANET.ARPA.
+
      - Names in the IN-ADDR.ARPA tree that correspond to host-zero IP
 +
        addresses.  The same method is used for subnets in a nested
 +
        fashion.  For example, 0.0.0.10.IN-ADDR.ARPA. for net 10.
  
    or
+
        Two types of information are stored here: PTR RRs which point
 +
        to the network name in their data sections, and A RRs, which
 +
        are present if the network (or subnet) is subnetted further.
 +
        If a type A RR is present, then it has the address mask as its
 +
        data.  The general form is:
  
    0.0.2.128.IN-ADDR.ARPA. PTR     cmu-net.cmu.edu.
+
        <reversed-host-zero-number>.IN-ADDR.ARPA. PTR <network-name>
                            A       255.255.255.0
+
        <reversed-host-zero-number>.IN-ADDR.ARPA. A   <subnet-mask>
  
    In general, this information will be added to an existing
+
        For example:
    master file for some IN-ADDR.ARPA domain for each network
 
    involved.  Similar RRs can be used at host-zero subnet
 
    entries.
 
  
  - Names which are network names.
+
        0.0.0.10.IN-ADDR.ARPA.  PTR    ARPANET.ARPA.
  
    The data stored here is PTR RRs pointing at the host-zero
+
        or
    entries.  The general form is:
 
  
    <network-name> ptr <reversed-host-zero-number>.IN-ADDR.ARPA
+
        0.0.2.128.IN-ADDR.ARPA. PTR    cmu-net.cmu.edu.
 +
                                A      255.255.255.0
  
    For example:
+
        In general, this information will be added to an existing
 +
        master file for some IN-ADDR.ARPA domain for each network
 +
        involved.  Similar RRs can be used at host-zero subnet
 +
        entries.
  
    ARPANET.ARPA.          PTR    0.0.0.10.IN-ADDR.ARPA.
+
      - Names which are network names.
  
    or
+
        The data stored here is PTR RRs pointing at the host-zero
 +
        entries.  The general form is:
  
    isi-net.isi.edu.        PTR    0.0.9.128.IN-ADDR.ARPA.
+
        <network-name> ptr <reversed-host-zero-number>.IN-ADDR.ARPA
  
    In general, this information will be inserted in the master
+
        For example:
    file for the domain name of the organization; this is a
 
  
 +
        ARPANET.ARPA.          PTR    0.0.0.10.IN-ADDR.ARPA.
  
 +
        or
  
 +
        isi-net.isi.edu.        PTR    0.0.9.128.IN-ADDR.ARPA.
  
 +
        In general, this information will be inserted in the master
 +
        file for the domain name of the organization; this is a
  
    different file from that which holds the information below
 
    IN-ADDR.ARPA.  Similar PTR RRs can be used at subnet names.
 
  
  - Names corresponding to organizations.
 
  
    The data here is one or more PTR RRs pointing at the
+
Mockapetris                                                    [Page 5]
    IN-ADDR.ARPA names corresponding to host-zero entries for
 
    networks.
 
  
    For example:
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
  
    ISI.EDU.        PTR    0.0.9.128.IN-ADDR.ARPA.
 
  
    MCC.COM.        PTR    0.167.5.192.IN-ADDR.ARPA.
+
        different file from that which holds the information below
                    PTR    0.168.5.192.IN-ADDR.ARPA.
+
        IN-ADDR.ARPA. Similar PTR RRs can be used at subnet names.
                    PTR    0.169.5.192.IN-ADDR.ARPA.
 
                    PTR     0.0.62.128.IN-ADDR.ARPA.
 
  
=== A simple example ===
+
      - Names corresponding to organizations.
  
The ARPANET is a Class A network without subnets.  The RRs which
+
        The data here is one or more PTR RRs pointing at the
would be added, assuming the ARPANET.ARPA was selected as a network
+
        IN-ADDR.ARPA names corresponding to host-zero entries for
name, would be:
+
        networks.
  
ARPA.                  PTR    0.0.0.10.IN-ADDR.ARPA.
+
        For example:
  
ARPANET.ARPA.           PTR    0.0.0.10.IN-ADDR.ARPA.
+
        ISI.EDU.       PTR    0.0.9.128.IN-ADDR.ARPA.
  
0.0.0.10.IN-ADDR.ARPA. PTR    ARPANET.ARPA.
+
        MCC.COM.        PTR    0.167.5.192.IN-ADDR.ARPA.
 +
                        PTR    0.168.5.192.IN-ADDR.ARPA.
 +
                        PTR    0.169.5.192.IN-ADDR.ARPA.
 +
                        PTR    0.0.62.128.IN-ADDR.ARPA.
  
The first RR states that the organization named ARPA owns net 10 (It
+
4.1. A simple example
might also own more network numbers, and these would be represented
 
with an additional RR per net.)  The second states that the network
 
name ARPANET.ARPA. maps to net 10.  The last states that net 10 is
 
named ARPANET.ARPA.
 
  
Note that all of the usual host and corresponding IN-ADDR.ARPA
+
  The ARPANET is a Class A network without subnets.  The RRs which
entries would still be required.
+
  would be added, assuming the ARPANET.ARPA was selected as a network
 +
  name, would be:
  
=== A complicated, subnetted example ===
+
  ARPA.                  PTR    0.0.0.10.IN-ADDR.ARPA.
  
The ISI network is 128.9, a class B number. Suppose the ISI network
+
  ARPANET.ARPA.           PTR    0.0.0.10.IN-ADDR.ARPA.
was organized into two levels of subnet, with the first level using
 
an additional 8 bits of address, and the second level using 4 bits,
 
for address masks of x'FFFFFF00' and X'FFFFFFF0'.
 
  
Then the following RRs would be entered in ISI's master file for the
+
  0.0.0.10.IN-ADDR.ARPA.  PTR    ARPANET.ARPA.
ISI.EDU zone:
 
  
 +
  The first RR states that the organization named ARPA owns net 10 (It
 +
  might also own more network numbers, and these would be represented
 +
  with an additional RR per net.)  The second states that the network
 +
  name ARPANET.ARPA. maps to net 10.  The last states that net 10 is
 +
  named ARPANET.ARPA.
  
 +
  Note that all of the usual host and corresponding IN-ADDR.ARPA
 +
  entries would still be required.
  
 +
4.2. A complicated, subnetted example
  
 +
  The ISI network is 128.9, a class B number.  Suppose the ISI network
 +
  was organized into two levels of subnet, with the first level using
 +
  an additional 8 bits of address, and the second level using 4 bits,
 +
  for address masks of x'FFFFFF00' and X'FFFFFFF0'.
  
; Define network entry
+
  Then the following RRs would be entered in ISI's master file for the
isi-net.isi.edu.                PTR  0.0.9.128.IN-ADDR.ARPA.
+
  ISI.EDU zone:
  
; Define first level subnets
 
div1-subnet.isi.edu.            PTR  0.1.9.128.IN-ADDR.ARPA.
 
div2-subnet.isi.edu.            PTR  0.2.9.128.IN-ADDR.ARPA.
 
  
; Define second level subnets
 
inc-subsubnet.isi.edu.          PTR  16.2.9.128.IN-ADDR.ARPA.
 
  
in the 9.128.IN-ADDR.ARPA zone:
+
Mockapetris                                                    [Page 6]
  
; Define network number and address mask
+
RFC 1101    DNS Encoding of Network Names and Other Types   April 1989
0.0.9.128.IN-ADDR.ARPA.        PTR  isi-net.isi.edu.
 
                                A   255.255.255.0  ;aka X'FFFFFF00'
 
  
; Define one of the first level subnet numbers and masks
 
0.1.9.128.IN-ADDR.ARPA.        PTR  div1-subnet.isi.edu.
 
                                A    255.255.255.240 ;aka X'FFFFFFF0'
 
  
; Define another first level subnet number and mask
+
  ; Define network entry
0.2.9.128.IN-ADDR.ARPA.         PTR  div2-subnet.isi.edu.
+
  isi-net.isi.edu.                PTR  0.0.9.128.IN-ADDR.ARPA.
                                A    255.255.255.240 ;aka X'FFFFFFF0'
 
  
; Define second level subnet number
+
  ; Define first level subnets
16.2.9.128.IN-ADDR.ARPA.       PTR  inc-subsubnet.isi.edu.
+
  div1-subnet.isi.edu.            PTR  0.1.9.128.IN-ADDR.ARPA.
 +
  div2-subnet.isi.edu.            PTR  0.2.9.128.IN-ADDR.ARPA.
  
This assumes that the ISI network is named isi-net.isi.edu., first
+
  ; Define second level subnets
level subnets are named div1-subnet.isi.edu. and div2-
+
  inc-subsubnet.isi.edu.         PTR  16.2.9.128.IN-ADDR.ARPA.
subnet.isi.edu., and a second level subnet is called inc-
 
subsubnet.isi.edu. (In a real system as complicated as this there
 
would be more first and second level subnets defined, but we have
 
shown enough to illustrate the ideas.)
 
  
=== Procedure for using an IP address to get network name ===
+
  in the 9.128.IN-ADDR.ARPA zone:
  
Depending on whether the IP address is class A, B, or C, mask off the
+
  ; Define network number and address mask
high one, two, or three bytes, respectively. Reverse the octets,
+
  0.0.9.128.IN-ADDR.ARPA.        PTR isi-net.isi.edu.
suffix IN-ADDR.ARPA, and do a PTR query.
+
                                  A    255.255.255.0  ;aka X'FFFFFF00'
  
For example, suppose the IP address is 10.0.0.51.
+
  ; Define one of the first level subnet numbers and masks
 +
  0.1.9.128.IN-ADDR.ARPA.        PTR  div1-subnet.isi.edu.
 +
                                  A    255.255.255.240 ;aka X'FFFFFFF0'
  
   1. Since this is a class A address, use a mask x'FF000000' and
+
   ; Define another first level subnet number and mask
      get 10.0.0.0.
+
  0.2.9.128.IN-ADDR.ARPA.        PTR  div2-subnet.isi.edu.
 +
                                  A    255.255.255.240 ;aka X'FFFFFFF0'
  
   2. Construct the name 0.0.0.10.IN-ADDR.ARPA.
+
   ; Define second level subnet number
 +
  16.2.9.128.IN-ADDR.ARPA.        PTR  inc-subsubnet.isi.edu.
  
   3. Do a PTR queryGet back
+
   This assumes that the ISI network is named isi-net.isi.edu., first
 +
  level subnets are named div1-subnet.isi.edu. and div2-
 +
  subnet.isi.edu., and a second level subnet is called inc-
 +
  subsubnet.isi.edu(In a real system as complicated as this there
 +
  would be more first and second level subnets defined, but we have
 +
  shown enough to illustrate the ideas.)
  
 +
4.3. Procedure for using an IP address to get network name
  
 +
  Depending on whether the IP address is class A, B, or C, mask off the
 +
  high one, two, or three bytes, respectively.  Reverse the octets,
 +
  suffix IN-ADDR.ARPA, and do a PTR query.
  
 +
  For example, suppose the IP address is 10.0.0.51.
  
 +
      1. Since this is a class A address, use a mask x'FF000000' and
 +
        get 10.0.0.0.
  
       0.0.0.10.IN-ADDR.ARPA.  PTR    ARPANET.ARPA.
+
       2. Construct the name 0.0.0.10.IN-ADDR.ARPA.
  
  4. Conclude that the network name is "ARPANET.ARPA."
+
      3. Do a PTR query. Get back
  
Suppose that the IP address is 128.9.2.17.
 
  
  1. Since this is a class B address, use a mask of x'FFFF0000'
 
      and get 128.9.0.0.
 
  
  2. Construct the name 0.0.9.128.IN-ADDR.ARPA.
+
Mockapetris                                                    [Page 7]
  
   3. Do a PTR query.  Get back
+
RFC 1101    DNS Encoding of Network Names and Other Types   April 1989
  
      0.0.9.128.IN-ADDR.ARPA.      PTR    isi-net.isi.edu
 
  
  4. Conclude that the network name is "isi-net.isi.edu."
+
        0.0.0.10.IN-ADDR.ARPA. PTR    ARPANET.ARPA.
  
=== Procedure for finding all subnets involved with an IP address ===
+
      4. Conclude that the network name is "ARPANET.ARPA."
  
This is a simple extension of the IP address to network name method.
+
  Suppose that the IP address is 128.9.2.17.
When the network entry is located, do a lookup for a possible A RR.
 
If the A RR is found, look up the next level of subnet using the
 
original IP address and the mask in the A RR. Repeat this procedure
 
until no A RR is found.
 
  
For example, repeating the use of 128.9.2.17.
+
      1. Since this is a class B address, use a mask of x'FFFF0000'
 +
        and get 128.9.0.0.
  
  1. As before construct a query for 0.0.9.128.IN-ADDR.ARPA.
+
      2. Construct the name 0.0.9.128.IN-ADDR.ARPA.
      Retrieve:
 
  
       0.0.9.128.IN-ADDR.ARPAPTR    isi-net.isi.edu.
+
       3. Do a PTR queryGet back
                              A      255.255.255.0
 
  
  2. Since an A RR was found, repeat using mask from RR
+
        0.0.9.128.IN-ADDR.ARPA.       PTR    isi-net.isi.edu
      (255.255.255.0), constructing a query for
 
      0.2.9.128.IN-ADDR.ARPA. Retrieve:
 
  
       0.2.9.128.IN-ADDR.ARPA.  PTR    div2-subnet.isi.edu.
+
       4. Conclude that the network name is "isi-net.isi.edu."
                              A      255.255.255.240
 
  
  3. Since another A RR was found, repeat using mask
+
4.4. Procedure for finding all subnets involved with an IP address
      255.255.255.240 (x'FFFFFFF0').  constructing a query for
 
      16.2.9.128.IN-ADDR.ARPA.  Retrieve:
 
  
      16.2.9.128.IN-ADDR.ARPA. PTR   inc-subsubnet.isi.edu.
+
  This is a simple extension of the IP address to network name method.
 +
  When the network entry is located, do a lookup for a possible A RR.
 +
  If the A RR is found, look up the next level of subnet using the
 +
  original IP address and the mask in the A RR. Repeat this procedure
 +
   until no A RR is found.
  
   4. Since no A RR is present at 16.2.9.128.IN-ADDR.ARPA., there
+
   For example, repeating the use of 128.9.2.17.
      are no more subnet levels.
 
  
 +
      1. As before construct a query for 0.0.9.128.IN-ADDR.ARPA.
 +
        Retrieve:
  
 +
        0.0.9.128.IN-ADDR.ARPA.  PTR    isi-net.isi.edu.
 +
                                  A      255.255.255.0
  
 +
      2. Since an A RR was found, repeat using mask from RR
 +
        (255.255.255.0), constructing a query for
 +
        0.2.9.128.IN-ADDR.ARPA.  Retrieve:
  
 +
        0.2.9.128.IN-ADDR.ARPA.  PTR    div2-subnet.isi.edu.
 +
                                  A      255.255.255.240
  
== YP ISSUES AND DISCUSSION ==
+
      3. Since another A RR was found, repeat using mask
 +
        255.255.255.240 (x'FFFFFFF0').  constructing a query for
 +
        16.2.9.128.IN-ADDR.ARPA.  Retrieve:
  
The term "Yellow Pages" is used in almost as many ways as the term
+
        16.2.9.128.IN-ADDR.ARPA. PTR    inc-subsubnet.isi.edu.
"domain", so it is useful to define what is meant herein by YP. The
 
general problem to be solved is to create a method for creating
 
mappings from one kind of identifier to another, often with an
 
inverse capability. The traditional methods are to search or use a
 
precomputed index of some kind.
 
  
Searching is impractical when the search is too large, and
+
      4. Since no A RR is present at 16.2.9.128.IN-ADDR.ARPA., there
precomputed indexes are possible only when it is possible to specify
+
        are no more subnet levels.
search criteria in advance, and pay for the resources necessary to
 
build the index. For example, it is impractical to search the entire
 
domain tree to find a particular address RR, so we build the IN-
 
ADDR.ARPA YP. Similarly, we could never build an Internet-wide index
 
of "hosts with a load average of less than 2" in less time than it
 
would take for the data to change, so indexes are a useless approach
 
for that problem.
 
  
Such a precomputed index is what we mean by YP, and we regard the
 
IN-ADDR.ARPA domain as the first instance of a YP in the DNS.
 
Although a single, centrally-managed YP for well-known values such as
 
TCP-port is desirable, we regard organization-specific YPs for, say,
 
locally defined TCP ports as a natural extension, as are combinations
 
of YPs using search lists to merge the two.
 
  
In examining Internet Numbers [[[RFC997|RFC 997]]] and Assigned Numbers [RFC
 
1010], it is clear that there are several mappings which might be of
 
value.  For example:
 
  
<assigned-network-name> <==> <IP-address>
+
Mockapetris                                                    [Page 8]
<autonomous-system-id>  <==> <number>
 
<protocol-id>          <==> <number>
 
<port-id>              <==> <number>
 
<ethernet-type>        <==> <number>
 
<public-data-net>      <==> <IP-address>
 
  
Following the IN-ADDR example, the YP takes the form of a domain tree
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
organized to optimize retrieval by search key and distribution via
 
normal DNS rules.  The name used as a key must include:
 
  
  1. A well known origin.  For example, IN-ADDR.ARPA is the
 
      current IP-address to host name YP.
 
  
  2. A "from" data type.  This identifies the input type of the
+
5. YP ISSUES AND DISCUSSION
      mapping.  This is necessary because we may be mapping
 
      something as anonymous as a number to any number of
 
      mnemonics, etc.
 
  
 +
  The term "Yellow Pages" is used in almost as many ways as the term
 +
  "domain", so it is useful to define what is meant herein by YP.  The
 +
  general problem to be solved is to create a method for creating
 +
  mappings from one kind of identifier to another, often with an
 +
  inverse capability.  The traditional methods are to search or use a
 +
  precomputed index of some kind.
  
 +
  Searching is impractical when the search is too large, and
 +
  precomputed indexes are possible only when it is possible to specify
 +
  search criteria in advance, and pay for the resources necessary to
 +
  build the index.  For example, it is impractical to search the entire
 +
  domain tree to find a particular address RR, so we build the IN-
 +
  ADDR.ARPA YP.  Similarly, we could never build an Internet-wide index
 +
  of "hosts with a load average of less than 2" in less time than it
 +
  would take for the data to change, so indexes are a useless approach
 +
  for that problem.
  
 +
  Such a precomputed index is what we mean by YP, and we regard the
 +
  IN-ADDR.ARPA domain as the first instance of a YP in the DNS.
 +
  Although a single, centrally-managed YP for well-known values such as
 +
  TCP-port is desirable, we regard organization-specific YPs for, say,
 +
  locally defined TCP ports as a natural extension, as are combinations
 +
  of YPs using search lists to merge the two.
  
 +
  In examining Internet Numbers [RFC 997] and Assigned Numbers [RFC
 +
  1010], it is clear that there are several mappings which might be of
 +
  value.  For example:
  
   3. A "to" data type.  Since we assume several symmetrical
+
   <assigned-network-name> <==> <IP-address>
       mnemonic <==> number mappings, this is also necessary.
+
  <autonomous-system-id>  <==> <number>
 +
  <protocol-id>          <==> <number>
 +
  <port-id>              <==> <number>
 +
  <ethernet-type>        <==> <number>
 +
  <public-data-net>       <==> <IP-address>
  
This ordering reflects the natural scoping of control, and hence the
+
  Following the IN-ADDR example, the YP takes the form of a domain tree
order of the components in a domain nameThus domain names would be
+
  organized to optimize retrieval by search key and distribution via
of the form:
+
  normal DNS rulesThe name used as a key must include:
  
<from-value>.<to-data-type>.<from-data-type>.<YP-origin>
+
      1. A well known origin. For example, IN-ADDR.ARPA is the
 +
        current IP-address to host name YP.
  
To make this work, we need to define well-know strings for each of
+
      2. A "from" data type.  This identifies the input type of the
these metavariables, as well as encoding rules for converting a
+
        mapping.  This is necessary because we may be mapping
<from-value> into a domain name. We might define:
+
        something as anonymous as a number to any number of
 +
        mnemonics, etc.
  
<YP-origin>    :=YP
 
<from-data-type>:=TCP-port | IN-ADDR | Number |
 
                  Assigned-network-number | Name
 
<to-data-type>  :=<from-data-type>
 
  
Note that "YP" is NOT a valid country code under [ISO 3166] (although
 
we may want to worry about the future), and the existence of a
 
syntactically valid <to-data-type>.<from-data-type> pair does not
 
imply that a meaningful mapping exists, or is even possible.
 
  
The encoding rules might be:
+
Mockapetris                                                    [Page 9]
  
TCP-port        Six character alphanumeric
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
  
IN-ADDR        Reversed 4-octet decimal string
 
  
Number         decimal integer
+
      3. A "to" data type.  Since we assume several symmetrical
 +
         mnemonic <==> number mappings, this is also necessary.
  
Assigned-network-number
+
  This ordering reflects the natural scoping of control, and hence the
                Reversed 4-octet decimal string
+
  order of the components in a domain name.  Thus domain names would be
 +
  of the form:
  
Name            Domain name
+
  <from-value>.<to-data-type>.<from-data-type>.<YP-origin>
  
== SPECIFICS FOR YP MAPPINGS ==
+
  To make this work, we need to define well-know strings for each of
 +
  these metavariables, as well as encoding rules for converting a
 +
  <from-value> into a domain name.  We might define:
  
=== TCP-PORT ===
+
  <YP-origin>    :=YP
 +
  <from-data-type>:=TCP-port | IN-ADDR | Number |
 +
                    Assigned-network-number | Name
 +
  <to-data-type>  :=<from-data-type>
  
$origin Number.TCP-port.YP.
+
  Note that "YP" is NOT a valid country code under [ISO 3166] (although
 +
  we may want to worry about the future), and the existence of a
 +
  syntactically valid <to-data-type>.<from-data-type> pair does not
 +
  imply that a meaningful mapping exists, or is even possible.
  
23              PTR    TELNET.TCP-port.Number.YP.
+
  The encoding rules might be:
25              PTR    SMTP.TCP-port.Number.YP.
 
  
$origin TCP-port.Number.YP.
+
  TCP-port       Six character alphanumeric
  
TELNET          PTR    23.Number.TCP-port.YP.
+
  IN-ADDR        Reversed 4-octet decimal string
  
 +
  Number          decimal integer
  
 +
  Assigned-network-number
 +
                  Reversed 4-octet decimal string
  
 +
  Name            Domain name
  
 +
6. SPECIFICS FOR YP MAPPINGS
  
SMTP            PTR    25.Number.TCP-port.YP.
+
6.1. TCP-PORT
  
Thus the mapping between 23 and TELNET is represented by a pair of
+
  $origin Number.TCP-port.YP.
PTR RRs, one for each direction of the mapping.
 
  
=== Assigned networks ===
+
  23              PTR    TELNET.TCP-port.Number.YP.
 +
  25              PTR    SMTP.TCP-port.Number.YP.
  
Network numbers are assigned by the NIC and reported in "Internet
+
  $origin TCP-port.Number.YP.
Numbers" RFCs. To create a YP, the NIC would set up two domains:
 
  
Name.Assigned-network-number.YP and Assigned-network-number.YP
+
  TELNET          PTR    23.Number.TCP-port.YP.
  
The first would contain entries of the form:
 
  
$origin Name.Assigned-network-number.YP.
 
  
0.0.0.4        PTR    SATNET.Assigned-network-number.Name.YP.
+
Mockapetris                                                    [Page 10]
0.0.0.10       PTR    ARPANET.Assigned-network-number.Name.YP.
 
  
The second would contain entries of the form:
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
  
$origin Assigned-network-number.Name.YP.
 
  
SATNET.        PTR    0.0.0.4.Name.Assigned-network-number.YP.
+
  SMTP            PTR    25.Number.TCP-port.YP.
ARPANET.        PTR    0.0.0.10.Name.Assigned-network-number.YP.
 
  
These YPs are not in conflict with the network name support described
+
  Thus the mapping between 23 and TELNET is represented by a pair of
in the first half of this RFC since they map between ASSIGNED network
+
  PTR RRs, one for each direction of the mapping.
names and numbers, not those allocated by the organizations
 
themselves.  That is, they document the NIC's decisions about
 
allocating network numbers but do not automatically track any
 
renaming performed by the new owners.
 
  
As a practical matter, we might want to create both of these domains
+
6.2. Assigned networks
to enable users on the Internet to experiment with centrally
 
maintained support as well as the distributed version, or might want
 
to implement only the allocated number to name mapping and request
 
organizations to convert their allocated network names to the network
 
names described in the distributed model.
 
  
=== Operational improvements ===
+
  Network numbers are assigned by the NIC and reported in "Internet
 +
  Numbers" RFCs.  To create a YP, the NIC would set up two domains:
  
We could imagine that all conversion routines using these YPs might
+
  Name.Assigned-network-number.YP and Assigned-network-number.YP
be instructed to use "YP.<local-domain>" followed by "YP."  as a
 
search list.  Thus, if the organization ISI.EDU wished to define
 
locally meaningful TCP-PORT, it would define the domains:
 
  
<TCP-port.Number.YP.ISI.EDU> and <Number.TCP-port.YP.ISI.EDU>.
+
  The first would contain entries of the form:
  
 +
  $origin Name.Assigned-network-number.YP.
  
 +
  0.0.0.4        PTR    SATNET.Assigned-network-number.Name.YP.
 +
  0.0.0.10        PTR    ARPANET.Assigned-network-number.Name.YP.
  
 +
  The second would contain entries of the form:
  
 +
  $origin Assigned-network-number.Name.YP.
  
We could add another level of indirection in the YP lookup, defining
+
  SATNET.        PTR    0.0.0.4.Name.Assigned-network-number.YP.
the <to-data-type>.<from-data-type>.<YP-origin> nodes to point to the
+
  ARPANET.        PTR    0.0.0.10.Name.Assigned-network-number.YP.
YP tree, rather than being the YP tree directly. This would enable
 
entries of the form:
 
  
IN-ADDR.Netname.YP.  PTR    IN-ADDR.ARPA.
+
  These YPs are not in conflict with the network name support described
 +
  in the first half of this RFC since they map between ASSIGNED network
 +
  names and numbers, not those allocated by the organizations
 +
  themselves. That is, they document the NIC's decisions about
 +
  allocating network numbers but do not automatically track any
 +
  renaming performed by the new owners.
  
to splice in YPs from other origins or existing spaces.
+
  As a practical matter, we might want to create both of these domains
 +
  to enable users on the Internet to experiment with centrally
 +
  maintained support as well as the distributed version, or might want
 +
  to implement only the allocated number to name mapping and request
 +
  organizations to convert their allocated network names to the network
 +
  names described in the distributed model.
  
Another possibility would be to shorten the RDATA section of the RRs
+
6.3. Operational improvements
which map back and forth by deleting the origin. This could be done
 
either by allowing the domain name in the RDATA portion to not
 
identify a real domain name, or by defining a new RR which used a
 
simple text string rather than a domain name.
 
  
Thus, we might replace
+
  We could imagine that all conversion routines using these YPs might
 +
  be instructed to use "YP.<local-domain>" followed by "YP."  as a
 +
  search list.  Thus, if the organization ISI.EDU wished to define
 +
  locally meaningful TCP-PORT, it would define the domains:
  
$origin Assigned-network-number.Name.YP.
+
  <TCP-port.Number.YP.ISI.EDU> and <Number.TCP-port.YP.ISI.EDU>.
  
SATNET.        PTR    0.0.0.4.Name.Assigned-network-number.YP.
 
ARPANET.        PTR    0.0.0.10.Name.Assigned-network-number.YP.
 
  
with
 
  
$origin Assigned-network-number.Name.YP.
+
Mockapetris                                                    [Page 11]
  
SATNET.        PTR     0.0.0.4.
+
RFC 1101     DNS Encoding of Network Names and Other Types    April 1989
ARPANET.        PTR    0.0.0.10.
 
  
or
 
  
$origin Assigned-network-number.Name.YP.
+
  We could add another level of indirection in the YP lookup, defining
 +
  the <to-data-type>.<from-data-type>.<YP-origin> nodes to point to the
 +
  YP tree, rather than being the YP tree directly. This would enable
 +
  entries of the form:
  
SATNET.         PTT    "0.0.0.4"
+
  IN-ADDR.Netname.YP.   PTR     IN-ADDR.ARPA.
ARPANET.       PTT     "0.0.0.10"
 
  
where PTT is a new type whose RDATA section is a text string.
+
  to splice in YPs from other origins or existing spaces.
  
== ACKNOWLEDGMENTS ==
+
  Another possibility would be to shorten the RDATA section of the RRs
 +
  which map back and forth by deleting the origin.  This could be done
 +
  either by allowing the domain name in the RDATA portion to not
 +
  identify a real domain name, or by defining a new RR which used a
 +
  simple text string rather than a domain name.
  
Drew Perkins, Mark Lottor, and Rob Austein contributed several of the
+
  Thus, we might replace
ideas in this RFC.  Numerous contributions, criticisms, and
 
compromises were produced in the IETF Domain working group and the
 
NAMEDROPPERS mailing list.
 
  
 +
  $origin Assigned-network-number.Name.YP.
  
 +
  SATNET.        PTR    0.0.0.4.Name.Assigned-network-number.YP.
 +
  ARPANET.        PTR    0.0.0.10.Name.Assigned-network-number.YP.
  
 +
  with
  
 +
  $origin Assigned-network-number.Name.YP.
  
 +
  SATNET.        PTR    0.0.0.4.
 +
  ARPANET.        PTR    0.0.0.10.
  
 +
  or
  
 +
  $origin Assigned-network-number.Name.YP.
  
 +
  SATNET.        PTT    "0.0.0.4"
 +
  ARPANET.        PTT    "0.0.0.10"
  
== REFERENCES ==
+
  where PTT is a new type whose RDATA section is a text string.
  
[HR]        Braden, B., editor, "Requirements for Internet Hosts",
+
7. ACKNOWLEDGMENTS
            RFC in preparation.
 
  
[ISO 3166] ISO, "Codes for the Representation of Names of
+
  Drew Perkins, Mark Lottor, and Rob Austein contributed several of the
            Countries", 1981.
+
  ideas in this RFC. Numerous contributions, criticisms, and
 +
  compromises were produced in the IETF Domain working group and the
 +
  NAMEDROPPERS mailing list.
  
[[[RFC882|RFC 882]]]  Mockapetris, P., "Domain names - Concepts and
 
            Facilities", [[RFC882|RFC 882]], USC/Information Sciences Institute,
 
            November 1983.
 
  
            Superseded by [[RFC1034|RFC 1034]].
 
  
[[[RFC883|RFC 883]]]  Mockapetris, P.,"Domain names - Implementation and
 
            Specification", [[RFC883|RFC 883]], USC/Information Sciences
 
            Institute, November 1983.
 
  
            Superceeded by [[RFC1035|RFC 1035]].
 
  
[[[RFC920|RFC 920]]]  Postel, J. and J. Reynolds, "Domain Requirements", RFC
 
            920, October 1984.
 
  
            Explains the naming scheme for top level domains.
 
  
[[[RFC952|RFC 952]]]  Harrenstien, K., M. Stahl, and E. Feinler, "DoD Internet
+
Mockapetris                                                    [Page 12]
            Host Table Specification", [[RFC952|RFC 952]], SRI, October 1985.
 
  
            Specifies the format of HOSTS.TXT, the host/address table
+
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
            replaced by the DNS
 
  
[[[RFC973|RFC 973]]]  Mockapetris, P., "Domain System Changes and
 
            Observations", [[RFC973|RFC 973]], USC/Information Sciences
 
            Institute, January 1986.
 
  
            Describes changes to RFCs 882 and 883 and reasons for
+
8. REFERENCES
            them.
 
  
[[[RFC974|RFC 974]]]   Partridge, C., "Mail routing and the domain system", RFC
+
  [HR]       Braden, B., editor, "Requirements for Internet Hosts",
            974, CSNET CIC BBN Labs, January 1986.
+
              RFC in preparation.
  
            Describes the transition from HOSTS.TXT based mail
+
  [ISO 3166]  ISO, "Codes for the Representation of Names of
            addressing to the more powerful MX system used with the
+
              Countries", 1981.
            domain system.
 
  
 +
  [RFC 882]  Mockapetris, P., "Domain names - Concepts and
 +
              Facilities", RFC 882, USC/Information Sciences Institute,
 +
              November 1983.
  
 +
              Superseded by RFC 1034.
  
 +
  [RFC 883]  Mockapetris, P.,"Domain names - Implementation and
 +
              Specification", RFC 883, USC/Information Sciences
 +
              Institute, November 1983.
  
 +
              Superceeded by RFC 1035.
  
 +
  [RFC 920]  Postel, J. and J. Reynolds, "Domain Requirements", RFC
 +
              920, October 1984.
  
 +
              Explains the naming scheme for top level domains.
  
 +
  [RFC 952]  Harrenstien, K., M. Stahl, and E. Feinler, "DoD Internet
 +
              Host Table Specification", RFC 952, SRI, October 1985.
  
 +
              Specifies the format of HOSTS.TXT, the host/address table
 +
              replaced by the DNS
  
[[[RFC997|RFC 997]]Reynolds, J., and J. Postel, "Internet Numbers", [[RFC997|RFC 997]],
+
  [RFC 973Mockapetris, P., "Domain System Changes and
            USC/Information Sciences Institute, March 1987
+
              Observations", RFC 973, USC/Information Sciences
 +
              Institute, January 1986.
  
            Contains network numbers, autonomous system numbers, etc.
+
              Describes changes to RFCs 882 and 883 and reasons for
 +
              them.
  
[[[RFC1010|RFC 1010]]]  Reynolds, J., and J. Postel, "Assigned Numbers", RFC
+
  [RFC 974]   Partridge, C., "Mail routing and the domain system", RFC
            1010, USC/Information Sciences Institute, May 1987
+
              974, CSNET CIC BBN Labs, January 1986.
  
            Contains socket numbers and mnemonics for host names,
+
              Describes the transition from HOSTS.TXT based mail
            operating systems, etc.
+
              addressing to the more powerful MX system used with the
 +
              domain system.
  
  
[[[RFC1034|RFC 1034]]]  Mockapetris, P., "Domain names - Concepts and
 
            Facilities", [[RFC1034|RFC 1034]], USC/Information Sciences
 
            Institute, November 1987.
 
  
            Introduction/overview of the DNS.
 
  
[[[RFC1035|RFC 1035]]]  Mockapetris, P., "Domain names - Implementation and
 
            Specification", [[RFC1035|RFC 1035]], USC/Information Sciences
 
            Institute, November 1987.
 
  
            DNS implementation instructions.
+
 
 +
 
 +
Mockapetris                                                    [Page 13]
 +
 
 +
RFC 1101    DNS Encoding of Network Names and Other Types    April 1989
 +
 
 +
 
 +
  [RFC 997]  Reynolds, J., and J. Postel, "Internet Numbers", RFC 997,
 +
              USC/Information Sciences Institute, March 1987
 +
 
 +
              Contains network numbers, autonomous system numbers, etc.
 +
 
 +
  [RFC 1010]  Reynolds, J., and J. Postel, "Assigned Numbers", RFC
 +
              1010, USC/Information Sciences Institute, May 1987
 +
 
 +
              Contains socket numbers and mnemonics for host names,
 +
              operating systems, etc.
 +
 
 +
 
 +
  [RFC 1034]  Mockapetris, P., "Domain names - Concepts and
 +
              Facilities", RFC 1034, USC/Information Sciences
 +
              Institute, November 1987.
 +
 
 +
              Introduction/overview of the DNS.
 +
 
 +
  [RFC 1035]  Mockapetris, P., "Domain names - Implementation and
 +
              Specification", RFC 1035, USC/Information Sciences
 +
              Institute, November 1987.
 +
 
 +
              DNS implementation instructions.
  
 
Author's Address:
 
Author's Address:
  
Paul Mockapetris
+
  Paul Mockapetris
USC/Information Sciences Institute
+
  USC/Information Sciences Institute
4676 Admiralty Way
+
  4676 Admiralty Way
Marina del Rey, CA 90292
+
  Marina del Rey, CA 90292
 +
 
 +
  Phone: (213) 822-1511
 +
 
 +
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
  
Phone: (213) 822-1511
 
  
+
Mockapetris                                                    [Page 14]

Revision as of 22:50, 22 September 2020




Network Working Group P. Mockapetris Request for Comments: 1101 ISI Updates: RFCs 1034, 1035 April 1989


            DNS Encoding of Network Names and Other Types


1. STATUS OF THIS MEMO

  This RFC proposes two extensions to the Domain Name System:
     - A specific method for entering and retrieving RRs which map
       between network names and numbers.
     - Ideas for a general method for describing mappings between
       arbitrary identifiers and numbers.
  The method for mapping between network names and addresses is a
  proposed standard, the ideas for a general method are experimental.
  This RFC assumes that the reader is familiar with the DNS [RFC 1034,
  RFC 1035] and its use.  The data shown is for pedagogical use and
  does not necessarily reflect the real Internet.
  Distribution of this memo is unlimited.

2. INTRODUCTION

  The DNS is extensible and can be used for a virtually unlimited
  number of data types, name spaces, etc.  New type definitions are
  occasionally necessary as are revisions or deletions of old types
  (e.g., MX replacement of MD and MF [RFC 974]), and changes described
  in [RFC 973].  This RFC describes changes due to the general need to
  map between identifiers and values, and a specific need for network
  name support.
  Users wish to be able to use the DNS to map between network names and
  numbers.  This need is the only capability found in HOSTS.TXT which
  is not available from the DNS.  In designing a method to do this,
  there were two major areas of concern:
     - Several tradeoffs involving control of network names, the
       syntax of network names, backward compatibility, etc.
     - A desire to create a method which would be sufficiently
       general to set a good precedent for future mappings,
       for example, between TCP-port names and numbers,


Mockapetris [Page 1]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


       autonomous system names and numbers, X.500 Relative
       Distinguished Names (RDNs) and their servers, or whatever.
  It was impossible to reconcile these two areas of concern for network
  names because of the desire to unify network number support within
  existing IP address to host name support.  The existing support is
  the IN-ADDR.ARPA section of the DNS name space.  As a result this RFC
  describes one structure for network names which builds on the
  existing support for host names, and another family of structures for
  future yellow pages (YP) functions such as conversions between TCP-
  port numbers and mnemonics.
  Both structures are described in following sections.  Each structure
  has a discussion of design issues and specific structure
  recommendations.
  We wish to avoid defining structures and methods which can work but
  do not because of indifference or errors on the part of system
  administrators when maintaining the database.  The WKS RR is an
  example.  Thus, while we favor distribution as a general method, we
  also recognize that centrally maintained tables (such as HOSTS.TXT)
  are usually more consistent though less maintainable and timely.
  Hence we recommend both specific methods for mapping network names,
  addresses, and subnets, as well as an instance of the general method
  for mapping between allocated network numbers and network names.
  (Allocation is centrally performed by the SRI Network Information
  Center, aka the NIC).

3. NETWORK NAME ISSUES AND DISCUSSION

  The issues involved in the design were the definition of network name
  syntax, the mappings to be provided, and possible support for similar
  functions at the subnet level.

3.1. Network name syntax

  The current syntax for network names, as defined by [RFC 952] is an
  alphanumeric string of up to 24 characters, which begins with an
  alpha, and may include "." and "-" except as first and last
  characters.  This is the format which was also used for host names
  before the DNS.  Upward compatibility with existing names might be a
  goal of any new scheme.
  However, the present syntax has been used to define a flat name
  space, and hence would prohibit the same distributed name allocation
  method used for host names.  There is some sentiment for allowing the
  NIC to continue to allocate and regulate network names, much as it
  allocates numbers, but the majority opinion favors local control of


Mockapetris [Page 2]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


  network names.  Although it would be possible to provide a flat space
  or a name space in which, for example, the last label of a domain
  name captured the old-style network name, any such approach would add
  complexity to the method and create different rules for network names
  and host names.
  For these reasons, we assume that the syntax of network names will be
  the same as the expanded syntax for host names permitted in [HR].
  The new syntax expands the set of names to allow leading digits, so
  long as the resulting representations do not conflict with IP
  addresses in decimal octet form.  For example, 3Com.COM and 3M.COM
  are now legal, although 26.0.0.73.COM is not.  See [HR] for details.
  The price is that network names will get as complicated as host
  names.  An administrator will be able to create network names in any
  domain under his control, and also create network number to name
  entries in IN-ADDR.ARPA domains under his control.  Thus, the name
  for the ARPANET might become NET.ARPA, ARPANET.ARPA or Arpa-
  network.MIL., depending on the preferences of the owner.

3.2. Mappings

  The desired mappings, ranked by priority with most important first,
  are:
     - Mapping a IP address or network number to a network name.
       This mapping is for use in debugging tools and status displays
       of various sorts.  The conversion from IP address to network
       number is well known for class A, B, and C IP addresses, and
       involves a simple mask operation.  The needs of other classes
       are not yet defined and are ignored for the rest of this RFC.
     - Mapping a network name to a network address.
       This facility is of less obvious application, but a
       symmetrical mapping seems desirable.
     - Mapping an organization to its network names and numbers.
       This facility is useful because it may not always be possible
       to guess the local choice for network names, but the
       organization name is often well known.
     - Similar mappings for subnets, even when nested.
       The primary application is to be able to identify all of the
       subnets involved in a particular IP address.  A secondary


Mockapetris [Page 3]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


       requirement is to retrieve address mask information.

3.3. Network address section of the name space

  The network name syntax discussed above can provide domain names
  which will contain mappings from network names to various quantities,
  but we also need a section of the name space, organized by network
  and subnet number to hold the inverse mappings.
  The choices include:
     - The same network number slots already assigned and delegated
       in the IN-ADDR.ARPA section of the name space.
       For example, 10.IN-ADDR.ARPA for class A net 10,
       2.128.IN-ADDR.ARPA for class B net 128.2, etc.
     - Host-zero addresses in the IN-ADDR.ARPA tree.  (A host field
       of all zero in an IP address is prohibited because of
       confusion related to broadcast addresses, et al.)
       For example, 0.0.0.10.IN-ADDR.ARPA for class A net 10,
       0.0.2.128.IN-ADDR.arpa for class B net 128.2, etc.  Like the
       first scheme, it uses in-place name space delegations to
       distribute control.
       The main advantage of this scheme over the first is that it
       allows convenient names for subnets as well as networks.  A
       secondary advantage is that it uses names which are not in use
       already, and hence it is possible to test whether an
       organization has entered this information in its domain
       database.
     - Some new section of the name space.
       While this option provides the most opportunities, it creates
       a need to delegate a whole new name space.  Since the IP
       address space is so closely related to the network number
       space, most believe that the overhead of creating such a new
       space is overwhelming and would lead to the WKS syndrome.  (As
       of February, 1989, approximately 400 sections of the
       IN-ADDR.ARPA tree are already delegated, usually at network
       boundaries.)





Mockapetris [Page 4]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


4. SPECIFICS FOR NETWORK NAME MAPPINGS

  The proposed solution uses information stored at:
     - Names in the IN-ADDR.ARPA tree that correspond to host-zero IP
       addresses.  The same method is used for subnets in a nested
       fashion.  For example, 0.0.0.10.IN-ADDR.ARPA. for net 10.
       Two types of information are stored here: PTR RRs which point
       to the network name in their data sections, and A RRs, which
       are present if the network (or subnet) is subnetted further.
       If a type A RR is present, then it has the address mask as its
       data.  The general form is:
       <reversed-host-zero-number>.IN-ADDR.ARPA. PTR <network-name>
       <reversed-host-zero-number>.IN-ADDR.ARPA. A   <subnet-mask>
       For example:
       0.0.0.10.IN-ADDR.ARPA.  PTR     ARPANET.ARPA.
       or
       0.0.2.128.IN-ADDR.ARPA. PTR     cmu-net.cmu.edu.
                               A       255.255.255.0
       In general, this information will be added to an existing
       master file for some IN-ADDR.ARPA domain for each network
       involved.  Similar RRs can be used at host-zero subnet
       entries.
     - Names which are network names.
       The data stored here is PTR RRs pointing at the host-zero
       entries.  The general form is:
       <network-name> ptr <reversed-host-zero-number>.IN-ADDR.ARPA
       For example:
       ARPANET.ARPA.           PTR     0.0.0.10.IN-ADDR.ARPA.
       or
       isi-net.isi.edu.        PTR     0.0.9.128.IN-ADDR.ARPA.
       In general, this information will be inserted in the master
       file for the domain name of the organization; this is a


Mockapetris [Page 5]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


       different file from that which holds the information below
       IN-ADDR.ARPA.  Similar PTR RRs can be used at subnet names.
     - Names corresponding to organizations.
       The data here is one or more PTR RRs pointing at the
       IN-ADDR.ARPA names corresponding to host-zero entries for
       networks.
       For example:
       ISI.EDU.        PTR     0.0.9.128.IN-ADDR.ARPA.
       MCC.COM.        PTR     0.167.5.192.IN-ADDR.ARPA.
                       PTR     0.168.5.192.IN-ADDR.ARPA.
                       PTR     0.169.5.192.IN-ADDR.ARPA.
                       PTR     0.0.62.128.IN-ADDR.ARPA.

4.1. A simple example

  The ARPANET is a Class A network without subnets.  The RRs which
  would be added, assuming the ARPANET.ARPA was selected as a network
  name, would be:
  ARPA.                   PTR     0.0.0.10.IN-ADDR.ARPA.
  ARPANET.ARPA.           PTR     0.0.0.10.IN-ADDR.ARPA.
  0.0.0.10.IN-ADDR.ARPA.  PTR     ARPANET.ARPA.
  The first RR states that the organization named ARPA owns net 10 (It
  might also own more network numbers, and these would be represented
  with an additional RR per net.)  The second states that the network
  name ARPANET.ARPA. maps to net 10.  The last states that net 10 is
  named ARPANET.ARPA.
  Note that all of the usual host and corresponding IN-ADDR.ARPA
  entries would still be required.

4.2. A complicated, subnetted example

  The ISI network is 128.9, a class B number.  Suppose the ISI network
  was organized into two levels of subnet, with the first level using
  an additional 8 bits of address, and the second level using 4 bits,
  for address masks of x'FFFFFF00' and X'FFFFFFF0'.
  Then the following RRs would be entered in ISI's master file for the
  ISI.EDU zone:


Mockapetris [Page 6]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


  ; Define network entry
  isi-net.isi.edu.                PTR  0.0.9.128.IN-ADDR.ARPA.
  ; Define first level subnets
  div1-subnet.isi.edu.            PTR  0.1.9.128.IN-ADDR.ARPA.
  div2-subnet.isi.edu.            PTR  0.2.9.128.IN-ADDR.ARPA.
  ; Define second level subnets
  inc-subsubnet.isi.edu.          PTR  16.2.9.128.IN-ADDR.ARPA.
  in the 9.128.IN-ADDR.ARPA zone:
  ; Define network number and address mask
  0.0.9.128.IN-ADDR.ARPA.         PTR  isi-net.isi.edu.
                                  A    255.255.255.0  ;aka X'FFFFFF00'
  ; Define one of the first level subnet numbers and masks
  0.1.9.128.IN-ADDR.ARPA.         PTR  div1-subnet.isi.edu.
                                  A    255.255.255.240 ;aka X'FFFFFFF0'
  ; Define another first level subnet number and mask
  0.2.9.128.IN-ADDR.ARPA.         PTR  div2-subnet.isi.edu.
                                  A    255.255.255.240 ;aka X'FFFFFFF0'
  ; Define second level subnet number
  16.2.9.128.IN-ADDR.ARPA.        PTR  inc-subsubnet.isi.edu.
  This assumes that the ISI network is named isi-net.isi.edu., first
  level subnets are named div1-subnet.isi.edu. and div2-
  subnet.isi.edu., and a second level subnet is called inc-
  subsubnet.isi.edu.  (In a real system as complicated as this there
  would be more first and second level subnets defined, but we have
  shown enough to illustrate the ideas.)

4.3. Procedure for using an IP address to get network name

  Depending on whether the IP address is class A, B, or C, mask off the
  high one, two, or three bytes, respectively.  Reverse the octets,
  suffix IN-ADDR.ARPA, and do a PTR query.
  For example, suppose the IP address is 10.0.0.51.
     1. Since this is a class A address, use a mask x'FF000000' and
        get 10.0.0.0.
     2. Construct the name 0.0.0.10.IN-ADDR.ARPA.
     3. Do a PTR query.  Get back


Mockapetris [Page 7]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


        0.0.0.10.IN-ADDR.ARPA.  PTR     ARPANET.ARPA.
     4. Conclude that the network name is "ARPANET.ARPA."
  Suppose that the IP address is 128.9.2.17.
     1. Since this is a class B address, use a mask of x'FFFF0000'
        and get 128.9.0.0.
     2. Construct the name 0.0.9.128.IN-ADDR.ARPA.
     3. Do a PTR query.  Get back
        0.0.9.128.IN-ADDR.ARPA.       PTR     isi-net.isi.edu
     4. Conclude that the network name is "isi-net.isi.edu."

4.4. Procedure for finding all subnets involved with an IP address

  This is a simple extension of the IP address to network name method.
  When the network entry is located, do a lookup for a possible A RR.
  If the A RR is found, look up the next level of subnet using the
  original IP address and the mask in the A RR.  Repeat this procedure
  until no A RR is found.
  For example, repeating the use of 128.9.2.17.
     1. As before construct a query for 0.0.9.128.IN-ADDR.ARPA.
        Retrieve:
        0.0.9.128.IN-ADDR.ARPA.  PTR    isi-net.isi.edu.
                                 A      255.255.255.0
     2. Since an A RR was found, repeat using mask from RR
        (255.255.255.0), constructing a query for
        0.2.9.128.IN-ADDR.ARPA.  Retrieve:
        0.2.9.128.IN-ADDR.ARPA.  PTR    div2-subnet.isi.edu.
                                 A      255.255.255.240
     3. Since another A RR was found, repeat using mask
        255.255.255.240 (x'FFFFFFF0').  constructing a query for
        16.2.9.128.IN-ADDR.ARPA.  Retrieve:
        16.2.9.128.IN-ADDR.ARPA. PTR    inc-subsubnet.isi.edu.
     4. Since no A RR is present at 16.2.9.128.IN-ADDR.ARPA., there
        are no more subnet levels.


Mockapetris [Page 8]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


5. YP ISSUES AND DISCUSSION

  The term "Yellow Pages" is used in almost as many ways as the term
  "domain", so it is useful to define what is meant herein by YP.  The
  general problem to be solved is to create a method for creating
  mappings from one kind of identifier to another, often with an
  inverse capability.  The traditional methods are to search or use a
  precomputed index of some kind.
  Searching is impractical when the search is too large, and
  precomputed indexes are possible only when it is possible to specify
  search criteria in advance, and pay for the resources necessary to
  build the index.  For example, it is impractical to search the entire
  domain tree to find a particular address RR, so we build the IN-
  ADDR.ARPA YP.  Similarly, we could never build an Internet-wide index
  of "hosts with a load average of less than 2" in less time than it
  would take for the data to change, so indexes are a useless approach
  for that problem.
  Such a precomputed index is what we mean by YP, and we regard the
  IN-ADDR.ARPA domain as the first instance of a YP in the DNS.
  Although a single, centrally-managed YP for well-known values such as
  TCP-port is desirable, we regard organization-specific YPs for, say,
  locally defined TCP ports as a natural extension, as are combinations
  of YPs using search lists to merge the two.
  In examining Internet Numbers [RFC 997] and Assigned Numbers [RFC
  1010], it is clear that there are several mappings which might be of
  value.  For example:
  <assigned-network-name> <==> <IP-address>
  <autonomous-system-id>  <==> <number>
  <protocol-id>           <==> <number>
  <port-id>               <==> <number>
  <ethernet-type>         <==> <number>
  <public-data-net>       <==> <IP-address>
  Following the IN-ADDR example, the YP takes the form of a domain tree
  organized to optimize retrieval by search key and distribution via
  normal DNS rules.  The name used as a key must include:
     1. A well known origin.  For example, IN-ADDR.ARPA is the
        current IP-address to host name YP.
     2. A "from" data type.  This identifies the input type of the
        mapping.  This is necessary because we may be mapping
        something as anonymous as a number to any number of
        mnemonics, etc.


Mockapetris [Page 9]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


     3. A "to" data type.  Since we assume several symmetrical
        mnemonic <==> number mappings, this is also necessary.
  This ordering reflects the natural scoping of control, and hence the
  order of the components in a domain name.  Thus domain names would be
  of the form:
  <from-value>.<to-data-type>.<from-data-type>.<YP-origin>
  To make this work, we need to define well-know strings for each of
  these metavariables, as well as encoding rules for converting a
  <from-value> into a domain name.  We might define:
  <YP-origin>     :=YP
  <from-data-type>:=TCP-port | IN-ADDR | Number |
                    Assigned-network-number | Name
  <to-data-type>  :=<from-data-type>
  Note that "YP" is NOT a valid country code under [ISO 3166] (although
  we may want to worry about the future), and the existence of a
  syntactically valid <to-data-type>.<from-data-type> pair does not
  imply that a meaningful mapping exists, or is even possible.
  The encoding rules might be:
  TCP-port        Six character alphanumeric
  IN-ADDR         Reversed 4-octet decimal string
  Number          decimal integer
  Assigned-network-number
                  Reversed 4-octet decimal string
  Name            Domain name

6. SPECIFICS FOR YP MAPPINGS

6.1. TCP-PORT

  $origin Number.TCP-port.YP.
  23              PTR     TELNET.TCP-port.Number.YP.
  25              PTR     SMTP.TCP-port.Number.YP.
  $origin TCP-port.Number.YP.
  TELNET          PTR     23.Number.TCP-port.YP.


Mockapetris [Page 10]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


  SMTP            PTR     25.Number.TCP-port.YP.
  Thus the mapping between 23 and TELNET is represented by a pair of
  PTR RRs, one for each direction of the mapping.

6.2. Assigned networks

  Network numbers are assigned by the NIC and reported in "Internet
  Numbers" RFCs.  To create a YP, the NIC would set up two domains:
  Name.Assigned-network-number.YP and Assigned-network-number.YP
  The first would contain entries of the form:
  $origin Name.Assigned-network-number.YP.
  0.0.0.4         PTR     SATNET.Assigned-network-number.Name.YP.
  0.0.0.10        PTR     ARPANET.Assigned-network-number.Name.YP.
  The second would contain entries of the form:
  $origin Assigned-network-number.Name.YP.
  SATNET.         PTR     0.0.0.4.Name.Assigned-network-number.YP.
  ARPANET.        PTR     0.0.0.10.Name.Assigned-network-number.YP.
  These YPs are not in conflict with the network name support described
  in the first half of this RFC since they map between ASSIGNED network
  names and numbers, not those allocated by the organizations
  themselves.  That is, they document the NIC's decisions about
  allocating network numbers but do not automatically track any
  renaming performed by the new owners.
  As a practical matter, we might want to create both of these domains
  to enable users on the Internet to experiment with centrally
  maintained support as well as the distributed version, or might want
  to implement only the allocated number to name mapping and request
  organizations to convert their allocated network names to the network
  names described in the distributed model.

6.3. Operational improvements

  We could imagine that all conversion routines using these YPs might
  be instructed to use "YP.<local-domain>" followed by "YP."  as a
  search list.  Thus, if the organization ISI.EDU wished to define
  locally meaningful TCP-PORT, it would define the domains:
  <TCP-port.Number.YP.ISI.EDU> and <Number.TCP-port.YP.ISI.EDU>.


Mockapetris [Page 11]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


  We could add another level of indirection in the YP lookup, defining
  the <to-data-type>.<from-data-type>.<YP-origin> nodes to point to the
  YP tree, rather than being the YP tree directly.  This would enable
  entries of the form:
  IN-ADDR.Netname.YP.   PTR     IN-ADDR.ARPA.
  to splice in YPs from other origins or existing spaces.
  Another possibility would be to shorten the RDATA section of the RRs
  which map back and forth by deleting the origin.  This could be done
  either by allowing the domain name in the RDATA portion to not
  identify a real domain name, or by defining a new RR which used a
  simple text string rather than a domain name.
  Thus, we might replace
  $origin Assigned-network-number.Name.YP.
  SATNET.         PTR     0.0.0.4.Name.Assigned-network-number.YP.
  ARPANET.        PTR     0.0.0.10.Name.Assigned-network-number.YP.
  with
  $origin Assigned-network-number.Name.YP.
  SATNET.         PTR     0.0.0.4.
  ARPANET.        PTR     0.0.0.10.
  or
  $origin Assigned-network-number.Name.YP.
  SATNET.         PTT     "0.0.0.4"
  ARPANET.        PTT     "0.0.0.10"
  where PTT is a new type whose RDATA section is a text string.

7. ACKNOWLEDGMENTS

  Drew Perkins, Mark Lottor, and Rob Austein contributed several of the
  ideas in this RFC.  Numerous contributions, criticisms, and
  compromises were produced in the IETF Domain working group and the
  NAMEDROPPERS mailing list.




Mockapetris [Page 12]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


8. REFERENCES

  [HR]        Braden, B., editor, "Requirements for Internet Hosts",
              RFC in preparation.
  [ISO 3166]  ISO, "Codes for the Representation of Names of
              Countries", 1981.
  [RFC 882]   Mockapetris, P., "Domain names - Concepts and
              Facilities", RFC 882, USC/Information Sciences Institute,
              November 1983.
              Superseded by RFC 1034.
  [RFC 883]   Mockapetris, P.,"Domain names - Implementation and
              Specification", RFC 883, USC/Information Sciences
              Institute, November 1983.
              Superceeded by RFC 1035.
  [RFC 920]   Postel, J. and J. Reynolds, "Domain Requirements", RFC
              920, October 1984.
              Explains the naming scheme for top level domains.
  [RFC 952]   Harrenstien, K., M. Stahl, and E. Feinler, "DoD Internet
              Host Table Specification", RFC 952, SRI, October 1985.
              Specifies the format of HOSTS.TXT, the host/address table
              replaced by the DNS
  [RFC 973]   Mockapetris, P., "Domain System Changes and
              Observations", RFC 973, USC/Information Sciences
              Institute, January 1986.
              Describes changes to RFCs 882 and 883 and reasons for
              them.
  [RFC 974]   Partridge, C., "Mail routing and the domain system", RFC
              974, CSNET CIC BBN Labs, January 1986.
              Describes the transition from HOSTS.TXT based mail
              addressing to the more powerful MX system used with the
              domain system.




Mockapetris [Page 13]

RFC 1101 DNS Encoding of Network Names and Other Types April 1989


  [RFC 997]   Reynolds, J., and J. Postel, "Internet Numbers", RFC 997,
              USC/Information Sciences Institute, March 1987
              Contains network numbers, autonomous system numbers, etc.
  [RFC 1010]  Reynolds, J., and J. Postel, "Assigned Numbers", RFC
              1010, USC/Information Sciences Institute, May 1987
              Contains socket numbers and mnemonics for host names,
              operating systems, etc.


  [RFC 1034]  Mockapetris, P., "Domain names - Concepts and
              Facilities", RFC 1034, USC/Information Sciences
              Institute, November 1987.
              Introduction/overview of the DNS.
  [RFC 1035]  Mockapetris, P., "Domain names - Implementation and
              Specification", RFC 1035, USC/Information Sciences
              Institute, November 1987.
              DNS implementation instructions.

Author's Address:

  Paul Mockapetris
  USC/Information Sciences Institute
  4676 Admiralty Way
  Marina del Rey, CA 90292
  Phone: (213) 822-1511
  Email: [email protected]









Mockapetris [Page 14]