350 likes | 646 Views
IP Routing: GGP and RIP. Network Protocols and Standards Autumn 2004-2005. IP Routing Protocols. Autonomous System Interior Gateway Protocols GGP RIP OSPF Exterior Gateway Protocols BGP EGP IP Multicast Routing MPLS. IP Routing Protocols. Autonomous Systems. Routing in the Internet.
E N D
IP Routing: GGP and RIP Network Protocols and Standards Autumn 2004-2005 CS573: Network Protocols and Standards
IP Routing Protocols • Autonomous System • Interior Gateway Protocols • GGP • RIP • OSPF • Exterior Gateway Protocols • BGP • EGP • IP Multicast Routing • MPLS CS573: Network Protocols and Standards
IP Routing Protocols Autonomous Systems CS573: Network Protocols and Standards
Routing in the Internet • Routing Algorithms • Bellman-Ford • Dijkstra • Routing Protocols • Distance Vector • Link State • Routing Hierarchy • Interior Gateway Protocols (RIP, OSPF, IGRP) • Exterior Gateway Protocols (EGP, BGP, CIDR, Policy Routing) • Multicasting (IGMP) CS573: Network Protocols and Standards
Internet from the start • First, there was ARPANET • Routers had complete information about all the possible destinations – core routers • GGP (gateway-to-gateway) protocol was used for routing – a distance vector protocol R R H R H R H CS573: Network Protocols and Standards
ARPANET R R Core Routers R LAN LAN LAN Internet from the start • Then, LANs were connected to ARPANET CS573: Network Protocols and Standards
Internet from the start • Problems with above configuration: • Routing overhead increased with the number of connected routers • Number of routes increased with the number of connected segments • Frequency of routing exchanges increased • Higher likelihood that something went wrong somewhere requiring updates • Number of different types of routers increased • Slow deployment of new versions of routing algorithms CS573: Network Protocols and Standards
Internet from the start Backbone Network R1 Core Router Local Network R2 R3 R4 Local Network Local Network Local Network CS573: Network Protocols and Standards
Autonomous System Backbone Network R R Core Routers R AS AS AS AS: Autonomous System CS573: Network Protocols and Standards
Autonomous System • What is an autonomous system? • A set of routers and networks under the same administration. Examples: • A single router directly connecting one local network to the Internet • A corporate network linking several local networks through a corporate backbone • A set of client networks served by a single ISP • NOTE: From a routing point of view, all parts of an AS must remain connected CS573: Network Protocols and Standards
Autonomous System • Internal connectivity within the AS means: • All routers must be connected • Parts of network connected through core AS (yes, core is an AS!) cannot form an AS • All routers must exchange routing information in order to maintain the connectivity (normally achieved by using a single routing protocol) • Routers inside an AS are called “interior gateway” and the protocol they use is called Interior Gateway Protocol (IGP) CS573: Network Protocols and Standards
Autonomous System • In 1982, the IGP of choice was GGP • IGPs in use today are: • RIP • OSPF • IGRP • Each AS is identified by a 16-bit number • Number is assigned by the numbering authorities CS573: Network Protocols and Standards
Autonomous System: Benefits • Routing overhead is lower • Network management becomes easy • Easier computation of new routes • Distribution of new software versions is easier • Failing elements can be isolated easily • AS use an Exterior Gateway Protocol to exchange information about reachability CS573: Network Protocols and Standards
IP Routing Protocols Gateway-to-Gateway Protocol GGP CS573: Network Protocols and Standards
GGP • The “old” ARPANET routing protocol • Defined in RFC 823 • A distance-vector routing protocol • Only core routers participate in GGP • GGP messages travel in IP datagrams with protocol type = 3 • GGP measures distance in router hops. i.e., the number of hops along a path refers to the number of routers CS573: Network Protocols and Standards
GGP Message Types • 4 types of GGP messages • GGP Routing Update message (type 12) • GGP Acknowledgment message (type 2/10) • GGP Echo Request or Reply (type 0 or 8) CS573: Network Protocols and Standards
GGP Routing Update • A router sends this message to advertise the destination networks it knows how to reach • To keep the size of message small, networks are grouped by distance • In the message “Distance” is followed by a list of “Net” addresses that are at this distance • Contains a field that tells how many distance groups are being reported (3 in case below) • D1 – Net1, Net5, Net11 • D2 – Net4, Net2, Net7, Net16 • D3 – Net6, Net9 CS573: Network Protocols and Standards
IP Routing Protocols Routing Information Protocol RIP CS573: Network Protocols and Standards
Routing Information Protocol • A distance vector based IGP • Similar to GGP • Designed at UC Berkeley • Based on Xerox XNS • Distributed with 4BSD UNIX (routed) • First RFC was 1058, current RFC is 2453 • Started off in small networks and then extended to larger networks • See Huitema, Chapter 5 CS573: Network Protocols and Standards
RIP Details • Routers are active machines • Advertise their routes (IP NET, distance) to others • Hosts are passive machines • They listen and update their routes but do not advertise • RIP uses hop count metric • RIP messages are transmitted using UDP at port 520 CS573: Network Protocols and Standards
RIP Route Computation • There is a cost associated with each link • Typically cost =1 i.e., number of hops • Each router receives route advertisements from its neighbors • Advertisements show distances to all destinations in the network • For each destination in the network: • The router takes each received advertisement and adds to it the cost to reach that neighbor who sent this advertisement; this gives the distance to the destination • The router selects lowest of these as path/cost to that destination CS573: Network Protocols and Standards
Algorithm Properties • Convergence is guaranteed in a finite time given that topology remains static • Starting value of distance estimates to each destination can be any non-negative number • No assumption is made as to when the updates are sent or when the distances are computed • Each router can work based on its own clock and send its updates asynchronously • If the network changes, routes converge to a new equilibrium point CS573: Network Protocols and Standards
Example Advertisement: Distance to A is 2 Distance to B is 3 Distance to C is 5 Router Advertisement: Distance to A is 1 Distance to B is 4 Distance to C is 1 Cost = 1 Cost = 3 P1 P3 P2 Cost = 2 Advertisement: Distance to A is 2 Distance to B is 1 Distance to C is 3 CS573: Network Protocols and Standards
1 A C 1 1 10 Target B D 1 1 From Via Dist Via Dist Via Dist Via Dist Via Dist Via Dist A B 3 C 4 C 5 C 6 C 11 C 12 B x - C 4 C 5 C 6 … C 11 C 12 C B 3 A 4 A 5 A 6 A 11 D 11 D di 1 di 1 di 1 di 1 di 1 di 1 Counting to Infinity Routes to Target: A: route via B, distance 3 B: route via D, distance 2 C: route via B, distance 3 D: direct, distance 1 Assume that B to D link goes down, and B notices. To reach target … x = destination unreachable; di = directly connected What if the link from C to D also goes down? Counting to Infinity!!! CS573: Network Protocols and Standards
Some Solutions • Split Horizon • If A reaches a destination through B, it makes no sense for B to reach the same destination through A • Instead of broadcasting the same distance vector on all links, send different versions on each outgoing link by removing the entries for the destinations that are reachable through that link • Split Horizon with Poisonous Reverse • Include all the destinations in advertisements; even those which were missing in split horizon, but… • Set those vector distances to infinity that were missing in the simple version of split horizon CS573: Network Protocols and Standards
Triggered Updates • Split Horizon can work in loops with two gateways, but not with three or more • See example in book by Huitema • Another solution to deal with “count to Infinity” problem is triggered updates • A gateway is required to send an immediate update when any route changes. This reduces the occurrence of loops • Flood of triggered updates resolves loops faster when these happen CS573: Network Protocols and Standards
RIPv2 Message Format 8 16 24 31 COMMAND (1-5) VERSION (2) AS NUMBER FFFF AUTHENTICATION TYPE AUTHENTICATION HEADER FAMILY OF NET 1 MUST BE ZERO ADDRESS OF NET 1 MASK NEXT HOP DISTANCE TO NET 1 … … … … CS573: Network Protocols and Standards
Message Format CS573: Network Protocols and Standards
RIPv2 Message Format • Address format is not limited to TCP/IP • RIP can be used with multiple network protocol suites • Family of net i: • Identifies the protocol family under which the network address should be interpreted • IP addresses are assigned value 2 • Next hop • The sending router can specify another router’s IP address as next hop for the network • Set to 0.0.0.0 for sender itself • Solves similar problem (extra hop) as ICMP redirect CS573: Network Protocols and Standards
RIP Metrics and Updates • By default, RIP uses hop count as the distance metric • Integers 1 through 15 • 16 denotes infinity • Packets are normally sent every 30sec • If a route is not refreshed within 180 seconds, distance is set to infinity and later entry is removed CS573: Network Protocols and Standards
Input Processing • How to process incoming RIP packets? • Examine entries one by one • Validation check • Address is valid class A, B, or C • Network number is not 127 • Host port is not a “broadcast” address • Metric is not larger than infinity (16) • Incorrect entries are ignored • And should be reported as errors CS573: Network Protocols and Standards
Input Processing • Metric for entry is increased by link cost • Routing table is searched for an entry corresponding to the destination • If the entry is not present, it is added • If the entry is present but with a larger metric • Entry is updated and timer restarted • Entry is present and next hop router is sender of response message • Metric is updated and timer restarted • For all other cases, entry is ignored CS573: Network Protocols and Standards
RIP Responses • A separate response is prepared for all connected interfaces/ports • Information sent on different ports may vary due to • Split Horizon processing • Subnet summarization • For triggered updates: may include only those entries that have been updated since last transmission • Maximum message size: 512 bytes (up to 25 entries) • Multiple messages have to be sent if more than 512 bytes • Source IP address is that of the interface on which the message is sent • Destination IP address is the broadcast address CS573: Network Protocols and Standards