RouteBricks: Exploiting Parallelism To Scale Software Routers
Click Software Routers
description
Transcript of Click Software Routers
Sponsored by the National Science Foundation
Click Software Routers
Sarah Edwards
GENI Project Office
Sponsored by the National Science Foundation 2GREE-SC ‘14, July 21, 2014
Software Routers
• Not wire-speed• Easy to deploy• Provide ability to implement new routing
protocols over a L2 network fast–MobilityFirst, Packet Cache, XIA
• An easy way to bandwidth limit your slice
Sponsored by the National Science Foundation 3GREE-SC ‘14, July 21, 2014
Install scripts
• Specify in the RSpec–Where to download software from
• Usually comes with an install-script.sh–What commands to run at boot time
• It runs in the context of a the “geni” user– It is not your user account– It does have sudo privileges
Sponsored by the National Science Foundation 5GREE-SC ‘14, July 21, 2014
Hands On Exercise
Run a non-IP multi-path router over layer 2
Reserve 6 VMs:
4 will be Click routers
2 will be end hosts
Odd checksums left
Even checksums right
Sponsored by the National Science Foundation 6GREE-SC ‘14, July 21, 2014
• Part I: Design/Setup– Obtain Resources: Create a slice and
reserve resources
• Part II: Execute– Configure and Initialize Services: Configure the
Click Routers– Execute Experiment: Use custom routing to
forward traffic over multi-path topology
• Part III: Finish– Teardown Experiment
Sponsored by the National Science Foundation 7GREE-SC ‘14, July 21, 2014
Experimenter
For the Tutorial: Portal Account with Omni
Slice : click<initials>
Sliver
AM
InstaGENI Aggregate
You
GENI Portal
$ omni.py createsliver aliceslice myRSpec.xml INFO:omni:Loading config file omni_config INFO:omni:Using control framework pgeni INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec fileINFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspeINFO:omni: -----------------------------------INFO:omni: Completed createsliver:
Options as run: aggregate: https://www.emulab. framework: pgeni native: True
Args: createsliver aliceslice myRSpec.xml
Result Summary: Slice urn:publicid:IDN+pgeniReserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-manINFO:omni: ===================================
omni
http://www.gpolab.bbn.com/exp/ClickExampleExperiment/click.rspec
Sponsored by the National Science Foundation 8GREE-SC ‘14, July 21, 2014
… in the meantime … Install Scripts
• specified in the rspec– It needs to be available over http
• does not run as “you”, but has sudo• it runs at every boot • $PATH might not be set• OS-dependent
1. Write script in language of choice
2. Upload script
3. Test script
4. Add to rspec
Sponsored by the National Science Foundation 9GREE-SC ‘14, July 21, 2014
Install Scripts: Look inside
# 1. Change to dir. with installed softwarecd /local
# 2. Check if first timeif [ ! -f "./installed.txt" ]then #### Create the file #### sudo touch "./installed.txt” #### Run one-time commands #### #2a. Install necessary packages #2b. Install custom software #2c. Reboot if neededfi#3. Run Boot-time commands#3a. Start common serviceshn=`echo $HOSTNAME | cut -d'.' -f 1`if [ $hn == "server" ]then #4. Host specific commandsfi
1. Download install script
2. Identify the 4 sections
Sponsored by the National Science Foundation 10GREE-SC ‘14, July 21, 2014
Experiment Workflow
• Part I: Design/Setup– Obtain Resources: Create a slice and reserve
resources
• Part II: Execute– Configure and Initialize Services: Configure
the Click Routers– Execute Experiment: Use custom routing to
forward traffic over multi-path topology
• Part III: Finish– Teardown Experiment
Sponsored by the National Science Foundation 11GREE-SC ‘14, July 21, 2014
Remote configuration of Click
• Remotely invoke configuration script: extractClickConfig.py– parse manifest rspec– extract information about topology– create click.config
• Remotely turn off IP in the routers
IP
Sponsored by the National Science Foundation 12GREE-SC ‘14, July 21, 2014
Experiment Workflow
• Part I: Design/Setup– Obtain Resources: Create a slice and reserve
resources
• Part II: Execute– Configure and Initialize Services: Configure the
Click Routers– Execute Experiment: Use custom routing to
forward traffic over multi-path topology
• Part III: Finish– Teardown Experiment
Sponsored by the National Science Foundation 13GREE-SC ‘14, July 21, 2014
Send Traffic
Start routers
Send packet using netcat
HostA Top Bottom
Left
Right
HostBIP
Sponsored by the National Science Foundation 14GREE-SC ‘14, July 21, 2014
Click Config Fileroute :: Classifier(27/01%01,-);modify :: Unstrip(2) -> StoreData(0, "AliceWasHere3546") -> route;FromDevice(eth3, PROMISC true) -> Classifier(12/0800) -> modify;route[0] -> left :: EtherEncap(0x7744, 00:04:23:b7:14:76, 00:04:23:b7:18:fa) -> SimpleQueue -> Print(outL) -> ToDevice(eth2);route[1] -> right :: EtherEncap(0x7744, 00:04:23:b7:1c:e0, 00:04:23:b7:19:2e) -> SimpleQueue -> Print(outR) -> ToDevice(eth4);
restore :: SimpleQueue -> Strip(30) -> EtherEncap(0x800, 00:04:23:b7:14:77, 00:04:23:b7:20:00) -> ToDevice(eth3);
Sponsored by the National Science Foundation 16GREE-SC ‘14, July 21, 2014
Experiment Workflow
• Part I: Design/Setup– Setup: Omni with Multiple Users– Obtain Resources: Create a slice and reserve
resources
• Part II: Execute– Configure and Initialize Services: Configure the
Click Routers– Execute Experiment: Use custom routing to
forward traffic over multi-path topology
• Part III: Finish– Teardown Experiment
Sponsored by the National Science Foundation 17GREE-SC ‘14, July 21, 2014
Part III: Finish Experiment
When your experiment is done, you should always release your resources.
– Normally this is when you would archive your data– Delete your slivers at each aggregate
slice
project
aggregate
RSpecuserresourcesliv
er
AM API
slivercredentials
certificate