PATHLET ROUTING
Amit Srivastava
Gauri Pulekar
Introducing, ‘Pathlet Routing’
ACM SIGCOMM Computer Communication Review 2009
Proposed by research team from UC Berkeley and UI Urbana Champaign
Addresses two main problems with BGP Scalability Multipath Routing
Allows protocol emulation, it can mimic BGP
BGP : It runs the internet!
Current de-facto inter AS routing protocol
BGP uses destination based forwarding i.e. IP address in the header
Uses TCP connection to peers for sending information
Only shares a portion of the routing table
No periodic update to routing information
Routers in the same AS are internal peers, others are external peers
BGP : Messages KEEPALIVE message sent for checking connectivity
NOTIFICATION are for failure or before closing connections
UPDATE messages carry routing information
Routes are stored in Routing Information Bases (RIB): Adj-RIB-In contains information from inbound UPDATE messages,
mostly unprocessed information Loc-RIB contains local routing formation by applying local policies on
the data in Adj-RIB-In Adj-RIB-Out contains the routing info the router has selected to share
with its peers via UPDATE
Building Blocks Vnodes:
Virtual node For a given router, it can have n vnodes for n interfaces This allows traffic shaping for traffic coming from an interface Routers learn about vnodes in the AS by exchanging information with
peers
Pathlets: A sequence of vnodes leading to a destination identified by a IP prefix Forwarding Identifier – FID (f)
Vnode + Pathlet = Virtual topology
Let’s understand..
Constructing pathlets between peer routers
xy z
A B C
2
Let’s understand..
Two pathlets used to send data from A to C
x y z
3
A B C
2
2, 3 3
Let’s understand..
Three autonomous systems
x y z
3
A B C
2
4
4 3
Let’s understand..
Three autonomous systems
x
p
uA
BC
y v
qr
s
Let’s understand..
Ingress and egress points can be chosen from many available options
y
p
uA
BC
x v
qr
s
Let’s understand..
Multiple pathlets to suit local transit policies
y
p
uA
BC
x v
qr
s
Pathlet Routing - Working
Pathlet originates at a router R1 (with vnode v1)
The sending vnode refers to its table for possible pathlets to reach destination
Creates a list of vnodes and calls it a pathlet ( and can advertise it) puts the pathlet in the header and send the packet out to a peer
Peer removes its own vnode in the packet header and sends along to the next vnode
This path selection is dependent on local policies of the AS
Route Selection
Using shortest path algorithmPath for packet forwarding based on result of shortest path algorithm run on a graph created by using routing information at vnodes
Pathlet Dissemination
Path vector algorithm (just like BGP)
Announces pathlet’s FID and sequence of vnodes
Scalability: Propagate arbitrary subset of known pathlets
Path vector used for sending routing info not routing data
Components Of Pathlet Routing
Components Of Pathlet Routing Controller: Processes the routing information
Vnode Manager: Manages all vnodes(tables) on a single device
Disseminator: Sends out routing information to peers
Router : Router running at least 1 pathlet routing instance
Vnode: A small routing table
Pathlet: A sequence of vnodes
Implementation: Router The router can have max 5 interfaces
It can connect to other routers using TCP
The topology is created using a config file
There are 2 kinds of messages Data messages with dummy data Routing messages contain routing information in the following format{AS-id, RouterId, VnodeId} and {PathletId (FID), IP Prefix}
Routers collect stats like size of table in Vnodes and total control messages sent and received
Allow commands on each router
Implementation: Vnode & Vnode Manager
Vnode Manager is a container for Vnodes
All VNodes have vnode-id, router-id, AS-id to uniquely identify it
Controller logic is still being decided but it only decides on installing paths from peers on Vnodes
The shortest path algorithm is implemented on the Vnode
The shortest path algorithm implemented separately but buggy
Implementation: Deciding Topology
Using BGP RIB and Update messages to create update messages
A simple 3 and 6 node topology being used to achieve basic goal of routers exchanging data
Currently tables are static
Scope
Implement the software router in Python using Twisted and NetworkX.
Allow exchange of messages on routers arranged in real-world like scenario
Save the logs for comparison with data from RouteViews
Simulate loss of links
Timeline
Activity Completed TimeFind internet-based topology data or a random graph which can be scaled from 10 to 300 nodes
20 October
Learn and implement the shortest path and Path Vector algorithms
20 October
Learn basic Erlang. We are using Python with NetworkX and Twisted
27 October
Explore possible packet structure for Pathlet routing
27 October
Finalize the details to be implemented or BGP and Pathlet routing
3 November
Activities completed so far
Timeline
Ongoing Activities TimeRun the algorithms for Pathlet and BGP on a large 100+ node graph. And verify the result
10 November
Simulate of a 3 node graph running BGP and Pathlets capable of exchanging information. Created a graph of 6 nodes to implement Pathlet only not BGP
17 November
Verify the above system for discrepancies 24 NovemberAdd provision for emulating Local policies for implementing Local Transit policies
1 December
Run comparison studies on the system 8 December
Ongoing activities and future plan
References
http://dl.acm.org/citation.cfm?id=1592583
https://www.ietf.org/rfc/rfc1771.txt
http://jad-reads.blogspot.com/2009/04/thoughts-on-pathlet-routing.html
ftp://espectrocrom.com/pub/manuales/bgp/cisco%20-%20bgp%20-%20internet%20routing%20architectures%202ed%20(press%201-57870-233-x).pdf
http://web.engr.illinois.edu/~pbg/pathlets/
Questions
Thank You
Top Related