6390 project

23
CS 6390 Project Interdomain Routing with PCEs

Upload: prateek-sharma

Post on 17-Jan-2016

230 views

Category:

Documents


0 download

DESCRIPTION

Project

TRANSCRIPT

Page 1: 6390 Project

CS 6390 ProjectInterdomain Routing with PCEs

Page 2: 6390 Project

Overview

• Implement multi-domain network with Path Computation Elements (PCEs) for calculating routes

• PCEs and routers implemented as socket-based programs

Page 3: 6390 Project

Multi-Domain Network

• A domain consists of one PCE and a number of routers• Each domain has an AS number from 0-9• Each router in a domain has a router ID from 0-9• Each network has a globally unique network number from 00-99

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

12

Page 4: 6390 Project

Intradomain Routing Protocol

• Link-state routing• Routers send link-state information to PCE• PCE builds intradomain topology from state

information• PCE calculates intradomain routes using a link-

state algorithm (e.g. Dijkstra’s algorithm)

Page 5: 6390 Project

Route Calculation - Intradomain

• Router sends route request (RREQ) to PCE• PCE calculates route • PCE sends route response (RRES) to router

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

12

RREQ

00

RRES

1 0

Page 6: 6390 Project

Interdomain Routing Protocol

• PCE maintains a interdomain forwarding table– Specifies, for each network, the next hop AS and the AS

hop count to the network• Obtaining domain sequence for given network– PCE advertises reachability to networks in its own

domain to neighbor PCEs• Specifies AS hop count and network numbers

– PCE receiving advertisement• Updates its interdomain forwarding table• Increments the AS hop count in the advertisement and

forwards it to its own neighbors

Page 7: 6390 Project

Interdomain Forwarding Table

• PCE0: Net ID Next AS AS hops00 0 0

… … …

10 1 1

11 1 1

… … …

20 1 2

21 1 2

… … …

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

12

Dist: 0 hop, Nets: (00,01,02,03,04) Dist: 1 hop, Nets: (00,01,02,03,04)

Net ID Next AS AS hops

00 0 1

… … …

10 1 0

11 1 0

… … …

20 2 1

21 2 1

… … …

• PCE1:

Page 8: 6390 Project

Interdomain Routing Protocol• Router sends routing request to its PCE• If destination is network outside of AS, the PCE sends an inter-domain routing

request to the PCE of the next-hop downstream AS • The downstream PCE propagates the request to the next downstream PCE until

the request reaches the destination PCE• Destination PCE calculates a path from each valid ingress router to the destination

network– Select the least-cost path– Return the least-cost path to the PCE in the upstream domain – includes the ID of the

ingress node• Intermediate PCE calculates path from each ingress router to the specified egress

router– Select the least-cost path– Return the least-cost path to the PCE in the upstream domain – includes the ID of the

ingress node• Source PCE calculates path from source router to specified egress router

– Return route to router

Page 9: 6390 Project

Route Calculation - Intradomain

• Router sends route request (RREQ)• PCE0 sends inter-domain route request (IRRQ) to PCE1• PCE1 sends inter-domain route request (IRRQ) to PCE2• PCE2 calculates routes from ingress Router 0 to net 25 and from ingress router 1 to net 25• PCE2 selects ingress Router 0 and informs PCE1 with an inter-domain route response (IRRS)• PCE1 calculates route from ingress Router 0 to egress Router 1• PCE1 sends inter-domain route response (IRRS) to PCE0• PCE0 calculates route from source router to egress Router 2• PCE0 sends route response to Router 1

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

12

RREQ

25

IRRQ 25 IRRQ 25

IRRS AS2 0 2IRRS AS1 0 1 AS2 0 2

RRES 1 2 AS1 0 1 AS2 0 2

Page 10: 6390 Project

Router Program

• Socket-based client program• Sends link-state advertisements to PCE in its AS• Sends routing requests to PCE in its AS– Receives routes from PCE in its AS

Page 11: 6390 Project

PCE Program• Socket-based client-server program• Server

– Receives link-state advertisement from routers in its AS• Updates traffic engineering database

– Receives routing requests from routers in its AS• Calculates routes• Sends routes to requesting routers in its AS

– Receives inter-domain routing requests from PCEs in other domains• Calculates routes• Sends inter-domain routing information to requesting PCEs in neighboring domains

