6390 project
DESCRIPTION
ProjectTRANSCRIPT
CS 6390 ProjectInterdomain 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
• 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
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)
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
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
• 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:
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
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
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
• Receives inter-domain routing information from PCEs in neighboring domains
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
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
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
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
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
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
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
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
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
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
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
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