Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3....

45
1 Information Network 1 Routing (1) Youki Kadobayashi NAIST ©2017 Youki Kadobayashi, All rights reserved. Image: Part of the entire Internet topology based on CAIDA dataset, using NAIST Internet viewer

Transcript of Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3....

Page 1: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

1

Information Network 1Routing (1)

Youki KadobayashiNAIST

©2017 Youki Kadobayashi, All rights reserved.

Image: Part of the entire Internet topology based onCAIDA dataset, using NAIST Internet viewer

Page 2: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

2

The Routing Problem

How do I get from source to destination?

S D

©2017 Youki Kadobayashi, All rights reserved.

163.221.10.10 203.178.136.61

Page 3: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

3

The Routing Problem: add some realistic constraints…

How do I get from source to destination?

Which path is best? In terms of:Number of hopsDelay, bandwidthPolicy constraints, cost…

Who will make decision?Router?Source?

How can we detect failures?How much the overhead will be?

S D

Rogue ISP

500ms 500ms

unreliable

©2017 Youki Kadobayashi, All rights reserved.

Page 4: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Routing problem can be solved in many ways

Represent network in:a graph, ora matrix

Collect information:across the network, ortoward some routers, oronly locally among neighbors

Compute route at:every router, orsome routers

… solutions are instantiated in routing systems.

4©2017 Youki Kadobayashi, All rights reserved.

Page 5: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Characterization of routing systems

Static routingCompute route a priori

Dynamic routingReflect dynamic state of network

Source-based routingSource node computes path to destination

Hop-by-hop routingEvery node computes next hop

5

S D

©2017 Youki Kadobayashi, All rights reserved.

Page 6: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Focus of this lecture: dynamic, hop-by-hop routing

Static routingCompute route a priori

Dynamic routingReflect dynamic state of network

Source-based routingSource node computes path to destination

Hop-by-hop routingEvery node computes next hop

6©2017 Youki Kadobayashi, All rights reserved.

Page 7: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

7

Routing system has many functions

Provision end-to-end reachabilityAutomatically compute best pathDistribute traffic among multiple links

Avoid failing linksIsolate faultsReflect administrative policies

… in one system. Isn’t it awesome.

©2017 Youki Kadobayashi, All rights reserved.

Page 8: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Routing system can be characterized by…

Representation of networkNetwork topologyAttributes associated with each link

Exchange of informationCommunication overheadPropagation speed

Computation algorithmComputation overheadConvergence speed

Routing system: protocol + information + algorithm

8©2017 Youki Kadobayashi, All rights reserved.

Page 9: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

9

Routing system: its structure

Routing protocoldiscovers neighbor router;exchanges topology information;exchanges link information

Routing algorithmcomputes route (result: RIB - Routing Information Base)

Integrate information from multiple routing protocolsMultiple routing protocols → Multiple RIBsConsolidate Multiple RIBs into single FIB(FIB: Forwarding Information Base)

©2017 Youki Kadobayashi, All rights reserved.

Page 10: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Typically, routing protocol discovers network topology

Topology: geometric configurations that are unaltered by elastic deformations

10

1

2

3

1

3

2

1 2 3

123

∞ 1 31 ∞ 23 2 ∞

Graph representation Matrix representation

©2017 Youki Kadobayashi, All rights reserved.

Page 11: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

11

Gateway Model: a conceptual model of routing system

FIB(forwarding information base)

Input interfaces Output interfaces

Multiple RIBs(routing information base)

Routing softwareTopology info,Link status info

Topology info,Link status info

©2017 Youki Kadobayashi, All rights reserved.

Page 12: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

12

Types of Routing Algorithm

1. Distance vector2. Link state3. Path vector

Key difference of these algorithms:Topology representationPropagation range / frequency / timing of link stateAlgorithm for computing shortest path

Design trade-offs:ScalabilityConvergence timeAlgorithm simplicity

©2017 Youki Kadobayashi, All rights reserved.

Page 13: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

13

Questions?

©2017 Youki Kadobayashi, All rights reserved.

Page 14: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Distance Vector Routing

©2017 Youki Kadobayashi, All rights reserved. 14

Page 15: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

15

Distance vector routing w/ Bellman-Ford algorithm1. assign distance vector to myself 0; for others, assign ∞2. send my distance vectors to all neighbor routers3. router calculates minimum distance vectors by 1) distance vectors advertised by neighbor routers and 2) distance from myself to individual neighbor router

