Network Working Group                                          R. Braden
Request for Comments: 1009                                     J. Postel
Obsoletes: 985                                                       ISI
                                                              June 1987

                  Requirements for Internet Gateways


Status of this Memo

  This document is a formal statement of the requirements to be met by
  gateways used in the Internet system.  As such, it is an official
  specification for the Internet community.  Distribution of this memo
  is unlimited.

  This RFC summarizes the requirements for gateways to be used between
  networks supporting the Internet protocols.  While it was written
  specifically to support National Science Foundation research
  programs, the requirements are stated in a general context and are
  applicable throughout the Internet community.

  The purpose of this document is to present guidance for vendors
  offering gateway products that might be used or adapted for use in an
  Internet application.  It enumerates the protocols required and gives
  references to RFCs and other documents describing the current
  specifications.  In a number of cases the specifications are evolving
  and may contain ambiguous or incomplete information.  In these cases
  further discussion giving specific guidance is included in this
  document.  Specific policy issues relevant to the NSF scientific
  networking community are summarized in an Appendix.  As other
  specifications are updated this document will be revised.  Vendors
  are encouraged to maintain contact with the Internet research
  community.

1.  Introduction

  The following material is intended as an introduction and background
  for those unfamiliar with the Internet architecture and the Internet
  gateway model.  General background and discussion on the Internet
  architecture and supporting protocol suite can be found in the DDN
  Protocol Handbook [25] and ARPANET Information Brochure [26], see
  also [19, 28, 30, 31].

  The Internet protocol architecture was originally developed under
  DARPA sponsorship to meet both military and civilian communication
  requirements [32].  The Internet system presently supports a variety
  of government and government-sponsored operational and research
  activities.  In particular, the National Science Foundation (NSF) is
  building a major extension to the Internet to provide user access to




Braden & Postel                                                 [Page 1]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  national supercomputer centers and other national scientific
  resources, and to provide a computer networking capability to a large
  number of universities and colleges.

  In this document there are many terms that may be obscure to one
  unfamiliar with the Internet protocols.  There is not much to be done
  about that but to learn, so dive in.  There are a few terms that are
  much abused in general discussion but are carefully and intentionally
  used in this document.  These few terms are defined here.

     Packet      A packet is the unit of transmission on a physical
                 network.

     Datagram    A datagram is the unit of transmission in the IP
                 protocol.  To cross a particular network a datagram is
                 encapsulated inside a packet.

     Router      A router is a switch that receives data transmission
                 units from input interfaces and, depending on the
                 addresses in those units, routes them to the
                 appropriate output interfaces.  There can be routers
                 at different levels of protocol.  For example,
                 Interface Message Processors (IMPs) are packet-level
                 routers.

     Gateway     In the Internet documentation generally, and in this
                 document specifically, a gateway is an IP-level
                 router.  In the Internet community the term has a long
                 history of this usage [32].

  1.1.  The DARPA Internet Architecture

     1.1.1.  Internet Protocols

        The Internet system consists of a number of interconnected
        packet networks supporting communication among host computers
        using the Internet protocols.  These protocols include the
        Internet Protocol (IP), the Internet Control Message Protocol
        (ICMP), the Transmission Control Protocol (TCP), and
        application protocols depending upon them [22].

        All Internet protocols use IP as the basic data transport
        mechanism.  IP [1,31] is a datagram, or connectionless,
        internetwork service and includes provision for addressing,
        type-of-service specification, fragmentation and reassembly,
        and security information.  ICMP [2] is considered an integral




Braden & Postel                                                 [Page 2]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        part of IP, although it is architecturally layered upon IP.
        ICMP provides error reporting, flow control and first-hop
        gateway redirection.

        Reliable data delivery is provided in the Internet protocol
        suite by transport-level protocols such as the Transmission
        Control Protocol (TCP), which provides end-end retransmission,
        resequencing and connection control.  Transport-level
        connectionless service is provided by the User Datagram
        Protocol (UDP).

     1.1.2.  Networks and Gateways

        The constituent networks of the Internet system are required
        only to provide packet (connectionless) transport.  This
        requires only delivery of individual packets.  According to the
        IP service specification, datagrams can be delivered out of
        order, be lost or duplicated and/or contain errors.  Reasonable
        performance of the protocols that use IP (e.g., TCP) requires
        an IP datagram loss rate of less than 5%.  In those networks
        providing connection-oriented service, the extra reliability
        provided by virtual circuits enhances the end-end robustness of
        the system, but is not necessary for Internet operation.

        Constituent networks may generally be divided into two classes:

        *  Local-Area Networks (LANs)

           LANs may have a variety of designs, typically based upon
           buss, ring, or star topologies.  In general, a LAN will
           cover a small geographical area (e.g., a single building or
           plant site) and provide high bandwidth with low delays.

        *  Wide-Area Networks (WANs)

           Geographically-dispersed hosts and LANs are interconnected
           by wide-area networks, also called long-haul networks.
           These networks may have a complex internal structure of
           lines and packet-routers (typified by ARPANET), or they may
           be as simple as point-to-point lines.

        In the Internet model, constituent networks are connected
        together by IP datagram forwarders which are called "gateways"
        or "IP routers".  In this document, every use of the term
        "gateway" is equivalent to "IP router".  In current practice,
        gateways are normally realized with packet-switching software




Braden & Postel                                                 [Page 3]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        executing on a general-purpose CPU, but special-purpose
        hardware may also be used (and may be required for future
        higher-throughput gateways).

        A gateway is connected to two or more networks, appearing to
        each of these networks as a connected host.  Thus, it has a
        physical interface and an IP address on each of the connected
        networks.  Forwarding an IP datagram generally requires the
        gateway to choose the address of the next-hop gateway or (for
        the final hop) the destination host.  This choice, called
        "routing", depends upon a routing data-base within the gateway.
        This routing data-base should be maintained dynamically to
        reflect the current topology of the Internet system; a gateway
        normally accomplishes this by participating in distributed
        routing and reachability algorithms with other gateways.
        Gateways provide datagram transport only, and they seek to
        minimize the state information necessary to sustain this
        service in the interest of routing flexibility and robustness.

        Routing devices may also operate at the network level; in this
        memo we will call such devices MAC routers (informally called
        "level-2 routers", and also called "bridges").  The name
        derives from the fact that MAC routers base their routing
        decision on the addresses in the MAC headers; e.g., in IEEE
        802.3 networks, a MAC router bases its decision on the 48-bit
        addresses in the MAC header.  Network segments which are
        connected by MAC routers share the same IP network number,
        i.e., they logically form a single IP network.

        Another variation on the simple model of networks connected
        with gateways sometimes occurs: a set of gateways may be
        interconnected with only serial lines, to effectively form a
        network in which the routing is performed at the internetwork
        (IP) level rather than the network level.

     1.1.3.  Autonomous Systems

        For technical, managerial, and sometimes political reasons, the
        gateways of the Internet system are grouped into collections
        called "autonomous systems" [35].  The gateways included in a
        single autonomous system (AS) are expected to:

           *  Be under the control of a single operations and
              maintenance (O&M) organization;

           *  Employ common routing protocols among themselves, to
              maintain their routing data-bases dynamically.



Braden & Postel                                                 [Page 4]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        A number of different dynamic routing protocols have been
        developed (see Section 4.1); the particular choice of routing
        protocol within a single AS is generically called an interior
        gateway protocol or IGP.

        An IP datagram may have to traverse the gateways of two or more
        ASs to reach its destination, and the ASs must provide each
        other with topology information to allow such forwarding.  The
        Exterior Gateway Protocol (EGP) is used for this purpose,
        between gateways of different autonomous systems.

     1.1.4.  Addresses and Subnets

        An IP datagram carries 32-bit source and destination addresses,
        each of which is partitioned into two parts -- a constituent
        network number and a host number on that network.
        Symbolically:

           IP-address ::=  { <Network-number>,  <Host-number> }

        To finally deliver the datagram, the last gateway in its path
        must map the host-number (or "rest") part of an IP address into
        the physical address of a host connection to the constituent
        network.

        This simple notion has been extended by the concept of
        "subnets", which were introduced in order to allow arbitrary
        complexity of interconnected LAN structures within an
        organization, while insulating the Internet system against
        explosive growth in network numbers and routing complexity.
        Subnets essentially provide a two-level hierarchical routing
        structure for the Internet system.  The subnet extension,
        described in RFC-950 [21], is now a required part of the
        Internet architecture.  The basic idea is to partition the
        <host number> field into two parts: a subnet number, and a true
        host number on that subnet.

           IP-address ::=
                   { <Network-number>, <Subnet-number>, <Host-number> }

        The interconnected LANs of an organization will be given the
        same network number but different subnet numbers.  The
        distinction between the subnets of such a subnetted network
        must not be visible outside that network.  Thus, wide-area
        routing in the rest of the Internet will be based only upon the
        <Network-number> part of the IP destination address; gateways
        outside the network will lump <Subnet-number> and <Host-number>



Braden & Postel                                                 [Page 5]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        together to form an uninterpreted "rest" part of the 32-bit IP
        address.  Within the subnetted network, the local gateways must
        route on the basis of an extended network number:

           { <Network-number>, <Subnet-number> }.

        The bit positions containing this extended network number are
        indicated by a 32-bit mask called the "subnet mask" [21]; it is
        recommended but not required that the <Subnet-number> bits be
        contiguous and fall between the <Network-number> and the
        <Host-number> fields.  No subnet should be assigned the value
        zero or -1 (all one bits).

        Flexible use of the available address space will be
        increasingly important in coping with the anticipated growth of
        the Internet.  Thus, we allow a particular subnetted network to
        use more than one subnet mask.  Several campuses with very
        large LAN configurations are also creating nested hierarchies
        of subnets, sub-subnets, etc.

        There are special considerations for the gateway when a
        connected network provides a broadcast or multicast capability;
        these will be discussed later.

  1.2.  The Internet Gateway Model

     There are two basic models for interconnecting local-area networks
     and wide-area (or long-haul) networks in the Internet.  In the
     first, the local-area network is assigned a network number and all
     gateways in the Internet must know how to route to that network.
     In the second, the local-area network shares (a small part of) the
     address space of the wide-area network.  Gateways that support
     this second model are called "address sharing gateways" or
     "transparent gateways".  The focus of this memo is on gateways
     that support the first model, but this is not intended to exclude
     the use of transparent gateways.

     1.2.1.  Internet Gateways

        An Internet gateway is an IP-level router that performs the
        following functions:

           1.  Conforms to specific Internet protocols specified in
               this document, including the Internet Protocol (IP),
               Internet Control Message Protocol (ICMP), and others as
               necessary.  See Section 2 (Protocols Required).

           2.  Interfaces to two or more packet networks.  For each


Braden & Postel                                                 [Page 6]



RFC 1009 - Requirements for Internet Gateways                  June 1987


               connected network the gateway must implement the
               functions required by that network.  These functions
               typically include:

              a.  encapsulating and decapsulating the IP datagrams with
                  the connected network framing (e.g., an Ethernet
                  header and checksum);

              b.  sending and receiving IP datagrams up to the maximum
                  size supported by that network, this size is the
                  network's "Maximum Transmission Unit" or "MTU";

              c.  translating the IP destination address into an
                  appropriate network-level address for the connected
                  network (e.g., an Ethernet hardware address);

              d.  responding to the network flow control and error
                  indication, if any.

              See Section 3 (Constituent Network Interface), for
              details on particular constituent network interfaces.

           3.  Receives and forwards Internet datagrams.  Important
               issues are buffer management, congestion control, and
               fairness.  See Section 4 (Gateway Algorithms).

              a.  Recognizes various error conditions and generates
                  ICMP error and information messages as required.

              b.  Drops datagrams whose time-to-live fields have
                  reached zero.

              c.  Fragments datagrams when necessary to fit into the
                  MTU of the next network.

           4.  Chooses a next-hop destination for each IP datagram,
               based on the information in its routing data-base.  See
               Section 4 (Gateway Algorithms).

           5.  Supports an interior gateway protocol (IGP) to carry out
               distributed routing and reachability algorithms with the
               other gateways in the same autonomous system.  In
               addition, some gateways will need to support the
               Exterior Gateway Protocol (EGP) to exchange topological
               information with other autonomous systems.  See
               Section 4 (Gateway Algorithms).