• Client– Sends BGP-like advertisements to other PCEs– Sends inter-domain routing requests to PCEs in other domains

• Receives inter-domain routing information from PCEs in neighboring domains

Page 12: 6390 Project

Router Command-Line Inputs• Command line% router <AS> <routerID> <configfile> <neighborAS> <neighborrouterID> <net1> <net2> …

• AS: AS number of router’s domain• routerID: Router’s ID within its domain• configfile: file containing hostname and port number

information for PCEs• neighborAS: if router is border router, this is the AS number of its

neighboring AS (set to 99 if not border router)• neighborrouterID: if router is a border router, this is the ID of

the router in the neighboring domain (set to 99 if not border router)• net1, net1, etc.: networks to which router’s interface are

connected

Page 13: 6390 Project

Router Initiation Examples

• Router 2 in AS0:% router 0 2 configfile 1 0 03 04

• Router 3 in AS2: % router 2 3 configfile 99 99 21 22 23 26

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

Page 14: 6390 Project

configfile format

• Each line consists of <AS> <hostname> <port number>

• Example0 net10 123401 net11 123412 net12 12342

• Port numbers should be unique if multiple PCE programs are running on the same host machine

Page 15: 6390 Project

Router Input Commands

• Router program prompts the user for input• RT <net>

– Calculates route to network <net> and returns sequence of routers

• DN <net>– Brings down interface <net> of router if it is currently up

• UP <net>– Brings up interface <net> of router if it is currently down

• LI– Prints out all of the router’s current interfaces along with their

metrics

Page 16: 6390 Project

PCE Command-Line Inputs

• Command line% PCE <AS> <configfile>

• AS: The AS number of the PCE’s domain• configfile: file containing hostname and port number

information for PCEs• Example:

% PCE 0 configfile

Page 17: 6390 Project

Link-State Advertisement Messages

• When router is initiated, it sends an LSA message to its PCE using TCP

• Message formatLSA <routerID> <neighborAS> <neigborrouterID> <net1> <metric1> <net2> <metric2> …

• routerID: the ID of the router sending the LSA• neighborAS: AS number of neighbor AS if router is a border

router (99 if not border router)• neighborrouterID: ID of the router in the neighboring AS if

router is a border router (99 if not border router• net1, net2, etc.: list of networks to which router is connected• metric1, metric2, etc.: metrics of each network

Page 18: 6390 Project

Route Request Message• Sent from router to its PCE using TCP• TCP connection remains established until response is received• Format

RREQ <routerID> <dest_net>

• routerID: ID of router sending RREQ• dest_net: network number of desired destination• Example:

RREQ 1 25

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

Page 19: 6390 Project

Route Response Message• Sent from PCE to router• List of routers from source to destination network• TCP connection is closed after this message is sent• Format

RRES <RouterID1> <RouterID2>

• ExampleRRES 1 0

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

Page 20: 6390 Project

Inter-domain BGP Advertisements• PCEs send reachability information to neighboring PCEs when it receives LSAs

from its routers• Sent using TCP• Format

BGP <AS> <AS_hops> <net1> <net2> …

• ExampleFrom PCE0 to PCE 1: BGP 0 0 00 01 02 03 04From PCE1 to PCE 2: BGP 1 1 00 01 02 03 04

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

Page 21: 6390 Project

Inter-domain Route Request Message• PCEs send routing requests to neighboring PCEs upon receiving a request for a

network that is outside its domain• Sent using TCP• TCP connection remains established until response is received• Format

IRRQ <AS> <dest_net>

• ExampleIRRQ 0 25

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

Page 22: 6390 Project

Inter-domain Route Response Message• Sent from PCE to upstream PCE in response to an inter-domain route

request• Once the message is sent, the TCP connection is closed• Specifies list of routers along the path, including AS numbers• Format

IRRS AS<AS1> <RouterID11> <RouterID12> AS<AS2> <RouterID21> <RouterID22>

• ExampleIRRS AS1 0 1 AS2 0 2 3

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE

Page 23: 6390 Project

Multi-Domain Network

• A domain consists of one PCE and a number of routers• Each domain has an AS number from 0-9• Each router in a domain has a router ID from 0-9• Each network has a globally unique network number from 00-99

0

0

0

AS0 AS1 AS2

1

1

1

2

2

2

3

00

01

02

03

04

10

11

20

21

22

24

23

25

26

PCEPCEPCE