link state routing jean-yves le boudec fall 2009 1

34
Link State Routing Jean-Yves Le Boudec Fall 2009 1 ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE

Upload: cassandra-shell

Post on 14-Dec-2015

229 views

Category:

Documents


0 download

TRANSCRIPT

Link State Routing

Jean-Yves Le BoudecFall 2009

1

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE

Contents

1. Link state flooding topology informationfinding the shortest paths (Dijkstra)

2. Hierarchical routing with areas3. OSPF

database modellingneighbor discovery - Hello protocoldatabase synchronizationlink state updatesexamples

2

1. Link State Routing

Principle of link state routingeach router keeps a topology database of whole networklink state updates flooded, or multicast to all networkrouters compute their routing tables based on topologyoften uses Dijkstra’s shortest path algorithm

Used in OSPF (Open Shortest Path First), IS-IS (similar to OSPF)and PNNI (ATM routing protocol)

3

(a) Topology Database Synchronization

Neighbouring nodes synchronize before starting any relationshipHello protocol; keep aliveinitial synchronization of database description of all links (no information yet)

Once synchronized, a node accepts link state advertisementscontain a sequence number, stored with record in the databaseonly messages with new sequence number are acceptedaccepted messages are flooded to all neighbourssequence number prevents anomalies (loops or blackholes)

4

Example network

5

n1

A

B

n6

D E

n4

n3

C

n5n2

F

n7

Each router knows directly connected networks

Initial routing tables

6

net type

n1 Ethern2 P-to-P

A

n1

A

B

n6

D E

n4

n3

C

n5n2

F

n7

net type

n6 Ethern5 P-to-P

Dnet type

n6 Ethern7 Ether

E

net type

n1 Ethern7 Ether

F

net type

n1 Ethern4 P-to-Pn5 P-to-P

C

net type

n3 Ethern2 P-to-Pn4 P-to-P

B

After Flooding

7

rtr net costrtr net cost

A n1 10A n2 100B n3 10B n2 100B n4 100C n1 10C n4 100C n5 100D n6 10D n5 100E n6 10E n7 10F n1 10F n7 10

A n1 10A n2 100B n3 10B n2 100B n4 100C n1 10C n4 100C n5 100D n6 10D n5 100E n6 10E n7 10F n1 10F n7 10

The local metric information is flooded to all routers After convergence, all routers have the same

information

n1

A

B

n6

D E

n4

n3

C

n5n2

F

n7

(b) Topology graph

8

Arrows routers-to-nets with a given metricexcept P-to-P, stub, and external networks

From nets to routers, metric = 0

A

B

C

D

F

E

100

10 10

10

10

100100

n1

100 n6

n7

n3

100

10

100

10

10

10

0

0

0

0

0 0

externalnetwork

54

0

stub network

point to pointlink

broadcastnetwork

externalnetwork

(b) Path ComputationPerformed locally, based on topology databaseComputes one or several best paths to every destination from this nodeBest Path = shortest for OSPFOSPF uses Dijkstra’s shortest path

the best known algorithm for centralized operation

Paths are computed independently at every nodesynchronization of databases guarantees absence of persistent loopsevery node computes a shortest path tree rooted at self

9

Simplified graph

10

Only arrows with metrics between routers Every node executes the shortest path computation on

the graph – same graph, but different sources

A

B

C

D

F

E

100

10

10

10

10

10

100 100

Dijkstra’s Shortest Path Algorithm

The nodes are 0...N and the algorithm computes best paths from node 0 c(i,j) is the cost of (i,j), pred(i) is the predecessor of node i on the tree M being built m(j) is the distance from node 0 to node j.

as Bellman-Ford, works for any min-plus algebra

11

m(0) = 0; M = {0};

for k=1 to N {

find (i0, j0) that minimizes m(i) + c(i,j), with i in M, j not in M m(j0) = m(i0) + c(i0, j0) pred(j0) = i0 M = M {j0}}

m(0) = 0; M = {0};

for k=1 to N {

find (i0, j0) that minimizes m(i) + c(i,j), with i in M, j not in M m(j0) = m(i0) + c(i0, j0) pred(j0) = i0 M = M {j0}}

Example: Dijkstra at A

12

A

B

C

D

F

E

100

10

10

10

10

10

100 100

init: M = { A }

step 1: i0=A j0=C m(C)=10M = {A, C}

m(A)=0 m(C)=10

Example: Dijkstra at A

13

A

B

C

D

F

E

100

10

10

10

10

10

100 100

i0=Aj0=Fm(F)=10M = {A,C,F}

m(A)=0 m(C)=10 m(F)=10

Example: Dijkstra at A

14

A

B

C

D

F

E

100

10

10

10

10

10

100 100

i0=Fj0=Em(E)=20M = {A,C,F,E}

m(A)=0 m(C)=10 m(F)=10

m(F)=20

Example: Dijkstra at A

15

A

B

C

D

F

E

100

10

10

10

10

10

100 100

i0=Ej0=Dm(D)=40M = {A,C,F,E,D}

m(A)=0 m(C)=10 m(F)=10

m(E)=20m(D)=30

Example: Dijkstra at A

16

A

B

C

D

F

E

100

10

10

10

10

10

100 100

i0=Aj0=Bm(B)=100M = {A,C,F,E,D,B}

m(A)=0 m(C)=10 m(F)=10

m(E)=20m(D)=30m(B)=100

Routing table of A

17

net next

n1 directn2 directn3 Bn4 Cn5 Cn6 Fn7 F

A

n1

A

B

n6