Braden & Postel                                                 [Page 7]



RFC 1009 - Requirements for Internet Gateways                  June 1987


           6.  Provides system support facilities, including loading,
               debugging, status reporting, exception reporting and
               control.  See Section 5 (Operation and Maintenance).

     1.2.2.  Embedded Gateways

        A gateway may be a stand-alone computer system, dedicated to
        its IP router functions.  Alternatively, it is possible to
        embed gateway functionality within a host operating system
        which supports connections to two or more networks.  The
        best-known example of an operating system with embedded gateway
        code is the Berkeley BSD system.  The embedded gateway feature
        seems to make internetting easy, but it has a number of hidden
        pitfalls:

           1.  If a host has only a single constituent-network
               interface, it should not act as a gateway.

               For example, hosts with embedded gateway code that
               gratuitously forward broadcast packets or datagrams on
               the same net often cause packet avalanches.

           2.  If a (multihomed) host acts as a gateway, it must
               implement ALL the relevant gateway requirements
               contained in this document.

               For example, the routing protocol issues (see Sections
               2.6 and 4.1) and the control and monitoring problems are
               as hard and important for embedded gateways as for
               stand-alone gateways.

                  Since Internet gateway requirements and
                  specifications may change independently of operating
                  system changes, an administration that operates an
                  embedded gateway in the Internet is strongly advised
                  to have an ability to maintain and update the gateway
                  code (e.g., this might require gateway code source).

           3.  Once a host runs embedded gateway code, it becomes part
               of the Internet system.  Thus, errors in software or
               configuration of such a host can hinder communication
               between other hosts.  As a consequence, the host
               administrator must lose some autonomy.

               In many circumstances, a host administrator will need to
               disable gateway coded embedded in the operating system,
               and any embedded gateway code must be organized so it
               can be easily disabled.


Braden & Postel                                                 [Page 8]



RFC 1009 - Requirements for Internet Gateways                  June 1987


           4.  If a host running embedded gateway code is concurrently
               used for other services, the O&M (operation and
               maintenance) requirements for the two modes of use may
               be in serious conflict.

               For example, gateway O&M will in many cases be performed
               remotely by an operations center; this may require
               privileged system access which the host administrator
               would not normally want to distribute.

     1.2.3.  Transparent Gateways

        The basic idea of a transparent gateway is that the hosts on
        the local-area network behind such a gateway share the address
        space of the wide-area network in front of the gateway.  In
        certain situations this is a very useful approach and the
        limitations do not present significant drawbacks.

        The words "in front" and "behind" indicate one of the
        limitations of this approach: this model of interconnection is
        suitable only for a geographically (and topologically) limited
        stub environment.  It requires that there be some form of
        logical addressing in the network level addressing of the
        wide-area network (that is, all the IP addresses in the local
        environment map to a few (usually one) physical address in the
        wide-area network, in a way consistent with the { IP address
        <-> network address } mapping used throughout the wide-area
        network).

        Multihoming is possible on one wide-area network, but may
        present routing problems if the interfaces are geographically
        or topologically separated.  Multihoming on two (or more)
        wide-area networks is a problem due to the confusion of
        addresses.

        The behavior that hosts see from other hosts in what is
        apparently the same network may differ if the transparent
        gateway cannot fully emulate the normal wide-area network
        service.  For example, if there were a transparent gateway
        between the ARPANET and an Ethernet, a remote host would not
        receive a Destination Dead message [3] if it sent a datagram to
        an Ethernet host that was powered off.








Braden & Postel                                                 [Page 9]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  1.3.  Gateway Characteristics

     Every Internet gateway must perform the functions listed above.
     However, a vendor will have many choices on power, complexity, and
     features for a particular gateway product.  It may be helpful to
     observe that the Internet system is neither homogeneous nor
     fully-connected.  For reasons of technology and geography, it is
     growing into a global-interconnect system plus a "fringe" of LANs
     around the "edge".

        *  The global-interconnect system is comprised of a number of
           wide-area networks to which are attached gateways of several
           ASs; there are relatively few hosts connected directly to
           it.  The global-interconnect system includes the ARPANET,
           the NSFNET "backbone", the various NSF regional and
           consortium networks, other ARPA sponsored networks such as
           the SATNET and the WBNET, and the DCA sponsored MILNET.  It
           is anticipated that additional networks sponsored by these
           and other agencies (such as NASA and DOE) will join the
           global-interconnect system.

        *  Most hosts are connected to LANs, and many organizations
           have clusters of LANs interconnected by local gateways.
           Each such cluster is connected by gateways at one or more
           points into the global-interconnect system.  If it is
           connected at only one point, a LAN is known as a "stub"
           network.

     Gateways in the global-interconnect system generally require:

        *  Advanced routing and forwarding algorithms

           These gateways need routing algorithms which are highly
           dynamic and also offer type-of-service routing.  Congestion
           is still not a completely resolved issue [24].  Improvements
           to the current situation will be implemented soon, as the
           research community is actively working on these issues.

        *  High availability

           These gateways need to be highly reliable, providing 24 hour
           a day, 7 days a week service.  In case of failure, they must
           recover quickly.

        *  Advanced O&M features

           These gateways will typically be operated remotely from a
           regional or national monitoring center.  In their


Braden & Postel                                                [Page 10]



RFC 1009 - Requirements for Internet Gateways                  June 1987


           interconnect role, they will need to provide sophisticated
           means for monitoring and measuring traffic and other events
           and for diagnosing faults.

        *  High performance

           Although long-haul lines in the Internet today are most
           frequently 56 Kbps, DS1 lines (1.5 Mbps) are of increasing
           importance, and even higher speeds are likely in the future.
           Full-duplex operation is provided at any of these speeds.

           The average size of Internet datagrams is rather small, of
           the order of 100 bytes.  At DS1 line speeds, the
           per-datagram processing capability of the gateways, rather
           than the line speed, is likely to be the bottleneck.  To
           fill a DS1 line with average-sized Internet datagrams, a
           gateway would need to pass -- receive, route, and send --
           2,000 datagrams per second per interface.  That is, a
           gateway which supported 3 DS1 lines and and Ethernet
           interface would need to be able to pass a dazzling 2,000
           datagrams per second in each direction on each of the
           interfaces, or a aggregate throughput of 8,000 datagrams per
           second, in order to fully utilize DS1 lines.  This is beyond
           the capability of current gateways.

              Note: some vendors count input and output operations
              separately in datagrams per second figures; for these
              vendors, the above example would imply 16,000 datagrams
              per second !

     Gateways used in the "LAN fringe" (e.g., campus networks) will
     generally have to meet less stringent requirements for
     performance, availability, and maintenance.  These may be high or
     medium-performance devices, probably competitively procured from
     several different vendors and operated by an internal organization
     (e.g., a campus computing center).  The design of these gateways
     should emphasize low average delay and good burst performance,
     together with delay and type-of-service sensitive resource
     management.  In this environment, there will be less formal O&M,
     more hand-crafted static configurations for special cases, and
     more need for inter-operation with gateways of other vendors.  The
     routing mechanism will need to be very flexible, but need not be
     so highly dynamic as in the global-interconnect system.

     It is important to realize that Internet gateways normally operate
     in an unattended mode, but that equipment and software faults can
     have a wide-spread (sometimes global) effect.  In any environment,



Braden & Postel                                                [Page 11]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     a gateway must be highly robust and able to operate, possibly in a
     degraded state, under conditions of extreme congestion or failure
     of network resources.

     Even though the Internet system is not fully-interconnected, many
     parts of the system do need to have redundant connectivity.  A
     rich connectivity allows reliable service despite failures of
     communication lines and gateways, and it can also improve service
     by shortening Internet paths and by providing additional capacity.
     The engineering tradeoff between cost and reliability must be made
     for each component of the Internet system.







































Braden & Postel                                                [Page 12]



RFC 1009 - Requirements for Internet Gateways                  June 1987


2.  Protocols Required in Gateways

  The Internet architecture uses datagram gateways to interconnect
  constituent networks.  This section describes the various protocols
  which a gateway needs to implement.

  2.1.  Internet Protocol (IP)

     IP is the basic datagram protocol used in the Internet system [19,
     31].  It is described in RFC-791 [1] and also in MIL-STD-1777 [5]
     as clarified by RFC-963 [36] ([1] and [5] are intended to describe
     the same standard, but in quite different words).  The subnet
     extension is described in RFC-950 [21].

     With respect to current gateway requirements the following IP
     features can be ignored, although they may be required in the
     future:  Type of Service field, Security option, and Stream ID
     option.  However, if recognized, the interpretation of these
     quantities must conform to the standard specification.

     It is important for gateways to implement both the Loose and
     Strict Source Route options.  The Record Route and Timestamp
     options are useful diagnostic tools and must be supported in all
     gateways.

     The Internet model requires that a gateway be able to fragment
     datagrams as necessary to match the MTU of the network to which
     they are being forwarded, but reassembly of fragmented datagrams
     is generally left to the destination hosts.  Therefore, a gateway
     will not perform reassembly on datagrams it forwards.

     However, a gateway will generally receive some IP datagrams
     addressed to itself; for example, these may be ICMP Request/Reply
     messages, routing update messages (see Sections 2.3 and 2.6), or
     for monitoring and control (see Section 5).  For these datagrams,
     the gateway will be functioning as a destination host, so it must
     implement IP reassembly in case the datagrams have been fragmented
     by some transit gateway.  The destination gateway must have a
     reassembly buffer which is at least as large as the maximum of the
     MTU values for its network interfaces and 576.  Note also that it
     is possible for a particular protocol implemented by a host or
     gateway to require a lower bound on reassembly buffer size which
     is larger than 576.  Finally, a datagram which is addressed to a
     gateway may use any of that gateway's IP addresses as destination
     address, regardless of which interface the datagram enters.

     There are five classes of IP addresses:  Class A through
     Class E [23].  Of these, Class D and Class E addresses are


Braden & Postel                                                [Page 13]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     reserved for experimental use.  A gateway which is not
     participating in these experiments must ignore all datagrams with
     a Class D or Class E destination IP address.  ICMP Destination
     Unreachable or ICMP Redirect messages must not result from
     receiving such datagrams.

     There are certain special cases for IP addresses, defined in the
     latest Assigned Numbers document [23].  These special cases can be
     concisely summarized using the earlier notation for an IP address:

        IP-address ::=  { <Network-number>, <Host-number> }

           or

        IP-address ::=  { <Network-number>, <Subnet-number>,
                                                        <Host-number> }

     if we also use the notation "-1" to mean the field contains all 1
     bits.  Some common special cases are as follows:

        (a)   {0, 0}

           This host on this network.  Can only be used as a source
           address (see note later).

        (b)   {0, <Host-number>}

           Specified host on this network.  Can only be used as a
           source address.

        (c)   { -1, -1}

           Limited broadcast.  Can only be used as a destination
           address, and a datagram with this address must never be
           forwarded outside the (sub-)net of the source.

        (d)   {<Network-number>, -1}

           Directed broadcast to specified network.  Can only be used
           as a destination address.

        (e)   {<Network-number>, <Subnet-number>, -1}

           Directed broadcast to specified subnet.  Can only be used as
           a destination address.

        (f)   {<Network-number>, -1, -1}