Initial condition

bi(0) ← ∞ (i ≠ D)

bD(0) ← 0

Repetition

bi(m) ← minj ∈ Vi{bj

(m-1) + dij}

Terminal condition

bi(m) = bi

(m-1)

D: destination router, bi(m): distance between router “i” and “D” by m-times iterative

calculation, Vi: neighbor routers of router “i”, dij: distance of link between router “i” and j

DN p.397

©2017 Youki Kadobayashi, All rights reserved.

Page 16: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

16

RIP: Routing Information Protocol

Distance vector routingRIP-2 (IPv4), RIPng (IPv6)Used in relatively small network

• Due to ease of implementation and operation

Textbook classics

RFC 2453, RFC 2080

©2017 Youki Kadobayashi, All rights reserved.

Page 17: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Informal description of RIP

Each router sends a list of distance-vectors (route, cost) to each neighbor periodicallyEvery router selects the route with smallest metricMetric: integer of 1..16, where 16 implies infinity

©2017 Youki Kadobayashi, All rights reserved. 17

A B Ccost: 2cost: 1

Router metricA 3

B 2

Router metricA 1

C 2

Router metricB 1

C 3

Page 18: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Hands on:

RIP in action via GNS3 software(quick demo by TA)

©2017 Youki Kadobayashi, All rights reserved. 18

Page 19: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Hands on task: try to expand your RIP network

Add 4th router to your RIP network and verify connectivityExample topology:

©2017 Youki Kadobayashi, All rights reserved. 19

1

2

3

1 32

4

4

Page 20: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

20

Problems of distance vector routing

Poor scalability. For the given number of routers N,Time complexity: O(N3)Traffic: O(N2)

Slow convergence speed, as it sends distance vector periodically

Slow convergence induces inconsistent and transitional state=> Counting to infinity problem

©2017 Youki Kadobayashi, All rights reserved.

Page 21: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

21

Counting to infinity problem

A CB

Suppose link B-C went down.B thinks: (C, inf)A says: (C, 2)B thinks: (C, 3) via AB says: (C, 3)A thinks: (C, 4) via B…

1 1 → inf

©2017 Youki Kadobayashi, All rights reserved.

Page 22: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

22

Split Horizon

A CB

Suppose link B-C went down.B thinks: (C, inf)A says: (C, 2) to everyone except B…

1 1 → inf

Workaround for counting to infinityRouter doesn’t send learned information to source router

©2017 Youki Kadobayashi, All rights reserved.

Page 23: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

23

Limitation of split horizon

A CB

Suppose link B-C went down.B thinks: (C, inf)A says: (C, 2) to everyone except BD thinks: (C, 3) via AD says: (C, 3)B thinks: (C, 4) via D…

1 1 → inf

D

11

©2017 Youki Kadobayashi, All rights reserved.

Page 24: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

24

Questions?

©2017 Youki Kadobayashi, All rights reserved.

Page 25: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Lessons from RIP

Bellman-Ford: very simpleBut with many traps and pitfalls…

Guiding principle for using RIP: avoid loops!

Loops can be easily formed, however.Backup linksGuiding principle can be easily forgotten

• OMG!

A better alternative: link state routing.

©2017 Youki Kadobayashi, All rights reserved. 25

Page 26: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Link-State Routing

©2017 Youki Kadobayashi, All rights reserved. 26

Page 27: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

27

Link-state routing

Collect router and link information→ Directed graph: router as a node, link as an arc

… then create link state database (LSDB)• A network map that collects link state information

Based on LSDB, calculate the shortest path with the Dijkstra’s shortest path algorithm

Time complexity: O(N2)• Can be further optimized by improved data structure

©2017 Youki Kadobayashi, All rights reserved.

Page 28: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

28

A high level view of link-state routing

Router

Link

Router

Link

LSDB RIBDijkstra

directed graph shortest path tree

fragments ofdirected graph

©2017 Youki Kadobayashi, All rights reserved.

Page 29: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

29

Graph representation of routers and links

Source: OSPF Version 2, RFC 1583©2017 Youki Kadobayashi, All rights reserved.

Page 30: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

30

A more complexnetwork

©2017 Youki Kadobayashi, All rights reserved.

Page 31: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

31

and its directed graphrepresentation

