chapter 4 ip routing professor rick han university of colorado at boulder [email protected]

43
Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder [email protected]

Post on 21-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Chapter 4IP Routing

Professor Rick HanUniversity of Colorado at Boulder

[email protected]

Page 2: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Announcements

• Reminder: Programming assignment #1 is due Feb. 19

• Part of Homework #2 available on Web site, due Feb. 26

• Last week’s lecture are now on Web site• Next, IP routing, …

Page 3: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Recap of Previous Lecture• Routing to connect remote LANs

• Encapsulation

• Internet Protocol (IPv4)• Connects Networks of Networks• “Best-Effort” Service• IP Packet Header – 20 bytes

• TTL• IP Addressing – 32 bit, heirarchy, 128.72.191.4• IP Fragmentation and Reassembly• Address Resolution Protocol (ARP)

Page 4: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Address Resolution Protocol (ARP)

• Given a known IP address, ARP returns the desired Ethernet MAC address

• If sending to a host on the same Ethernet, • First, check cache if address already present• If not, send an Ethernet’s broadcast query (all

1’s in 48-bit address) with “target IP” address• Target host responds with its IP address• ARP updates its cache

Requesting Node

Destination Node

IPEthHdr

ARP query

Eth. Headerhas dest. MAC

ARP response

Page 5: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

ARP (2)• What if destination host is on a remote LAN?

• No local host will respond to broadcast ARP query

• Solution: • IP end host sends to IP network, which routes

packet to destination IP host• ARP is performed separately on LAN 1 and LAN 2

DestinationNode

RequestingNode

IP Router

LAN1 LAN2

Page 6: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

ARP (3)• On LAN 1:

• IP routers broadcast ICMP “router advertisements” on local LAN or impatient end host broadcasts “solicitations”

• When IP end host wants to send outside of LAN, it does ARP request to find MAC address of router’s IP interface address to LAN, if not already cached

• Sends a packet containing <src IP, dest. IP> encapsulated by Eth. Header containing dest. MAC address of IP router

DestinationNode

RequestingNode

IP Router

LAN1 LAN2

Page 7: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

ARP (4)• On LAN 2:• IP packet with <src IP, dest IP> arrives at IP

router on LAN 2• IP router does an ARP request to find MAC

address of dest IP end host, if not already cached

• Sends a packet containing <src IP, dest. IP> encapsulated by Eth. Header containing dest. MAC address of dest IP end host

• Proxy ARP when only one router between two LANs

DestinationNode

RequestingNode

IP Router

LAN1 LAN2

Page 8: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Forwarding Datagrams

RouterC

RouterD

RouterB

RouterE

RouterX

RouterY

Host 1

Host2

Host 3

Destination Output Port

Host 1 X-B link

Host 2 E-B link

Host 3 D-B link

Host 4 C-B link

Routing Table atRouter B

Host 4

Page 9: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Forwarding Datagrams (2)

RouterC

RouterD

RouterB

RouterE

RouterX

RouterY

Host 1

Host2

Host 3

Destination Output Port

Host 1 B-E link

Host 2 Y-E link

Host 3 D-E link

Host 4 C-E link

Routing Table atRouter E

Host 4

Page 10: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Forwarding Datagrams (3)Destination Output Port

Host 1 B-E link

Host 2 Y-E link

Host 3 D-E link

Host 4 C-E link

Routing Table atRouter E

• Only need to know the destination address to route the datagram to output port. Compare to:• VC routing tables had 4 columns: input VC, input

port, output VC, output port• Ethernet Bridge tables store the source address

and source port/LAN, but forwards using destination address

Page 11: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Forwarding Datagrams (4)Destination Output Port

Host 1 B-E link

Host 2 Y-E link

Host 3 D-E link

Host 4 C-E link

Routing Table atRouter E

• Each datagram travels its own independent path: There is no connection unlike VCs• “Connectionless” datagram networks• “Connection-oriented” virtual circuits

Page 12: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Forwarding Datagrams (5)Destination Output Port

Host 1 B-E link

Host 2 Y-E link

Host 3 D-E link

Host 4 C-E link

Routing Table atRouter E

• Each routing table has to contain a complete list of all of the hosts on the net and how to get to them (next hop output port)• Implications on scalability• Compare to VC’s, where each switch only

needed to keep in its table the virtual circuits that ran through the switch

Page 13: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Internet Routing• “Routing” helps to fill in the IP forwarding

tables• IP routing employs a distributed algorithm to

