Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN

1,858 views

Published on

Synopsis

We will start with MPLS 101 and then look into MPLS related OpenFlow actions. In the second half we will delve into RouteFlow architecture and extend it to enable Label Distribution Protocol (LDP) and MPLS routing. We will conclude with a mini-net based test bed switching traffic using MPLS labels instead of IP addresses.

This will be a hands on workshop. VM Images for Virtual Box will be provided. Attendees are expected to bring their laptops loaded with Virtual Box.

About Vikram Dham

Vikram is the CTO and co-founder of Kamboi Technologies, LLC where he advises networking companies, switch vendors and early adopters on SDN technology and distributed software development. Also, he is the founder of Bay Area Network Virtualization (BANV) meet-up group, that brings together technologists in the SDN/NFV/NV domain for technical talks, workshops and creates a truly "open" platform for sharing knowledge.

He has used SDN technologies for building software related to traffic engineering, security and routing. In the past, he was the Principal Engineer at Slingbox where he architected & built the distributed networking software for peer to peer connectivity of millions of end points. He holds MS degree in EE with a specialization in Computer Networks from Virginia Tech and has worked on research projects with companies like ECI Telecom, Raytheon and Avaya Research Labs.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,858
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
63
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN

  1. 1. Tech Tutorial:Let’sbuild mplsrouter using SDN Vikram Dham, KamboiTechnologies vikram@kamboi.com Bay Area Network Virtualization Hosted by Cablelabs, Sunnyvale, Dec 2014
  2. 2. About me •Present - •Co-Founder & CTO KamboiTechnologies •Working on exciting networking projects! •Past - •Sling Media •Built the core P2P software for connecting millions of boxes •UDP tunnels carrying video and control traffic •ECI Telecom, Avaya Research Labs, Raytheon, Nextone •802.11e EDCA & HCCA, WF2Q+, TCP Ackreconstruction in asymmetrical networks •MS Virginia Tech Kamboi Technologies 2
  3. 3. Some things about the project.. •Customer PoC •Explore MPLS LDP implementation using Open Flow •Built using Open Source components •Amazing how much code is in open source! Kamboi Technologies 3
  4. 4. Control basics •Centralized controllers – policies, traffic engineering •Peer to peer protocols such as BGP/LDP –Peering •Hybrid –Peer to peer + Centralized == Peering, Traffic Engineering & Policing •Work done by leading researchers to build Software Defined Exchanges (SDX) Today we will see peering protocols in action! Kamboi Technologies 4
  5. 5. RouteFlow Architecture •Quaggarunning inside lxccontainers •rfclientintercepts quagganetlinkmessages and sends to rfserver •rfserver–intelligence •rfproxy–light weight interface between rfserver& OF switches Kamboi Technologies 5 RouteFlow Architecture [1]
  6. 6. Demo test-bed Kamboi Technologies 6 mininet-vm routeflow-vm lxcinstances running Quagga rfvmD rfvmA rfvmB rfvmC rfproxy A B C D Quagga+ ldp+ FPM enabled
  7. 7. About the vms •mn.nvirters.org •ubuntu14.04 based •Contains mininet& Open vSwitch version 2.3.90 •wiresharkwith OF dissector, xterm, git-core •rf.nvirters.org •ubuntu12.04 based •Contains RouteFlow, Open vSwitch version 2.3.90 •wireshark, xterm, git-core Kamboi Technologies 7
  8. 8. Let’s run the ip router •Import the virtual machines mn.nvirters.org & rf.nvirters.org •Ensure X is running on your host machines (access control is not checked) •Login as nvirters/nvirters •sudosu •./start_hintf •./start_xterm •Use ping to test their connectivity •On mn.nvirters.org ./rftest.mn •On rf.nvirters.org cd RouteFlow/rftest; ./rftest2 •Take deep breath and let RouteFlow do the magic…. Kamboi Technologies 8
  9. 9. MPLS 101 •Incoming label based switching •NHLFE -> Next Hop Label Forwarding Entry •FTN -> FEC to NHLFE mapping •Advantages •Ability to install custom LSPs •Faster switching compared to longest prefix match Kamboi Technologies 9 MPLS IP LSR LSR LER LER FTN IP Label NHLFE 11 12 NHLFE 12 14 NHLFE 14 pop& route IP IP 11 IP 12 IP 12 IP
  10. 10. RouteFlow modifications to enable LDP •Used Quaggaldpdimplementation from [3] •Modifications •Enable user space Forwarding Plane Manager (FPM) interface •Send NHLFEs & FTNs to RouteFlow •ldpdconfigfiles •RouteFlow modifications •Forward LDP related traffic to CONTROLLER •Handle instructions for multiple tables •Handle mplsrelated Flow Mods •Used FIMSIM code from [4] for interfacing Quagga& RouteFlow using FPM Kamboi Technologies 10 Quagga •Sends NHLFE & FTN using FPM rfclient •Converts NHLFE & FTN to OF Flow Mods rfserver •Maps vmid & port to dp_id& port and inserts into Of Flow Mods rfproxy
  11. 11. LDP related Flow Entries •Send LDP traffic to Quaggalxccontainers •UDP packets for saying HELLO •cookie=0x0, duration=3120.954s, table=2, n_packets=1869, n_bytes=142044, priority=32800,udp,tp_src=646,tp_dst=646 actions=CONTROLLER:65509 •TCP packets for label exchange •cookie=0x0, duration=3120.955s, table=2, n_packets=341, n_bytes=27219, priority=32800,tcp,tp_dst=646 actions=CONTROLLER:65509 Kamboi Technologies 11
  12. 12. Demo test-bed Kamboi Technologies 12 mininet-vm routeflow-vm lxcinstances running Quagga rfvmD rfvmA rfvmB rfvmC rfproxy A B C D Quagga+ ldp+ FPM enabled
  13. 13. Let’s run the mplsrouter •Import the virtual machines mn.nvirters.org & rf.nvirters.org •Ensure X is running on your host machines (access control is not checked) •Login as nvirters/nvirters •sudosu •./start_hintf •./start_xterm •Use ping to test their connectivity •On mn.nvirters.org ./rftest.mn •On rf.nvirters.org cd RouteFlow/rftest; ./rftest2 •Take deep breath and let RouteFlow do the magic…. Kamboi Technologies 13
  14. 14. Sample LDP packet capture Kamboi Technologies 14 LDP Hello packets over UDP LDP label mapping packets over TCP
  15. 15. Sample MPLS packet capture Kamboi Technologies 15 Packet capture of iperftraffic in the mplsnetwork
  16. 16. MPLS routing –multiple tables Kamboi Technologies 16 table=0, mplsactions=goto_table:1 table=0, actions=goto_table:2 table=1, mpls,in_port=1,dl_dst=X,mpls_label=10 actions=set_field:Y->eth_src,set_field:Z- >eth_dst,set_field:3->mpls_label,output:3 table=1, mpls,in_port=1,dl_dst=X,mpls_label=3 actions=pop_mpls:0x800,goto_table:2 … … table=2, priority=32700,ip,in_port=2,dl_dst=X,nw_dst=20.0.0.0/24 actions=set_field:Y- >eth_src,set_field:Z->eth_dst,push_mpls:0x8847,set_field:5->mpls_label,output:3 table=2, priority=32700,ip,in_port=2,dl_dst=Y,nw_dst=40.0.0.0/24 actions=set_field:Y- >eth_src,set_field:Z->eth_dst,push_mpls:0x8847,set_field:7->mpls_label,output:3 … …
  17. 17. LSR vs LER requirements •LSR can be implemented using a single table •Possible to combine table 0, table 1 & table 2 •Possible to use commodity OF switches such as Pica8 which have basic mplsactions •LER needs support of multiple tables •Cannot combine table 1 & table 2 •Use costlier OF switches which utilize FPGAs or NPU based pipelines •Or, push LER to software switches on the edge –software switch in hypervisor Kamboi Technologies 17
  18. 18. Takeaways •Keep as much intelligence & complexity as possible outside the core and push it to the edge! •Keep the code interfacing with the controller as light as possible •Software OF switch != Hardware OF switch •Need software tools for merging Flow Mods from different modules •Open Flow & Open vSwitch –Giant leap for networking •Helps avoid vendor lock in •Customer can pick (any 2 out of the 3) from the platter –speed, functionality, cost–ASIC, NPU, FPGA, software switches Kamboi Technologies 18 More and more functionality to the edge
  19. 19. Yes, I want itto try it! •Open Source •https://github.com/vdham/RouteFlow •One touch build compiles and installs all the required components [Fear not the build process] •Base ubuntu12.04 + build command == RouteFlow Instance with OSPF + LDP Kamboi Technologies 19
  20. 20. Thanks •Credits •Teaching Assistants: Thomas E. Kee& Joe Stringer •James Liao±, Dr. Christian Esteve Rothenburg¥, Josh Bailey§, David Liu±, Joe Stringerφ •±Pica8 •¥ University of Campinas (UNICAMP), Brazil •§Google •φVMware •Cablelabs, Sunnyvale for hosting this workshop •References [TBD] 1.https://sites.google.com/site/routeflow 2.http://routeflow.github.io/RouteFlow 3.https://github.com/CPqD/RouteFlow/wiki 4.https://github.com/ofisher/fimsim 5.https://github.com/rwestphal/public-quagga Kamboi Technologies 20

×