csci 232 – computer networksrouting and network layer part ii1 routing: network layer part ii...

92
Csci 232 – Computer Networks Routing and Network Layer Part II 1 Routing: Network Layer Part II Routing Algorithms: Link state vs. Distance Vector Routing in the Internet Intra-AS vs. Inter-AS routing Intra-AS: RIP and OSPF Inter-AS: BGP and Policy Routing MPLS Readings: Textbook: Chapter 4: Sections 4.2-4.3, 4.5-4.6

Upload: jerome-lloyd

Post on 27-Dec-2015

225 views

Category:

Documents


0 download

TRANSCRIPT

Csci 232 – Computer Networks Routing and Network Layer Part II 1

Routing: Network Layer Part II

• Routing Algorithms: – Link state vs. Distance Vector

• Routing in the Internet– Intra-AS vs. Inter-AS routing– Intra-AS: RIP and OSPF– Inter-AS: BGP and Policy Routing

• MPLS Readings: Textbook: Chapter 4: Sections 4.2-4.3, 4.5-4.6

Csci 232 – Computer Networks Routing and Network Layer Part II 2

Routing & Forwarding:Logical View of a Router

A

ED

CB

F

22

13

1

1

2

53

5

Csci 232 – Computer Networks 3

Forwarding Process

IP Forwarding Table Router

1. Remove a packet from an input queue

3. Match packet’s destination to a table entry

2. Check for sanity, decrement TTL field

4. Place packet on correct output queue

If queuesget full, just

drop packets!

If queuesget full, just

drop packets!

IP Forwarding Process

Csci 232 – Computer Networks 4

Destination Next Hop Interface

Net ANet BNet C, Host 3

Router 1DirectRouter 2Router 1

INT 7

INT 7INT 3INT 4

A destination is usuallya network. May also be a host, or a “gateway of last resort” (default)

The next hop is either a directly connected network or a router on a directly connected network

A physical interface

Net C

IP Forwarding Table

Csci 232 – Computer Networks 5

Statically Dynamically

Routers exchange network reachability information using ROUTING PROTOCOLS. Routers use this to compute best routes

Administrator manually configuresforwarding table entries

In practice : a mix of these.Static routing mostly at the “edge”

+ More control+ Not restricted to destination-based forwarding - Doesn’t scale- Slow to adapt to network failures

+ Can rapidly adapt to changes in network topology+ Can be made to scale well- Complex distributed algorithms- Consume CPU, Bandwidth, Memory- Debugging can be difficult- Current protocols are destination-based

How Are Forwarding Tables Populated to Implement

Routing?

Csci 232 – Computer Networks Routing and Network Layer Part II 6

Dynamic Routing: Intra- vs. Inter-AS

AS 1

AS 2

BGP

EGP = Exterior Gateway Protocol

IGP = Interior Gateway Protocol

Metric based: OSPF, IS-IS, RIP, EIGRP (cisco)

Policy based: BGP

The Routing Domain of BGP is the entire Internet

OSPF

EIGRP

Csci 232 – Computer Networks Routing and Network Layer Part II 7

Internet AS Hierarchy

border (exterior gateway) routers

interior routers

Csci 232 – Computer Networks Routing and Network Layer Part II 8

Intra-AS vs. Inter-AS Routing

Host h2

a

b

b

aaC

A

Bd c

A.a

A.c

C.bB.a

cb

Hosth1

Intra-AS routingwithin AS A

Inter-AS routingbetween A and B

Intra-AS routingwithin AS B

Csci 232 – Computer Networks Routing and Network Layer Part II 9

Intra-AS and Inter-AS Routing

physical layer

“Gateways”:•perform inter-AS routing amongst themselves•perform intra-AS routing with other routers in their AS

inter-AS, intra-AS routing in

gateway A.c

network layer

link layer

a

b

b

aaC

A

Bd

A.aA.c

C.bB.a

cb

c

Csci 232 – Computer Networks 10

Forwarding Table

OSPFDomain

RIPDomain

BGPOSPF Process

OSPF Routing tables

RIP Process

RIP Routing tables

BGP Process

BGP Routing tables

Forwarding Table Manager

Where Does Forwarding Table Come From?

Csci 232 – Computer Networks Routing and Network Layer Part II 11

