You are on page 1of 23

CS 6390 Project

Interdomain Routing with PCEs

Overview
Implement multi-domain network
with Path Computation Elements
(PCEs) for calculating routes
PCEs and routers implemented as
socket-based programs

Multi-Domain Network
PCE

00

03

10

02
04

20
21

11

22

12

01

AS0

PCE

PCE

AS1

24

25

23

3
26

AS2

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

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.
Dijkstras algorithm)

Route Calculation Intradomain


PCE

10

03

RRES

02

00

RREQ

00

04

PCE

PCE

10

20
21

11

24

2
23

22

12

01

AS0

AS1

3
26

AS2

Router sends route request (RREQ) to PCE


PCE calculates route
PCE sends route response (RRES) to router

25

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

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

PCE

00

03

10

21

11

04

AS0
PCE0:

22

12

01

20

02

PCE

PCE

24

2
23

3
26

AS1

AS2
Net ID

Next
AS

AS
hops

00

10

10

11

11

20

20

21

21

Net ID

Next
AS

AS
hops

00

PCE1:

25

Interdomain Routing
Protocol

Router sends routing request to its PCE


If destination is network outside of AS, the PCE sends an interdomain 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

Route Calculation Intradomain


IRRQ 25

IRRQ 25

IRRS AS1 0 1 AS2 0 2

PCE

00

03

10

02

PCE

0
11

04

20
21

22

12

01

AS0

IRRS AS2 0 2

PCE

RRES 1 2 AS1 0 1 AS2 0 2

AS1

24

25

23

3
26

AS2

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

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

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

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

AS: AS number of routers domain


routerID: Routers 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 routers interface are
connected

Router Initiation Examples


PCE

00

03

10

02

PCE

PCE

04

20

21
11

22

24

2
23

3
26

01

AS0

AS1

AS2

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

25

configfile format
Each line consists of
<AS> <hostname> <port number>

Example
0 net10 12340
1 net11 12341
2 net12 12342

Port numbers should be unique if


multiple PCE programs are running on
the same host machine

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 routers current interfaces along with
their metrics

PCE Command-Line Inputs


Command line
% PCE <AS> <configfile>

AS: The AS number of the PCEs domain


configfile: file containing hostname and port
number information for PCEs
Example:
% PCE 0 configfile

Link-State Advertisement Messages


When router is initiated, it sends an LSA message to its
PCE using TCP
Message format
LSA <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

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
PCE

00

03

10

02
04

PCE

PCE

20
21

11

22

24

2
23

3
26

01

AS0

AS1

AS2

25

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>

Example
RRES 1 0
PCE

00

03

10

02
04

PCE

PCE

20
21

11

22

24

2
23

3
26

01

AS0

AS1

AS2

25

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>

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

00

03

10

02
04

PCE

PCE

20
21

11

22

24

2
23

3
26

01

AS0

AS1

AS2

25

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>

Example
IRRQ 0 25
PCE

00

03

10

02
04

PCE

PCE

20
21

11

22

24

2
23

3
26

01

AS0

AS1

AS2

25

Inter-domain Route Response


Message

Sent from PCE to upstream PCE in response to an interdomain 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>

Example
IRRS AS1 0 1 AS2 0 2 3
PCE

00

03

10

02
04

PCE

PCE

20
21

11

22

24

2
23

3
26

01

AS0

AS1

AS2

25

Multi-Domain Network
PCE

00

03

10

02
04

PCE

PCE

20
21

11

22

25

23

3
26

01

AS0

24

AS1

AS2

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

You might also like