680 likes | 1.06k Views
Routing II: Protocols (RIP, EIGRP, OSPF, PNNI, IS-IS). Shivkumar Kalyanaraman Rensselaer Polytechnic Institute shivkuma@ecse.rpi.edu Based in part upon slides of Prof. Raj Jain (OSU), S. Keshav (Cornell), J. Kurose (U Mass). RIP, RIPv2, EIGRP OSPF, PNNI, IS-IS: LS efficiency & robustness
E N D
Routing II: Protocols (RIP, EIGRP, OSPF, PNNI, IS-IS) Shivkumar Kalyanaraman Rensselaer Polytechnic Institute shivkuma@ecse.rpi.edu Based in part upon slides of Prof. Raj Jain (OSU), S. Keshav (Cornell), J. Kurose (U Mass)
RIP, RIPv2, EIGRP • OSPF, PNNI, IS-IS: LS efficiency & robustness • Link state distribution, DB synchronization, NBMAs etc • Refs: Chap 16,14 • Books: “Interconnections” by Perlman, “OSPF” by John Moy, “Routing in Internet” by Huitema. • Reference: RFC 2328: OSPF Version 2: In HTML • Reading: Notes for Protocol Design, E2e Principle, IP and Routing: In PDF • Reading: Routing 101: Notes on Routing: In PDF | In MS Word • Reference: Tsuchiya, "The Landmark Hierarchy: A New Hierarchy for Routing in Very Large Networks" Overview
RIP: Routing Information Protocol • Uses hop count as metric (max: 16 is infinity) • Tables (vectors) “advertised” to neighbors every 30 s. • Each advertisement: upto 25 entries • No advertisement for 180 sec: neighbor/link declared dead • routes via neighbor invalidated • new advertisements sent to neighbors (Triggered updates) • neighbors in turn send out new advertisements (if tables changed) • link failure info quickly propagates to entire net • poison reverse used to prevent ping-pong loops (infinite distance = 16 hops)
RIPv1 Problems (Continued) • Split horizon/poison reverse does not guarantee to solve count-to-infinity problem • 16 = infinity => RIP for small networks only! • Slow convergence • Broadcasts consume non-router resources • RIPv1 does not support subnet masks (VLSMs) • No authentication
RIPv2 • Why ? Installed base of RIP routers • Provides: • VLSM support • Authentication • Multicasting • “Wire-sharing” by multiple routing domains, • Tags to support EGP/BGP routes. • Uses reserved fields in RIPv1 header. • First route entry replaced by authentication info.
E-IGRP (Interior Gateway Routing Protocol) • CISCO proprietary; successor of RIP (late 80s) • Several metrics (delay, bandwidth, reliability, load etc) • Uses TCP to exchange routing updates • Loop-free routing via Distributed Updating Alg. (DUAL) based on diffused computation • Freeze entry to particular destination • Diffuse a request for updates • Other nodes may freeze/propagate the diffusing computation (tree formation) • Unfreeze when updates received. • Tradeoff: temporary un-reachability for some destinations
Link State vs. Distance Vector • Link State (LS) advantages: • More stable (aka fewer routing loops) • Faster convergence than distance vector • Easier to discover network topology, troubleshoot network. • Can do better source-routing with link-state • Type & Quality-of-service routing (multiple route tables) possible • Caveat: With path-vector-type (paths instead of distances) DV routing, these differences blur…
Link State Protocols • Key: Create a network “map” at each node. • 1. Node collects the state of its connected links and forms a “Link State Packet” (LSP) • 2. Flood LSP => reaches every other node in the network and everyone now has a network map. • 3. Given map, run Dijkstra’s shortest path algorithm (SPF) => get paths to all destinations • 4. Routing table = next-hops of these paths. • 5. Hierarchical routing: organization of areas, and filtered control plane information flooded.
Link State Issues • Reliable Flooding: sequence #s, age • LSA types, Neighbor discovery and maintainence (hello) • Efficiency in Broadcast LANs, NBMA, Pt-Mpt subnets: designated router (DR) concept • Areas and Hierarchy • Area types: Normal, Stub, NSSA: filtering • External Routes (from other ASs), interaction with inter-domain routing. • Advanced topics: incremental SPF algorithms
Topology Dissemination • A.k.a LSP distribution • 1. Flood LSPs on links except incoming link • Require at most 2E transfers for n/w with E edges • 2. Sequence numbers to detect duplicates • Why? Routers/links may go down/up • Issue: wrap-around, larger sequence number is not the most recent!
Sequence Number Space Organization • Circular space: S1 > S2 > S3 > S1 • Accidental bit errors in switch memory caused this problem in ARPANET • Lollipop sequence: Start with S0, increment till you reach circle and then view it as a circular space • No ambiguity in lollipop handle • Linear space: OSPFv2. • If Smax reached, expicitly delete Smax LSA before wrapping around
Topology Dissemination (Continued) • Checksum field: • Drop packet if in error, get retransmission from neighbor • Age field (similar to TTL) • Number of seconds since LSA originated • Periodically incremented after acceptance • Originating router refreshes LSA after 30 min • Delete if Age = MaxAge • Low age field + large seq # => that LSA is flapping or frequently changing …
Recovering from a partition • On partition, LSP databases can get out of synch • Databases described by database descriptor records • Routers on each side of a newly restored link talk to each other to update databases (determine missing and out-of-date LSPs) => selective synchronization
LSA-types, Neighbor & flooding Adjacencies in Different Subnets
Neighbor Discovery & Relationship • Every OSPF router sends out 'hello' packets • Hello packets used to determine if neighbor is up • Hello packets sent periodically (short intervals) • HelloInterval = 10s (in example) • Assumes neighbor dead if no response within • RouterDeadInterval = 40s (in example) • This is also called an “adjacency” • Note that adjacency is a logical routing relationship and is more than physical connection. • It consumes bandwidth and computation resources • Becomes an issue if large number of adj need to be maintained
Neighbor … • Once an adjacency is established, trade information • Neighbor relationship is bi-directional as a result of OSPF hello packets • Local topology information is packaged in a "link state announcement“ (LSA) • Multiple types of LSAs: (detail later) • Initial DB synchronization • New announcements are sent ONCE, and only updated if there's a change • Or every 45mins...
Database Synchronization • LS Database (LSDB): collection of the Link State Advertisements (LSAs) accepted at a node. • This is the “map” for Dijkstra algorithm • When the connection between two neighbors comes up, the routers must wait for their LS DBs to be synchronized. • Else routing loops and black holes due to inconsistency • OSPF technique: • Source sends only LSA headers, then • Neighbor requests LSAs that are more recent. • Those LSAs are sent over • After sync, the neighbors are said to be “fully adjacent”
Recap: IP Subnet Model • Each subnet assigned one or more address prefixes. • Each address prefix is called an IP subnet • IP routes to subnets, not to individual hosts • Two hosts on different IP subnets have to go through one or more routers. • Even if they are on the same “physical” network
IP Subnet Model (Contd) • Two hosts or routers on a common subnet can send packets “directly” to one another • Two routers cannot exchange routing information directly unless they have one or more IP subnets in common • All these issues will be strained as we study OSPF adjacency operation over different subnets
Broadcast Media Issues • Multiple (N) OSPF routers attached to a common subnet • Problems: • One “physical link” vs N*(N-1) “adjacencies” • How many “links” to be counted for Dijkstra algo?
Broadcast net: # links for DIjkstra • Each router is assumed to be “linked” to every other router for the purposes of Dijkstra. • Hello protocol optimization: • Each node multicasts Hello to 224.0.0.5 (multicast address “AllSPFRouters”) • The Hello multicast message also indicates acks for other routers’ Hellos by listing their RouterIDs • “Link” relationship for purposes of Dijkstra maintained by each node sending a single Hello packet, instead of N packets. • What about “flooding adjacencies”, I.e., • Whom to send (flood) LSAs when a router generates or learns a new LSA? • Does it need to synchronize DBs with all nodes ?
Flooding Adjacencies : option 1 • Using Router-LSAs … • O(N) Router-LSAs, with O(N2) adjacency info • Multicast of Router-LSAs does not solve O(N2) DB synchronization issue
Flooding Adjacencies: option 2 • New LSA-type: Network-LSA … • O(N) Router-LSAs + 1 network-LSA+ O(N) adjacencies • Converted O(N2) adjacency problem into O(N) problem
Recap: O(N2) model O(N) model Question: Who creates the network-LSA?
Designated Router (DR) • One router elected as a designated router (DR) • Each router maintains flooding adjacency with the DR, I.e., sends acks of LSAs to DR • DR informs each router of other routers on LAN • DR generates the network-LSA on subnet’s behalf after synchronizing with all routers
DR, BDR … continued • Backup DR (BDR) also syncs with all routers, and takes over if DR dies (typically 5 s wait) • Total: 2N – 1 adjacencies • Multicast-based optimization: • New LSAs, Hellos sent to AllSPFRouters avoids DR re-advertising new information • LSA acks sent to AllDRRouters avoids separate copies to be sent to DR and BDR • DR election: • First router on net = DR, second = BDR • RouterPriority: [0, 127] indicated in Hello packet=> highest priority router becomes DR • If network is partitioned and healed, the two DRs are reduced to one by looking at RouterPriority
What if subnet does not support broadcast? • Non-Broadcast Multiple Access (NBMA) media • NBMA segments may support more than 2 routers, and allow any two routers to communicate directly, but do not support data-link broadcast/mcast capability • Eg:X.25, SMDS, Frame-Relay, ATM etc • Connection-oriented (VC-based) communication • Each VC is costly => setting up full mesh for Hellos is prohibitively expensive • Two flooding adjacency models in OSPF: • Non-Broadcast Multiple Access (NBMA) model • Point-to-Multipoint (pt-mpt) Model • Different tradeoffs…
NBMA Subnet Model • Neighbor discovery: manually configured • Dijkstra SPF views NBMA as a full mesh! • Most routers assigned a RouterPriority = 0 • Other routers: eligible to become DRs => • ID of all routers in the NBMA configured • Maintains VCs and Hellos with all routers eligible to become DRs (RouterPriority > 0) • Enables election of new DR if current one fails • DR and BDR only maintain VCs and Hellos with allrouters on NBMA • DB synchronization works same as broadcast subnet • Flooding in NBMA always goes through DR • Multicast not available to optimize LSA flooding. • DR generates network-LSA just like broadcast subnet
NBMA vs Pt-Mpt Subnet Model • Key assumption in NBMA model: • Each router on the subnet can communicate with every other (same as IP model) • But this requires a “full mesh” of expensive PVCs at the lower layer! • Many organizations have a hub-and-spoke PVC setup, a.k.a. “partial mesh” • Conversion into NBMA model requires multiple IP subnets, and complex configuration (see fig on next slide) • OSPF’s pt-mpt subnet model breaks the rule that two routers on the same network must be able to talk directly • Can turn partial PVC mesh into a single IP subnet
Pt-Mpt Subnet Model • Each router: single OSPF interface, but multiple neighbor relationships • Note that neighbor relationships not formed to nodes to which direct PVC does not exist. • Key differences: • No DRs or BDRs! Just hellos over the PVCs. Make sure that the communication is bi-directional. • I.e. Partial mesh is viewed in Dijkstra as a partial mesh. Full mesh view not forced like in NBMA model. • Sometimes auto-configuration is possible. • Loss in efficiency because the DB synchronization has to be done between every peer. • O(n^2) if full mesh. So, in true full PVC mesh situations, it is better to operate subnet as an NBMA
Why Hierarchy? • Information hiding (filtered) => computation, bandwidth, storage saved => efficiency => scalability • Address abstraction vs Topology Abstraction • Multiple paths possible between two areas
Area • Configured area ID • A set of address prefixes • Do not have to be contiguous • So a prefix can be in only one area • A set of router IDs • Router functions may be interior, inter-area, or external
Hierarchical OSPF • Two-level hierarchy: local area, backbone. • Link-state advertisements only in area • each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. • Two-level restriction avoids count-to-infinity issues in backbone routing. • Area border routers (ABR):“summarize” distances to nets in own area, advertise to other Area Border routers. • Backbone routers: uses a DV-style routing between backbone routers • Boundary routers (AS-BRs): connect to other ASs (generate “external” records)
Sample Area Configuration 10.2.0.0/24
Externals and Aggregation 1 • A full ISP routing table has approximately 100K routes! • But will you do anything differently if you know all of them and have a single ISP? • Multiple ISP situations call for complex OSPF and BGP design • Never redistribute IGPs into BGP! (later…) • Redistribute BGP into IGPs with extreme care
Externals & Aggregation 2 • In an enterprise • Limit externals from subordinate domains (e.g., RIP) to be within area (area-scope) • Flood only in area 0 and in area with ASBR • Allow externals from Internet, peer domains to go outside Area 0… • Only when there will be significant path differences • Do things with defaults where possible
Type 1 and Type 2 externals • Type 2: • Default type for routes distributed into OSPF • EGP costs very different from IGP costs • Exit based on external (EGP) cost only • Type 1 • Needs to be set explicitly: not default • IGP costs can be compared and summed • Selects exit based on internal + external costs
Normal Areas • Flood AS-external-LSAs (type 5) across area-boundaries (AS flooding scope) • ASBR-summary-LSAs (type 4) advertises location of ASBR (area flooding scope)
Stub Areas • AS-external-LSAs (type 5) not flooded into stub areas • Summary-LSA flooded only optionally • Default route to ABR for all non-area prefixes • Paths may be inefficient, cannot place an ASBR in stub areas