0131_09F7/c21 Link-state protocols SPF algo
2 Henk Smit jan1999 Summary The basic ideas of link-state protocols Dijkstra’s Shortest Path First algorithm
3 Henk Smit jan1999 Summary The basic ideas of link-state protocols Dijkstra’s Shortest Path First algorithm
4 Henk Smit jan1999 The basic idea In a link-state protocol, the network can be viewed as a jigsaw puzzle Each piece of the puzzle holds one router Each router creates a packet which represents its own jigsaw piece These packets are flooded everywhere Use SPF to put the pieces together
5 Henk Smit jan1999 About link-state protocols The jigsaw puzzle LSP for routerA LSP for routerB LSP for routerC LSP for routerD to B to E to D to C to A to D to C to B LSP for routerE to A to B to A to E
6 Henk Smit jan1999 Link-state protocols Each router keeps track of its own state Send and receive hellos to detect neighbors Keep track of IP and CLNS addresses interface IP prefixes maybe inter-area or redistributed prefixes Each router builds one linkstate packet (LSP) with all own local information OSPF builds multiple LSAs for inter-area/externals
7 Henk Smit jan1999 Link-state protocols All routers exchange copies of all LSPs via a reliable flooding mechanism Each router stores all LSPs in a database separate from the routing table all routers should have exactly the same LSPDB New LSPs sent only when there’s a change and additionally periodic refreshes new LSP will overwrite the old LSP – no partial updates
8 Henk Smit jan1999 Link-state protocols By executing Dijkstra’s SPF algorithm, each router ‘composes the jigsaw puzzle’. the topology is calculated as a shortest-path-tree each router is the root of the SPT it has calculated From the SPT the RIBs are calculated No routing loops will occur because all routers have an identical LSPDB all info in the LSPDB comes directly from the source –Distance Vector protocols are based on hear-say
9 Henk Smit jan1999 Each router has the same LSPDB RouterA’s LSPDB RouterB’s LSPDB RouterC’s LSPDB RouterE’s LSPDB RouterD’s LSPDB lspA lspB lspC lspD lspE lspA lspB lspC lspD lspE lspA lspB lspC lspD lspE lspA lspB lspC lspD lspE lspA lspB lspC lspD lspE
10 Henk Smit jan1999 Summary The basic ideas of link-state protocols Dijkstra’s Shortest Path First algorithm Pseudonodes and Network LSAs Flooding Scaling link-state protocols by using areas inter-area routing is IS-IS
11 Henk Smit jan1999 Shortest Path First algorithm Also called Dijkstra’s algorithm The goal is to find the topology in the form of a shortest path tree (SPT) From the SPT we build routing tables Complexity is independent from position of computing router in the network makes LS protocols less useful for hub-and-spoke use distance-vector with default routes and filters
12 Henk Smit jan1999 Shortest Path First algorithm SPF complexity is O(n log n) Theoretical complexity depends on sorting ISIS uses quick array sort –causes link metric limitation of 63 CPU usage in real life depends on other stuff number of links is important number of IP routes, stability of adjacencies, etc flooding is probably more important for scaling
13 Henk Smit jan1999 Shortest Path First algorithm We maintain three lists (or sets) Unknown list all nodes start on this list TENTative list all nodes we are currently examining also called candidate list PATHS list all nodes to which we have calculated final paths also called known list
14 Henk Smit jan1999 Shortest Path First algorithm We execute N steps typically N is the number of nodes in the network At each step we move one node to PATHS During the first step we move ourself to PATHS During the next steps we find the node that has the shortest path amongst all nodes on TENT, and move it from TENT to PATHS At each step we find all neighbors reachable from that node and move them to the TENT list
15 Henk Smit jan1999 Shortest Path First algorithm Special actions after each step we clean up the TENT list if a node is directly connected to us, search the first-hop info in the adjacency database if a node is not directly connected to us, copy the first-hop info from the parent(s) for each node on TENT, maintain the cost to get there from the root, and the first-hop info if parallel paths, maintain multiple first-hops
16 Henk Smit jan1999 A network rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
17 Henk Smit jan1999 The link-state database LSP K IS: 4 S IS: 2 F LSP S IS: 4 Q IS: 5 W IS: 4 K LSP W IS: 3 R IS: 3 A IS: 12 F IS: 5 S IS: 2 Q LSP R IS: 3 D IS: 7 A IS: 3 W IS: 2 B IS: 12 F LSP B IS: 2 C IS: 2 R IS: 5 F LSP D IS: 3 A IS: 8 C IS: 3 R IS: 4 A LSP F IS: 5 B IS: 12 R IS: 5 B IS: 12 W IS: 2 K LSP A IS: 3 D IS: 4 D IS: 7 R IS: 3 W IS: 5 Q LSP Q IS: 5 A IS: 2 W IS: 4 S LSP Z IS: 3 C IS: 3 D LSP C IS: 2 B IS: 8 D
18 Henk Smit jan1999 The adjacency database NeighborInterfaceCost rtrDserial03 rtrDserial14 rtrRserial27 rtrWserial33 rtrQserial45 rtrQserial55
19 Henk Smit jan1999 Shortest Path First example Initial situation TENT:empty PATHS:empty Unknown:A B C D F K Q R S W Z
20 Henk Smit jan1999 Shortest Path First example First iteration Move ourself (rtrA) to PATHS Move neighbors of rtrA to TENT find first-hop info in adjacency database TENT: D cost 3 via S0, R cost 7 via S2, W cost 3 via S3, Q cost 5 via S4 or S5 PATHS:A Unknown:B C F K S Z
21 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
22 Henk Smit jan1999 Shortest Path First example Second iteration Move rtrD to PATHS Move neighbors of rtrD to TENT rtrC and rtrR, found better path to rtrR, ignore rtrA TENT: W cost 3 via S3, Q cost 5 via S4/S5, C cost 11 via S0, R cost 6 via S0 PATHS:A, D cost 3 via S0 Unknown:B F K S Z
23 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
24 Henk Smit jan1999 Shortest Path First example Third iteration Move rtrW to PATHS, neighbors of rtrW to TENT F and S, found more equal-cost paths to R and Q TENT: Q cost 5 via S4/S5/S3, C cost 11 via S0, R cost 6 via S0/S3, S cost 8 via S3, F cost 15 via S3 PATHS:A, D cost 3 via S0, W cost 3 via S3 Unknown:B K Z
25 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
26 Henk Smit jan1999 Shortest Path First example Fourth iteration Move rtrQ to PATHS, neighbors of rtrQ to TENT found worse path (9 vs 8) to S. A W already known TENT: C cost 11 via S0, R cost 6 via S0/S3, S cost 8 via S3, F cost 15 via S3 PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3 Unknown:B K Z
27 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
28 Henk Smit jan1999 Shortest Path First example Fifth iteration Move rtrR to PATHS, neighbors of rtrR to TENT new path to B, worse to F. A D W already known TENT: C cost 11 via S0, S cost 8 via S3, F cost 15 via S3, B cost 8 via S0/S3 PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3 Unknown:K Z
29 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
30 Henk Smit jan1999 Shortest Path First example Sixth iteration Move rtrS to PATHS, neighbors of rtrS to TENT new path to K. Q W already known TENT: C cost 11 via S0, F cost 15 via S3, B cost 8 via S0/S3, K cost 12 via S3 PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3, S cost 8 via S3 Unknown:Z
31 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
32 Henk Smit jan1999 Shortest Path First example Seventh iteration Move rtrB to PATHS, neighbors of rtrB to TENT better paths to C (10 vs 11) and F (13 vs 15) TENT: C cost 10 via S0/S3, F cost 13 via S0/S3, K cost 12 via S3 PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3, S cost 8 via S3, B cost 8 via S0/S3 Unknown:Z
33 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
34 Henk Smit jan1999 Shortest Path First example Eigth iteration Move rtrC to PATHS, neighbors of rtrC to TENT B and D already known TENT: F cost 13 via S0/S3, K cost 12 via S3 PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3, S cost 8 via S3, B cost 8 via S0/S3, C cost 10 via S0/S3 Unknown:Z
35 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
36 Henk Smit jan1999 Shortest Path First example Ninth iteration Move rtrK to PATHS, neighbors of rtrK to TENT found worse path to F (14 vs 13), S already known TENT: F cost 13 via S0/S3 PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3, S cost 8 via S3, B cost 8 via S0/S3, C cost 10 via S0/S3, K cost 12 via S3 Unknown:Z
37 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
38 Henk Smit jan1999 Shortest Path First example Tenth iteration Move rtrF to PATHS, neighbors of rtrK to TENT all neighbors already known, no changes to TENT TENT: empty PATHS:A, D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3, S cost 8 via S3, B cost 8 via S0/S3, C cost 10 via S0/S3, K cost 12 via S3, F cost 13 via S0/S3 Unknown:Z
39 Henk Smit jan1999 PATHS and TENT rtrW RtrR rtrD rtrC rtrA rtrB rtrQ rtrS rtrK rtrF rtrZ
40 Henk Smit jan1999 Shortest Path First example Done ! iteration stops because TENT is empty we obviously didn’t find a path to Z we can now calculate routing tables result:D cost 3 via S0, W cost 3 via S3, Q cost 5 via S4/S5/S3, R cost 6 via S0/S3, S cost 8 via S3, B cost 8 via S0/S3, C cost 10 via S0/S3, K cost 12 via S3, F cost 13 via S0/S3