This memo replaces for RFC 1716, "Requirements for Internet Gateways"
([INTRO:1]).
This memo defines and discusses requirements for devices that perform
the network layer forwarding function of the Internet protocol suite.
The Internet community usually refers to such devices as IP routers or
simply routers; The OSI community refers to such devices as
intermediate systems. Many older Internet documents refer to these
devices as gateways, a name which more recently has largely passed out
of favor to avoid confusion with application gateways.
An IP router can be distinguished from other sorts of packet switching
devices in that a router examines the IP protocol header as part of
the switching process. It generally removes the Link Layer header a
message was received with, modifies the IP header, and replaces the
Link Layer header for retransmission.
The authors of this memo recognize, as should its readers, that many
routers support more than one protocol. Support for multiple protocol
suites will be required in increasingly large parts of the Internet in
the future. This memo, however, does not attempt to specify Internet
requirements for protocol suites other than TCP/IP.
This document enumerates standard protocols that a router connected to
the Internet must use, and it incorporates by reference the RFCs and
other documents describing the current specifications for these
protocols. It corrects errors in the referenced documents and adds
additional discussion and guidance for an implementor.
For each protocol, this memo also contains an explicit set of
requirements, recommendations, and options. The reader must
understand that the list of requirements in this memo is incomplete by
itself. The complete set of requirements for an Internet protocol
router is primarily defined in the standard protocol specification
documents, with the corrections, amendments, and supplements contained
in this memo.
This memo should be read in conjunction with the Requirements for
Internet Hosts RFCs ([INTRO:2] and [INTRO:3]). Internet hosts and
routers must both be capable of originating IP datagrams and receiving
IP datagrams destined for them. The major distinction between
Internet hosts and routers is that routers implement forwarding
algorithms, while Internet hosts do not require forwarding
capabilities. Any Internet host acting as a router must adhere to the
requirements contained in this memo.
The goal of open system interconnection dictates that routers must
function correctly as Internet hosts when necessary. To achieve this,
this memo provides guidelines for such instances. For simplification
and ease of document updates, this memo tries to avoid overlapping
discussions of host requirements with [INTRO:2] and [INTRO:3] and
incorporates the relevant requirements of those documents by
reference. In some cases the requirements stated in [INTRO:2] and
[INTRO:3] are superseded by this document.
A good-faith implementation of the protocols produced after careful
reading of the RFCs should differ from the requirements of this memo
in only minor ways. Producing such an implementation often requires
some interaction with the Internet technical community, and must
follow good communications software engineering practices. In many
cases, the requirements in this document are already stated or implied
in the standard protocol documents, so that their inclusion here is,
in a sense, redundant. They were included because some past
implementation has made the wrong choice, causing problems of
interoperability, performance, and/or robustness.
This memo includes discussion and explanation of many of the
requirements and recommendations. A simple list of requirements would
be dangerous, because:
Some required features are more important than others, and some
features are optional.
Some features are critical in some applications of routers but
irrelevant in others.
There may be valid reasons why particular vendor products that are
designed for restricted contexts might choose to use different
specifications.
However, the specifications of this memo must be followed to meet the
general goal of arbitrary router interoperation across the diversity
and complexity of the Internet. Although most current implementations
fail to meet these requirements in various ways, some minor and some
major, this specification is the ideal towards which we need to move.
These requirements are based on the current level of Internet
architecture. This memo will be updated as required to provide
additional clarifications or to include additional information in
those areas in which specifications are still evolving.