Routing• Goal: determine a “good” path

through the network from source to destination– Good means usually the shortest path

• Network modeled as a graph– Routers nodes– Link edges

• Edge cost: delay, congestion level,…

A

ED

CB

F

2

2

13

1

1

2

53

5

Csci 232 – Computer Networks Routing and Network Layer Part II 12

Basic Routing Problem• Assume

– A network with N nodes, where each edge is associated a cost

– A node knows only its neighbors and the cost to reach them

• How does each node learn how to reach every other node along the shortest path? A

ED

CB

F

2

2

13

1

1

2

53

5

Csci 232 – Computer Networks Routing and Network Layer Part II 13

Routing: Issues

• How are routing tables determined?• Who determines table entries?• What info is used in determining table

entries?• When do routing table entries change?• Where is routing info stored?• How to control routing table size?Answer these questions, we are done!

Csci 232 – Computer Networks Routing and Network Layer Part II 14

Routing Paradigms

• Hop-by-hop Routing– Each packet contains destination address– Each router chooses next-hop to destination

• routing decision made at each (intermediate) hop!• packets to same destination may take different paths!

– Example: IP’s default datagram routing

• Source Routing– Sender selects the path to destination precisely– Routers forward packet to next-hop as specified

• Problem: if specified path no longer valid due to link failure!

– Example: • IP’s loose/strict source route option • virtual circuit setup phase in ATM (or MPLS)

Csci 232 – Computer Networks Routing and Network Layer Part II 15

Routing Algorithms/ProtocolsIssues Need to Be Addressed:• Route selection may depend on different

criteria– Performance: choose route with the smallest delay– Policy: choose a route that doesn’t cross .gov

network

• Adapt to changes in network topology or condition– Self-healing: little or no human intervention

• Scalability– Must be able to support a large number of hosts,

routers

Csci 232 – Computer Networks Routing and Network Layer Part II 16

Centralized vs. Distributed Routing Algorithms

Centralized:• A centralized route server collects routing information

and network topology, makes route selection decisions, then distributes them to routers

Distributed:• Routers cooperate using a distributed protocol

– to create mutually consistent routing tables• Two standard distributed routing algorithms

– Link State (LS) routing – Distance Vector (DV) routing

Csci 232 – Computer Networks Routing and Network Layer Part II 17

Link State vs Distance Vector

• Both assume that– The address of each neighbor is known– The cost of reaching each neighbor is known

• Both find global information– By exchanging routing info among neighbors

• Differ in the information exchanged and route computation– LS: tells every other node its distances to neighbors– DV: tells neighbors its distance to every other node

Csci 232 – Computer Networks Routing and Network Layer Part II 18

Link State Algorithm

• Basic idea: Distribute link state packet to all routers– Topology of the network

• Cost of each link in the network

• Each router independently computes optimal paths– From itself to every destination– Routes are guaranteed to be loop free if

• Each router sees the same cost for each link• Uses the same algorithm to compute the best path

Csci 232 – Computer Networks Routing and Network Layer Part II 19

Link State: Control Traffic• Each node floods its local information to every

other node in the network• Each node ends up knowing the entire network

topology use Dijkstra to compute the shortest path to every other node

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Csci 232 – Computer Networks Routing and Network Layer Part II 20

Link State: Node State

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

A

BE

DC

A

BE

DC A

BE

DC

A

BE

DC

A

BE

DC

A

BE

DC

A

BE

DC

Csci 232 – Computer Networks Routing and Network Layer Part II 21

Topology Dissemination

• Each router creates a set of link state packets (LSPs)– Describing its links to neighbors– LSP contains

• Router id, neighbor’s id, and cost to its neighbor

• Copies of LSPs are distributed to all routers– Using controlled flooding

• Each router maintains a topology database– Database containing all LSPs

Csci 232 – Computer Networks Routing and Network Layer Part II 22

A

ED

CB

F

2

2

13

1

1

2

53

5

Topology Database: Example

link state database

Csci 232 – Computer Networks Routing and Network Layer Part II 23

Constructing Routing Table:Dijkstra’s Algorithm

• Given the network topology– How to compute the shortest path to each destination?

• Some notation– X: source node– N: set of nodes to which shortest paths are known so