calculated the shortest path through a graph• Many challenges to make distributed algorithms

work wellRouter

C

RouterD

RouterB

RouterE

RouterX

RouterY

Host 1Host

2

Homogeneous IP routing fabric

Page 14: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Internet Routing (2)• Routing algorithms view the network as a

graph• Problem: find lowest cost path between two

nodes. What info is required for solution?• Need complete topology info• Need link costs

• Two types of distributed algorithms:• Distance vector (RIP)• Link state (OSPF)

4

3

6

21

9

1

1

D

A

FE

B

C

Page 15: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Distance Vector (RIP)

• Employed in the early Arpanet• RIP = Routing Information Protocol

• A specific implementation of distance-vector routing

• Distributed next hop computation• Unit of information exchange

• Vector of distances to destinations

• Distributed Bellman-Ford Algorithm

Page 16: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Distance Vector (2)

• Start Conditions:• Each router starts with a vector of distances to

all directly attached networks• Send step:

• Each router advertises its current vector to all neighboring routers

• Receive step:• Upon receiving vectors from each of its

neighbors, router computes its own distance to each neighbor

• Then, for every network X, router finds that neighbor who is closer to X than any other neighbor

• Router updates its cost to X• After doing this for all X, router goes to send

step

Page 17: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Distance Vector (3)• Example courtesy of Prof. Srini Seshan at

CMU

A

B

E

C

D

Info atNode

A

B

C

D

A B C

0 7 ~

7 0 1

~ 1 0

~ ~ 2

7

1

1

2

28

Distance to Node

D

~

~

2

0

E 1 8 ~ 2

1

8

~

2

0

E

Global minimum distance table,each row is a condensed forwarding

table for node i

Page 18: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Distance Vector (4)

A

B

E

CDest. atNode

A

B

C

D

Distance Via Neighbor

-- B

-- E

-- B

-- B

7

1

1

8

E -- E

Dest.Node

A

B

C

D

B E

-- --

-- --

-- --

-- --

Distance via Neighbor

E -- --

Format of Distance Table in AFormat of Routing/Forwarding

Table in A

Page 19: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

E Receives D’s Routes; Updates Cost

Info atNode

A

B

C

D

A B C

0 7 ~

7 0 1

~ 1 0

~ ~ 2

Distance to Node

D

~

~

2

0

E 1 8 4 2

1

8

~

2

0

E

A

B

E

C

D

7

1

1

2

28

Global minimum distance table,Node i only sees info on its row,

not entire global view

Page 20: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

A receives B’s; Updates Cost

Info atNode

A

B

C

D

A B C

0 7 8

7 0 1

~ 1 0

~ ~ 2

Distance to Node

D

~

~

2

0

E 1 8 4 2

1

8

~

2

0

E

A

B

E

C

D

7

1

1

2

28

Page 21: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

A receives E’s routes; Updates Costs

Info atNode

A

B

C

D

A B C

0 7 5

7 0 1

~ 1 0

~ ~ 2

Distance to Node

D

3

~

2

0

E 1 8 4 2

1

8

~

2

0

E

A

B

E

C

D

7

1

1

2

28

For every dest. node X, router finds that neighbor who is closer to X than any other neighbor & updates its cost to X

Page 22: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Final Distances

Info atNode

A

B

C

D

A B C

0 6 5

6 0 1

5 1 0

3 3 2

Distance to Node

D

3

3

2

0

E 1 5 4 2

1

5

4

2

0

E

A

B

E

C

D

7

1

1

2

28

• Topology/distance info ripples outward from each node from every other node

Page 23: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Link Failure Causes “Bouncing” Effect

A

25

1

1

B

C

B

C 21

dest cost

XBB

via

A

C 11

dest cost

CA

via

A

B 12

dest cost

BB

via

Page 24: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

B Notices A-B Link Failure

A

25 1

B

C

B notices failure, resets cost via A toinfinity in distance table (not shown), &knows cost via C is 26

B

C 21

dest cost

BB

via

A

C 126

dest cost

CC

via

A

B 12

dest cost

BB

via

Page 25: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

C Sends Dist. Vector to B

A

25 1

B

C

B

C 21

dest cost

BB

via

A

C 13

dest cost

CC

via

A

B 12

dest cost

BB

via

C sends routing update to B

Page 26: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

B Updates Distance to A

A

25 1

B

C

Packet sent from Cto A bounces between C and B

until TTL=0!

B

C 21

dest cost

BB

via

A

C 13

dest cost

