summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2091.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2091.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2091.txt')
-rw-r--r--doc/rfc/rfc2091.txt1235
1 files changed, 1235 insertions, 0 deletions
diff --git a/doc/rfc/rfc2091.txt b/doc/rfc/rfc2091.txt
new file mode 100644
index 0000000..76a164d
--- /dev/null
+++ b/doc/rfc/rfc2091.txt
@@ -0,0 +1,1235 @@
+
+
+
+
+
+
+Network Working Group G. Meyer
+Request for Comments: 2091 Shiva
+Category: Standards Track S. Sherry
+ Xyplex
+ January 1997
+
+
+ Triggered Extensions to RIP to Support Demand Circuits
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Abstract
+
+ This document defines a modification which can be applied to
+ Bellman-Ford (distance vector) algorithm information broadcasting
+ protocols - for example IP RIP, Netware RIP or Netware SAP - which
+ makes it feasible to run them on connection oriented Public Data
+ Networks.
+
+ This proposal has a number of efficiency advantages over the Demand
+ RIP proposal (RFC 1582).
+
+Acknowledgements
+
+ The authors wish to thank Richard Edmonstone of Shiva, Joahanna
+ Kruger of Xyplex, Steve Waters of DEC and Guenter Roeck of Conware
+ for many comments and suggestions which improved this effort.
+
+Conventions
+
+ The following language conventions are used in the items of
+ specification in this document:
+
+ o MUST -- the item is an absolute requirement of the specification.
+ MUST is only used where it is actually required for
+ interoperation, not to try to impose a particular method on
+ implementors where not required for interoperability.
+
+ o SHOULD -- the item should be followed for all but exceptional
+ circumstances.
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 1]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ o MAY or optional -- the item is truly optional and may be followed
+ or ignored according to the needs of the implementor.
+
+ The words "should" and "may" are also used, in lower case, in
+ their more ordinary senses.
+
+Table of Contents
+
+ 1. Introduction ........................................... 2
+ 2. Overview ............................................... 3
+ 3. The Routing Database ................................... 5
+ 3.1. Presumption of Reachability ...................... 6
+ 3.2. Alternative Routes ............................... 6
+ 3.3. Split Horizon with Poisoned Reverse .............. 7
+ 3.4. Managing Updates ................................. 7
+ 3.5. Retransmissions .................................. 7
+ 4. New Packet Types ....................................... 8
+ 4.1. Update Request (9) ............................... 9
+ 4.2. Update Response (10) ............................. 9
+ 4.3. Update Acknowledge (11) .......................... 10
+ 5. Packet Formats ......................................... 10
+ 5.1. Update Header .................................... 10
+ 5.2. IP Routing Information Protocol Version 1 ........ 11
+ 5.3. IP Routing Information Protocol Version 2 ........ 11
+ 5.4. Netware Routing Information Protocol ............. 12
+ 5.5. Netware Service Advertising Protocol ............. 12
+ 6. Timers ................................................. 17
+ 6.1. Database Timer ................................... 17
+ 6.2. Hold Down Timer .................................. 17
+ 6.3. Retransmission Timer ............................. 18
+ 6.4. Over-subscription Timer .......................... 18
+ 7. Security Considerations ................................ 19
+ Appendix A - Implementation Suggestion .................... 20
+ References ................................................ 21
+ Authors' Addresses ........................................ 22
+
+1. Introduction
+
+ Routers are used on connection oriented networks, such as X.25 packet
+ switched networks and ISDN networks, to allow potential connectivity
+ to a large number of remote destinations. Circuits on the Wide Area
+ Network (WAN) are established on demand and are relinquished when the
+ traffic subsides. Depending on the application, the connection
+ between any two sites for user data might actually be short and
+ relatively infrequent.
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 2]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ Periodic broadcasting by Bellman-Ford (distance vector) algorithm
+ information broadcasting protocols IP RIP [1], IP RIP V2 [2] or
+ Netware RIP and SAP [3] generally prevents WAN circuits from being
+ closed. Even on fixed point-to-point links the overhead of periodic
+ transmission of RIP - and even more so SAP broadcasts - can seriously
+ interrupt normal data transfer simply through the quantity of
+ information which hits the line every 30 or 60 seconds.
+
+ To overcome these limitations, this specification modifies the
+ distance vector protocols so as to send information on the WAN only
+ when there has been an update to the routing database OR a change in
+ the reachability of a next hop router is indicated by the task which
+ manages connections on the WAN.
+
+ Because datagrams are not guaranteed to get through on all WAN media,
+ an acknowledgement and retransmission system is required to provide
+ reliability.
+
+ The protocols run unmodified on Local Area Networks (LANs) and so
+ interoperate transparently with implementations adhering to the
+ original specifications.
+
+ This proposal differs from Demand RIP [4] conceptually as follows:
+
+ o If a router has exchanged all routing information with its partner
+ and some routing information subsequently changes only the changed
+ information is sent to the partner.
+
+ o The receiver of routes is able to apply all changes immediately
+ upon receiving information from a partner.
+
+ These differences lead to further reduced routing traffic and also
+ require less memory than Demand RIP [4]. Demand RIP also has an
+ upper limit of 255 fragments in an update which is lifted in
+ Triggered RIP (which does not use fragmentation).
+
+2. Overview
+
+ Multiprotocol routers are used on connection oriented Wide Area
+ Networks (WANs), such as X.25 packet switched networks and ISDN
+ networks, to interconnect LANs. By using the multiplexing properties
+ of the underlying WAN technology, several LANs can be interconnected
+ simultaneously through a single physical interface on the router.
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 3]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ A circuit manager provides an interface between the connectionless
+ network layers, IP and IPX, and the connection oriented WAN, X.25,
+ ISDN etc. Figure 1 shows a schematic representative stack showing
+ the relationship between routing protocols, the network layers, the
+ circuit manager and the connection oriented WAN.
+
+ -------------- --------- ---------
+ | RIP | | RIP | | SAP |
+ -------------- --------- ---------
+ | | |
+ -------------- | |
+ | UDP | | |
+ -------------- | |
+ | | |
+ -------------- ----------------
+ | IP | | IPX |
+ -------------- ----------------
+ | |
+ -------------------------------------------
+ | Circuit Manager |
+ -------------------------------------------
+ ||||||||||
+ ||||||||||
+ ---------------------------
+ | Connection Oriented |
+ | WAN stack |
+ ---------------------------
+
+ A WAN circuit manager will support a variety of network
+ layer protocols, on its upper interface. On its lower interface,
+ it may support one or more subnetworks. A subnetwork may support
+ a number of Virtual Circuits.
+
+ Figure 1. Representative Multiprotocol Router stack
+
+ The router has a translation table which relates the network layer
+ address of the next hop router to the physical address used to
+ establish a Virtual Circuit (VC) to it.
+
+ The circuit manager takes datagrams from the connectionless network
+ layer protocols and (if one is not currently available) opens a VC to
+ the next hop router. A VC can carry all traffic between two end-
+ point routers for a given network layer protocol (or with appropriate
+ encapsulation all network layer protocols). An idle timer (or some
+ other mechanism) is used to close the VC when the datagrams stop
+ arriving at the circuit manager.
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 4]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ If the circuit manager has data to forward (whether user data OR a
+ routing update) and fails to obtain a VC it informs the routing
+ application that the destination is unreachable (circuit down). The
+ circuit manager is then expected to perform whatever is necessary to
+ recover the link. Once successful, it informs the routing
+ application (circuit up).
+
+ In Triggered RIP, routing updates are only transmitted on the WAN
+ when required:
+
+ 1 When a specific request for a routing update has been received.
+
+ 2 When the routing database is modified by new information from
+ another interface.
+
+ 3 When the circuit manager indicates that a destination has changed
+ from an unreachable (circuit down) to a reachable (circuit up)
+ state.
+
+ 4 And also when a unit is first powered on to ensure that at least
+ one update is sent. This can be thought of as a transition from
+ circuit down to circuit up. It MAY contain no routes or services,
+ and is used to flush routes or services from the peer's database.
+
+ In cases 1,3 and 4 the full contents of the database is sent. In
+ case 2 only the latest changes are sent.
+
+ Because of the inherent unreliability of a datagram based system,
+ both routing requests and routing responses require acknowledgement,
+ and retransmission in the event of NOT receiving an acknowledgement.
+
+3. The Routing Database
+
+ Entries in the routing database can either be permanent or temporary.
+ Entries learned from broadcasts on LANs are temporary. They will
+ expire if not periodically refreshed by further broadcasts.
+
+ Entries learned from a triggered response on the WAN are 'permanent'.
+ They MUST not time out in the normal course of events. Certain
+ events can cause these routes to time out.
+
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 5]
+
+RFC 2091 Trigger RIP January 1997
+
+
+3.1 Presumption of Reachability
+
+ If a routing update is received from a next hop router on the WAN,
+ entries in the update are thereafter always considered to be
+ reachable, unless proven otherwise:
+
+ o If in the normal course of routing datagrams, the circuit manager
+ fails to establish a connection to the next hop router, it
+ notifies the routing application that the next hop router is not
+ reachable through an internal circuit down message.
+
+ The database entries are first marked as temporary and aged
+ normally; Some implementations may choose to omit this initial
+ aging step. The routing application then marks the appropriate
+ database entries as unreachable for a hold down period (the normal
+ 120 second RIP hold down timer).
+
+ o If the circuit manager is subsequently able to establish a
+ connection to the next hop router, it will notify the routing
+ application that the next hop router is reachable through an
+ internal circuit up message.
+
+ The routing application will then exchange messages with the next
+ hop router so as to re-prime their respective routing databases
+ with up-to-date information.
+
+ The next hop router may also be marked as unreachable if an excessive
+ number of retransmissions of an update go unacknowledged (see section
+ 6.3).
+
+ Handling of circuit up and circuit down messages requires that the
+ circuit manager takes responsibility for establishing (or re-
+ establishing) the connection in the event of a next hop router
+ becoming unreachable. A description of the processes the circuit
+ manager adopts to perform this task is outside the scope of this
+ document.
+
+3.2 Alternative Routes
+
+ A requirement of using Triggered RIP for propagating routing
+ information is that NO routing information ever gets LOST or
+ DISCARDED. This means that all alternative routes SHOULD be
+ retained.
+
+ It MAY be possible to operate with a sub-set of all alternative
+ routes, but this adds complexity to the protocol - which is NOT
+ covered in this document.
+
+
+
+
+Meyer & Sherry Standards Track [Page 6]
+
+RFC 2091 Trigger RIP January 1997
+
+
+3.3 Split Horizon with Poisoned Reverse
+
+ The rules for Split Horizon with Poisoned Reverse MUST be used to
+ determine whether and/or how a route is advertised on an interface
+ running this protocol.
+
+ Split Horizon consists of omitting routes learned from a peer when
+ sending updates back to that peer. With Poisoned Reverse instead of
+ omitting those routes, they are advertised as unreachable (setting
+ the metric to infinity).
+
+ A route is only poisoned if it is the best route (rather than an
+ inferior alternative route) in the database.
+
+ Poison Reverse is necessary because a router may be advertising a
+ route to a network to its partner and then later learn a better route
+ for the same network from the partner. Without Poison Reverse the
+ partner will not know to discard the inferior route learned from the
+ first router.
+
+3.4 Managing Routing Updates
+
+ The routing database SHOULD be considered to be a sequence of
+ elements ordered by the time it was last updated. If there is a
+ change in the best route (i.e. a new route is added or a route's
+ metric has changed), the route is reordered and given a new highest
+ sequence number.
+
+ Sending updates to a peer consists of running through the database
+ from the oldest entry to the newest entry. Once an entry has been
+ sent and acknowledged it is generally never resent. As new routing
+ information arrives, only the new information is sent.
+
+3.5 Retransmissions
+
+ Handling retransmission of updates is simplest if updates are
+ restricted to never having more than one un-acknowledged update
+ outstanding - "one packet in flight". A copy of the update packet
+ can be kept and retransmitted until acknowledged - and then
+ subsequent update packets are sent in turn until the full database
+ (to date) has been sent and acknowledged.
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 7]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ Things become more complicated if several packets are sent in quick
+ succession without waiting for an acknowledgements between packets -
+ "several packets in flight":
+
+ o If packets arrive out of order they could corrupt the peer's
+ database. If the underlying datalink layer bundles several VCs,
+ it MUST guarantee to NOT reorder datagrams.
+
+ o If the elements making up a packet requiring retransmission change
+ because of an alteration in the database, stale incorrect
+ information could be sent (again new information could overtake
+ old information).
+
+ To guard against this when 'retransmitting' a packet when the
+ database is in flux the packet MUST be re-created from the database
+ to contain only the subset of routes which currently apply. And if
+ none of the routes still apply, nothing will be 'retransmitted'.
+
+ For simplicity of implementation we would advise having only one
+ packet in flight. However if the 'round trip' for a response and
+ acknowledgement is quite long this could significantly delay large
+ updates. See Appendix A for an understanding of the additional
+ complexity of managing several packets in flight.
+
+4. New Packet Types
+
+ To support triggered updates, three new packet types MUST be
+ supported. For IP RIP Version 1 [1] and IP RIP Version 2 [2] these
+ are identified by the Command Field values shown:
+
+ o 9 - Update Request
+
+ o 10 - Update Response
+
+ o 11 - Update Acknowledge
+
+ For Netware RIP and SAP [3] the equivalent Field to distinguish
+ between packet types is called Operation and these take the same
+ values.
+
+ These Command and Operation types require the addition of a 4 octet
+ Update header. All three packet types contain a Version, which MUST
+ be 1. Update Response and Update Acknowledge also have a Sequence
+ Number and a Flush Flag.
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 8]
+
+RFC 2091 Trigger RIP January 1997
+
+
+4.1 Update Request
+
+ The Update Request has the Command/Operation value 9.
+
+ It is a request to the peer system to send ALL appropriate elements
+ in its routing database. It is retransmitted at periodic intervals
+ (every 5 seconds) until an Update Response message is received with
+ the Flush flag set.
+
+ An Update Request is transmitted in the following circumstances:
+
+ o Firstly when the router is powered on.
+
+ o Secondly when the circuit manager indicates a destination has been
+ in an unreachable (circuit down) state and changes to a reachable
+ (circuit up) state.
+
+ An Update Request may also be sent at other times to compensate for
+ discarding non-optimal routing information or if an Update Response
+ continues to be unacknowledged (see section 6.3).
+
+4.2 Update Response
+
+ The Update Response has the Command/Operation value 10.
+
+ It is a message containing zero or more routes in an update. It is
+ retransmitted at periodic intervals until an Update Acknowledge is
+ received.
+
+ An Update Response message MUST be sent:
+
+ o In response to an Update Request. The Update Response MUST have
+ the Flush flag set. Other Update Responses should NOT be sent
+ until an Update Acknowledge has been received acknowledging the
+ Flush flag.
+
+ The remainder of the database MUST then be sent as a series of
+ Update Responses with the Flush flag NOT set.
+
+ o An Update Response with the Flush flag set MUST also be sent at
+ power on to flush the peer's routing table learned from a previous
+ incarnation. This Update Response SHOULD NOT contain any routes.
+ This avoids any possibility of an acknowledgement being received
+ to a response sent BEFORE the unit was restarted causing confusion
+ about which routes are being acknowledged.
+
+ Update Response messages continue to be sent any time there is fresh
+ routing information to be propagated.
+
+
+
+Meyer & Sherry Standards Track [Page 9]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ Each new Update Response is given a different Sequence Number. The
+ Sequence Number only has 'meaning' to the sender of the Update
+ Response. The same Update Response sent to different peers MAY have
+ a different Sequence Number.
+
+ An Update Response packet with the Flush flag set MUST be sent to a
+ peer:
+
+ o At power on.
+
+ o In response to an Update Request packet.
+
+ o After transitioning from a circuit down to a circuit up state.
+
+ After sending an Update Flush, the full database MUST be sent
+ subsequently.
+
+4.3 Update Acknowledge
+
+ The Update Acknowledge has the Command/Operation value 11.
+
+ It is a message sent in response to every Update Response packet
+ received. If the Update Response packet has the flush flag set then
+ so should the Update Acknowledge packet.
+
+5. Packet Formats
+
+5.1 Update Header
+
+ To support the mechanism outlined in this proposal the packet format
+ for RIP Version 1 [1], RIP Version 2 [2] and Netware RIP and SAP [3]
+ are modified to include an additional small header when using
+ Commands Update Request (9), Update Response (10) and Update
+ Acknowledge (11). Commands are called Operations in Netware.
+
+ Update Request (9):
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Version (1) | must be zero (3) |
+ +-------------------------------+-------------------------------+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 10]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ Update Response (10) and Update Acknowledge (11):
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Version (1) | Flush (1) | Sequence Number (2) |
+ +-------------------------------+-------------------------------+
+
+
+ Four octet Update headers, with each tick mark representing one
+ bit. All fields are coded in network byte order (big-endian).
+
+
+ Figure 2. Update Headers.
+
+ Version MUST be 1 in all headers. Any packets received for a
+ different Version MUST be silently discarded.
+
+ The Sequence Number MUST be incremented every time a new Update
+ Response packet is sent on the WAN. The Sequence Number is unchanged
+ for retransmissions. The Sequence Number wraps round at 65535.
+
+ Flush is set to 1 in an Update Response if the peer is required to
+ start timing out its entries - otherwise it is set to zero. Any
+ other values MUST be silently discarded.
+
+ The peer returns an Update Acknowledge containing the same Sequence
+ Number and Flush.
+
+5.2 IP Routing Information Protocol Version 1
+
+ IP RIP [1] is a UDP-based protocol which generally sends and receives
+ datagrams on UDP port number 520.
+
+ To support the mechanism outlined in this proposal the packet format
+ for RIP Version 1 [1] is modified when using Commands Update Request
+ (9), Update Response (10) and Update Acknowledge (11). See Figure 3.
+
+5.3 IP Routing Information Protocol Version 2
+
+ IP RIP Version 2 [2] is an enhancement to IP RIP Version 1 which
+ allows RIP updates to include subnetting information.
+
+ To support the mechanism outlined in this proposal the packet format
+ for RIP Version 2 [2] is modified when using Commands Update Request
+ (9), Update Response (10) and Update Acknowledge (11). See Figure 4.
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 11]
+
+RFC 2091 Trigger RIP January 1997
+
+
+5.4 Netware Routing Information Protocol
+
+ Netware [3] supports a mechanism that allows routers on an
+ internetwork to exchange routing information using the Routing
+ Information Protocol (RIP) which runs over the Internetwork Packet
+ Exchange (IPX) protocol using socket number 453h.
+
+ To support the mechanism outlined in this proposal the packet format
+ for Novell RIP [3] is modified when using Operations Update Request
+ (9), Update Response (10) and Update Acknowledge (11). See Figure 5.
+
+5.5 Netware Service Advertising Protocol
+
+ Netware [3] also supports a mechanism that allows servers on an
+ internetwork to advertise their services by name and type using the
+ Service Advertising Protocol (SAP) which runs over the Internetwork
+ Packet Exchange (IPX) protocol using socket number 452h. SAP
+ operates on similar principals to running RIP. Routers act as SAP
+ agents, collecting service information from different networks and
+ relay it to interested parties.
+
+ To support the mechanism outlined in this proposal the packet format
+ for Novell SAP [3] is modified when using Operations Update Request
+ (9), Update Response (10) and Update Acknowledge (11). See Figure 6.
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Command (1) | RIP Version (1)| must be zero (2) |
+ +---------------+---------------+-------------------------------+
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Update Header (4) |
+ +-------------------------------+-------------------------------+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 12]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ Update Response then has up to 25 routing entries (each 20 octets):
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Address Family Identifier (2) | must be zero (2) |
+ +-------------------------------+-------------------------------+
+ | IP address (4) |
+ +---------------------------------------------------------------+
+ | must be zero (4) |
+ +---------------------------------------------------------------+
+ | must be zero (4) |
+ +---------------------------------------------------------------+
+ | Metric (4) |
+ +---------------------------------------------------------------+
+ .
+ .
+
+ The format of an IP RIP datagram in octets, with each tick mark
+ representing one bit. All fields are coded in network byte order
+ (big-endian).
+
+ The four octets of the Update header are included in Update Request
+ (Command 9), Update Response (10) and Update Acknowledge (11)
+ packets. They are not present in packet types in the original RIP
+ Version 1 specification.
+
+ Figure 3. IP RIP Version 1 packet format
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 13]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Command (1) |RIP Version (1)| must be zero (2) |
+ +---------------+---------------+-------------------------------+
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Update Header (4) |
+ +-------------------------------+-------------------------------+
+
+ Update Response then has up to 25 routing entries (each 20 octets):
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Address Family Identifier (2) | Route Tag (2) |
+ +-------------------------------+-------------------------------+
+ | IP address (4) |
+ +---------------------------------------------------------------+
+ | Subnet Mask (4) |
+ +---------------------------------------------------------------+
+ | Next Hop (4) - must be zero |
+ +---------------------------------------------------------------+
+ | Metric (4) |
+ +---------------------------------------------------------------+
+ .
+ .
+
+ The format of an IP RIP Version 2 datagram in octets, with each
+ tick mark representing one bit. All fields are coded in network
+ byte order (big-endian).
+
+ The four octets of the Update header are included in Update Request
+ (Command 9), Update Response (10) and Update Acknowledge (11)
+ Packets. They are not present in packet types in the original RIP
+ Version 2 specification.
+
+ Next Hop MUST be zero, since Triggered RIP can NOT advertise routes
+ on behalf of other WAN routers.
+
+ If authentication is used it immediately follows the Update header.
+
+ Figure 4. IP RIP Version 2 packet format
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 14]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ 0 1 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Operation (2) |
+ +---------------+---------------+
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Update Header (4) |
+ +-------------------------------+-------------------------------+
+
+ Update Response then has up to 50 routing entries (each 8 octets):
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Network Number (4) |
+ +---------------------------------------------------------------+
+ | Number of Hops (2) | Number of Ticks (2) |
+ +---------------------------------------------------------------+
+ .
+ .
+
+ The format of a Netware RIP datagram in octets, with each tick mark
+ representing one bit. All fields are coded in network byte order
+ (big-endian).
+
+ The four octets of the Update header are included in Update Request
+ (Operation 9), Update Response (10) and Update Acknowledge (11)
+ packets. They are not present in packet types in the original
+ Novell RIP specification.
+
+ Figure 5. Netware RIP packet format
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 15]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ 0 1 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Operation (2) |
+ +---------------+---------------+
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Update Header (4) |
+ +-------------------------------+-------------------------------+
+
+ Update Response then has up to 8 service entries (each 64 octets):
+
+ 0 1 2 3 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Service Type (2) | |
+ +-------------------------------+ |
+ | Service Name (48) |
+ | . |
+ .
+ . +-------------------------------+
+ | . | Network Address (4) |
+ +-------------------------------+-------------------------------+
+ | Network Address (cont) | |
+ +-------------------------------+ |
+ | Node Address (6) |
+ +-------------------------------+-------------------------------+
+ | Socket Address (2) | Hops to Server (2) |
+ +-------------------------------+-------------------------------+
+ .
+ .
+
+ The format of a Netware SAP datagram in octets, with each tick mark
+ representing one bit. All fields are coded in network byte order
+ (big-endian).
+
+ The four octets of the Update header are included in Update Request
+ (Operation 9), Update Response (10) and Update Acknowledge (11)
+ packets. They are not present in packet types in the original
+ Novell SAP specification.
+
+
+ Figure 6. Netware SAP packet format
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 16]
+
+RFC 2091 Trigger RIP January 1997
+
+
+6. Timers
+
+ Three timers are supported to handle the triggered update mechanism:
+
+ o Database timer.
+
+ o Hold down timer.
+
+ o Retransmission timer.
+
+ An optional over-subscription timer MAY also be supported.
+
+6.1 Database Timer
+
+ Routes learned by an Update Response are normally considered to be
+ permanent.
+
+ When an Update Response with the Flush flag set is received, all
+ routes learned from that next hop router should start timing out as
+ if they had (just) been learned from a conventional Response (Command
+ 2).
+
+ Namely each route exists while the database entry timer (usually 180
+ seconds) is running and is advertised on other interfaces as if still
+ present. The route is then advertised as unreachable while a further
+ hold down timer is allowed to expire.
+
+6.2 Hold down Timer
+
+ A hold down timer of 120 seconds is started on a route:
+
+ o When the database timer for the route expires.
+
+ o When a formerly reachable route changes to unreachable in an
+ incoming response.
+
+ o When a circuit down is received from the circuit manager.
+
+ While the hold down timer is running routes are advertised as
+ unreachable on other interfaces.
+
+ When the hold down timer expires the route MAY be deleted from the
+ database PROVIDING its unreachability has been successfully
+ propagated to all WAN destinations, or the remaining WAN destinations
+ are in a circuit down state. If a route can not be deleted when the
+ hold-down timer expires, it MAY subsequently be deleted when each and
+ every peer is either up-to-date or is in a circuit down state.
+
+
+
+
+Meyer & Sherry Standards Track [Page 17]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ If the hold down timer is already running it is NOT reset by any
+ events which would start the hold down timer.
+
+6.3 Retransmission Timer
+
+ The routing task runs a retransmission timer:
+
+ o An Update Request packet is retransmitted periodically until an
+ Update Flush packet is received. An Update Flush packet is an
+ Update Response packet with the Flush field set. It need not
+ contain routes.
+
+ o An Update Response packet is retransmitted periodically until an
+ Update Acknowledge packet is received containing the same Sequence
+ Number.
+
+ With call set up time on the WAN being of the order of a second, a
+ value of 5 seconds for the retransmission timer is appropriate.
+
+ To prevent against failures in the circuit manager a limit SHOULD be
+ placed on the number of retransmissions. If no response has been
+ received after a configurable length of time (say 180 seconds) routes
+ via the next hop router are marked as unreachable, the hold down
+ timer is started and the entry is advertised as unreachable on other
+ interfaces.
+
+ The next hop router may then be polled with Update Requests at a
+ reduced frequency. A suitable poll interval would be of the order of
+ minutes rather than seconds. Alternatively an Update Request could
+ be initiated by administrative action. When a response is received
+ the routers should perform a complete exchange of routing
+ information.
+
+6.4 Over-subscription Timer
+
+ Over-subscription is where there are more next hop routers to send
+ updates to on the WAN than there are channels. For example 3 next
+ hop routers accessed by an ISDN Basic Rate Interface (BRI) which can
+ only support 2 calls simultaneously.
+
+ To avoid route oscillation routes may NOT be marked unreachable
+ immediately on receiving a circuit down message from the circuit
+ manager. A timeout MAY be used to delay marking the routes
+ unreachable for sufficiently long to allow the calls to 'time
+ division multiplex' over the available channels. A timeout as long
+ as the regular 180 second RIP route timeout MAY be suitable. In
+ general the greater the over-subscription, the longer the time out
+ should be.
+
+
+
+Meyer & Sherry Standards Track [Page 18]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ Implementations wishing to support over-subscription may implement
+ the delay within the circuit manager or within the routing
+ application.
+
+ If the delay is implemented within the routing application the
+ routing entries MUST NOT start timing out during the delay. This
+ allows the circuit up message to be ignored if the timeout after
+ receiving the circuit down has still to expire. This avoids any
+ confusion if the peer had previously issued a Route Flush command and
+ was part way through an update.
+
+7. Security Considerations
+
+ The circuit manager is required to be provided with a list of
+ physical addresses to enable it to establish a call to the next hop
+ router. The circuit manager SHOULD only allow incoming calls to be
+ accepted from the same well defined list of routers.
+
+ Elsewhere in the system there will be a set of logical address and
+ physical address tuples to enable the network protocols to run over
+ the correct circuit. This may be a lookup table, or in some
+ instances there may be an algorithmic conversion between the two
+ addresses.
+
+ The routing (or service advertising) task MUST be provided with a
+ list of logical addresses to which triggered updates are to be sent
+ on the WAN. The list MAY be a subset of the list of next hop routers
+ maintained by the circuit manager.
+
+ RIP Version 2 also allows further authentication of Triggered RIP
+ packets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 19]
+
+RFC 2091 Trigger RIP January 1997
+
+
+Appendix A - Implementation Suggestion
+
+ This section suggests how the database might be structured to handle
+ Triggered RIP.
+
+ Each entry in the database is given a unique route number. Every
+ time a best route to a network changes, a global route number is
+ incremented and the changed route is given the new route number.
+ Note that this route number is completely internal to the router and
+ has no bearing on the Sequence Number sent in Update Responses sent
+ to the peer.
+
+ The route number size should be large enough so as not to wrap round
+ - or the routes can be renumbered before it becomes a problem. Re-
+ numbering requires that the database environment is stable (No Update
+ Responses are queued awaiting Acknowledgement)
+
+ Is is probably easier to manage the routes if they are also chained
+ together using a pointer to a later (and possibly also a pointer to
+ an earlier) entry which reflect the route number/age.
+
+ Performing a complete update then consists of running though the
+ routes from the oldest to the latest and sending them out in Update
+ Responses. Subsequent changes to the database are treated as sending
+ out only the changed entries (from the previous latest to the new
+ latest).
+
+ When allowing for several packets in flight care must be taken with
+ retransmissions. An Update Response 'retransmission' MAY be
+ different from the original. When transmitting a sequence of Update
+ Responses each Response packet contains a number of routes which is a
+represented by a series of routes with consecutive route numbers.
+ Consider sending three Update Responses with Sequence numbers 10,11
+ and 12 each containing 10 routes:
+
+ Sequence Number Routes represented by Route Numbers
+
+ 10 101, 102, 103, 104, 105, 106, 107, 108, 109, 110
+
+ 11 111, 112, 113, 114, 115, 116, 117, 118, 119, 120
+
+ 12 121, 122, 123, 124, 125, 126, 127, 128, 129, 130
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 20]
+
+RFC 2091 Trigger RIP January 1997
+
+
+ If these Update Responses are NOT acknowledged, but in the meantime
+ the routing database has changed and the routes represented by route
+ numbers 104, 112 - 116 and 127 have changed and been assigned new
+ route numbers 131 - 137, the retransmission will look like:
+
+ Sequence Number Routes represented by Route Numbers
+
+ 10 101, 102, 103, 105, 106, 107, 108, 109, 110
+
+ 11 111, 117, 118, 119, 120
+
+ 12 121, 122, 123, 124, 125, 126, 128, 129, 130
+
+ 13 131, 132, 133, 134, 135, 136, 137
+
+ To perform a retransmission it is VERY IMPORTANT that the
+ retransmission contains only the SUB-SET of route numbers which
+ currently apply. If there are NO suitable routes to send, it is not
+ necessary to send an empty retransmission.
+
+ An alternative 'retransmission' strategy is to always use different
+ sequence numbers when resending updates. Consider transmitting
+ packets with sequence numbers 10 through 20 - and responses are
+ received from all packets except those with sequence numbers 14 and
+ 17. In this case only the data in packets 10 through 13 can be
+ considered to be acknowledged. The data from packet 14 onwards MUST
+ be re-sent and given new sequence numbers starting at 21.
+
+References
+
+ [1] Hedrick. C., "Routing Information Protocol", RFC 1058, Rutgers
+ University, June 1988.
+
+ [2] Malkin. G., "RIP Version 2 - Carrying Additional Information",
+ RFC 1723, Xylogics, November 1994.
+
+ [3] Novell Incorporated., "IPX Router Specification", Version 1.20,
+ October 1993.
+
+ [4] Meyer. G., "Extensions to RIP to Support Demand Circuits",
+ Spider Systems, February 1994.
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 21]
+
+RFC 2091 Trigger RIP January 1997
+
+
+Authors' Address:
+
+ Gerry Meyer
+ Shiva
+ Stanwell Street
+ Edinburgh EH6 5NG
+ Scotland, UK
+
+ Phone: (UK) 131 554 9424
+ Fax: (UK) 131 467 7749
+ Email: gerry@europe.shiva.com
+
+ Steve Sherry
+ Xyplex
+ 295 Foster St.
+ Littleton, MA 01460
+
+ Phone: (US) 508 952 4745
+ Fax: (US) 508 952 4887
+ Email: shs@xyplex.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Meyer & Sherry Standards Track [Page 22]
+