far• N is initially empty

– D(V): the cost of the known shortest path from source X to V

– C(U,V): cost of link U to V• C(U,V) = if not neighbors

Csci 232 – Computer Networks Routing and Network Layer Part II 24

Algorithm (at Node X)

• Initialization– N = {X}– For all nodes V

• If V adjacent to X, D(V) = C(X,V) else D(V) =

• Loop– Find U not in N such that D(U) is the smallest– Add U into set N– Update D(V) for all V not in N

• D(V) = min{D(V), D(U) + C(U,V)}

– Until all nodes in N

Csci 232 – Computer Networks Routing and Network Layer Part II 25

Example: Dijkstra’s AlgorithmStep

012345

start NA

D(B),p(B)2,A

D(C),p(C)5,A

D(D),p(D)1,A

D(E),p(E) D(F),p(F)

A

ED

CB

F

2

2

13

1

1

2

53

5

1 Initialization: 2 N = {A};3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v); 6 else D(v) = ;…

Csci 232 – Computer Networks Routing and Network Layer Part II 26

Example: Dijkstra’s AlgorithmStep

012345

start NA

AD

D(B),p(B)2,A

D(C),p(C)5,A4,D

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

A

ED

CB

F

2

2

13

1

1

2

53

5

…8 Loop 9 find w not in N s.t. D(w) is a minimum; 10 add w to N; 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) );13 until all nodes in N;

Csci 232 – Computer Networks Routing and Network Layer Part II 27

Example: Dijkstra’s AlgorithmStep

012345

start NA

ADADE

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

2

2

13

1

1

2

53

5…8 Loop 9 find w not in N s.t. D(w) is a minimum; 10 add w to N; 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) );13 until all nodes in N;

Csci 232 – Computer Networks Routing and Network Layer Part II 28

Example: Dijkstra’s AlgorithmStep

012345

start NA

ADADE

ADEB

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

2

2

13

1

1

2

53

5…8 Loop 9 find w not in N s.t. D(w) is a minimum; 10 add w to N; 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) );13 until all nodes in N;

Csci 232 – Computer Networks Routing and Network Layer Part II 29

Example: Dijkstra’s AlgorithmStep

012345

start NA

ADADE

ADEBADEBC

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

2

2

13

1

1

2

53

5…8 Loop 9 find w not in N s.t. D(w) is a minimum; 10 add w to N; 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) );13 until all nodes in N;

Csci 232 – Computer Networks Routing and Network Layer Part II 30

Example: Dijkstra’s AlgorithmStep

012345

start NA

ADADE

ADEBADEBC

ADEBCF

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

2

2

13

1

1

2

53

5…8 Loop 9 find w not in N s.t. D(w) is a minimum; 10 add w to N; 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) );13 until all nodes in N;

Csci 232 – Computer Networks Routing and Network Layer Part II 31

Dijkstra’s Algorithm: In a Nutshell

Step012345

start NA

ADADE

ADEBADEBC

ADEBCF

D(B),p(B)2,A2,A2,A

D(C),p(C)5,A4,D3,E3,E

D(D),p(D)1,A

D(E),p(E)infinity

2,D

D(F),p(F)infinityinfinity

4,E4,E4,E

A

ED

CB

F

2

2

13

1

1

2

53

5

Csci 232 – Computer Networks Routing and Network Layer Part II 32

A

ED

CB

F

2

2

13

1

1

2

5

3

5

Routing Table Computation

dest next

B BC DD DE DF D

Csci 232 – Computer Networks Routing and Network Layer Part II 33

Distance Vector Routing• A router tells neighbors its distance to every

router– Communication between neighbors only

• Based on Bellman-Ford algorithm– Computes “shortest paths”

• Each router maintains a distance table– A row for each possible destination– A column for each neighbor

• DX(Y,Z) : distance from X to Y via Z

• Exchanges distance vector (the table) with neighbors– Distance vector: current least cost to each

destination

Csci 232 – Computer Networks Routing and Network Layer Part II 34

Distance Vector: Control Traffic• When the routing table of a node changes, the

node sends its table to its neighbors• A node updates its table with information

received from its neighbors

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Csci 232 – Computer Networks Routing and Network Layer Part II 35

Distance Table: Example

A

E D

CB6