©2017 Youki Kadobayashi, All rights reserved.

Page 32: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

32

Shortest path tree;rooted at RT6

©2017 Youki Kadobayashi, All rights reserved.

Page 33: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

33

Questions?

©2017 Youki Kadobayashi, All rights reserved.

Page 34: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

34

From directed graph to shortest-path trees:Dijkstra Algorithm

Initially,ds ← 0dj ← csj (for every j ∈ V – {s})P ← {s}

Find the next closest node:di ← minj ∈ V – P {dj}P ← P ∪ {i}

Update labels:dk ← mink ∈ V – P {dk, di + cik}

Terminal condition:P = V

V: all routers, s: starting router, cik: link cost between “i” and “k”,dj: least cost between “s” to “j”, P: router with least cost determined

©2017 Youki Kadobayashi, All rights reserved.

Interconnections p.223

Page 35: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

35

Pros and Cons of Link-State Routing

Traffic increases in proportion to the number of links and routersStorage complexity increases in proportion to the number of links and routersTime complexity: lower than distance vector routing

Convergence time: must be short, for transient loop issueCounting to infinity doesn’t happen(read: fewer traps and pitfalls)Flexible configuration of link cost is possible(no nonsense like 16 = infinity)

©2017 Youki Kadobayashi, All rights reserved.

Page 36: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

36

OSPF: Open Shortest Path First

The link state routing protocol for the InternetOSPFv2 (IPv4), OSPFv3 (IPv6)

FunctionsRecognize neighbor routerExchange link state information and create LSDBCalculate shortest path tree (spanning tree)+ Designated Router, Backup Designated Router+ Hierarchical structure by area+ Collaboration with EGP

RFC 2328, 5340

©2017 Youki Kadobayashi, All rights reserved.

Page 37: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

37

Discovering neighbor routers with OSPF Hello

Discover neighbor router on the same link• send Hello packet to 224.0.0.5, ff02::5 (AllSPFRouters)

List of neighbor routers in Hello packet• check bidirectional communication

(select designated router and backup designated router)

Send Hello packet periodically to detect link downkeeps pinging, as in ICMP

©2017 Youki Kadobayashi, All rights reserved.

Page 38: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

38

Information exchangeamong routersNeighbor → AdjacentRouters don’t exchange routing information unless they are adjacent

Formation process:Hello → NeighborSynchronize each LSDBSynchronized→ Adjacent

©2017 Youki Kadobayashi, All rights reserved.

Page 39: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

39

Topology Representation in OSPF

LSA (Link State Advertisement)• Type 1: Router LSA• Type 2: Network LSA• Type 3: Summary LSA (network)• Type 4: Summary LSA (AS boundary)• Type 5: AS External LSA

LSA common header• Validity period and sequence number in LSA header• Helps routers to tell if given LSA is fresh

©2017 Youki Kadobayashi, All rights reserved.

Page 40: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

40

Questions?

©2017 Youki Kadobayashi, All rights reserved.

Page 41: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Summary

©2017 Youki Kadobayashi, All rights reserved. 41

Page 42: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

42

Gateway Model Revisited

FIB

Input interfaces Output interfaces

RIP

Multiple RIBs

OSPF

Routing softwareTopology info,Link status info

Topology info,Link status info

©2017 Youki Kadobayashi, All rights reserved.

Page 43: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

43

Summary

Routing system: design space, characterization

Distance vector routingBellman-Ford algorithmRIP protocol, information modelTraps and pitfalls

Link state routingGraph and its spanning treesDijkstra algorithmOSPF protocol, algorithm, information model

©2017 Youki Kadobayashi, All rights reserved.

Page 44: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Assignment 4

Replicate the MANDARA network in GNS3Routers basic configuration (name, IP address…)Configure RIP between the routers located in the same graduate school or division.Configure OSPF between the main routersSave the project, compress the project folderReport format: [name]-[studentID].zipSubmit to: network1-2017 _at_ is.naist.jpDeadline: May 10, 2017 by 17:00 (Wednesday)

©2017 Youki Kadobayashi, All rights reserved. 44

Page 45: Information Network 1 Routing (1) - NAIST · 2. send my distance vectors to all neighbor routers 3. router calculates minimum distance vectors by 1) distance vectors advertised by

Assignment 4 (Mandara Network)

©2017 Youki Kadobayashi, All rights reserved. 45