2. 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
3. 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
4. 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
5. 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
10. Let’s understand..
Ingress and egress points can be chosen from many available
options
A
B
C
x v
r q
s
11. Let’s understand..
Multiple pathlets to suit local transit policies
A
B
C
x v
r q
s
12. 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
13. Route Selection
Using shortest path algorithm
Path for packet forwarding based on result of shortest path algorithm
run on a graph created by using routing information at vnodes
14. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. Timeline
Activity Completed Time
Find 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
22. Timeline
Ongoing activities and future plan
Ongoing Activities Time
Run 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 November
Add provision for emulating Local policies
1 December
for implementing Local Transit policies
Run comparison studies on the system 8 December