D E

n4

n3

C

n5n2

F

n7

Test Your Understanding

Q1: Run Dijkstra at CQ2: What are the routing tables at C

solution

18

LS: SummaryAll nodes compute their own topology database

represents the whole networkstrongly synchronized

All nodes compute their best path tree to all destinationsRouting tables are built from the tree

used for next hop routing only

LS versus DVLS avoids convergence problems of DV supports flexible cost definitions; can be used for routing ATM connectionsLS is much more complex

19

2. Divide large networks Why divide large networks?Cost of computing routing tables

update when topology changesSPF algorithm

n routers, k linkscomplexity O(n*k)

size of DB, update messages grows with the network size

Use hierarchical routing to limit the scope of updates and computational overhead

divide the network into several areasindependent route computing in each areainject aggregated information on routes into other areas

We explain hierarchical routing the OSPF wayIS-IS does things a bit differently

20

Hierarchical Routing

A large OSPF domain can be configured into areasone backbone area (area 0)non backbone areas (areas numbered other than 0)

All inter-area traffic goes through area 0strict hierarchy

Inside one area: link state routing as seen earlierone topology database per area

21area 0

B1X3

X1

X4A1

area 2area 1

X1

X3X4B2A2

Principles Routing method used in the higher level:

distance vectorno problem with loops - one backbone area

Mapping of higher level nodes to lower level nodesarea border routers (inter-area routers) belong to both areas

Inter-level routing informationsummary link state advertisements (LSA) from other areas are injected into the local topology databases

22

Example

Assume networks n1 and n2 become visible at time 0. Show the topology databases at all routers

solution

23

area 0

B1X4

X1

X3A1

area 2area 1

X2

X6X5B2A2

n1

n2

10

10

10

66

66

6

6

10

10

10

HintsAll routers in area 2 propagate the existence of n1 and n2, directly attached to B1 (resp. B2). Draw the topology database in area 2.Area border routers X4 and X6 belong to area 2, thus they can compute their distances to n1 and n2Area border routers X4 and X6 inject their distances to n1 and n2 into the area 0 topology database (item 3 of the principle). The corresponding summary link state record is propagated to all routers of area 0. Draw now the topology database in area 0.All routers in area 0 can now compute their distance to n1 and n2, using their distances to X4 and X6, and using the principle of distance vector (item 1 of the principle). Do the computation for X3 and X5.Area border routers X3 and X5 inject their distances to n1 and n2 into the area 1 topology database (item 3 of the principle). Draw now the topology database in area 1.

24

CommentsDistance vector computation causes none of the RIP problems

strict hierarchy: no loop between areas

External and summary LSA for all reachable networks are present in all topology databases of all areas

most LSAs are externalcan be avoided in configuring some areas as terminal: use default entry to the backbone

Area partitions require specific supportpartition of non-backbone area is handled by having the area 0 topology database keep a map of all area connected componentspartition of backbone cannot be repaired; it must be avoided; can be handled by backup virtual area 0 links through non backbone area

25

*Example of issue : partitioned backbone

No connectivity between areas via backbone There is a route through Area 2Virtual link

X4 and X6 configure a virtual link through Area 2virtual link entered into the database, metric = sum of links

26

area 0

B1X4

X1

X3A1

area 2area 1

X2

X6X5B2A2

n1

n2

10

10

10

6

66

6

10

10

10

3. The OSPF ProtocolOSPF (Open Shortest Path First)

IETF standard for internal routingused in large networks (ISPs)

Link State protocol + Hierarchical

27

*OSPF ComponentsOn top of IP (protocol type = 89)Multicast

224.0.0.5 - all routers of a link224.0.0.6 - all designated and backup routers

Sub-protocolsHello to identify neighbors, elect a designated and a backup routerDatabase description to diffuse the topology between adjacent routersLink State to request, update, and ack the information on a link (LSA - Link State Advertisement)

28

*TOS and metric

TOSmapping of 4 IP TOS bits to a decimal integer0 - normal service2 - minimize monetary cost4 - maximize reliability8 - maximize throughput16 - minimize delay

Metrictime to send 100 Mb over the interfaceC = 108/bandwidth1 if greater than 100 Mb/scan be configured by administrator

29

*OSPF - summary

OSPF vs. RIPmuch more complex, but presents many advantages

no count to infinityno limit on the number of hops (OSPF topologies limited by Network and Router LSA size (max 64KB) to O(5000) links)less signaling traffic (LS Update every 30 min)advanced metriclarge networks - hierarchical routing

most of the traffic when change in topologybut periodic Hello messagesin RIP: periodic routing information traffic

drawbackdifficult to configure

30

Solutions

31

Test Your Understanding

Q1: Run Dijkstra at CA: (final step)Q2: What are the routing tables at C

32

A

B

C

D

F

E

100

10

10

10

10

10

100 100

m(F)=10m(C)=0m(A)=10

m(F)=20m(D)=30m(B)=100

Test Your Understanding

Q2: What are the routing tables at CA:

33

net next

n1 directn2 An3 Bn4 directn5 directn6 Fn7 F

C

n1

A

B

n6

D E

n4

n3

C

n5n2

F

n7

back

Solution

34

area 0

B1X4

X1

X3A1

area 2area 1

X2

X6X5B2A2

n1

n2

10

10

10

66

66

6

6

n1

n2

area 2 topology database

area 0 topology database

n1, d=10n2, d=16

n1, d=16n2, d=10

n1, d=28n2, d=22

n1, d=22n2, d=16

10

10

10

area 1 topology database

back