Link State Routing. Link state routing principles Dijkstra s shortest-path-first algorithm The OSPF protocol. (Chapter 6 in Huitema) E7310/Comnet 1

Similar documents
OSPF Fundamentals. Agenda. OSPF Principles. L41 - OSPF Fundamentals. Open Shortest Path First Routing Protocol Internet s Second IGP

OSPF - Open Shortest Path First. OSPF Fundamentals. Agenda. OSPF Topology Database

Link State Routing. In particular OSPF. dr. C. P. J. Koymans. Informatics Institute University of Amsterdam. March 4, 2008

Link-state protocols and Open Shortest Path First (OSPF)

OSPF Domain / OSPF Area. OSPF Advanced Topics. OSPF Domain / OSPF Area. Agenda

Table of Contents. OSPF Configuration 1

Link State Routing. In particular OSPF. Karst Koymans. Informatics Institute University of Amsterdam. (version 16.3, 2017/03/09 11:25:31)

Configuring the maximum number of external LSAs in LSDB 27 Configuring OSPF exit overflow interval 28 Enabling compatibility with RFC Logging

Link State Routing. In particular OSPF. Karst Koymans. Informatics Institute University of Amsterdam. (version 17.4, 2017/11/30 12:33:57)

Configuring OSPF. The Cisco OSPF Implementation

Configuring OSPF. Information About OSPF CHAPTER

Introduction to Local and Wide Area Networks

Junos Intermediate Routing

ITE PC v4.0. Chapter Cisco Systems, Inc. All rights reserved. Cisco Public

IP Routing: OSPF Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3650 Switches)

IP Routing: OSPF Configuration Guide, Cisco IOS Release 12.2SX

Question No: 2 In an OSPF Hello packet, which of the following fields must match for all neighbor routers on the segment? Choose three answers.

OSPF. Routing Protocols and Concepts Chapter 11. ITE PC v4.0 Chapter Cisco Systems, Inc. All rights reserved. Cisco Public

Introduction to OSPF. ISP Workshops. Last updated 11 November 2013

IP Routing: OSPF Configuration Guide, Cisco IOS Release 12.4

IP Routing: OSPF Configuration Guide, Cisco IOS XE Release 2

CS 457 Lecture 16 Routing Continued. Spring 2010

OSPF for IPv6. ISP Workshops

OSPF. OSPF Areas. BSCI Module Cisco Systems, Inc. All rights reserved. Cisco Public. Review of OSPF area characteristics:

Guide to OSPF Application on the CSS 11000

Link State Routing. Stefano Vissicchio UCL Computer Science CS 3035/GZ01

Cisco IOS IP Routing: OSPF Command Reference

OSPF. Routing Protocols and Concepts Chapter 11