8

1

2

1

2

D ()

A

B

C

D

A

1

7

8

10

B

14

8

9

11

D

11

5

4

2

Ecost to destination via

des

tin

atio

n

Csci 232 – Computer Networks Routing and Network Layer Part II 36

Distance Table to Routing Table

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

Ecost to destination via

des

tin

atio

n

A

B

C

D

A,1

D,5

D,4

D,2

Outgoing link to use, cost

des

tin

atio

n

Distance table Routing table

Csci 232 – Computer Networks Routing and Network Layer Part II 37

Distance Vector Routing Algorithm

iterative:• continues until no

nodes exchange info.• self-terminating: no

“signal” to stop

asynchronous:• nodes need not

exchange info/iterate in lock step!

distributed:• each node talks only

with directly-attached neighbors

Distance Table data structure

• each node has its own• row for each possible destination• column for each directly-attached

neighbor to node• example: in node X, for dest. Y via

neighbor Z:

D (Y,Z)X

distance from X toY, via Z as next hop

c(X,Z) + min {D (Y,w)}Z

w

=

=

Csci 232 – Computer Networks Routing and Network Layer Part II 38

Distance Vector Routing: Overview

Iterative, asynchronous: each iteration caused by:

• local link cost change • message from neighbor:

its least cost path change from neighbor

Distributed:

• each node notifies neighbors only when its least cost path to any destination changes– neighbors then notify

their neighbors if necessary

wait for (change in local link cost or msg from neighbor)

recompute distance table

if least cost path to any

dest has changed, notify neighbors

Each node:

Csci 232 – Computer Networks Routing and Network Layer Part II 39

Distance Vector Algorithm: Example

X Z12

7

Y

D (Y,Z)X

c(X,Z) + min {D (Y,w)}w=

= 7+1 = 8

Z

D (Z,Y)X

c(X,Y) + min {D (Z,w)}w=

= 2+1 = 3

Y

Csci 232 – Computer Networks Routing and Network Layer Part II 40

Distance Vector Algorithm: Example

X Z12

7

Y

Csci 232 – Computer Networks Routing and Network Layer Part II 41

Convergence of DV Routing• router detects local link cost change • updates distance table• if cost change in least cost path,

notify neighborsX Z

14

50

Y1

algorithmterminates

“goodnews travelsfast”

Csci 232 – Computer Networks Routing and Network Layer Part II 42

Problems with DV RoutingLink cost changes:• good news travels fast • bad news travels slow

– “count to infinity” problem!

X Z14

50

Y60

algorithmcontinues

on!

Csci 232 – Computer Networks Routing and Network Layer Part II 43

Count-to-Infinity Problem

X Y Z1 1

2

Csci 232 – Computer Networks Routing and Network Layer Part II 44

“Fixes” to Count-to-Infinity Problem

• Split horizon– A router never advertises the cost of a

destination to a neighbor• If this neighbor is the next hop to that destination

• Split horizon with poisonous reverse– If X routes traffic to Z via Y, then

• X tells Y that its distance to Z is infinity– Instead of not telling anything at all

– Accelerates convergence

Csci 232 – Computer Networks Routing and Network Layer Part II 45

Split Horizon with Poisoned Reverse

If Z routes through Y to get to X :• Z tells Y its (Z’s) distance to X is

infinite (so Y won’t route to X via Z) X Z14

50

Y60

algorithmterminates

Csci 232 – Computer Networks Routing and Network Layer Part II 46

Count-to-Infinity Problem Revisited

X Y Z

W

Csci 232 – Computer Networks Routing and Network Layer Part II 47

Link State vs Distance Vector

• Tells everyone about neighbors

• Controlled flooding to exchange link state

• Dijkstra’s algorithm• Each router computes

its own table• May have oscillations• Open Shortest Path

First (OSPF)

• Tells neighbors about everyone

• Exchanges distance vectors with neighbors

• Bellman-Ford algorithm

• Each router’s table is used by others

• May have routing loops

• Routing Information Protocol (RIP)

Csci 232 – Computer Networks Routing and Network Layer Part II 48

Link State vs. Distance Vector (cont’d)

Message complexity• LS: O(n2*e) messages

– n: number of nodes – e: number of edges

