Routing Information Protocol A simple distance vector scheme dr. C. P. J. Koymans Informatics Institute University of Amsterdam (version 1.1, 2010/02/19 12:38:50) Wednesday, February 24, 2010 RIP version 1 Origin and application Basic RIPv1 operation RIPv1 packets RIP version 1 and subnetting Protocol extensions IGRP EIGRP RIP version 2 Extensions with respect to version 1 Summary of changes with respect to version 1 RIP Next Generation and RIP variants RIP version 1 RIP application RFC 1058 Charles Hedrick, Rutgers University, 1988 Based on the Bellman-Ford distance vector algorithm Also used as the first ARPANET routing protocol Many implementations were already present differing in details (timers... ) available before the specification itself Inside homogeneous networks with a moderate size An interior routing protocol Maximum diameter is 15 hops Based on a uniform cost (weight) of 1
Basic operation Timers Keep a table of routes to destination networks with distance (metric), gateway (next hop) Periodically send out a complete table to all neighbors Update your table with newly collected information The distance can only decrease (become better) unless the information comes from the gateway itself, thereby overriding the old information Updates are sent every 30 seconds Routes time out after 180 seconds Unreachable networks may be included in updates Infinity = = 16 Triggered updates An update is being sent as soon as the table changes RIP packets RIPv1 packet format Packets are broadcast to 255.255.255.255 or to a directed broadcast address or to an individual host as a response to a request Works on top of UDP and uses 520 as its well-known port The maximum size is 512 bytes (including 8 bytes UDP header) so: there is room for 25 route updates (of 20 bytes each) Command Version Reserved (must be 0) Address Family Identifier Reserved (must be 0) IP Address (network) Reserved (must be 0) Metric Repeated maximally 25 times
RIPv1 packet fields Subnets RIPv1 fields Command Request(1) or Response(2) Version 1 AFI IP(2) IP Address Destination Network Metric Distance (max 16= ) RIPv1 supports fixed length, one level deep, subnet masks RIPv1 uses heuristics to derive the uniform subnet mask in use from its own directly connected subnets RIPv1 differentiates between neighbors for updates about subnets being part of that same subnetted network being part of another network Subnet Behaviour IGRP (1) IGRP stands for Interior Gateway Routing Protocol It is a Cisco proprietary protocol IGRP is a distance vector protocol The basics are the same as with RIP Find out how RIPv1 operates differently for C than for A and B.
IGRP (2) IGRP (3) Division into independent domains Uses three types of network routes: Interior route (with implicit subnet info) System route (summarized) Exterior route (candidate default) RIP The only metric is the hop count IGRP The metric is composite, based on Delay, Bandwidth, Reliability and Load The hop count is still communicated as a separate field MTU information about the path is also communicated EIGRP (1) EIGRP (2) EIGRP stands for Enhanced Interior Gateway Routing Protocol Remembers all paths, not only the best path It carries explicit subnet information (VLSM) It uses the DUAL (Diffusing Update Algorithm) algorithm for loop free routing and fast convergence It can take the MTU into account It uses no regular (periodic) routing table updates Updates happen only when the routing table changes It uses hello packets to discover neighbors It uses ack(nowledgement)s for reliable communication It can summarize on arbitrary bit boundaries
RIP version 2 RIPv2 packet format Specified in RFC 2453 by Gary Malkin, Bay Networks, 1998 It has extensions for subnet masks an optional alternate next hop authentication multicasting route tags Command Version Reserved (must be 0) Address Family Identifier Route Tag IP Address (network) Subnet Mask Next Hop Metric Repeated maximally 25 times RIPv2 packet fields First-routing-entry-as-authentication hack RIPv2 fields Command Request(1) or Response(2) Version 2 AFI IP(2) Route Tag Identification of route origin IP Address Destination Network Subnet Mask CIDR support Next Hop Gateway (if different from advertising router) Metric Distance (max 16= ) Address Family Identifier (=0xFFFF) Authentication Authentication Type Authentication type 2 means use of a plaintext password Authentication type 3 (RFC 4822) means use of Keyed-MD5 or HMAC-SHA-{1,256,384,512}
Summary of changes (1) Summary of changes (2) Authentication fields First AFI is 0xFFFF Simple password (type 2) 16 bytes Pointer (type 3) to a variable length authentication trailer Route tag field This is simply carried along It differentiates between internally and externally generated routes Subnet mask field net/subnet/host route differentiation Next Hop field Used when best next hop does not speak RIP itself Multicast (not a field) replaces broadcast The destination of updates is 224.0.0.9 (which is not forwarded) Next Hop scenario RIPng (for IPv6) A and B speak RIP internally. E and F speak some other protocol over the external network. E can speak RIP to A and B on behalf of F, setting the Next Hop as F as appropriate. Specified in RFC 2080 It still runs over UDP It uses port number 521 Packets can be any length that fits inside the network unfragmented Supports IPv6 prefix, route tags, next hop No authentication (which can be done at the IP level) It uses FF02::9, the all-rip-routers multicast address
RIPng packet format RTE-with-big-metric-as-next-hop hack Command Version Reserved (must be 0) Next Hop IPv6 Prefix Route Tag Prefix Length Metric As many as can fit in a packet unfragmented 0x0000 0x00 Metric(=0xFF) The next hop must be a link local address Using :: as next hop means use originator as next hop Next Hop remains valid until next next-hop-rte RIP variants There are also (incompatible) variants for RIP in other protocol stacks, for instance RIP-IPX Other timers (60 update / 180 timeout) Triggered updates, split horizon with poison reverse are obligatory Uses two metrics ticks (for path selection) hops (for counting to )