Braden & Postel                                                [Page 14]



RFC 1009 - Requirements for Internet Gateways                  June 1987


           Directed broadcast to all subnets of specified subnetted
           network.  Can only be used as a destination address.

        (g)   {127, <any>}

           Internal host loopback address.  Should never appear outside
           a host.

     The following two are conventional notation for network numbers,
     and do not really represent IP addresses.  They can never be used
     in an IP datagram header as an IP source or destination address.

        (h)   {<Network-number>, 0}

           Specified network (no host).

        (i)   {<Network-number>, <Subnet-number>, 0}

           Specified subnet (no host).

     Note also that the IP broadcast address, which has primary
     application to Ethernets and similar technologies that support an
     inherent broadcast function, has an all-ones value in the host
     field of the IP address.  Some early implementations chose the
     all-zeros value for this purpose, which is not in conformance with
     the specification [23, 49, 50].

  2.2.  Internet Control Message Protocol (ICMP)

     ICMP is an auxiliary protocol used to convey advice and error
     messages and is described in RFC-792 [2].

     We will discuss issues arising from gateway handling of particular
     ICMP messages.  The ICMP messages are grouped into two classes:
     error messages and information messages.  ICMP error messages are
     never sent about ICMP error messages, nor about broadcast or
     multicast datagrams.

        The ICMP error messages are: Destination Unreachable, Redirect,
        Source Quench, Time Exceeded, and Parameter Problem.

        The ICMP information messages are: Echo, Information,
        Timestamp, and Address Mask.







Braden & Postel                                                [Page 15]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     2.2.1.  Destination Unreachable

        The distinction between subnets of a subnetted network, which
        depends on the address mask described in RFC-950 [21], must not
        be visible outside that network.  This distinction is important
        in the case of the ICMP Destination Unreachable message.

        The ICMP Destination Unreachable message is sent by a gateway
        in response to a datagram which it cannot forward because the
        destination is unreachable or down.  The gateway chooses one of
        the following two types of Destination Unreachable messages to
        send:

           *  Net Unreachable

           *  Host Unreachable

        Net unreachable implies that an intermediate gateway was unable
        to forward a datagram, as its routing data-base gave no next
        hop for the datagram, or all paths were down.  Host Unreachable
        implies that the destination network was reachable, but that a
        gateway on that network was unable to reach the destination
        host.  This might occur if the particular destination network
        was able to determine that the desired host was unreachable or
        down.  It might also occur when the destination host was on a
        subnetted network and no path was available through the subnets
        of this network to the destination.  Gateways should send Host
        Unreachable messages whenever other hosts on the same
        destination network might be reachable; otherwise, the source
        host may erroneously conclude that ALL hosts on the network are
        unreachable, and that may not be the case.

     2.2.2.  Redirect

        The ICMP Redirect message is sent by a gateway to a host on the
        same network, in order to change the gateway used by the host
        for routing certain datagrams.  A choice of four types of
        Redirect messages is available to specify datagrams destined
        for a particular host or network, and possibly with a
        particular type-of-service.

        If the directly-connected network is not subnetted, a gateway
        can normally send a network Redirect which applies to all hosts
        on a specified remote network.  Using a network rather than a
        host Redirect may economize slightly on network traffic and on
        host routing table storage.  However, the saving is not
        significant, and subnets create an ambiguity about the subnet



Braden & Postel                                                [Page 16]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        mask to be used to interpret a network Redirect.  In a general
        subnet environment, it is difficult to specify precisely the
        cases in which network Redirects can be used.

        Therefore, it is recommended that a gateway send only host (or
        host and type-of-service) Redirects.

     2.2.3.  Source Quench

        All gateways must contain code for sending ICMP Source Quench
        messages when they are forced to drop IP datagrams due to
        congestion.  Although the Source Quench mechanism is known to
        be an imperfect means for Internet congestion control, and
        research towards more effective means is in progress, Source
        Quench is considered to be too valuable to omit from production
        gateways.

        There is some argument that the Source Quench should be sent
        before the gateway is forced to drop datagrams [62].  For
        example, a parameter X could be established and set to have
        Source Quench sent when only X buffers remain.  Or, a parameter
        Y could be established and set to have Source Quench sent when
        only Y per cent of the buffers remain.

        Two problems for a gateway sending Source Quench are: (1) the
        consumption of bandwidth on the reverse path, and (2) the use
        of gateway CPU time.  To ameliorate these problems, a gateway
        must be prepared to limit the frequency with which it sends
        Source Quench messages.  This may be on the basis of a count
        (e.g., only send a Source Quench for every N dropped datagrams
        overall or per given source host), or on the basis of a time
        (e.g., send a Source Quench to a given source host or overall
        at most once per T millseconds).  The parameters (e.g., N or T)
        must be settable as part of the configuration of the gateway;
        furthermore, there should be some configuration setting which
        disables sending Source Quenches.  These configuration
        parameters, including disabling, should ideally be specifiable
        separately for each network interface.

        Note that a gateway itself may receive a Source Quench as the
        result of sending a datagram targeted to another gateway.  Such
        datagrams might be an EGP update, for example.

     2.2.4.  Time Exceeded

        The ICMP Time Exceeded message may be sent when a gateway
        discards a datagram due to the TTL being reduced to zero.  It



Braden & Postel                                                [Page 17]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        may also be sent by a gateway if the fragments of a datagram
        addressed to the gateway itself cannot be reassembled before
        the time limit.

     2.2.5.  Parameter Problem

        The ICMP Parameter Problem message may be sent to the source
        host for any problem not specifically covered by another ICMP
        message.

     2.2.6.  Address Mask

        Host and gateway implementations are expected to support the
        ICMP Address Mask messages described in RFC-950 [21].

     2.2.7.  Timestamp

        The ICMP Timestamp message has proven to be useful for
        diagnosing Internet problems.  The preferred form for a
        timestamp value, the "standard value", is in milliseconds since
        midnight GMT.  However, it may be difficult to provide this
        value with millisecond resolution.  For example, many systems
        use clocks which update only at line frequency, 50 or 60 times
        per second.  Therefore, some latitude is allowed in a
        "standard" value:

           *  The value must be updated at a frequency of at least 30
              times per second (i.e., at most five low-order bits of
              the value may be undefined).

           *  The origin of the value must be within a few minutes of
              midnight, i.e., the accuracy with which operators
              customarily set CPU clocks.

        To meet the second condition for a stand-alone gateway, it will
        be necessary to query some time server host when the gateway is
        booted or restarted.  It is recommended that the UDP Time
        Server Protocol [44] be used for this purpose.  A more advanced
        implementation would use NTP (Network Time Protocol) [45] to
        achieve nearly millisecond clock synchronization; however, this
        is not required.

        Even if a gateway is unable to establish its time origin, it
        ought to provide a "non-standard" timestamp value (i.e., with
        the non-standard bit set), as a time in milliseconds from
        system startup.




Braden & Postel                                                [Page 18]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        New gateways, especially those expecting to operate at T1 or
        higher speeds, are expected to have at least millisecond
        clocks.

     2.2.8.  Information Request/Reply

        The Information Request/Reply pair was intended to support
        self-configuring systems such as diskless workstations, to
        allow them to discover their IP network numbers at boot time.
        However, the Reverse ARP (RARP) protocol [15] provides a better
        mechanism for a host to use to discover its own IP address, and
        RARP is recommended for this purpose.  Information
        Request/Reply need not be implemented in a gateway.

     2.2.9.  Echo Request/Reply

        A gateway must implement ICMP Echo, since it has proven to be
        an extremely useful diagnostic tool.  A gateway must be
        prepared to receive, reassemble, and echo an ICMP Echo Request
        datagram at least as large as the maximum of 576 and the MTU's
        of all of the connected networks.  See the discussion of IP
        reassembly in gateways, Section 2.1.

        The following rules resolve the question of the use of IP
        source routes in Echo Request and Reply datagrams.  Suppose a
        gateway D receives an ICMP Echo Request addressed to itself
        from host S.

           1.  If the Echo Request contained no source route, D should
               send an Echo Reply back to S using its normal routing
               rules.  As a result, the Echo Reply may take a different
               path than the Request; however, in any case, the pair
               will sample the complete round-trip path which any other
               higher-level protocol (e.g., TCP) would use for its data
               and ACK segments between S and D.

           2.  If the Echo Request did contain a source route, D should
               send an Echo Reply back to S using as a source route the
               return route built up in the source-routing option of
               the Echo Request.










Braden & Postel                                                [Page 19]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  2.3.  Exterior Gateway Protocol (EGP)

     EGP is the protocol used to exchange reachability information
     between Autonomous Systems of gateways, and is defined in
     RFC-904 [11].  See also RFC-827 [51], RFC-888 [46], and
     RFC-975 [27] for background information.  The most widely used EGP
     implementation is described in RFC-911 [13].

     When a dynamic routing algorithm is operated in the gateways of an
     Autonomous System (AS), the routing data-base must be coupled to
     the EGP implementation.  This coupling should ensure that, when a
     net is determined to be unreachable by the routing algorithm, the
     net will not be declared reachable to other ASs via EGP.  This
     requirement is designed to minimize spurious traffic to "black
     holes" and to ensure fair utilization of the resources on other
     systems.

     The present EGP specification defines a model with serious
     limitations, most importantly a restriction against propagating
     "third party" EGP information in order to prevent long-lived
     routing loops [27].  This effectively limits EGP to a two-level
     hierarchy; the top level is formed by the "core" AS, while the
     lower level is composed of those ASs which are direct neighbor
     gateways to the core AS.  In practice, in the current Internet,
     nearly all of the "core gateways" are connected to the ARPANET,
     while the lower level is composed of those ASs which are directly
     gatewayed to the ARPANET or MILNET.

     RFC-975 [27] suggested one way to generalize EGP to lessen these
     topology restrictions;  it has not been adopted as an official
     specification, although its ideas are finding their way into the
     new EGP developments.  There are efforts underway in the research
     community to develop an EGP generalization which will remove these
     restrictions.

     In EGP, there is no standard interpretation (i.e., metric) for the
     distance fields in the update messages, so distances are
     comparable only among gateways of the same AS.  In using EGP data,
     a gateway should compare the distances among gateways of the same
     AS and prefer a route to that gateway which has the smallest
     distance value.

     The values to be announced in the distance fields for particular
     networks within the local AS should be a gateway configuration
     parameter; by suitable choice of these values, it will be possible
     to arrange primary and backup paths from other AS's.  There are
     other EGP parameters, such as polling intervals, which also need
     to be set in the gateway configuration.


Braden & Postel                                                [Page 20]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     When routing updates become large they must be transmitted in
     parts.  One strategy is to use IP fragmentation, another is to
     explicitly send the routing information in sections.  The Internet
     Engineering Task Force is currently preparing a recommendation on
     this and other EGP engineering issues.

  2.4.  Address Resolution Protocol (ARP)

     ARP is an auxiliary protocol used to perform dynamic address
     translation between LAN hardware addresses and Internet addresses,
     and is described in RFC-826 [4].

     ARP depends upon local network broadcast.  In normal ARP usage,
     the initiating host broadcasts an ARP Request carrying a target IP
     address; the corresponding target host, recognizing its own IP
     address, sends back an ARP Reply containing its own hardware
     interface address.

     A variation on this procedure, called "proxy ARP", has been used
     by gateways attached to broadcast LANs [14].  The gateway sends an
     ARP Reply specifying its interface address in response to an ARP
     Request for a target IP address which is not on the
     directly-connected network but for which the gateway offers an
     appropriate route.  By observing ARP and proxy ARP traffic, a
     gateway may accumulate a routing data-base [14].

     Proxy ARP (also known in some quarters as "promiscuous ARP" or
     "the ARP hack") is useful for routing datagrams from hosts which
     do not implement the standard Internet routing rules fully -- for
     example, host implementations which predate the introduction of
     subnetting.  Proxy ARP for subnetting is discussed in detail in
     RFC-925 [14].

     Reverse ARP (RARP) allows a host to map an Ethernet interface
     address into an IP address [15].  RARP is intended to allow a
     self-configuring host to learn its own IP address from a server at
     boot time.

  2.5.  Constituent Network Access Protocols

     See Section 3.