• DV: O(d*n*k) messages– d: node’s degree– k: number of rounds

Time complexity• LS: O(n*log n) • DV: O(n)Convergence time

• LS: O(1)• DV: O(k)

Robustness: what happens if router malfunctions?

• LS: – node can advertise

incorrect link cost– each node computes only

its own table

• DV:– node can advertise

incorrect path cost– each node’s table used by

others; error propagate through network

Csci 232 – Computer Networks Routing and Network Layer Part II 49

Routing in the Real World

scale: with 200 million destinations:

• can’t store all dest’s in routing tables!

• routing table exchange would swamp links!

administrative autonomy

• internet = network of networks

• each network admin may want to control routing in its own network

Our routing study thus far - idealization • all routers identical• network “flat”

How to do routing in the Internet• scalability and policy issues

Csci 232 – Computer Networks Routing and Network Layer Part II 50

Routing in the Internet• The Global Internet consists of Autonomous

Systems (AS) interconnected with each other hierarchically:– Stub AS: small corporation: one connection to other AS’s– Multihomed AS: large corporation (no transit): multiple

connections to other AS’s– Transit AS: provider, hooking many AS’s together

• Two-level routing: – Intra-AS: administrator responsible for choice of

routing algorithm within network– Inter-AS: unique standard for inter-AS routing: BGP

Csci 232 – Computer Networks Routing and Network Layer Part II 51

Internet Architecture

LANs

International lines

ISP ISPcompany university

national network

regionalnetwork

NAPInternic

on-line services

companyaccess via

modem

Internet: “networks of networks”!

Csci 232 – Computer Networks Routing and Network Layer Part II 52

Internet AS Hierarchy

Inter-AS border (exterior gateway) routers

Intra-AS interior (gateway) routers

Csci 232 – Computer Networks Routing and Network Layer Part II 53

Intra-AS vs. Inter-AS Routing

Host h2

a

b

b

aaC

A

Bd c

A.a

A.c

C.bB.a

cb

Hosth1

Intra-AS routingwithin AS A

Inter-AS routingbetween A and B

Intra-AS routingwithin AS B

Csci 232 – Computer Networks Routing and Network Layer Part II 54

Why Different Intra- and Inter-AS Routing? Policy: • Inter-AS: admin wants control over how its traffic

routed, who routes through its net. • Intra-AS: single admin, so no policy decisions

needed

Scale:• hierarchical routing saves table size, update trafficPerformance: • Intra-AS: can focus on performance• Inter-AS: policy may dominate over performance

Csci 232 – Computer Networks Routing and Network Layer Part II 55

Intra-AS and Inter-AS Routing

physical layer

“Gateways”:•perform inter-AS routing amongst themselves•perform intra-AS routers with other routers in their AS

inter-AS, intra-AS routing in

gateway A.c

network layer

link layer

a

b

b

aaC

A

Bd

A.aA.c

C.bB.a

cb

c

Csci 232 – Computer Networks Routing and Network Layer Part II 56

Intra-AS Routing

• Also known as Interior Gateway Protocols (IGP)• Most common Intra-AS routing protocols:

– RIP: Routing Information Protocol

– OSPF: Open Shortest Path First– IS-IS: Intermediate System to Intermediate

System (OSI Standard)– EIGRP: Extended Interior Gateway Routing

Protocol (Cisco proprietary)

Csci 232 – Computer Networks Routing and Network Layer Part II 57

RIP ( Routing Information Protocol)

• Distance vector algorithm• Included in BSD-UNIX Distribution in 1982• Distance metric: # of hops (max = 15 hops)

Number of hops from source router A to various subnets:

DC

BA

u v

w

x

yz

destination hops u 1 v 2 w 2 x 3 y 3 z 2

Csci 232 – Computer Networks Routing and Network Layer Part II 58

RIP advertisements

• Distance vectors: exchanged among neighbors every 30 sec via Response Message (also called advertisement)

• Each advertisement: list of up to 25 destination nets within AS

Csci 232 – Computer Networks Routing and Network Layer Part II 59

RIP: Example

Destination Network Next Router Num. of hops to dest. w A 2

y B 2 z B 7

x -- 1…. …. ....

w x y

z

A

C

D B

Routing table in D