KillTest *KIJGT 3WCNKV[ $GVVGT 5GTXKEG Q&A NZZV ]]] QORRZKYZ IUS =K ULLKX LXKK [VJGZK YKX\OIK LUX UTK _KGX

OSPF Mechanism to Exclude Connected IP Prefixes from LSA Advertisements

Lecture 8 Link-State Routing

ROUTING PROTOCOLS. Dr. Ahmed Khattab. EECE Department Cairo University Fall 2012 ELC 659/ELC724

Link State Routing. Brad Karp UCL Computer Science. CS 3035/GZ01 3 rd December 2013

OSPF Enhanced Traffic Statistics for OSPFv2 and OSPFv3

material. For more information on how to get additional questions, please see a.

Network Layer (Routing)

CSE/EE 461. Link State Routing. Last Time. This Lecture. Routing Algorithms Introduction Distance Vector routing (RIP)

CCNA Routing and Switching Study Guide Chapters 5 & 19: Multi-Area OSPF

OSPF Enhanced Traffic Statistics

Network Working Group Request for Comments: Category: Standards Track A. Zinin Alcatel-Lucent R. Coltun Acoustra Productions July 2008

Rev a. Single-Area OSPF. c cnac o okbook.com

Computer Networks II

Zebra MCR Software 1.0 Manual Yin Wang Networking Laboratory of Helsinki University of Technology

OSPF Nonstop Routing. Finding Feature Information. Prerequisites for OSPF NSR

Sybex ICND Chapter 4 and 18: OSPF. Instructor & Todd Lammle

Simulative Comparison of MPLS Protection Switching vs. OSPF Re-routing

OSPF Inbound Filtering Using Route Maps with

A Performance Comparison of Multi-Hop Wireless Ad Hoc Network Routing Protocols

M U LT I C A S T C O M M U N I C AT I O N S. Tarik Cicic

Scalable Routing Protocols for Mobile Ad Hoc Networks

Energy-Efficient MANET Routing: Ideal vs. Realistic Performance

A Review of Current Routing Protocols for Ad Hoc Mobile Wireless Networks

olsr.org 'Optimized Link State Routing' and beyond December 28th, 2005 Elektra

Distance-Vector Routing

OSPF Per-Interface Link-Local Signaling

CSE 123: Computer Networks

Babel A flexible routing protocol

Advanced Modeling and Simulation of Mobile Ad-Hoc Networks

Wireless Internet Routing. IEEE s

Increasing Broadcast Reliability for Vehicular Ad Hoc Networks. Nathan Balon and Jinhua Guo University of Michigan - Dearborn

OSPF Link-State Database Overload Protection

Interlayer routing issues for wireless networks

C Commands. Send comments to

OSPF Version 3 for IPv6

Overview. Ad Hoc and Wireless Mesh Networking. Ad hoc network. Ad hoc network

Foundations of Distributed Systems: Tree Algorithms

Routing and Wavelength Assignment in All-Optical DWDM Transport Networks with Sparse Wavelength Conversion Capabilities. Ala I. Al-Fuqaha, Ph.D.

Lab Topology R16 R12 R15. Lo R /32 R /32 R /32 R /32 R / /

Wireless Mesh Networks

accurate as possible, the enclosed material is presented on an as is basis. Neither the authors nor

LAB15: OSPF IPv6. OSPF: Not So Stubby Area. Disclaimer

Department of Computer Science and Engineering. CSE 3213: Computer Networks I (Fall 2009) Instructor: N. Vlajic Date: Dec 11, 2009.

Grundlagen der Rechnernetze. Introduction

Vulnerability modelling of ad hoc routing protocols a comparison of OLSR and DSR

Energy Saving Routing Strategies in IP Networks

Papers. Ad Hoc Routing. Outline. Motivation

Junos OS. OSPF Version 3 for IPv6 Feature Guide. Release Published: Copyright 2011, Juniper Networks, Inc.

International Journal of Advance Engineering and Research Development (IJAERD) Volume 1,Issue 5,May 2014, e-issn: , print-issn:

Lecture 18: Network Layer Link State and Distance Vector Routing

ISP Operations Troubleshooting OSPF for IPv4 and IPv6

The Pennsylvania State University. The Graduate School. College of Engineering PERFORMANCE ANALYSIS OF END-TO-END

OSPF Sham-Link MIB Support

Analysis and Design of Link Metrics for Quality Routing in Wireless Multi-hop Networks

Request for Comments: 4750

Routing Algorithm Classification. A Distance Vector Routing Algorithm

Robonet - MANET for Robot Communication

Networks: how Information theory met the space and time. Philippe Jacquet INRIA Ecole Polytechnique France

CS649 Sensor Networks IP Lecture 9: Synchronization

A Study of Dynamic Routing and Wavelength Assignment with Imprecise Network State Information

QUIZ : oversubscription

PERFORMANCE ANALYSIS OF ROUTING PROTOCOLS FOR P INCLUDING PROPAGATION MODELS

Ad Hoc Networks - Routing and Security Issues

Fiber Distributed Data Interface

IX Series 2. Description. IX Series 2 System Features

OSPF and MANET WG meetings, IETF64. OSPF MANET Design Team outbrief. November, Tom Henderson

UCS-805 MOBILE COMPUTING NIT Agartala, Dept of CSE Jan-May,2011

Volume 5, Issue 3, March 2017 International Journal of Advance Research in Computer Science and Management Studies

SourceSync. Exploiting Sender Diversity

Utilization Based Duty Cycle Tuning MAC Protocol for Wireless Sensor Networks

Transcription:

Link State Routing Link state routing principles Dijkstra s shortest-path-first algorithm The OSPF protocol (Chapter 6 in Huitema) 7310/Comnet 1

Link State Routing Principles 7310/Comnet 2

Link state routing The goal is to avoid the routing loops typical of DV routing and to scale to bigger networks and to varying topologies. A link state protocol maintains the topology map, i.e. the link state database of the network. Same map in every node When the topology changes, the maps are updated quickly OSPF (Open Shortest Path First) is the ITF specified link state protocol for the Internet. OSPF is recommended as the follower of RIP More complex than RIP Other link state routing protocols include IS-IS and PNNI Intermediate System to Intermediate System (IS-IS) Private Network-to-Network Interface (PNNI) 7310/Comnet 3

The map is the complete list of all links xample network A D 1 2 B 3 4 5 6 One node is responsible for a particular entry Link directions are separate entries Same map in every node No loops C Link state database: From To Link Cost A B 1 1 A D 3 1 B A 1 1 B C 2 1 B 4 1 C B 2 1 C 5 1 D A 3 1 D 6 1 B 4 1 C 5 1 D 6 1 7310/Comnet 4

The routing table is generated from the link state database From To Link Cost A B 1 1 A D 3 1 B A 1 1 B C 2 1 B 4 1 C B 2 1 C 5 1 D A 3 1 D 6 1 B 4 1 C 5 1 D 6 1 Link state database Dijkstra s shortest-path-first algorithm From To Link Cost A A local 0 A B 1 1 A C 1 2 A D 3 1 A 3 2 Routing table of node A Note: ach node generates a different routing table using the same link state database! Distribution by parallel computation 7310/Comnet 5

The flooding protocol distributes information about topology changes The updates, link state advertisements, are distributed to the whole network A 1 B 2 C 4 5 D 6 From To Link Cost Seq.num A B 1 inf 2 From To Link Cost Seq.num B A 1 inf 2 Sequence number indicates that the updated entry is newer 7310/Comnet 6

Flooding algorithm Receive M Find entry L in link DB for which L.link = M.link Found? no Create entry L = M Broadcast M on all interfaces M.seq > L.seq? Update entry L = M Broadcast M on all interfaces M L L.link L.seq no M.seq < L.seq received and forwarded entry corresponding entry in link DB link id of entry L sequence number of entry L Create message M = L Send M to sender no nd 7310/Comnet 7

Properties of flooding Previous algorithm guarantees that each node will receive each update at least once. xactly once would be optimal but this can not be guaranteed Flooding will stop when each node has received the update: a node will just drop an update that it already has. Additional protection against looping: TTL on IP layer. While the flooding is ongoing, network state is inconsistent in different nodes this period (including route calculations and update of FIB) is called routing convergence. 7310/Comnet 8

Link database after distribution of failure of link AB A D 1 B 2 3 4 5 6 From To Link Cost Seq.num A B 1 inf 2 A D 3 1 1 B A 1 inf 2 B C 2 1 1 B 4 1 1 C B 2 1 1 C 5 1 1 D A 3 1 1 D 6 1 1 B 4 1 1 C 5 1 1 D 6 1 1 C Sequence number starts from 1 on node restart. Modulo arithmetic is used to determine what is a little bigger than message numbering can overflow without problems. 4294967295 + 1 = 0 OSPF uses a slightly different numbering, as will be discussed later. 7310/Comnet 9

If network splits into islands, the databases in the islands may diverge A 1 B 2 3 4 5 C Databases in A and D: From To Link Cost Seq.num A B 1 inf 2 A D 3 1 1 B A 1 inf 2 B C 2 1 1 B 4 1 1 C B 2 1 1 C 5 1 1 D A 3 1 1 D 6 inf 2 B 4 1 1 C 5 1 1 D 6 1 1 D 6 Databases in B, C and : From To Link Cost Seq.num A B 1 inf 2 A D 3 1 1 B A 1 inf 2 B C 2 1 1 B 4 1 1 C B 2 1 1 C 5 1 1 D A 3 1 1 D 6 1 1 B 4 1 1 C 5 1 1 D 6 inf 2 7310/Comnet 10

Link 2 fails the databases diverge more 1 2 A B 3 4 5 D 6 C Databases in B, C and : From To Link Cost Seq.num. A B 1 inf 2 A D 3 1 1 B A 1 inf 2 B C 2 inf 2 B 4 1 1 C B 2 inf 2 C 5 1 1 D A 3 1 1 D 6 1 1 B 4 1 1 C 5 1 1 D 6 inf 2 7310/Comnet 11

Databases may diverge while the network is split, but there is no immediate problem A 1 B 2 3 4 5 C Databases in A and D: From To Link Cost Seq.num A B 1 inf 2 A D 3 1 1 B A 1 inf 2 B C 2 1 1 B 4 1 1 C B 2 1 1 C 5 1 1 D A 3 1 1 D 6 inf 2 B 4 1 1 C 5 1 1 D 6 1 1 D 6 Databases in B, C and : From To Link Cost Seq.num A B 1 inf 2 A D 3 1 1 B A 1 inf 2 B C 2 inf 2 B 4 1 1 C B 2 inf 2 C 5 1 1 D A 3 1 1 D 6 1 1 B 4 1 1 C 5 1 1 D 6 inf 2 7310/Comnet 12

When link 1 goes up, the databases must be synchronized 1 2 A B 3 4 5 D 6 C A simple method would be to send all entries over the link but fortunately we can do it in a more efficient way From To Link Cost Seq.num A B 1 1 3 A D 3 1 1 B A 1 1 3 B C 2 1 1 B 4 1 1 C B 2 1 1 C 5 1 1 D A 3 1 1 D 6 inf 2 B 4 1 1 C 5 1 1 D 6 1 1 From To Link Cost Seq.num From To Link Cost Seq.num A B 1 1 3 A D 3 1 1 B A 1 1 3 B C 2 inf 2 B 4 1 1 C B 2 inf 2 C 5 1 1 D A 3 1 1 D 6 1 1 B 4 1 1 C 5 1 1 D 6 inf 2 A B 1 1 3 A D 3 1 1 B A 1 1 3 B C 2 inf 2 B 4 1 1 C B 2 inf 2 C 5 1 1 D A 3 1 1 D 6 inf 2 B 4 1 1 C 5 1 1 D 6 inf 2 7310/Comnet 13

Bringing up adjacencies: first databases are compared, then differing entries are requested A B DB description <id=m.link, seq=m.seq> DB descriptions from B More DB descriptions from A More DB descriptions from B M.link not in L or M.seq > L.seq Link state request <id=m.link> All information about link M.link Yes OSPF implementation details discussed later Note: synchonization is performed every time a link is established, not only when the network has been divided Update link in L with M Flood M to all neighbors 7310/Comnet 14

What happens if a router is restarted? When router A is restarted, it has forgotten its last used number, and numbers its LSA again with the initial sequence number There may be LSAs in the network that were distributed by A before the restart The neighbor B then replies that it has newer information. If router A wants to keep it own LSAs alive, it increases the sequence number by 1 and redistributes. If the information of the neighbor is no longer valid, A removes it by distributing the same entry with the age = MaxAge. A B restart LSA <seq = n> LSA <seq = 1> LSA <seq = n> LSA <seq = n+1> 7310/Comnet 15

Integrity of the link DB must be secured Protection: Flooding messages are acknowledged link by link. DB description messages are acknowledged. ach DB entry is protected by obsolescence timer. If an update does not arrive in time, the entry is removed. ach entry is protected by a checksum. Messages also carry authentication info. But: while update is in progress, some nodes receive info earlier than others routing mistakes happen. 7310/Comnet 16

Dijkstra s shortest-path-first algorithm 7310/Comnet 17

OSPF is based on Dijkstra s shortest-path-first algorithm Purpose: create a routing table from the link-state database. The algorithm computes the shortest path from source node S to all the other nodes. Dijkstra s algorithm converges faster than Bellman-Ford. O(M log M) < O(MN 2 ) (compared to centralized B-F) O(M log M) < O(MN) (compared to distributed B-F) M is number of links, N is number of nodes, Both of the same order of magnitude Nodes are divided into evaluated nodes, the paths from which are known, and other nodes R. In addition an ordered list of paths O is needed. 7310/Comnet 18

Dijkstra s shortest-path-first algorithm ={S}, R={other nodes}, P = O={paths starting from S with length 1}, sort O = or O[1].cost= no p=o[1]; O = O \ p; V=p.to V? no = V, R = R \V P = P p nd: P contains the paths R=unreachable nodes S R O P L start node evaluated nodes other nodes ordered list of paths <from, to, cost> paths (result) link state database <from, to, cost> For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O (shortest path first) Note: the loops are removed here 7310/Comnet 19

Dijkstra s shortest-path-first algorithm 1. Initialize ={S}, R={N-S}, O={all one-hop paths starting from S} 2. If O is empty or is the first path in O has infinite length: then mark all the remaining nodes in R as unreachable and stop 3. p is the first (=shortest) path in O. Remove p from O. V is the last or end node of p. 4. Is V in? then go to step 2 5. Create a set of paths by adding to P all links starting from V. The length is the cost of previous path + the cost of the link. Add these paths to O in length order. Move V from R to. 6. Go to step 2 7310/Comnet 20

Dijkstra s shortest-path-first algorithm example LS DB A D 1 B 2 4 3 4 5 6 S From To Link Cost A B 1 4 A D 3 1 B A 1 4 B C 2 1 B 4 1 C B 2 1 C 5 1 D A 3 1 D 6 1 B 4 1 C 5 1 D 6 1 C ={B}, R={A, C, D, }, P = O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V = V, R = R \V P = P p nd: P contains the paths R=unreachable nodes For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 21

Dijkstra s shortest-path-first algorithm example A 4 S B C ={B}, R={A, C, D, }, P = B R D A, C, D, O <B,C,1> <B,,1> <B,A,4> O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V = V, R = R \V nd: P contains the paths R=unreachable nodes P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 22

Dijkstra s shortest-path-first algorithm example A 4 S B C ={B}, R={A, C, D, }, P = B R D A, C, D, O O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <B,,1> <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 23 X

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = B, C R D A, D, O O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <B,,1> <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 24

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = B, C R D A, D, O <B,,1> <C,,2> <B,A,4> O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V = V, R = R \V nd: P contains the paths R=unreachable nodes Not marked links P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 25

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = B, C R D A, D, O <B,,1> <C,,2> <B,A,4> O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V = V, R = R \V nd: P contains the paths R=unreachable nodes P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 26

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = B, C R D A, D, O O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <C,,2> <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 27

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A, D D B, C, R O 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <C,,2> <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 28

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A, D D B, C, R O <C,,2> <,D,2> <B,A,4> 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V = V, R = R \V nd: P contains the paths R=unreachable nodes P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 29

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A, D D B, C, R O <C,,2> <,D,2> <B,A,4> 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V = V, R = R \V nd: P contains the paths R=unreachable nodes P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 30

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A, D D B, C, R O 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <,D,2> <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 31

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A, D D B, C, R O <,D,2> <B,A,4> 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V nd: P contains the paths R=unreachable nodes = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 32

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A, D D B, C, R O 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 33

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A D B, C,, D R O 2 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 34

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A D B, C,, D R O 2 <D,A,3> <B,A,4> 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V nd: P contains the paths R=unreachable nodes = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 35

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A D B, C,, D R O 2 <D,A,3> <B,A,4> 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to V nd: P contains the paths R=unreachable nodes = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 36

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = A D B, C,, D R O 2 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= p= O[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes <B,A,4> V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 37

Dijkstra s shortest-path-first algorithm example A 4 S B C 1 ={B}, R={A, C, D, }, P = D B, C,, D, A R 2 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= nd: P contains the paths R=unreachable nodes O <B,A,4> p= O[1]; O = O \ p; V=p.to V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 38

Dijkstra s shortest-path-first algorithm example S B A C 1 3 4 ={B}, R={A, C, D, }, P = D B, C,, D, A R 2 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= nd: P contains the paths R=unreachable nodes O <B,A,4> p= O[1]; O = O \ p; V=p.to V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 39

Dijkstra s shortest-path-first algorithm example S B A C 1 3 4 ={B}, R={A, C, D, }, P = D B, C,, D, A R 2 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= nd: P contains the paths R=unreachable nodes O p= O[1]; O = O \ p; V=p.to V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 40

Dijkstra s shortest-path-first algorithm example S B A C 1 3 4 ={B}, R={A, C, D, }, P = D B, C,, D, A R 2 1 O={<B,C,1>,<B,,1>,<B,A,4>} sort O= or O[1].cost= nd: P contains the paths R=unreachable nodes O p= O[1]; O = O \ p; V=p.to V = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O 7310/Comnet 41

Advantages of Link State Protocols Link State DBs converge quickly, no loops are formed O(M log M) M = number of links Metrics can be quite accurate. In DV-protocols, counting-to-infinity limits (inf=16) One protocol can easily support several metrics: A routing table for each metric: throughput, delay, cost, reliability. Can maintain several routes to a destination. Load balancing xterior routes can have their own representation. Slide 42 Slide 44 Slide 48 7310/Comnet 42

Using several metrics (1) Using several metrics requires: Several metrics must be stored for each link L metric1, L metric2,... The protocol must transport all metrics Computing separate routing tables for each metric P metric1, P metric2,... User packets must be marked with the required metric. Type-of-service field in IP packet header 7310/Comnet 43

Using several metrics (2) A routing loop is possible if different nodes use different metrics for one user packet 1500 kbps 300 ms A 1500 kbps 300 ms B 64 kbps 20 ms C 1500 kbps 300 ms D 64 kbps 20 ms User packets must be marked with the required metric 7310/Comnet 44

Spreading load to alternative equidistant paths improves network efficiency CMP = qual Cost Multipath + + + + + - -? More bandwidth Shorter queues in routers Average delay is decreased nd-to-end jitter decreases Less traffic to reroute under failure conditions overload would take the alternative path stability is a problem When are paths equidistant enough? A D 1 2 B 3 4 5 May change packet order because paths may have different delay (different queue lengths in nodes) keep the same path for a connection (hash from address & port) xisting traffic can not be pinned down to primary path so that only 6 C 7310/Comnet 45

When are paths equidistant enough? What happens if the traffic to C is divided between two alternative paths? A D 1 2 B 3 4 5 6 1/3 1/3 2/3 2/3 C The packet to X can be sent through Y only if Y is closer to the destination than the current node Rule A Y... X, if distance(y X) < distance(a X) accepts only monotonic alternative routes 7310/Comnet 46

Dijkstra s shortest-path-first algorithm that finds alternative paths ={S}, R={other nodes}, P = O={paths starting from S with length 1} sort O = or O[1].cost= no p=o[1]; O = O \ p; V=p.to nd: P contains the paths R=unreachable nodes V? no = V, R = R \V P = P p For all links L starting from V: O = O V, L.to, p.cost + L.cost sort O W = (p\v).to dist(s W)=dist(S V)? p is a alternative path to V 7310/Comnet 47

Dijkstra s shortest-path-first algorithm that finds alternative paths 1. ={S}, R={N-S}, O={all one-hop paths starting from S} 2. If O is empty or is the first path in O has infinite length: Mark all the remaining nodes in R as unreachable Stop 3. p is the shortest path in O. Remove p from O. V is the last node of p. 4. If V is in : Go to step 6 5. Create a set of paths by adding to P all links starting from V. The path is the previous path + the cost of the link. Add these paths to O in length order. Go to step 2. 6. If the distance of path p from S to V is the same as previously calculated distance from S to V Add the alternative path to V. 7. Go to step 2 7310/Comnet 48

Link state protocol can describe several external routes with accurate metrics DV-protocol s capability to describe external routes is limited due to the counting-to-infinity problem and due to complexity of Bellman-Ford algorithm Inf = 16 maximum distance limited Bellman-Ford complexity is O(N 2 ) Link state protocol is free from those limitations Distance is not limited Dijkstra complexity is O(N log N) where N = number of external routes.g. complexity of 400 000 external routes (in 2012): 1.6 10 11 vs 2.2 10 6 7310/Comnet 49

The OSPF protocol 7310/Comnet 50

OSPF sees the network as a graph Stub network OSPF router xternal destination Transit network xternal destination xternal destination Stub network OSPF router Stub network Summary network OSPF router Stub network Stub network 7310/Comnet 51

OSPF separates between a router and a host A strict link state protocol would separately describe the link between each host and router OSPF uses IP subnet mask and advertises only a single (sub)net This creates a single link state record: A router with one port connected to a stub network OSPF router Host A Host B Host A stub network 7310/Comnet 52

OSPF supports broadcast networks (1) In a broadcast network (e.g. thernet, Token ring, FDDI) ach device can send to each other (unicast) One can send to all (broadcast) or to a subset (local multicast) of connected devices If there are N routers, they have N (N-1)/2 adjacencies ach router would advertise N-1 routes to other routers N (N-1) A B N (N-1)/2 adjacencies C F D (adjacencies are the neighbors, with which the router communicates) 7310/Comnet 53

OSPF supports broadcast networks (2) Designated router A B Backup designated router A B C C D (X) Virtual router Adjacencies are formed only with the designated router (A) Must be selected using the Hello protocol Synchronization of link DBs becomes simpler Backup designated router (B) is selected together with the designated. F Note the difference between adjacencies and the link model! D The broadcast network is modeled using a virtual router The links from the virtual router to the routers are network links Advertised by the designated router Cost = 0 The links from the routers to the virtual router Advertised by the routers 7310/Comnet 54 F

OSPF flooding protocol in a broadcast network Router X,... Advertisement 224.0.0.6 (all designated routers) Designated router Backup designated router Distribution 224.0.0.5 (all OSPF routers) Other links Other links No need to process acks from all other routers in the subnet Backup designated stays as silent as possible 7310/Comnet 55

OSPF flooding protocol in a non-broadcast network In non-broadcast networks (e.g. X.25, ATM, frame relay), OSPF works in the same way except that broadcasts are replaced by point-to-point messages Designated A B Backup Router X,... Advertisement Designated Backup C D Distribution F Permanent connection with designated Permanent connection with backup designated Dial-up connection with other routers (used for packets, not for OSPF messages) Other links NB: it makes sense to minimize permanent connections due to their cost 7310/Comnet 56

The purpose of hierarchical routing in OSPF is to reduce routing table growth Size of routing table Flat routing linear growth Logarithmic growth using areas etc. Number of network segments The cost is: sometimes suboptimal routes. 7310/Comnet 57

OSPF supports a 4 level routing hierarchy Area 3 Internet Backbone Level Description 1 Intra-area routing 2 Inter-area routing 3 xternal Type 1 metrics 4 xternal Type 2 metrics Area 2 Area 1 RIP cloud Type 1 metrics are of the same order as OSPF metrics, e.g. hop count (for RIP and OSPF) Type 2 metrics are always more significant than OSPF internal metrics (e.g. BGP-4) 7310/Comnet 58

By breaking down a large network into areas, OSPF eases flooding and reduces the size of link DBs Area 5 Area 1 Area Border Router Flooding protocol stops at the area boundary Area Border Router Backbone Area Area Border Router Area 4 Area Border Router Area 2 Area Border Router All OSPF routers within an area have identical link databases Area border router has two link DBs: one for the area, another for the backbone Area 3 ach area comprises of a set of sub-networks very area must be connected to the backbone area 7310/Comnet 59

(Sub)networks of other areas are described in summary records the metric is computed like in DV routing Link DB for Area A: a1, a2, a3 Summary records of the subnets in the backbone and Area C AB2, AB4 Distance ABx to bz, ABx to BC3 to cy (metrics are summed). xternal records AB2, AB4 A1 Same information in all areas Also summary Area A a1 records for BB0 and BB1 are required Hierarchy: areas are only connected through the backbone No loops A3 a2 a3 BB0 b2 AB2 b3 AB4 Backbone b1 b4 BB1 b6 BC1 b5 BC3 c1 c3 C2 c2 Area C C4 7310/Comnet 60

OSPF easily recovers from failures in areas A1 a1 A3 a2 Area A a3 BB0 b2 AB2 b3 AB4 b1 Backbone b4 BB1 b6 BC1 b5 BC3 c1 Area C c3 C2 c2 C4 AB2 and AB4 advertise only those subnets which they can reach: AB2: a2 AB4: a3 Backbone does not know the exact structure of area A but it knows identities of all reachable subnets. 7310/Comnet 61

A virtual link can help if backbone splits into isolated segments due to a failure BB0 b1 BB1 A1 a2 b2 AB2 b6 BC1 c1 C2 Virtual link through Area C: metric=c1+c2+c3 a1 A3 Area A a3 b3 AB4 Backbone b4 b5 BC3 Area C c3 c2 C4 Must be configured by administrator A virtual link can also be used to connect an area to the backbone via another area 7310/Comnet 62

There is no point in advertising all external routes to an area with a single area border router A Stub Area is an area where all external routes are replaced by a default route If an OSPF area has only one area border router (ABR), all traffic to and from the Internet goes through this ABR. It is not useful to advertise all Internet routes separately towards such an area. There can even be several ABRs, but it is not possible to select the best of them based on destination prefix (leading bits of IP address) A Not So Stubby Area (NSSA) is an area, in which all external routes have been summarized into the default route except for some. A type of stub area that can import AS external routes and send them to other areas, but still cannot receive AS-external routes from other areas. Internet Border Router Backbone Area Border Router Stub Area 7310/Comnet 63

OSPF link state records 7310/Comnet 64

Link State Advertisement (LSA) types in OSPF LS Type = 1 Router LSA Describes a set of links starting from a router LS Type = 2 Network LSA describes a network segment (Broadcast or NBMA) along with the IDs of currently attached routers LS Type = 3 Summary LSA for IP Network LS Type = 4 Summary LSA for Border Router LS Type = 5 xternal LSA describes external routes LS Type = 6 Group Membership LSA used in MOSPF for multicast routing LS Type = 7 Not So Stubby Area LSA to import limited external info LS Type = 8 (proposed) external attributes LSA in lieu of Internal BGP Hierarchical Routing BC = Broadcast, e.g. thernet NBMA = Non-Broadcast Multiple Access, e.g. ATM 7310/Comnet 65

Common header of Link State Advertisement (LSA) 32 bits LS age options LS type Link state ID Advertising router LS sequence number LS checksum length Key LS age: Seconds from first advertisement Options: -bit = external links T-bit = type of service support when many metrics are in use LS checksum: Protects header and content Length: Total length of the record Link state ID: Depends on LS type 7310/Comnet 66

for each link Router LSA (type 1) Describes links starting from a router. RouterType 0 Number of links Link ID Link data LinkType # TOS TOS 0 metric TOS=x 0 TOS x metric TOS=y 0 TOS y metric... TOS=z 0 TOS z metric Router type -bit (xternal) This router is an area-border router B-bit (Border) This router is a border router Link type 1. Link is a point-to-point link to another router Link ID = neighboring router s OSPF ID Link data = router s interface ID 2. Link connects to a transit network Link ID = IP address of designated router s interface Link data = router s interface ID 3. Link connects to a stub network Link ID = Network/subnet number Link data = network/subnet mask 7310/Comnet 67

(1,5) 10.1.1.5 (3,1) (1,1) 10.1.1.6 (3,10) Router LSA example exterior protocol (2,5) 10.1.1.1 (1,3) (1,3) (3,3) (2,3) 10.1.1.2 (2,1) (1,1) (3,3) (2,3) 10.1.1.9 (2,6) (1,6) (2,10) 10.1.1.10 0=ordinary 1=pt-to-pt 1=pt-to-pt 3=stub network Router 10.1.1.1 s router-lsa: LS Age = 0 seconds Options LS type=1 Link State ID = 10.1.1.1 Advertising Router = 10.1.1.1 LS Sequence Number = 0x80000006 Checksum= 0x9b47 Length = 60 bytes 0 Nr of links = 3 Link ID = 10.1.1.2 (neighb) Link Data = IF-index 1 (unnum) Type=1 #TOS=0 Metric=3 Link ID = 10.1.1.5 (neighb) Link Data = IF-index 2 (unnum) Type=1 #TOS=0 Metric=5 Link ID = 10.1.1.1 Link Data = 255.255.255.255 Type=3 #TOS=0 Metric=0 RouterType=0 -bit in options 1=Router LSA MIB-II IF-index Output Cost Length = 24 + 3 * 12 = 60 bytes Router with 100 interfaces: Length = 24 + 100 * 12 = 1224 bytes 7310/Comnet 68

Network LSA (type 2) Network mask Attached router Attached router... Attached router A C B (x) Virtual router D Advertised by designated routers for transit networks Link state ID (in header) = interface ID of designated router Attached router = OSPF identifier of the attached router LS Type = 2 Network LSA describes a network segment (Broadcast or NBMA) along with the IDs of currently attached routers 7310/Comnet 69

Network LSA example 10.4.7.4 10.4.7.5 10.4.7.3 Designated router (DR) 10.4.7.2 10.4.7.1 Backup-DR Link to transit network in all Router LSAs: (header) Flags=0 0 Number of links Link ID = 10.4.7.2 Link Data = 10.4.7.3 Type=2 #TOS=0 Metric = 1 (more links) Network LSA is generated by DR: (header) Mask = 255.255.255.248 Router1 = 10.4.7.1 Router2 = 10.4.7.2 Router3 = 10.4.7.3 Router4 = 10.4.7.4 Router5 = 10.4.7.5 Corresponds to the virtual router Network LSA reduces number of link records from O(n (n-1)) to 2 n. Particularly important if the network is ATM or Frame Relay with a lot of routers attached! Same for a CG network connecting many routers 7310/Comnet 70

Summary Link LSA (type 3,4) 0 TOS=x TOS=y TOS=z Network mask 0 TOS 0 metric 0 TOS x metric 0 TOS y metric... 0 TOS z metric For IP networks (type 3) Network mask of network/subnet Link state ID (in header) = IP network/subnet number For border routers (type 4) Network mask = 0xFFFFFFFF Link state ID (in header) = IP address of border router One separate advertisement for each destination 7310/Comnet 71

xternal Link LSA (type 5) Network mask,tos=0 0 TOS 0 metric xternal route tag (0),TOS=x 0 TOS x metric xternal route tag (x)...,tos=z 0 TOS z metric xternal route tag (z) Advertised by border routers Information from external gateway protocols (BGP-4) One destination per record Link state ID (in header) = IP network/subnet of destination Network mask = network/subnet mask -bit indicates that distance is not comparable to internal metrics Larger than any internal metric Route tag is only used by border routers (not used by OSPF) 7310/Comnet 72

Routes are computed after a change in the topology stub network external destination OSPF router OSPF router transit network stub network D external destination X D X (X) D D OSPF router OSPF router summarized network X X D stub network summarized network D D 7310/Comnet 73

Separate routes are calculated for each TOS TOS defined by OSPF 0000 normal service Defined as number of hops 0001 minimize monetary cost 0010 maximize reliability 0100 maximize throughput Defined as 100 000 000 / interface speed ( 1 for a 100 Mbps link) 1000 minimize delay.g. units of 10 μs (microsecond) For a nonzero-tos route, only routers supporting TOS are used Some destinations may be unreachable for some TOS if not all routers support TOS routed with TOS 0 (no loops because same decision in all nodes) 7310/Comnet 74

Nonbroadcast multiaccess (NBMA) subnets support many routers communicating directly but do not have broadcast capability xamples are ATM, Frame Relay, X.25, CG IP routing requires more manual configuration Designated router and backup DR concept reduce the number of adjacencies The model is prone to failures that may be hard to track 7310/Comnet 75

Point-to-multipoint subnet is more robust but less efficient 10.6.6.5 10.6.6.4 10.6.6.6 10.6.6.0/24 10.6.6.1 10.6.6.2 There is no DR nor backup DR very OSPF router maintains adjacencies with all neighbors with whom it has direct connectivity Alternative is a set of NBMA networks 10.6.6.3 Next hop routing protocol improves scalability 7310/Comnet 76

OSPF protocol operation 7310/Comnet 77

OSPF packets the protocol itself OSPF works directly on top of IP. OSPF protocol number is 89. Destination address in IP header is Neighbors IP address AllOSPFRouters (224.0.0.5) AllDesignatedRouters (224.0.0.6) Peer IP address (on virtual links) OSPF has 3 sub-protocols: Hello protocol xchange protocol Flooding protocol 7310/Comnet 78

The common OSPF message header Version=2 Type Packet length Router ID Area ID Checksum Authentic. type Authentication Authentication Type differentiates messages 1 = Hello 2 = Database Description 3 = Link State Request 4 = Link State Update 5 = Link State Ack Current version of OSPF is 2 Area ID Usually a (sub)network number 0 = Backbone Authentication type 0 = No authentication 1 = Password Limited protection 2 = Cryptographic authentication MD5 0 Key ID Length Cryptographic sequence number 7310/Comnet 79

The Hello protocol ensures that links are working and selects the Designated Router and Backup DR R1 R2 OSPF packet header type = 1 Hello ( to all OSPF routers) Network mask Hello interval Options Priority Dead interval Designated router Backup designated router Neighbor --- Neighbors a list of neighbors that have sent a hello packet during last dead interval seconds. Hello interval how often hello packets are sent (in seconds). Priority the eligibility for the role of designated router. A hello packet must be sent in both directions before a link is considered operational Neighbor Options = external route capability. T = TOS routing capability. M = Multicast capability (MOSPF). DR and Backup DR = 0 if not known 7310/Comnet 80

The Hello protocol selects the Designated Router and Backup DR ligibility is achieved after one dead interval provided two-way reachability is OK. 1. If one or several neighbors proposed themselves as backup designated router, the one with highest priority is elected as backup DR. Tie is broken by electing the one with highest ID. 2. If no neighbor proposed itself to backup DR, the neighbor with the highest priority is selected. Tie is broken by selecting the one with highest ID. 3. If one or several neighbors proposed themselves as designated router, the one with the highest priority is selected. Tie is broken by selecting the one with highest ID. 4. If none proposed itself to DR, the backup DR is promoted. Actions 1 and 2 are repeated to re-select the backup DR. To minimize changes, a high priority former DR postpones its proposal to retake the position of DR after recovery. Actions 1-4 are continuous. 7310/Comnet 81

The xchange protocol initially synchronizes link DB with the designated router (1) R1 dd_req (I=1,M=1,Ms=1) dd_req (I=1,M=1,Ms=0) dd_req (I=0,M=1,Ms=1) R2 Select the master OSPF packet header type = 2 (dd) 0 0 Options 0 I,M,Ms dd sequence number dd_req (I=0,M=1,Ms=0) dd = data description M = more xchange of descriptions I = initialize Ms = Master/slave xchange protocol uses database description packets First the master and slave are selected If both want to be masters, the highest address wins Retransmission if the packet is lost The same sequence number in the replies 7310/Comnet 82

The xchange protocol initially synchronizes link DB with the designated router (2) R1 dd_req (I=1,M=1,Ms=1) dd_req (I=1,M=1,Ms=0) dd_req (I=0,M=1,Ms=1) dd_req (I=0,M=1,Ms=0) dd = data description M = more R2 Select the master xchange of descriptions I = initialize Ms = Master/slave Master sends its Link DB description in sequence numbered packets Slave acknowledges by sending its corresponding description packets. key OSPF packet header type = 2 (dd) 0 0 Options 0 I,M,Ms dd sequence number Link state type Link state ID Advertising router Link state sequence number Link state checksum Link state age... xchange continues until all descriptions are sent and acknowledged. (M=0) Differences are recorded on the list of records-to-request. 7310/Comnet 83

Request packets are used to get record contents R1 request Advertisement as in flooding protocol R2 key OSPF packet header type = 3 (rq) Link state type Link state ID Advertising router --- Requests are acknowledged by flooding protocol packets Router waits for ack for resend interval. If no response, the request is repeated. If there are too many records to request, several rq messages are sent. If something goes wrong, the typical remedy is to restart role negotiation. The first request can be sent immediately when the first differing record has been detected. Then dd-packet exchange and rq-packet exchange take place in parallel. 7310/Comnet 84

The Flooding protocol continuously maintains the area s Link DB integrity Router X,... Advertisement Ack Designated Router Backup DR OSPF packet header type = 4 (upd.) Number of advertisements Link State Advertisements (see LSA format) --- Flooding OSPF packet header type = 5 (ack.) LSA headers --- Original LSA is always sent by the router responsible for that link. Advertisement is distributed according to flooding rules to the area (age=age+1). Ack of a new record by DR can be replaced in Broadcast network by update message. One ack packet can acknowledge many LSAs. By delaying, several acks are collected to a single packet 7310/Comnet 85

Summary of OSPF subprotocols Protocol Message Hello (1) DD (2) LS rq (3) LS upd (4) LS ack (5) Hello protocol X Database exchange X X X X Flooding protocol X X Server Cache Synchronization Protocol (SCSP) is OSPF without Dijkstra s algorithm and with more generic data objects. 7310/Comnet 86

LSA Sequence Numbers The initial sequence number - N + 1 (where N =2 31 ) is used the first time the LSA is originated Incremented each time a new version is sent When the max sequence number N-1 is reached The last version of the LSA is aged and removed from all routers Counting starts from the initial sequence number again Note that the lollipop sequence numbering (in the book) is not used any longer Replaced with a linear numbering space, with special rules for what happens when the sequence numbers reach the end of the numbering space 7310/Comnet 87

Link records have an age, old/dead ones are removed from Link DB (1) Old information must be removed from DB very node must use the same information The removals must be synchronized The LSAs of OSPF have an age Age = 0 when the advertisement is created Age = number of hops through which the advertisement has traveled + seconds from reception Max age is 1 hour Not used in the calculation of routes Must be removed very entry must be advertised at a 30 min interval. The new advertisement zeroes the age and increments the sequence number. 7310/Comnet 88

Link records have an age, old/dead ones are removed from Link DB (2) When the age reaches MaxAge (= 1 h) the entry is removed The router must send an advertisement to the neighbors when the aged entry is removed The flooding algorithm examines the age of the received advertisement 1. MaxAge advertisement is accepted and flooded this removes obsolete info. 2. If the age difference of the advertisement to the DB is small, the advertisement is not flooded to avoid overloading the network with multiple copies of the same info. This is due to normal routing when the entry is received on different paths. 3. If the age difference is large (>MaxAgeDiff), the newest advertisement is accepted and distributed. In this case, the router has probably been restarted. 4. If a MaxAge record is not found, advertisement has no impact. The router most likely has already removed the dead LSA. 7310/Comnet 89

Updated flooding algorithm Receive M Find entry L in link DB for which L.link = M.link Found? no Create entry L = M Broadcast M on all interfaces L.seq < M.seq? Update entry L = M Broadcast M on all interfaces nd no L.seq > M.seq M L L.link L.seq L.age Create message M = L Send M to sender no received and forwarded entry corresponding entry in link DB link id of entry L sequence number of entry L age of entry L M.age= MaxAge? no M.age-L.age no >MaxAgeDiff? Update entry L = M Broadcast M on all interfaces Delete entry L 7310/Comnet 90

OSPF timeouts LS Age field Constant Value Action of OSPF router MinLSArrival 1 second Max rate at which a router will accept updates of any LSA via flooding MinLSInterval CheckAge MaxAgeDiff LSRefreshTime MaxAge 5 seconds 5 min 15 min 30 min 1 hour Max rate at which a router can update an LSA Rate to verify an LSA Checksum in DB When Ages differ more than 15 min, they are considered separate. Smaller LS age - newer! A Router must refresh any self-originated LSA whose age has reached 30 min. LSA is removed from DB. 7310/Comnet 91

xample of routing hierarchy xample: 10.0.0.0/8 10.1.3 10.1. 10.1.1 10.1.2 10.3.3 10.3. 10.3.1 10.3.2 10.2.3 10.2. 10.2.1 10.2.2 16 segments in each lowest level network Flat routing: RTsize= 16*9=144 Areas 10.1.1: 16 local routes + 10.1.2/24 10.1.3/24 10.2/16 10.3/16 = 20 RT entries! Summary records of the subnets in the backbone and other areas xternal records 7310/Comnet 92

Why is it difficult to route packets around network congestion? BBN ARPANT link state metric varied with the length of the output queue of the link lead to route trashing. The problem is there is no route pin-down for existing traffic. By limiting the range of the metric changes, an equilibrium could be reached. Nevertheless routing instability is the problem. When QoS or Class of Service a la DiffServ is introduced this problem again becomes important. 7310/Comnet 93

OSPF development history CIDR 1987 1989 1991 1993 1995 1997 OSPF Group formed OSPFv1 published RFC 1131 OSPFv2 published RFC 1247 RFC 1583 OSPF update Becomes recommended Cryptographic authentication Point-to-multipoint interfaces MOSPF OSPFv2 updated RFC 2178 7310/Comnet 94