Braden & Postel                                                [Page 21]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  2.6.  Interior Gateway Protocols

     Distributed routing algorithms continue to be the subject of
     research and engineering, and it is likely that advances will be
     made over the next several years.  A good algorithm needs to
     respond rapidly to real changes in Internet connectivity, yet be
     stable and insensitive to transients.  It needs to synchronize the
     distributed data-base across gateways of its Autonomous System
     rapidly (to avoid routing loops), while consuming only a small
     fraction of the available bandwidth.

     Distributed routing algorithms are commonly broken down into the
     following three components:

        A.  An algorithm to assign a "length" to each Internet path.

           The "length" may be a simple count of hops (1, or infinity
           if the path is broken), or an administratively-assigned
           cost, or some dynamically-measured cost (usually an average
           delay).

           In order to determine a path length, each gateway must at
           least test whether each of its neighbors is reachable; for
           this purpose, there must be a "reachability" or "neighbor
           up/down" protocol.

        B.  An algorithm to compute the shortest path(s) to a given
            destination.

        C.  A gateway-gateway protocol used to exchange path length and
            routing information among gateways.

     The most commonly-used IGPs in Internet gateways are as follows.

     2.6.1.  Gateway-to-Gateway Protocol (GGP)

        GGP was designed and implemented by BBN for the first
        experimental Internet gateways [41].  It is still in use in the
        BBN LSI/11 gateways, but is regarded as having serious
        drawbacks [58].  GGP is based upon an algorithm used in the
        early ARPANET IMPs and later replaced by SPF (see below).

        GGP is a "min-hop" algorithm, i.e., its length measure is
        simply the number of network hops between gateway pairs.  It
        implements a distributed shortest-path algorithm, which
        requires global convergence of the routing tables after a
        change in topology or connectivity.  Each gateway sends a GGP



Braden & Postel                                                [Page 22]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        routing update only to its neighbors, but each update includes
        an entry for every known network, where each entry contains the
        hop count from the gateway sending the update.

     2.6.2.  Shortest-Path-First (SPF) Protocols

        SPF [40] is the name for a class of routing algorithms based on
        a shortest-path algorithm of Dijkstra.  The current ARPANET
        routing algorithm is SPF, and the BBN Butterfly gateways also
        use SPF.  Its characteristics are considered superior to
        GGP [58].

        Under SPF, the routing data-base is replicated rather than
        distributed.  Each gateway will have its own copy of the same
        data-base, containing the entire Internet topology and the
        lengths of every path.  Since each gateway has all the routing
        data and runs a shortest-path algorithm locally, there is no
        problem of global convergence of a distributed algorithm, as in
        GGP.  To build this replicated data-base, a gateway sends SPF
        routing updates to ALL other gateways; these updates only list
        the distances to each of the gateway's neighbors, making them
        much smaller than GGP updates.  The algorithm used to
        distribute SPF routing updates involves reliable flooding.

     2.6.3.  Routing Information (RIP)

        RIP is the name often used for a class of routing protocols
        based upon the Xerox PUP and XNS routing protocols.  These are
        relatively simple, and are widely available because they are
        incorporated in the embedded gateway code of Berkeley BSD
        systems.  Because of this simplicity, RIP protocols have come
        the closest of any to being an "Open IGP", i.e., a protocol
        which can be used between different vendors' gateways.
        Unfortunately, there is no standard, and in fact not even a
        good document, for RIP.

        As in GGP, gateways using RIP periodically broadcast their
        routing data-base to their neighbor gateways, and use a
        hop-count as the metric.

        A fixed value of the hop-count (normally 16) is defined to be
        "infinity", i.e., network unreachable.  A RIP implementation
        must include measures to avoid both the slow-convergence
        phenomen called "counting to infinity" and the formation of
        routing loops.  One such measure is a "hold-down" rule.  This
        rule establishes a period of time (typically 60 seconds) during
        which a gateway will ignore new routing information about a
        given network, once the gateway has learned that network is


Braden & Postel                                                [Page 23]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        unreachable (has hop-count "infinity").  The hold-down period
        must be settable in the gateway configuration; if gateways with
        different hold-down periods are using RIP in the same
        Autonomous System, routing loops are a distinct possibility.
        In general, the hold-down period is chosen large enough to
        allow time for unreachable status to propagate to all gateways
        in the AS.

     2.6.4.  Hello

        The "Fuzzball" software for an LSI/11 developed by Dave Mills
        incorporated an IGP called the "Hello" protocol [39].  This IGP
        is mentioned here because the Fuzzballs have been widely used
        in Internet experimentation, and because they have served as a
        testbed for many new routing ideas.

  2.7.  Monitoring Protocols

     See Section 5 of this document.

  2.8.  Internet Group Management Protocol (IGMP)

     An extension to the IP protocol has been defined to provide
     Internet-wide multicasting, i.e., delivery of copies of the same
     IP datagram to a set of Internet hosts [47, 48].  This delivery is
     to be performed by processes known as "multicasting agents", which
     reside either in a host on each net or (preferably) in the
     gateways.

     The set of hosts to which a datagram is delivered is called a
     "host group", and there is a host-agent protocol called IGMP,
     which a host uses to join, leave, or create a group.  Each host
     group is distinguished by a Class D IP address.

     This multicasting mechanism and its IGMP protocol are currently
     experimental; implementation in vendor gateways would be premature
     at this time.  A datagram containing a Class D IP address must be
     dropped, with no ICMP error message.












Braden & Postel                                                [Page 24]



RFC 1009 - Requirements for Internet Gateways                  June 1987