Csci 232 – Computer Networks Routing and Network Layer Part II 60

RIP: Example

Destination Network Next Router Num. of hops to dest. w A 2

y B 2 z B A 7 5

x -- 1…. …. ....Routing table in D

w x y

z

A

C

D B

Dest Next hops w - - x - - z C 4 …. … ...

Advertisementfrom A to D

Csci 232 – Computer Networks Routing and Network Layer Part II 61

RIP: Link Failure and Recovery If no advertisement heard after 180 sec -->

neighbor/link declared dead– routes via neighbor invalidated– new advertisements sent to neighbors– neighbors in turn send out new advertisements (if tables

changed)– link failure info quickly propagates to entire net– poison reverse used to prevent ping-pong loops (infinite

distance = 16 hops)

Csci 232 – Computer Networks Routing and Network Layer Part II 62

RIP Table processing

• RIP routing tables managed by application-level process called route-d (daemon)

• advertisements sent in UDP packets, periodically repeated

physical

link

network forwarding (IP) table

Transprt (UDP)

routed

physical

link

network (IP)

Transprt (UDP)

routed

forwardingtable

Csci 232 – Computer Networks Routing and Network Layer Part II 63

OSPF (Open Shortest Path First)• “open”: publicly available• Uses Link State algorithm

– LS packet dissemination– Topology map at each node– Route computation using Dijkstra’s algorithm

• OSPF advertisement carries one entry per neighbor router