CC

via

A

B 12

dest cost

BB

via

Page 27: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

B Sends Dist. Vector to C

A

25 1

B

C

C adds one to B’sadvertised distanceto A. (Why does C

overrideits storeddistance of 2to A with 4,larger value?)

B

C 21

dest cost

BB

via

A

C 13

dest cost

CC

via

A

B 14

dest cost

BB

via

Page 28: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

C Sends Dist. Vector to B

A

25 1

B

C

B adds one to C’sadvertised distanceto A. (overrides

its storeddistance of 3to A with 5,larger value)

B

C 21

dest cost

BB

via

A

C 15

dest cost

CC

via

A

B 14

dest cost

BB

via

Page 29: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Link Failure: Bad News Travels Slowly

A

25 1

B

C

After 20+ exchanges,routing tables looklike this:

B

C 2526

dest cost

CC

via

A

C 125

dest cost

CC

via

A

B 124

dest cost

BB

viaAssume A has advertisedits link cost of 25 to C during B<->C exchanges.C stores this cost in its distancetable (not shown)

Page 30: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Bad News Travels Slowly (2)

A

25 1

B

C

C increments B’supdate by 1, andchooses 25 via Ato A, instead of 26

Via B to A

B

C 2526

dest cost

CC

via

A

C 125

dest cost

CC

via

A

B 125

dest cost

BA

via

Page 31: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Bad News Travels Slowly (3)

A

25 1

B

C

After 25 B-Cexchanges, finallyconverge tostable routing

B

C 2526

dest cost

CC

via

A

C 126

dest cost

CC

via

A

B 125

dest cost

BA

via

Page 32: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Link Failure Causes “Counting to Infinity” Effect

A

25

1

1

B

C

B

C 21

dest cost

XBB

via

A

C 11

dest cost

CA

via

A

B 12

dest cost

BB

via

Page 33: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

B Notices A-B Link Failure

A

25 1

B

C

B notices failure,resets cost to 26

B

C 21

dest cost

BB

via

A

C 126

dest cost

CC

via

A

B 12

dest cost

BB

via

Page 34: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

C Sends Dist. Vector to B

A

25 1

B

C

B

C 21

dest cost

BB

via

A

C 13

dest cost

CC

via

A

B 12

dest cost

BB

via

C sendsrouting update to B

Page 35: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

A-C Link Fails

A

1

B

C

C detects link to A has failed,but no change in C’srouting table (why?)

A

C 13

dest cost

CC

via

A

B 12

dest cost

BB

via

Page 36: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Now, B and C Count to Infinity

A

1

B

C

A

C 13

dest cost

CC

via

A

B 14

dest cost

BB

via

Page 37: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

How are These Loops Caused?

• Observation 1:– B’s metric increases

• Observation 2:– C picks B as next hop to A– But, the implicit path from C to A

includes itself (C ) !

Page 38: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Solution 1: Holddowns

• If metric increases, delay propagating information– In our example, B delays advertising route– C eventually thinks B’s route is gone, picks

its own route– B then selects C as next hop

• Adversely affects convergence from failures

Page 39: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Other “Solutions”

• Split horizon– C does not advertise route to B when

it sends its distance vector• Poisoned reverse

– C advertises route to B with infinite distance in its distance vector

• Works for two node loops– Does not work for loops with more

nodes

Page 40: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Avoiding the Counting to Infinity Effect

• Select loop-free paths• One way of doing this:

– Each route advertisement carries entire path

– If a router sees itself in path, it rejects the route

• BGP does it this way• Space proportional to diameter

Page 41: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Loop Freedom at Every Instant?

• Does bouncing effect avoid loops?– No! Transient loops are still possible– Why? Because implicit path

information may be stale– See this in BGP convergence

• Only way to fix this– Ensure that you have up-to-date

information by explicitly querying

Page 42: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Distance Vector in Practice

• RIP and RIP2– Uses split-horizon/poison reverse

• BGP– Propagates entire path– Path also used for effecting policies

Page 43: Chapter 4 IP Routing Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

Prof. Rick Han, University of Colorado at Boulder

Example Where Split Horizon Fails

1

11

1

A

• When link breaks, C marks D as unreachable and reports that to A and B

• Suppose A learns it first– A now thinks best path to D

is through B– A reports D unreachable to

B and a route of cost=3 to C

• C thinks D is reachable through A at cost 4 and reports that to B

• B reports a cost 5 to A who reports new cost to C

• etc...

X

B

C

D