3.  Constituent Network Interface

  This section discusses the rules used for transmission of IP
  datagrams on the most common types of constituent networks.  A
  gateway must be able to send and receive IP datagrams of any size up
  to the MTU of any constituent network to which it is connected.

  3.1.  Public data networks via X.25

     The formats specified for public data networks accessed via X.25
     are described in RFC-877 [8].  Datagrams are transmitted over
     standard level-3 virtual circuits as complete packet sequences.
     Virtual circuits are usually established dynamically as required
     and time-out after a period of no traffic.  Link-level
     retransmission, resequencing and flow control are performed by the
     network for each virtual circuit and by the LAPB link-level
     protocol.  Note that a single X.25 virtual circuit may be used to
     multiplex all IP traffic between a pair of hosts.  However,
     multiple parallel virtual circuits may be used in order to improve
     the utilization of the subscriber access line, in spite of small
     X.25 window sizes; this can result in random resequencing.

     The correspondence between Internet and X.121 addresses is usually
     established by table-lookup.  It is expected that this will be
     replaced by some sort of directory procedure in the future.  The
     table of the hosts on the Public Data Network is in the Assigned
     Numbers [23].

     The normal MTU is 576; however, the two DTE's (hosts or gateways)
     can use X.25 packet size negotiation to increase this value [8].

  3.2.  ARPANET via 1822 LH, DH, or HDH

     The formats specified for ARPANET networks using 1822 access are
     described in BBN Report 1822 [3], which includes the procedures
     for several subscriber access methods.  The Distant Host (DH)
     method is used when the host and IMP (the Defense Communication
     Agency calls it a Packet Switch Node or PSN) are separated by not
     more than about 2000 feet of cable, while the HDLC Distant Host
     (HDH) is used for greater distances where a modem is required.
     Under HDH, retransmission, resequencing and flow control are
     performed by the network and by the HDLC link-level protocol.

     The IP encapsulation format is simply to include the IP datagram
     as the data portion of an 1822 message.  In addition, the
     high-order 8 bits of the Message Id field (also known as the
     "link" field") should be set to 155 [23].  The MTU is 1007 octets.



Braden & Postel                                                [Page 25]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     While the ARPANET 1822 protocols are widely used at present, they
     are expected to be eventually overtaken by the DDN Standard X.25
     protocol (see Section 3.3).  The original IP address mapping
     (RFC-796 [38]) is in the process of being replaced by a new
     interface specification called AHIP-E; see RFC-1005 [61] for the
     proposal.

     Gateways connected to ARPANET or MILNET IMPs using 1822 access
     must incorporate features to avoid host-port blocking (i.e., RFNM
     counting) and to detect and report as ICMP Unreachable messages
     the failure of destination hosts or gateways (i.e., convert the
     1822 error messages to the appropriate ICMP messages).

     In the development of a network interface it will be useful to
     review the IMP end-to-end protocol described in RFC-979 [29].

  3.3.  ARPANET via DDN Standard X.25

     The formats specified for ARPANET networks via X.25 are described
     in the Defense Data Network X.25 Host Interface Specification [6],
     which describes two sets of procedures: the DDN Basic X.25, and
     the DDN Standard X.25.  Only DDN Standard X.25 provides the
     functionality required for interoperability assumptions of the
     Internet protocol.

     The DDN Standard X.25 procedures are similar to the public data
     network X.25 procedures, except in the address mappings.
     Retransmission, resequencing and flow control are performed by the
     network and by the LAPB link-level protocol.  Multiple parallel
     virtual circuits may be used in order to improve the utilization
     of the subscriber access line; this can result in random
     resequencing.

     Gateways connected to ARPANET or MILNET using Standard X.25 access
     must detect and report as ICMP Unreachable messages the failure of
     destination hosts or gateways (i.e., convert the X.25 diagnostic
     codes to the appropriate ICMP messages).

     To achieve compatibility with 1822 interfaces, the effective MTU
     for a Standard X.25 interface is 1007 octets.










Braden & Postel                                                [Page 26]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  3.4.  Ethernet and IEEE 802

     The formats specified for Ethernet networks are described in
     RFC-894 [10].  Datagrams are encapsulated as Ethernet packets with
     48-bit source and destination address fields and a 16-bit type
     field (the type field values are listed in the Assigned
     Numbers [23]).  Address translation between Ethernet addresses and
     Internet addresses is managed by the Address Resolution Protocol,
     which is required in all Ethernet implementations.  There is no
     explicit link-level retransmission, resequencing or flow control,
     although most hardware interfaces will retransmit automatically in
     case of collisions on the cable.

     The IEEE 802 networks use a Link Service Access Point (LSAP) field
     in much the same way the ARPANET uses the "link" field.  Further,
     there is an extension of the LSAP header called the Sub-Network
     Access Protocol (SNAP).

     The 802.2 encapsulation is used on 802.3, 802.4, and 802.5 network
     by using the SNAP with an organization code indicating that the
     following 16 bits specify the Ether-Type code [23].

     Headers:

        ...--------+--------+--------+
         MAC Header|      Length     |                  802.{3/4/5} MAC
        ...--------+--------+--------+

        +--------+--------+--------+
        | DSAP=K1| SSAP=K1| control|                          802.2 SAP
        +--------+--------+--------+

        +--------+--------+--------+--------+--------+
        |protocol id or org code=K2|    Ether-Type   |       802.2 SNAP
        +--------+--------+--------+--------+--------+

     The total length of the SAP Header and the SNAP header is
     8-octets, making the 802.2 protocol overhead come out on a 64-bit
     boundary.

     K1 is 170.  The IEEE likes to talk about things in bit
     transmission order and specifies this value as 01010101.  In
     big-endian order, as used in the Internet specifications, this
     becomes 10101010 binary, or AA hex, or 170 decimal.  K2 is 0
     (zero).

     The use of the IP LSAP (K1 = 6) is reserved for future
     development.


Braden & Postel                                                [Page 27]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     The assigned values for the Ether-Type field are the same for
     either this IEEE 802 encapsulation or the basic Ethernet
     encapsulation [10].

     In either Ethernets or IEEE 802 nets, the IP datagram is the data
     portion of the packet immediately following the Ether-Type.

     The MTU for an Ethernet or its IEEE-standard equivalent (802.3) is
     1500 octets.

  3.5.  Serial-Line Protocols

     In some configurations, gateways may be interconnected with each
     other by means of serial asynchronous or synchronous lines, with
     or without modems.  When justified by the expected error rate and
     other factors, a link-level protocol may be required on the serial
     line.  While there is no single Internet standard for this
     protocol, it is suggested that one of the following protocols be
     used.

        *  X.25 LAPB  (Synchronous Lines)

           This is the link-level protocol used for X.25 network
           access.  It includes HDLC "bit-stuffing" as well as
           rotating-window flow control and reliable delivery.

              A gateway must be configurable to play the role of either
              the DCE or the DTE.

        *  HDLC Framing  (Synchronous Lines)

           This is just the bit-stuffing and framing rules of LAPB.  It
           is the simplest choice, although it provides no flow control
           or reliable delivery; however, it does provide error
           detection.

        *  Xerox Synchronous Point-to-Point  (Synchronous Lines)

           This Xerox protocol is an elaboration upon HDLC framing that
           includes negotiation of maximum packet sizes, dial-up or
           dedicated circuits, and half- or full-duplex operation [12].

        *  Serial Line Framing Protocol  (Asynchronous Lines)

           This protocol is included in the MIT PC/IP package for an
           IBM PC and is defined in Appendix I to the manual for that
           system [20].



Braden & Postel                                                [Page 28]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     It will be important to make efficient use of the bandwidth
     available on a serial line between gateways.  For example, it is
     desirable to provide some form of data compression.  One possible
     standard compression algorithm, "Thinwire II", is described in
     RFC-914 [42].  This and similar algorithms are tuned to the
     particular types of redundancy which occur in IP and TCP headers;
     however, more work is necessary to define a standard serial-line
     compression protocol for Internet gateways.  Until a standard has
     been adopted, each vendor is free to choose a compression
     algorithm; of course, the result will only be useful on a serial
     line between two gateways using the same compression algorithm.

     Another way to ensure maximum use of the bandwidth is to avoid
     unnecessary retransmissions at the link level.  For some kinds of
     IP traffic, low delay is more important than reliable delivery.
     The serial line driver could distinguish such datagrams by their
     IP TOS field, and place them on a special high-priority,
     no-retransmission queue.

     A serial point-to-point line between two gateways may be
     considered to be a (particularly simple) network, a "null net".
     Considered in this way, a serial line requires no special
     considerations in the routing algorithms of the connected
     gateways, but does need an IP network number.  To avoid the
     wholesale consumption of Internet routing data-base space by null
     nets, we strongly recommend that subnetting be used for null net
     numbering, whenever possible.

        For example, assume that network 128.203 is to be constructed
        of gateways joined by null nets; these nets are given (sub-)net
        numbers 128.203.1, 128.203.2, etc., and the two interfaces on
        each end of null net 128.203.s might have IP addresses
        128.203.s.1 and 128.203.s.2.

     An alternative model of a serial line is that it is not a network,
     but rather an internal communication path joining two "half
     gateways".  It is possible to design an IGP and routing algorithm
     that treats a serial line in this manner [39, 52].












Braden & Postel                                                [Page 29]



RFC 1009 - Requirements for Internet Gateways                  June 1987


4.  Gateway Algorithms

  Gateways are general packet-switches that forward packets according
  to the IP address, i.e., they are IP routers.   While it is beyond
  the scope of this document to specify the details of the mechanisms
  used in any particular, perhaps proprietary, gateway architecture,
  there are a number of basic algorithms which must be provided by any
  acceptable design.

  4.1.  Routing Algorithm

     The routing mechanism is fundamental to Internet operation.  In
     all but trivial network topologies, robust Internet service
     requires some degree of routing dynamics, whether it be effected
     by manual or automatic means or by some combination of both.  In
     particular, if routing changes are made manually, it must be
     possible to make these routing changes from a remote Network
     Operation Center (NOC) without taking down the gateway for
     reconfiguration.  If static routes are used, there must be
     automatic fallback or rerouting features.

     Handling unpredictable changes in Internet connectivity must be
     considered the normal case, so that systems of gateways will
     normally be expected to have a routing algorithm with the
     capability of reacting to link and other gateway failures and
     changing the routing automatically.

     This document places no restriction on the type of routing
     algorithm, e.g., node-based, link-based or any other algorithm, or
     on the routing distance metric, e.g., delay or hop-count.
     However, the following features are considered necessary for a
     successful gateway routing algorithm:

        1.  The algorithm must sense the failure or restoration of a
            link or other gateway and switch to appropriate paths.  A
            design objective is to switch paths within an interval less
            than the typical TCP user time-out (one minute is a safe
            assumption).

        2.  The algorithm must suppress routing loops between neighbor
            gateways and must contain provisions to avoid or suppress
            routing loops that may form between non-neighbor gateways.
            A design objective is for no loop to persist for longer
            than an interval greater than the typical TCP user
            time-out.

        3.  The control traffic necessary to operate the routing
            algorithm must not significantly degrade or disrupt normal


Braden & Postel                                                [Page 30]



RFC 1009 - Requirements for Internet Gateways                  June 1987


            network operation.  Changes in state which might
            momentarily disrupt normal operation in a local-area must
            not cause disruption in remote areas of the network.

        4.  As the size of the network increases, the demand on
            resources must be controlled in an efficient way.  Table
            lookups should be hashed, for example, and data-base
            updates handled piecemeal, with only incremental changes
            broadcast over a wide-area.

        5.  The size of the routing data-base must not be allowed to
            exceed a constant, independent of network topology, times
            the number of nodes times the mean connectivity (average
            number of incident links).  An advanced design might not
            require that the entire routing data-base be kept in any
            particular gateway, so that discovery and caching
            techniques would be necessary.

        6.  Reachability and delay metrics, if used, must not depend on
            direct connectivity to all other gateways or on the use of
            network-specific broadcast mechanisms.  Polling procedures
            (e.g., for consistency checking) must be used only
            sparingly and in no case introduce an overhead exceeding a
            constant, independent of network topology, times the
            longest non-looping path.

        7.  Default routes (generally intended as a means to reduce the
            size of the routing data-base) must be used with care,
            because of the many problems with multiple paths, loops,
            and mis-configurations which routing defaults have caused.

            The most common application of defaults is for routing
            within an Internet region which is connected in a strictly
            hierarchical fashion and is a stub from the rest of the
            Internet system.  In this case, the default is used for
            routing "up" the tree.  Unfortunately, such restricted
            topology seldom lasts very long, and defaults cease to
            work.

            More generally, defaults could be used for initial routing
            guesses, with final routes to be discovered and cached from
            external or internal data-bases via the routing algorithm
            or EGP.







Braden & Postel                                                [Page 31]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  4.2.  Subnets and Routing

     We will call a gateway "subnetted" if at least one of its
     interfaces is connected to a subnet; the set of gateways directly
     connected to subnets of the same network will be referred to as a
     "subnet cluster".  For example, in the following diagram, network
     2 is subnetted, with subnets 2.1 and 2.2, but network 1 is not;
     gateways 1, 2, and 3 are subnetted and are members of the same
     subnet cluster.

        (Net 1) === [Gwy 1] === (Net 2.1) === [Gwy 2] === (Net 2.2)
           |                                                   |
           |                                                   |
            =================== [Gwy 3] =======================

     Subnets have the following effects on gateway routing:

        A.  Non-subnetted gateways are not affected at all.

        B.  The routing data-base in a subnetted gateway must consider
            the address mask for subnet entries.

        C.  Routing updates among the gateways in the same subnet
            cluster must include entries for the various subnets.  The
            corresponding address mask(s) may be implicit, but for full
            generality the mask needs to be given explicitly for each
            entry.  Note that if the routing data-base included a full
            32-bit mask for every IP network, the gateway could deal
            with networks and subnets in a natural way.  This would
            also handle the case of multiple subnet masks for the same
            subnetted network.

        D.  Routing updates from a subnetted gateway to a gateway
            outside the cluster can contain nets, never subnets.

        E.  If a subnetted gateway (e.g., gateway 2 above) is unable to
            forward a datagram from one subnet to another subnet of the
            same network, then it must return a Host Unreachable, not a
            Net Unreachable, as discussed in Section 2.2.1.

     When considering the choice of routing protocol, a gateway builder
     must consider how that protocol generalizes for subnets.  For some
     routing protocols it will be possible to use the same procedures
     in a regular gateway and a subnetted gateway, with only a change
     of parameters (e.g., address masks).

     A different subnet address mask must be configurable for each



Braden & Postel                                                [Page 32]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     interface of a given gateway.  This will allow a subnetted gateway
     to connect to two different subnetted networks, or to connect two
     subnets of the same network with different masks.

  4.3   Resource Allocation

     In order to perform its basic datagram-forwarding functions, a
     gateway must allocate resources; its packet buffers and CPU time
     must be allocated to packets it receives from connected networks,
     while the bandwidth to each of the networks must also be allocated
     for sending packets.  The choice of allocation strategies will be
     critical when a particular resource is scarce.  The most obvious
     allocation strategy, first-come-first-served (FCFS), may not be
     appropriate under overload conditions, for reasons which we will
     now explore.

     A first example is buffer allocation.  It is important for a
     gateway to allocate buffers fairly among all of its connected
     networks, even if these networks have widely varying bandwidths.
     A high-speed interface must not be allowed to starve slower
     interfaces of buffers.  For example, consider a gateway with a
     10 Mbps Ethernet connection and two 56 Kbps serial lines.  A buggy
     host on the Ethernet may spray that gateway interface with packets
     at high speed.  Without careful algorithm design in the gateway,
     this could tie up all the gateway buffers in such a way that
     transit traffic between the serial lines would be completely
     stopped.

     Allocation of output bandwidth may also require non-FCFS
     strategies.  In an advanced gateway design, allocation of output
     bandwidth may depend upon Type-of-Service bits in the IP headers.
     A gateway may also want to give priority to datagrams for its own
     up/down and routing protocols.

     Finally, Nagle [24] has suggested that gateways implement "fair
     queueing", i.e., sharing output bandwidth equitably among the
     current traffic sources.  In his scheme, for each network
     interface there would be a dynamically-built set of output queues,
     one per IP source address; these queues would be serviced in a
     round-robin fashion to share the bandwidth.  If subsequent
     research shows fair queueing to be desirable, it will be added to
     a future version of this document as a universal requirement.








Braden & Postel                                                [Page 33]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  4.4.  Special Addresses and Filters

     Section 2.1 contained a list of the 32-bit IP addresses which have
     special meanings.  They do not in general represent unique IP
     addresses of Internet hosts, and there are restrictions on their
     use in IP headers.

     We can distinguish two classes of these special cases.  The first
     class (specifically, cases (a), (b), (c), (g), (h), and (i) in
     section 2.1) contains addresses which should never appear in the
     destination address field of any IP datagram, so a gateway should
     never be asked to route to one of these addresses.  However, in
     the real world of imperfect implementations and configuration
     errors, such bad destination addresses do occur.  It is the
     responsibility of a gateway to avoid propagating such erroneous
     addresses; this is especially important for gateways included in
     the global interconnect system.  In particular, a gateway which
     receives a datagram with one of these forbidden addresses should:

        1.  Avoid inserting that address into its routing database, and
            avoid including it in routing updates to any other gateway.

        2.  Avoid forwarding a datagram containing that address as a
            destination.

     To enforce these restrictions, it is suggested that a gateway
     include a configurable filter for datagrams and routing updates.
     A typical filter entry might consist of a 32-bit mask and value
     pair.  If the logical AND of the given address with the mask
     equals the value, a match has been found.  Since filtering will
     consume gateway resources, it is vital that the gateway
     configuration be able to control the degree of filtering in use.

     There is a second class of special case addresses (cases (d), (e),
     and (f) in section 2.1), the so-called "directed broadcasts".  A
     directed broadcast is a datagram to be forwarded normally to the
     specified destination (sub-)net and then broadcast on the final
     hop.  An Internet gateway is permitted, but not required, to
     filter out directed broadcasts destined for any of its
     locally-connected networks.  Hence, it should be possible to
     configure the filter to block the delivery of directed broadcasts.

     Finally, it will also be useful for Internet O&M to have a
     configurable filter on the IP source address.  This will allow a
     network manager to temporarily block traffic from a particular
     misbehaving host, for example.




Braden & Postel                                                [Page 34]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  4.5.  Redirects

     The ICMP Redirect message is specified only for use by a gateway
     to update the routing table of a host on the same connected net.
     However, the Redirect message is sometimes used between gateways,
     due to the following considerations:

        The routing function in a host is very much like that in a
        "dumb gateway" (i.e., a gateway having only static routes).  It
        is desirable to allow the routing tables of a dumb gateway to
        be changed under the control of a dynamic gateway (i.e., a
        gateway with full dynamic routing) on the same network.  By
        analogy, it is natural to let the dynamic gateway send ICMP
        Redirect messages to dumb gateway.

     The use of ICMP Redirect between gateways in this fashion may be
     considered to be part of the IGP (in fact, the totality of the
     IGP, as far as the dumb gateway is concerned!) in the particular
     Autonomous System.   Specification of an IGP is outside the scope
     of this document, so we only note the possibility of using
     Redirect in this fashion.  Gateways are not required to receive
     and act upon redirects, and in fact dynamic gateways must ignore
     them.  We also note that considerable experience shows that dumb
     gateways often create problems resulting in "black holes"; a full
     routing gateway is always preferable.

     Routing table entries established by redirect messages must be
     removed automatically, either by a time-out or when a use count
     goes to zero.

  4.6.  Broadcast and Multicast

     A host which is connected to a network (generally a LAN) with an
     intrinsic broadcast capability may want to use this capability to
     effect multidestination delivery of IP datagrams.  The basic
     Internet model assumes point-to-point messages, and we must take
     some care when we incorporate broadcasting.  It is important to
     note that broadcast addresses may occur at two protocol levels:
     the local network header and the IP header.

     Incorrect handling of broadcasting has often been the cause of
     packet avalanches (sometimes dubbed "meltdown") in LANs.  These
     avalanches are generally caused by gratuitous datagram-forwarding
     by hosts, or by hosts sending ICMP error messages when they
     discard broadcast datagrams.

     Gateways have a responsibility to prevent avalanches, or datagrams
     which can trigger avalanches, from escaping into another network.


Braden & Postel                                                [Page 35]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     In general, a gateway must not forward a datagram which arrives
     via local network broadcast, and must not send an ICMP error
     message when dropping the datagram.  A discussion of the rules
     will be found in Appendix A; see also [50].

     As noted in Section 4.4, a gateway is permitted to filter out
     directed broadcasts.  Hence, directed broadcasts will only be
     useful in limited Internet regions (e.g., the within the subnets
     of a particular campus) in which delivery is supported by the
     gateway administrators.  Host group multicasting (see Sections 2.8
     and 4.6) will soon provide a much more efficient mechanism than
     directed broadcasting.  Gateway algorithms for host group
     multicasting will be specified in future RFC's.

  4.7.  Reachability Procedures

     The architecture must provide a robust mechanism to establish the
     operational status of each link and node in the network, including
     the gateways, the links connecting them and, where appropriate,
     the hosts as well.  Ordinarily, this requires at least a
     link-level reachability protocol involving a periodic exchange of
     messages across each link.  This function might be intrinsic to
     the link-level protocols used (e.g., LAPB).  However, it is in
     general ill-advised to assume a host or gateway is operating
     correctly even if its link-level reachability protocol is
     operating correctly.  Additional confirmation is required in the
     form of an operating routing algorithm or peer-level reachability
     protocol (such as used in EGP).

     Failure and restoration of a link and/or gateway are considered
     network events and must be reported to the control center.  It is
     desirable, although not required, that reporting paths not require
     correct functioning of the routing algorithm itself.

  4.8.  Time-To-Live

     The Time-to-Live (TTL) field of the IP header is defined to be a
     timer limiting the lifetime of a datagram in the Internet.  It is
     an 8-bit field and the units are seconds.  This would imply that
     for a maximum TTL of 255 a datagram would time-out after about 4
     and a quarter minutes.  Another aspect of the definition requires
     each gateway (or other module) that handles a datagram to
     decrement the TTL by at least one, even if the elapsed time was
     much less than a second.  Since this is very often the case, the
     TTL effectively becomes a hop count limit on how far a datagram
     can propagate through the Internet.




Braden & Postel                                                [Page 36]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     As the Internet grows, the number of hops needed to get from one
     edge to the opposite edge increases, i.e., the Internet diameter
     grows.

     If a gateway holds a datagram for more than one second, it must
     decrement the TTL by one for each second.

     If the TTL is reduced to zero, the datagram must be discarded, and
     the gateway may send an ICMP Time Exceeded message to the source.
     A datagram should never be received with a TTL of zero.

     When it originates a datagram, a gateway is acting in the role of
     a host and must supply a realistic initial value for the TTL.





































Braden & Postel                                                [Page 37]



RFC 1009 - Requirements for Internet Gateways                  June 1987


5.  Operation and Maintenance

  5.1.  Introduction

     Facilities to support operation and maintenance (O&M) activities
     form an essential part of any gateway implementation.  The
     following kinds of activity are included under gateway O&M:

        *  Diagnosing hardware problems in the gateway processor, in
           its network interfaces, or in the connected networks,
           modems, or communication lines.

        *  Installing a new version of the gateway software.

        *  Restarting or rebooting a gateway after a crash.

        *  Configuring (or reconfiguring) the gateway.

        *  Detecting and diagnosing Internet problems such as
           congestion, routing loops, bad IP addresses, black holes,
           packet avalanches, and misbehaved hosts.

        *  Changing network topology, either temporarily (e.g., to
           diagnose a communication line problem) or permanently.

        *  Monitoring the status and performance of the gateways and
           the connected networks.

        *  Collecting traffic statistics for use in (Inter-)network
           planning.

     Gateways, packet-switches, and their connected communication lines
     are often operated as a system by a centralized O&M organization.
     This organization will maintain a (Inter-)network operation
     center, or NOC, to carry out its O&M functions.  It is essential
     that gateways support remote control and monitoring from such a
     NOC, through an Internet path (since gateways might not be
     connected to the same network as their NOC).  Furthermore, an IP
     datagram traversing the Internet will often use gateways under the
     control of more than one NOC; therefore, Internet problem
     diagnosis will often involve cooperation of personnel of more than
     one NOC.  In some cases, the same gateway may need to be monitored
     by more than one NOC.

     The tools available for monitoring at a NOC may cover a wide range
     of sophistication.  Proposals have included multi-window, dynamic
     displays of the entire gateway system, and the use of AI
     techniques for automatic problem diagnosis.


Braden & Postel                                                [Page 38]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     Gateway O&M facilities discussed here are only a part of the large
     and difficult problem of Internet management.  These problems
     encompass not only multiple management organizations, but also
     multiple protocol layers.  For example, at the current stage of
     evolution of the Internet architecture, there is a strong coupling
     between host TCP implementations and eventual IP-level congestion
     in the gateway system [9].  Therefore, diagnosis of congestion
     problems will sometimes require the monitoring of TCP statistics
     in hosts.  Gateway algorithms also interact with local network
     performance, especially through handling of broadcast packets and
     ARP, and again diagnosis will require access to hosts (e.g.,
     examining ARP caches).  However, consideration of host monitoring
     is beyond the scope of this RFC.

     There are currently a number of R&D efforts in progress in the
     area of Internet management and more specifically gateway O&M.  It
     is hoped that these will lead quickly to Internet standards for
     the gateway protocols and facilities required in this area.  This
     is also an area in which vendor creativity can make a significant
     contribution.

  5.2.   Gateway O&M Models

     There is a range of possible models for performing O&M functions
     on a gateway.  At one extreme is the local-only model, under which
     the O&M functions can only be executed locally, e.g., from a
     terminal plugged into the gateway machine.  At the other extreme,
     the fully-remote model allows only an absolute minimum of
     functions to be performed locally (e.g., forcing a boot), with
     most O&M being done remotely from the NOC.  There intermediate
     models, e.g., one in which NOC personnel can log into the gateway
     as a host, using the Telnet protocol, to perform functions which
     can also be invoked locally.  The local-only model may be adequate
     in a few gateway installations, but in general remote operation
     from a NOC will be required, and therefore remote O&M provisions
     are required for most gateways.

     Remote O&M functions may be exercised through a control agent
     (program).  In the direct approach, the gateway would support
     remote O&M functions directly from the NOC using standard Internet
     protocols (e.g., UDP or TCP); in the indirect approach, the
     control agent would support these protocols and control the
     gateway itself using proprietary protocols.  The direct approach
     is preferred, although either approach is acceptable.  The use of
     specialized host hardware and/or software requiring significant
     additional investment is discouraged; nevertheless, some vendors
     may elect to provide the control agent as an integrated part of
     the network in which the gateways are a part.  If this is the


Braden & Postel                                                [Page 39]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     case, it is required that a means be available to operate the
     control agent from a remote site using Internet protocols and
     paths and with equivalent functionality with respect to a local
     agent terminal.

     It is desirable that a control agent and any other NOC software
     tools which a vendor provides operate as user programs in a
     standard operating system.  The use of the standard Internet
     protocols UDP and TCP for communicating with the gateways should
     facilitate this.

     Remote gateway monitoring and (especially) remote gateway control
     present important access control problems which must be addressed.
     Care must also be taken to ensure control of the use of gateway
     resources for these functions.  It is not desirable to let gateway
     monitoring take more than some limited fraction of the gateway CPU
     time, for example.  On the other hand, O&M functions must receive
     priority so they can be exercised when the gateway is congested,
     i.e., when O&M is most needed.

     There are no current Internet standards for the control and
     monitoring protocols, although work is in progress in this area.
     The Host Monitoring Protocol (HMP) [7] could be used as a model
     until a standard is developed; however, it is strongly recommended
     that gateway O&M protocol be built on top of one of the standard
     Internet end-to-end protocols UDP or TCP. An example of a very
     simple but effective approach to gateway monitoring is contained
     in RFC-996 [43].

  5.3.   Gateway O&M Functions

     The following O&M functions need to be performed in a gateway:

        A.  Maintenance -- Hardware Diagnosis

           Each gateway must operate as a stand-alone device for the
           purposes of local hardware maintenance.  Means must be
           available to run diagnostic programs at the gateway site
           using only on-site tools, which might be only a diskette or
           tape and local terminal.  It is desirable, although not
           required, to be able to run diagnostics or dump the gateway
           via the network in case of fault.  Means should be provided
           to allow remote control from the NOC of of modems attached
           to the gateway.  The most important modem control capability
           is entering and leaving loopback mode, to diagnose line
           problems.




Braden & Postel                                                [Page 40]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        B.  Control -- Dumping and Rebooting

           It must be possible to dump and reboot a stand-alone gateway
           upon command from the NOC.  In addition, a stand-alone
           gateway must include a watchdog timer that either initiates
           a reboot automatically or signals a remote control site if
           not reset periodically by the software.  It is desirable
           that the boot data involved reside at an Internet host
           (e.g., the NOC host) and be transmitted via the net;
           however, the use of local devices at the gateway site is
           acceptable.

        C.  Control -- Configuring the Gateway

           Every gateway will have a number of configuration parameters
           which must be set (see the next section for examples).  It
           must be possible to update the parameters without rebooting
           the gateway; at worst, a restart may be required.

        D.  Monitoring -- Status and Performance

           A mechanism must be provided for retrieving status and
           statistical information from a gateway.  A gateway must
           supply such information in response to a polling message
           from the NOC.  In addition, it may be desirable to configure
           a gateway to transmit status spontaneously and periodically
           to a NOC (or set of NOCs), for recording and display.

           Examples of interesting status information include: link
           status, queue lengths, buffer availability, CPU and memory
           utilization, the routing data-base, error counts, and packet
           counts.  Counts should be kept for dropped datagrams,
           separated by reason.  Counts of ICMP datagrams should be
           kept by type and categorized into those originating at the
           gateway, and those destined for the gateway.  It would be
           useful to maintain many of these statistics by network
           interface, by source/destination network pair, and/or by
           source/destination host pair.

           Note that a great deal of useful monitoring data is often to
           be found in the routing data-base.  It is therefore useful
           to be able to tap into this data-base from the NOC.

        E.  Monitoring -- Error Logging

           A gateway should be capable of asynchronously sending
           exception ("trap") reports to one or more specified Internet
           addresses, one of which will presumably be the NOC host.


Braden & Postel                                                [Page 41]



RFC 1009 - Requirements for Internet Gateways                  June 1987


           There must also be a mechanism to limit the frequency of
           such trap reports, and the parameters controlling this
           frequency must be settable in the gateway configuration.

           Examples of conditions which should result in traps include:
           datagrams discarded because of TTL expiration (an indicator
           of possible routing loops); resource shortages; or an
           interface changing its up/down status.

  5.4.   Gateway Configuration Parameters

     Every gateway will have a set of configuration parameters
     controlling its operation.  It must be possible to set these
     parameters remotely from the NOC or locally at any time, without
     taking the gateway down.

     The following is a partial but representative list of possible
     configuration parameters for a full-function gateway.  The items
     marked with "(i)" should be settable independently for each
     network interface.

        * (i)  IP (sub-) network address

        * (i)  Subnet address mask

        * (i)  MTU of local network

        * (i)  Hardware interface address

        * (i)  Broadcast compatibility option (0s or 1s)

        *      EGP parameters -- neighbors, Autonomous System number,
               and polling parameters

        *      Static and/or default routes, if any

        *      Enable/Disable Proxy ARP

        *      Source Quench parameters

        *      Address filter configuration

        *      Boot-host address

        *      IP address of time server host

        *      IP address(es) of logging host(s)



Braden & Postel                                                [Page 42]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        *      IP address(es) of hosts to receive traps

        *      IP address(es) of hosts authorized to issue control
               commands

        *      Error level for logging

        *      Maximum trap frequency

        *      Hold-down period (if any)








































Braden & Postel                                                [Page 43]



RFC 1009 - Requirements for Internet Gateways                  June 1987


Appendix A.  Technical Details

  This Appendix collects a number of technical details and rules
  concerning datagram forwarding by gateways and datagram handling by
  hosts, especially in the presence of broadcasting and subnets.

  A.1.  Rules for Broadcasting

     The following rules define how to handle broadcasts of packets and
     datagrams [50]:

        a.  Hosts (which do not contain embedded gateways) must NEVER
            forward any datagrams received from a connected network,
            broadcast or not.

            When a host receives an IP datagram, if the destination
            address identifies the host or is an IP broadcast address,
            the host passes the datagram to its appropriate
            higher-level protocol module (possibly sending ICMP
            protocol unreachable, but not if the IP address was a
            broadcast address).  Any other IP datagram must simply be
            discarded, without an ICMP error message.  Hosts never send
            redirects.

        b.  All packets containing IP datagrams which are sent to the
            local-network packet broadcast address must contain an IP
            broadcast address as the destination address in their IP
            header.  Expressed in another way, a gateway (or host) must
            not send in a local-network broadcast packet an IP datagram
            that has a specific IP host address as its destination
            field.

        c.  A gateway must never forward an IP datagram that arrives
            addressed to the IP limited broadcast address {-1,-1}.
            Furthermore, it must must not send an ICMP error message
            about discarding such a datagram.

        d.  A gateway must not forward an IP datagram addressed to
            network zero, i.e., {0, *}.

        e.  A gateway may forward a directed broadcast datagram, i.e.,
            a datagram with the IP destination address:

           { <Network-number>, -1}.

            However, it must not send such a directed broadcast out the
            same interface it came in, if this interface has
            <Network-number> as its network number.  If the code in the


Braden & Postel                                                [Page 44]



RFC 1009 - Requirements for Internet Gateways                  June 1987


            gateway making this decision does not know what interface
            the directed-broadcast datagram arrived on, the gateway
            cannot support directed broadcast to this connected network
            at all.

        f.  A gateway is permitted to protect its connected networks by
            discarding directed broadcast datagrams.

     A gateway will broadcast an IP datagram on a connected network if
     it is a directed broadcast destined for that network.  Some
     gateway-gateway routing protocols (e.g., RIP) also require
     broadcasting routing updates on the connected networks.  In either
     case, the datagram must have an IP broadcast address as its
     destination.

        Note:  as observed earlier, some host implementations (those
        based on Berkeley 4.2BSD) use zero rather than -1 in the host
        field.  To provide compatibility during the period until these
        systems are fixed or retired, it may be useful for a gateway to
        be configurable to send either choice of IP broadcast address
        and accept both if received.

  A.2.  ICMP Redirects

     A gateway will generate an ICMP Redirect if and only if the
     destination IP address is reachable from the gateway (as
     determined by the routing algorithm) and the next-hop gateway is
     on the same (sub-)network as the source host.  Redirects must not
     be sent in response to an IP network or subnet broadcast address
     or in response to a Class D or Class E IP address.

     A host must discard an ICMP Redirect if the destination IP address
     is not its own IP address, or the new target address is not on the
     same (sub-)network.  An accepted Redirect updates the routing
     data-base for the old target address.  If there is no route
     associated with the old target address, the Redirect is ignored.
     If the old route is associated with a default gateway, a new route
     associated with the new target address is inserted in the
     data-base.











Braden & Postel                                                [Page 45]



RFC 1009 - Requirements for Internet Gateways                  June 1987


Appendix B.  NSFNET Specific Requirements

  The following sections discuss certain issues of special concern to
  the NSF scientific networking community.  These issues have primary
  relevance in the policy area, but also have ramifications in the
  technical area.

  B.1.  Proprietary and Extensibility Issues

     Although hosts, gateways and networks supporting Internet
     technology have been in continuous operation for several years,
     vendors users and operators must understand that not all
     networking issues are fully resolved.  As a result, when new needs
     or better solutions are developed for use in the NSF networking
     community, it may be necessary to field new protocols or augment
     existing ones.  Normally, these new protocols will be designed to
     interoperate in all practical respects with existing protocols;
     however, occasionally it may happen that existing systems must be
     upgraded to support these new or augmented protocols.

     NSF systems procurements may favor those vendors who undertake a
     commitment to remain aware of current Internet technology and be
     prepared to upgrade their products from time to time as
     appropriate.  As a result, vendors are strongly urged to consider
     extensibility and periodic upgrades as fundamental characteristics
     of their products.  One of the most productive and rewarding ways
     to do this on a long-term basis is to participate in ongoing
     Internet research and development programs in partnership with the
     academic community.

  B.2.  Interconnection Technology

     In order to ensure network-level interoperability of different
     vendor's gateways within the NSFNET context, we specify that a
     gateway must at a minimum support Ethernet connections and serial
     line protocol connections.

     Currently the most important common interconnection technology
     between Internet systems of different vendors is Ethernet.  Among
     the reasons for this are the following:

        1.  Ethernet specifications are well-understood and mature.

        2.  Ethernet technology is in almost all aspects vendor
            independent.

        3.  Ethernet-compatible systems are common and becoming more
            so.


Braden & Postel                                                [Page 46]



RFC 1009 - Requirements for Internet Gateways                  June 1987


     These advantages combined favor the use of Ethernet technology as
     the common point of demarcation between NSF network systems
     supplied by different vendors, regardless of technology.  It is a
     requirement of NSF gateways that, regardless of the possibly
     proprietary switching technology used to implement a given
     vendor-supplied network, its gateways must support an Ethernet
     attachment to gateways of other vendors.

     It is expected that future NSF gateway requirements will specify
     other interconnection technologies.  The most likely candidates
     are those based on X.25 or IEEE 802, but other technologies
     including broadband cable, optical fiber, or other media may also
     be considered.

  B.3.  Routing Interoperability

     The Internet does not currently have an "open IGP" standard, i.e.,
     a common IGP which would allow gateways from different vendors to
     form a single Autonomous System.  Several approaches to routing
     interoperability are currently in use among vendors and the NSF
     networking community.

     *  Proprietary IGP

        At least one gateway vendor has implemented a proprietary IGP
        and uses EGP to interface to the rest of the Internet.

     *  RIP

        Although RIP is undocumented and various implementations of it
        differ in subtle ways, it has been used successfully for
        interoperation among multiple vendors as an IGP.

     *  Gateway Daemon

        The NSF networking community has built a "gateway daemon"
        program which can mediate among multiple routing protocols to
        create a mixed-IGP Autonomous System.  In particular, the
        prototype gateway daemon executes on a 4.3BSD machine acting as
        a gateway and exchanges routing information with other
        gateways, speaking both RIP and Hello protocols; in addition,
        it supports EGP to other Autonomous Systems.








Braden & Postel                                                [Page 47]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  B.4.  Multi-Protocol Gateways

     The present NSF gateway requirements specify only the Internet
     protocol IP.  However, in a few years the Internet will begin a
     gradual transition to the functionally-equivalent subset of the
     ISO protocols [17].  In particular, an increasing percentage of
     the traffic will use the ISO Connectionless Mode Network Service
     (CLNS, but commonly called "ISO IP") [33] in place of IP.  It is
     expected that the ISO suite will eventually become the dominant
     one; however, it is also expected that requirements to support
     Internet IP will continue, perhaps indefinitely.

     To support the transition to ISO protocols and the coexistence
     stage, it is highly desirable that a gateway design provide for
     future extensions to support more than one protocol simultaneous,
     and in particular both IP and CLNS [18].

     Present NSF gateway requirements do not include protocols above
     the network layer, such as TCP, unless necessary for network
     monitoring or control.  Vendors should recognize that future
     requirements to interwork between Internet and ISO applications,
     for example, may result in an opportunity to market gateways
     supporting multiple protocols at all levels up through the
     application level [16].  It is expected that the network-level NSF
     gateway requirements summarized in this document will be
     incorporated in the requirements document for these
     application-level gateways.

     Internet gateways function as intermediate systems (IS) with
     respect to the ISO connectionless network model and incorporate
     defined packet formats, routing algorithms and related procedures
     [33, 34].  The ISO ES-IS [37] provides the functions of ARP and
     ICMP Redirect.

  B.5.  Access Control and Accounting

     There are no requirements for NSF gateways at this time to
     incorporate specific access-control and accounting mechanisms in
     the design;  however, these important issues are currently under
     study and will be incorporated into a subsequent edition of this
     document.  Vendors are encouraged to plan for the introduction of
     these mechanisms into their products.  While at this time no
     definitive common model for access control and accounting has
     emerged, it is possible to outline some general features such a
     model is likely to have, among them the following:





Braden & Postel                                                [Page 48]



RFC 1009 - Requirements for Internet Gateways                  June 1987


        1.  The primary access control and accounting mechanisms will
            be in the service hosts themselves, not the gateways,
            packet-switches or workstations.

        2.  Agents acting on behalf of access control and accounting
            mechanisms may be necessary in the gateways, to collect
            data, enforce password protection, or mitigate resource
            priority and fairness.  However, the architecture and
            protocols used by these agents may be a local matter and
            cannot be specified in advance.

        3.  NSF gateways may be required to incorporate access control
            and accounting mechanisms based on datagram
            source/destination address, as well as other fields in the
            IP header.

        4.  NSF gateways may be required to enforce policies on access
            to gateway and communication resources.  These policies may
            be based upon equity ("fairness") or upon inequity
            ("priority").






























Braden & Postel                                                [Page 49]



RFC 1009 - Requirements for Internet Gateways                  June 1987


Acknowledgments

  An earlier version of this document (RFC-985) [60] was prepared by
  Dave Mills in behalf of the Gateway Requirements Subcommittee of the
  NSF Network Technical Advisory Group, in cooperation with the
  Internet Activities Board, Internet Architecture Task Force, and
  Internet Engineering Task Force.  This effort was chaired by Dave
  Mills, and contributed to by many people.

  The authors of current document have also received assistance from
  many people in the NSF and ARPA networking community.  We thank you,
  one and all.






































Braden & Postel                                                [Page 50]



RFC 1009 - Requirements for Internet Gateways                  June 1987


References and Bibliography

  Many of these references are  available from the DDN Network
  Information Center, SRI International, 333 Ravenswood Avenue, Menlo
  Park, California 94025 (telephone: 800-235-3155).

  [1]   Postel, J., "Internet Protocol", RFC-791, USC Information
        Sciences Institute, September 1981.

  [2]   Postel, J., "Internet Control Message Protocol", RFC-792, USC
        Information Sciences Institute, September 1981.

  [3]   BBN, "Interface Message Processor - Specifications for the
        Interconnection of a Host and an IMP", Report 1822, Bolt
        Beranek and Newman, December 1981.

  [4]   Plummer, D., "An Ethernet Address Resolution Protocol",
        RFC-826, Symbolics, September 1982.

  [5]   DOD, "Military Standard Internet Protocol", Military Standard
        MIL-STD-1777, United States Department of Defense, August 1983.

  [6]   BBN, "Defense Data Network X.25 Host Interface Specification",
        Report 5476, Bolt Beranek and Newman, December 1983.

  [7]   Hinden, R., "A Host Monitoring Protocol", RFC-869, BBN
        Communications, December 1983.

  [8]   Korb, J.T., "A Standard for the Transmission of IP Datagrams
        over Public Data Networks", RFC-877, Purdue University,
        September 1983.

  [9]   Nagle, J., "Congestion Control in IP/TCP Internetworks",
        RFC-896, Ford Aerospace, January 1984.

  [10]  Hornig, C., "A Standard for the Transmission of IP Datagrams
        over Ethernet Networks", RFC-894, Symbolics, April 1984.

  [11]  Mills, D.L., "Exterior Gateway Formal Specification", RFC-904,
        M/A-COM Linkabit, April 1984.

  [12]  Xerox, "Xerox Synchronous Point-to-Point Protocol", Xerox
        System Integration Standard 158412, December 1984.

  [13]  Kirton, P., "EGP Gateway under Berkeley UNIX 4.2", RFC-911, USC
        Information Sciences Institute, August 1984.




Braden & Postel                                                [Page 51]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  [14]  Postel, J., "Multi-LAN Address Resolution", RFC-925, USC
        Information Sciences Institute, October 1984.

  [15]  Finlayson, R., T. Mann, J. Mogul, and M. Theimer, "A Reverse
        Address Resolution Protocol", RFC-904, Stanford University,
        June 1984.

  [16]  NRC, "Transport Protocols for Department of Defense Data
        Networks", RFC-942, National Research Council, March 1985.

  [17]  Postel, J., "DOD Statement on NRC Report", RFC-945, USC
        Information Sciences Institute, April 1985.

  [18]  ISO, "Addendum to the Network Service Definition Covering
        Network Layer Addressing", RFC-941, International Standards
        Organization, April 1985.

  [19]  Leiner, B., J. Postel, R. Cole and D. Mills, "The DARPA
        Internet Protocol Suite", Proceedings INFOCOM 85, IEEE,
        Washington DC, March 1985.  Also in: IEEE Communications
        Magazine, March 1985.  Also available as ISI-RS-85-153.

  [20]  Romkey, J., "PC/IP Programmer's Manual", MIT Laboratory for
        Computer Science, pp. 57-59, April 1986.

  [21]  Mogul, J., and J. Postel, "Internet Standard Subnetting
        Procedure", RFC-950, Stanford University, August 1985.

  [22]  Reynolds, J., and J. Postel, "Official Internet Protocols",
        RFC-1011, USC Information Sciences Institute, May 1987.

  [23]  Reynolds, J., and J. Postel, "Assigned Numbers", RFC-1010, USC
        Information Sciences Institute, May 1987.

  [24]  Nagle, J., "On Packet Switches with Infinite Storage", RFC-970,
        Ford Aerospace, December 1985.

  [25]  SRI, "DDN Protocol Handbook", NIC-50004, NIC-50005, NIC-50006,
        (three volumes), SRI International, December 1985.

  [26]  SRI, "ARPANET Information Brochure", NIC-50003, SRI
        International, December 1985.

  [27]  Mills, D.L., "Autonomous Confederations", RFC-975, M/A-COM
        Linkabit, February 1986.

  [28]  Jacobsen, O., and J. Postel, "Protocol Document Order
        Information",  RFC-980, SRI International, March 1986.


Braden & Postel                                                [Page 52]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  [29]  Malis, A.G., "PSN End-to-End Functional Specification",
        RFC-979, BBN Communications, March 1986.

  [30]  Postel, J, "Internetwork Applications using the DARPA Protocol
        Suite", Proceedings INFOCOM 85, IEEE, Washington DC,
        March 1985.  Also available as ISI-RS-85-151.

  [31]  Postel, J, C. Sunshine, and D. Cohen, "The ARPA Internet
        Protocol", Computer Networks, Vol. 5, No. 4, July 1981.

  [32]  Cerf, V., and R. Kahn, "A Protocol for Packet Network
        Intercommunication", IEEE Transactions on Communication,
        May 1974.

  [33]  ISO, "Protocol for Providing the Connectionless-mode Network
        Service", RFC-994, DIS-8473, International Standards
        Organization, March 1986.

  [34]  ANSI, "Draft Network Layer Routing Architecture", ANSI X3S3.3,
        86-215R, April 1987.

  [35]  Rosen, E., "Exterior Gateway Protocol (EGP)", RFC-827, Bolt
        Beranek and Newman, October 1982.

  [36]  Sidhu, D., "Some Problems with the Specification of the
        Military Standard Internet Protocol", RFC-963, Iowa State
        University, November 1985.

  [37]  ISO, "End System to Intermediate System Routing Exchange
        Protocol for use in conjunction with ISO 8473", RFC-995,
        April 1986.

  [38]  Postel, J., "Address Mappings", RFC-796, USC/Information
        Sciences Institute, September 1981.

  [39]  Mills, D., "DCN Local Network Protocols", RFC-891, M/A-COM
        Linkabit, December 1983.

  [40]  McQuillan, J. M., I. Richer, and E. C. Rosen, "The New Routing
        Algorithm for the ARPANET",  IEEE Transactions on
        Communications, May 1980.

  [41]  Hinden, R., and A. Sheltzer, "The DARPA Internet Gateway",
        RFC-823, Bolt Beranek and Newman, September 1982.

  [42]  Farber, D., G. Delp, and T. Conte, "A Thinwire Protocol for
        Connecting Personal Computers to the Internet", RFC-914,
        University of Delaware, September 1984.


Braden & Postel                                                [Page 53]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  [43]  Mills, D., "Statistics Server", RFC-996, University Of
        Delaware, February 1987.

  [44]  Postel, J. and K. Harrenstien, "Time Protocol", RFC-868,
        May 1983.

  [45]  Mills, D., "Network Time Protocol (NTP)", RFC-958, M/A-Com
        Linkabit, September 1985.

  [46]  Seamonson, L., and E. Rosen, "Stub Exterior Gateway Protocol",
        RFC-888, Bolt Beranek And Newman, January 1984.

  [47]  Deering, S., and D. Cheriton, "Host Groups: A Multicast
        Extension to the Internet Protocol", RFC-966, Stanford
        University, December 1985.

  [48]  Deering, S., "Host Extensions for IP Multicasting", RFC-988,
        Stanford University, July 1986.

  [49]  Mogul, J., "Broadcasting Internet Datagrams", RFC-919, Stanford
        University, October 1984.

  [50]  Mogul, J., "Broadcasting Internet Datagrams in the Presence of
        Subnets", RFC-922, Stanford University, October 1984.

  [51]  Rosen, E., "Exterior Gateway Protocol", RFC-827, Bolt Beranek
        and Newman, October 1982.

  [52]  Rose, M., "Low Tech Connection into the ARPA Internet: The Raw
        Packet Split Gateway", Technical Report 216, Department of
        Information and Computer Science, University of California,
        Irvine, February 1984.

  [53]  Rosen, E., "Issues in Buffer Management", IEN-182, Bolt Beranek
        and Newman, May 1981.

  [54]  Rosen, E., "Logical Addressing", IEN-183, Bolt Beranek and
        Newman, May 1981.

  [55]  Rosen, E., "Issues in Internetting - Part 1: Modelling the
        Internet", IEN-184, Bolt Beranek and Newman, May 1981.

  [56]  Rosen, E., "Issues in Internetting - Part 2: Accessing the
        Internet", IEN-187, Bolt Beranek and Newman, June 1981.

  [57]  Rosen, E., "Issues in Internetting - Part 3: Addressing",
        IEN-188, Bolt Beranek and Newman, June 1981.



Braden & Postel                                                [Page 54]



RFC 1009 - Requirements for Internet Gateways                  June 1987


  [58]  Rosen, E., "Issues in Internetting - Part 4: Routing", IEN-189,
        Bolt Beranek and Newman, June 1981.

  [59]  Sunshine, C., "Comments on Rosen's Memos", IEN-191, USC
        Information Sciences Institute, July 1981.

  [60]  NTAG, "Requirements for Internet Gateways -- Draft", RFC-985,
        Network Technical Advisory Group, National Science Foundation,
        May 1986.

  [61]  Khanna, A., and Malis, A., "The ARPANET AHIP-E Host Access
        Protocol (Enhanced AHIP)", RFC-1005, BBN Communications,
        May 1987

  [62]  Nagle, J., "Congestion Control in IP/TCP Internetworks", ACM
        Computer Communications Review, Vol.14, no.4, October 1984.


































Braden & Postel                                                [Page 55]