• Advertisements disseminated to entire AS (via flooding)– Carried in OSPF messages directly over IP (rather than TCP or

UDP

Csci 232 – Computer Networks Routing and Network Layer Part II 64

OSPF “advanced” features (not in RIP)

• Security: all OSPF messages authenticated (to prevent malicious intrusion)

• Multiple same-cost paths allowed (only one path in RIP)

• For each link, multiple cost metrics for different TOS (e.g., satellite link cost set “low” for best effort; high for real time)

• Integrated uni- and multicast support: – Multicast OSPF (MOSPF) uses same topology data base

as OSPF

• Hierarchical OSPF in large domains.

Csci 232 – Computer Networks Routing and Network Layer Part II 65

Hierarchical OSPF

Csci 232 – Computer Networks Routing and Network Layer Part II 66

Hierarchical OSPF• Two-level hierarchy: local area, backbone.

– Link-state advertisements only in area – each nodes has detailed area topology; only know

direction (shortest path) to nets in other areas.– Communications between areas via backbone

• Area border routers: “summarize” distances to nets in own area, advertise to other Area Border routers.

• Backbone routers: run OSPF routing limited to backbone.

• Boundary routers: connect to other AS’s.

Csci 232 – Computer Networks Routing and Network Layer Part II 67

Inter-AS Routing in the Internet: BGP

Figure 4.5.2-new2: BGP use for inter-domain routing

AS2 (OSPF

intra-AS routing)

AS1 (RI P intra-AS

routing) BGP

AS3 (OSPF intra-AS

routing)

BGP

R1 R2

R3

R4

R5

Csci 232 – Computer Networks Routing and Network Layer Part II 68

Internet inter-AS routing: BGP

• BGP (Border Gateway Protocol): the de facto standard

• BGP provides each AS a means to:1. Obtain subnet reachability information from

neighboring ASs.2. Propagate the reachability information to all routers

internal to the AS.3. Determine “good” routes to subnets based on

reachability information and policy.

• Allows a subnet to advertise its existence to rest of the Internet: “I am here”

Csci 232 – Computer Networks Routing and Network Layer Part II 69

BGP basics• Pairs of routers (BGP peers) exchange routing info over

semi-permanent TCP conctns: BGP sessions• Note that BGP sessions do not correspond to physical

links.• When AS2 advertises a prefix to AS1, AS2 is promising it

will forward any datagrams destined to that prefix towards the prefix.– AS2 can aggregate prefixes in its advertisement

3b

1d

3a

1c2aAS3

AS1

AS21a

2c

2b

1b

3c

eBGP session

iBGP session

Csci 232 – Computer Networks Routing and Network Layer Part II 70

Distributing reachability info• With eBGP session between 3a and 1c, AS3 sends prefix

reachability info to AS1.• 1c can then use iBGP to distribute this new prefix reach

info to all routers in AS1• 1b can then re-advertise the new reach info to AS2 over

the 1b-to-2a eBGP session• When router learns about a new prefix, it creates an

entry for the prefix in its forwarding table.

3b

1d

3a

1c2aAS3

AS1

AS21a

2c

2b

1b

3c

eBGP session

iBGP session

Csci 232 – Computer Networks Routing and Network Layer Part II 71

Path attributes & BGP routes

• When advertising a prefix, advert includes BGP attributes. – prefix + attributes = “route”

• Two important attributes:– AS-PATH: contains the ASs through which the advert for

the prefix passed: AS 67 AS 17 – NEXT-HOP: Indicates the specific internal-AS router to next-

hop AS. (There may be multiple links from current AS to next-hop-AS.)

• When gateway router receives route advert, uses import policy to accept/decline.

Csci 232 – Computer Networks Routing and Network Layer Part II 72

BGP route selection

• Router may learn about more than 1 route to some prefix. Router must select route.

• Elimination rules:1. Local preference value attribute: policy decision2. Shortest AS-PATH 3. Closest NEXT-HOP router: hot potato routing4. Additional criteria

Csci 232 – Computer Networks Routing and Network Layer Part II 73

BGP messages• BGP messages exchanged using TCP.• BGP messages:

– OPEN: opens TCP connection to peer and authenticates sender

– UPDATE: advertises new path (or withdraws old)– KEEPALIVE keeps connection alive in absence of

UPDATES; also ACKs OPEN request– NOTIFICATION: reports errors in previous msg; also used

to close connection

Csci 232 – Computer Networks Routing and Network Layer Part II 74

BGP routing policy

Figure 4.5-BGPnew: a simple BGP scenario

A

B

C

W X

Y

legend:

customer network:

provider network

• A,B,C are provider networks• X,W,Y are customer (of provider networks)• X is dual-homed: attached to two networks

– X does not want to route from B via X to C– .. so X will not advertise to B a route to C

Csci 232 – Computer Networks Routing and Network Layer Part II 75

BGP routing policy (2)

Figure 4.5-BGPnew: a simple BGP scenario

A

B

C

W X

Y

legend:

customer network:

provider network

• A advertises to B the path AW • B advertises to X the path BAW • Should B advertise to C the path BAW?

– No way! B gets no “revenue” for routing CBAW since neither W nor C are B’s customers

– B wants to force C to route to w via A– B wants to route only to/from its customers!

Csci 232 – Computer Networks Routing and Network Layer Part II 76

Why different Intra- and Inter-AS routing ? Policy: • Inter-AS: admin wants control over how its traffic

routed, who routes through its net. • Intra-AS: single admin, so no policy decisions

needed

Scale:• hierarchical routing saves table size, reduced

update trafficPerformance: • Intra-AS: can focus on performance• Inter-AS: policy may dominate over performance

Csci 232 – Computer Networks Routing and Network Layer Part II 77

Multi-Protocol Label Switching (MPLS)

• initial goal: speed up IP forwarding by using fixed length label (instead of IP address) to do forwarding – borrowing ideas from Virtual Circuit (VC) approach– but IP datagram still keeps IP address!

PPP or Ethernet header

IP header remainder of link-layer frameMPLS header

label Exp S TTL

20 3 1 5

Csci 232 – Computer Networks Routing and Network Layer Part II 78

MPLS Capable Routers• a.k.a. label-switched router• forwards packets to outgoing interface

based only on label value (don’t inspect IP address)– MPLS forwarding table distinct from IP forwarding tables

• signaling protocol needed to set up forwarding– RSVP-TE, LDP– forwarding possible along paths that IP alone would not

allow (e.g., least cost path routing) !!– use MPLS for traffic engineering

• must co-exist with IP-only routers

Csci 232 – Computer Networks Routing and Network Layer Part II 79

R1R2

D

R3R4R5

0

100

A

R6

in out outlabel label dest interface

6 - A 0

in out outlabel label dest interface

10 6 A 112 9 D 0

in out outlabel label dest interface

10 A 0 12 D 0

1

in out outlabel label dest interface

8 6 A 0

0

8 A 1

MPLS Forwarding Tables

Csci 232 – Computer Networks Routing and Network Layer Part II 80

Why Mobile IP?

• Need a protocol which allows network connectivity across host movement

• Protocol to enable mobility must not require massive changes to router software, etc.

• Must be compatible with large installed base of IPv4 networks/hosts

• Confine changes to mobile hosts and a few support hosts which enable mobility

Csci 232 – Computer Networks Routing and Network Layer Part II 81

Internet Protocol (IP)

• Network layer, "best-effort" packet delivery• Supports UDP and TCP (transport layer protocols)• IP host addresses consist of two parts

– network id + host id

• By design, IP host address is tied to home network address– Hosts are assumed to be wired, immobile– Intermediate routers look only at network address– Mobility without a change in IP address results in

un-route-able packets

Csci 232 – Computer Networks Routing and Network Layer Part II 82

IP Routing Breaks Under Mobility

Why this hierarchical approach? Answer: Scalability!Millions of network addresses, billions of hosts!

137.30.2.*

.50 .52 .53

router

router

139.20.3.*

.200

Csci 232 – Computer Networks Routing and Network Layer Part II 83

Mobile IP: Basics

• Proposed by IETF (Internet Engineering Task Force)– Standards development body for the Internet

• Mobile IP allows a mobile host to move about without changing its permanent IP address

• Each mobile host has a home agent on its home network

• Mobile host establishes a care-of address when it's away from home

Csci 232 – Computer Networks Routing and Network Layer Part II 84

Mobile IP: Basics, Cont.• Correspondent host is a host that wants to

send packets to the mobile host• Correspondent host sends packets to the

mobile host’s IP permanent address• These packets are routed to the mobile host’s

home network• Home agent forwards IP packets for mobile

host to current care-of address• Mobile host sends packets directly to

correspondent, using permanent home IP as source IP

Csci 232 – Computer Networks Routing and Network Layer Part II 85

Mobile IP: Basics, Cont.

home agentcorrespondent host

Csci 232 – Computer Networks Routing and Network Layer Part II 86

Mobile IP: Care-of Addresses

• Whenever a mobile host connects to a remote network, two choices:– care-of can be the address of a foreign agent on the

remote network• foreign agent delivers packets forwarded from home

agent to mobile host– care-of can be a temporary, foreign IP address obtained

through, e.g., DHCP• home agent tunnels packets directly to the temporary

IP address

• Regardless, care-of address must be registered with home agent

Csci 232 – Computer Networks Routing and Network Layer Part II 87

IP header

IP-in-IP Tunneling• Packet to be forwarded is

encapsulated in a new IP packet• In the new header:

– Destination = care-of-address– Source = address of home agent– Protocol number = IP-in-IP

IP headerdata IP header

data

Csci 232 – Computer Networks Routing and Network Layer Part II 88

At the Other End...

• Depending on type of care-of address:– Foreign agent or– Mobile host

• … strips outer IP header of tunneled packet, which is then fed to the mobile host

• Aside: Any thoughts on advantages of foreign agent vs. co-located (foreign IP) address?

Csci 232 – Computer Networks Routing and Network Layer Part II 89

Routing Inefficiency

Mobile host and correspondent hostmight even be on the samenetwork!!

home agentcorrespondent host

Csci 232 – Computer Networks Routing and Network Layer Part II 90

Route Optimizations• Possible Solution:

– Home agent sends current care-of address to correspondent host

– Correspondent host caches care-of address– Future packets tunneled directly to care-of address

• But!– An instance of the cache consistency problem arises...– Cached care-of address becomes stale when the mobile

host moves– Potential security issues with providing care-of address to

correspondent

Csci 232 – Computer Networks Routing and Network Layer Part II 91

Possible Route Optimization

Csci 232 – Computer Networks Routing and Network Layer Part II 92

Network Layer Part II Summary• Network Layer Routing

– Basic Issues– Distributed Routing Algorithms: LS vs. DV– Link State (LS): How does it work?– Distance Vector (DV): How does it work? Issues? – Mobile IP: how does it work? Issues?– MPLS

• Routing in the Internet– Intra-AS vs. Inter-AS routing– Intra-AS: RIP and OSPF– Inter-AS: BGP and Policy Routing

• Things we didn’t cover: VPN, IP Multicast, IPv6 (but please read by yourself!)