1 / 50

Are you ready for the tutorial?

Are you ready for the tutorial?. Did you do the pre-work? Are you able to login to the GENI Portal? Using your home institution username and password, or Using a GPO issued username and password, or A temporary account Have the GEC16 Tutorial VM including both: VirtualBox

maj
Télécharger la présentation

Are you ready for the tutorial?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Are you ready for the tutorial? • Did you do the pre-work? • Are you able to login to the GENI Portal? • Using your home institution username and password, or • Using a GPO issued username and password, or • A temporary account • Have the GEC16 Tutorial VM including both: • VirtualBox • GEC16 Tutorial VM image • Sign In to GENI Portal • Join Project: GEC16AdvNetw • Grab a Worksheet and Instructions

  2. Tutorial: Advanced Network Experiments $ omni.pycreatesliveraliceslicemyRSpec.xml INFO:omni:Loadingconfig file omni_config INFO:omni:Using control framework pgeni INFO:omni:Sliceurn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec file INFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspe INFO:omni: ----------------------------------- INFO:omni: Completed createsliver: Options as run: aggregate: https://www.emulab. framework: pgeni native: True Args: createsliveraliceslicemyRSpec.xml Result Summary: Slice urn:publicid:IDN+pgeni Reserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-man INFO:omni: =================================== o m n i Jay Aikat University, North Carolina Niky Riga GENI Project Office GEC16, 20 March2013

  3. Tutorial Outline • Part I: Learn how to use Omni Presentation and Hands-on • Part II: Presentation of Advanced Experiments Tmix traffic generation Click Software Routers • Part III: Hands-on Experiments Split in two groups: • Tmix • Non-IP routing using Click

  4. Part I: Introduction to Omni $ omni.pycreatesliveraliceslicemyRSpec.xml INFO:omni:Loadingconfig file omni_config INFO:omni:Using control framework pgeni INFO:omni:Sliceurn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec file INFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspe INFO:omni: ----------------------------------- INFO:omni: Completed createsliver: Options as run: aggregate: https://www.emulab. framework: pgeni native: True Args: createsliveraliceslicemyRSpec.xml Result Summary: Slice urn:publicid:IDN+pgeni Reserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-man INFO:omni: =================================== Niky Riga, Sarah Edwards GENI Project Office

  5. Hands On Exercise Do a Simple Client-Server Experiment Reserve two hosts using Omni and exchange traffic between them

  6. New GENI Terminology AM API credentials certificate sliver

  7. GENI Credentials, GENI Certificates, GENI Keys GENI Certificate : identifies user; created by the Portal and you can download it through the webUI, it is an ssl certificate GENI Credential :identifies user's permissions; you almost never have to handle; tools query if from Portal Services GENI Keys: Access to compute resources are through ssh-keys, you can use your own or use the one GENI created for you Passphrase : is the password that protects your private key Experimenter

  8. Omni: Resource Reservation tool • A command line experimenter tool • Create slices and slivers using the GENI AM API • Written in and scriptable from Python • Use existing accounts • GENI Portal • ProtoGENI • PlanetLab • Works with aggregates that implement the GENI AM API • ProtoGENI, PlanetLab, OpenFlow, InstaGENI, ExoGENI $ omni.pycreatesliveraliceslicemyRSpec.xml INFO:omni:Loadingconfig file omni_config INFO:omni:Using control framework pgeni INFO:omni:Sliceurn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec file INFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspe INFO:omni: ----------------------------------- INFO:omni: Completed createsliver: Options as run: aggregate: https://www.emulab. framework: pgeni native: True Args: createsliveraliceslicemyRSpec.xml Result Summary: Slice urn:publicid:IDN+pgeni Reserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-man INFO:omni: =================================== http://trac.gpolab.bbn.com/gcf/wiki/Omni

  9. Omni Command Workflow Create Slice Create Sliver Cleanup Repeat for each aggregate Repeat for each aggregate listresources listmyslices createsliver sliverstatus deletesliver createslice getversion renewslice Legend: AM API command

  10. omni_configure.py [omni] default_cf= portal users = gpousr21 # ---------- Users ---------- [gpousr21] urn = urn:publicid:IDN+pgeni.gpolab.bbn.com+user+gpousr21 keys = ~/.ssh/geni_key ... Run this script for standard configuration: Download GENI bundle Run the script • You only need the Omni bundle from the portal • Standard AM nicknames

  11. omni_config [omni] default_cf = pgeni# Tutorial accounts are on GPO’s PG users = gpousr21# gpousr21’s keys loaded on the VM to allow login # ---------- Users ---------- [gpousr21] urn = urn:publicid:IDN+pgeni.gpolab.bbn.com+user+gpousr21 # Really important to get the keys correct!!! #key to load on VM keys = ~/Tutorials/Omni/gpousr20/ssh/gpousr20_key.pub # default aggregates to run omni commands on aggregates = http://emulab.net/protogeni/xmlrpc/am, https://pgeni.gpolab.bbn.com/protogeni/xmlrpc/am, ...

  12. Getting Help • omni.py–h Lists all commands and their arguments Lists all command line options Lists Omni version Lists url to find out more information about Omni • Omni Troubleshooting page: http://trac.gpolab.bbn.com/gcf/wiki/OmniTroubleShoot

  13. Before we start • Many people will be accessing the resources, so some calls might fail. Wait a bit and try again! • Omni is a command line tool, copy-paste is your friend • You can copy-paste between your computer and the VM.

  14. Part I: Design/Setup • Step 1: Configure Omni • Step 2: Obtain Resources • Part II: Execute • Execute Experiment • View results • Part III: Finish • Teardown Experiment

  15. Configure omni geni@NSDI13-Tutorials:~$> omni-configure.py –f portal

  16. Part I: Design/Setup • Step 1: Configure Omni • Step 2: Obtain Resources • Part II: Execute • Execute Experiment • View results • Part III: Finish • Teardown Experiment

  17. For the Tutorial: Keep it simple GENI Portal AM Slice Experimenter Sliver You Once you understand how to run this simple experiment, scaling up is easy! ProtoGENI Aggregate

  18. Request Specifications Resource Specification Document (RSpec) • XML document that describes resources • hosts, links, switches, etc GENI v3 • AM extensions • Client extensions • Tool extensions

  19. The Three Types of RSpecs Advertisement RSpec : What does the AM have? Request RSpec : What does the Experimenter want? Manifest RSpec: What does the Experimenter have? Advertisement omni.pylistresources Aggregate Manager Client Request omni.pycreatesliverslicenamereqRSpec Manifest omni.pylistresourcesslicename

  20. Omni Commands • omni.pygetversion • omni.pycreatesliceslicename • omni.pyrenewsliceslicenamedate • omni.pylistmyslicesusername • omni.pycreatesliverslicenamerequestRSpec • omni.pysliverstatusslicename • omni.pylistresources[slicename] • omni.pydeletesliverslicename

  21. Experiment Workflow • Part I: Design/Setup • Step 1: Establish Management Environment • Step 2: Obtain Resources • Part II: Execute • Run Experiment • Part III: Finish • Teardown Experiment

  22. Scripting Omni • You can write custom Python scripts • Call existing Omni functions • Parse the Output • Example: readyToLogin.py • Calls getversion, sliverstatus, listresources • Parses output • Determines ssh command to log into node • Print ssh configuration blocks to place in your sshconfig file • More examples distributed with Omni • remote-execute.py

  23. Run Experiment geni@NSDI13-Tutorials:~$> readyToLogin.py omni99 –a pg-utah xterm-e ssh -i /home/geni/.ssh/ geni_keynriga@pc204.emulab.net &

  24. Experiment Workflow • Part I: Design/Setup • Step 1: Establish Management Environment • Step 2: Obtain Resources • Part II: Execute • Execute Experiment • Part III: Finish • Teardown Experiment

  25. 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 sliver credentials sliver project RSpec resource user AM API aggregate certificate slice

  26. Omni: Command Line Tool • Written in Python • Easy to automate experiments • Helps with simple orchestration through omni scripting • Talks to all AMs that speak the GENI AM API • Very manual • Needs RSpecs $ omni.pycreatesliveraliceslicemyRSpec.xml INFO:omni:Loadingconfig file omni_config INFO:omni:Using control framework pgeni INFO:omni:Sliceurn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec file INFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspe INFO:omni: ----------------------------------- INFO:omni: Completed createsliver: Options as run: aggregate: https://www.emulab. framework: pgeni native: True Args: createsliveraliceslicemyRSpec.xml Result Summary: Slice urn:publicid:IDN+pgeni Reserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-man INFO:omni: ===================================

  27. Part II: TMix Traffic Generator Jay Aikat University of North Carolina, Chapel Hill

  28. Part II: Click Software Routers Niky Riga GENI Project Office

  29. 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

  30. Access of multiple users in resources • Omni allows multiple users to access the same resources • Modification of omni_config file • Different ways for each compute aggregate ProtoGENI Bob Alice Alice’s Slice MyPLC MyPLC

  31. 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 sudopriviledges

  32. Install scripts • Automatic installation of software

  33. Click Example Experiment • You will run your own non-IP multipath router • Odd checksums left • Even checksums right • 6 VMs in Utah • 4 routers • 2 end hosts

  34. Part III: Hands-on Experiments

  35. Part III: Click Example Experiment Niky Riga, Vic Thomas GENI Project Office

  36. Hands On Exercise Run a non-IP router over L2 Reserve 6 hosts: 4 will be click routers, 2 will be end hosts. Oddchecksums left Evenchecksums right

  37. 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

  38. Multiple Users ProtoGENI AMs SFA (PlanetLab) AMs [omni] default_cf = portal users = alice, bob # ---------- Users ---------- [alice] urn = urn:publicid:IDN+pgeni.gpolab.bbn.com+user+alice keys = ~/.ssh/alice_key [bob] urn = urn:publicid:IDN+pgeni.gpolab.bbn.com+user+bob keys = ~/.ssh/bob_key [omni] default_cf = portal users = alice, bob # ---------- Users ---------- [alice] urn = urn:publicid:IDN+pgeni.gpolab.bbn.com+user+alice keys = ~/.ssh/alice_key, ~/.ssh/bob_key One account accessible by many keys Multiple accounts, each one with each own key

  39. 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

  40. For the Tutorial: Portal Account with Omni GENI Portal AM Slice : click<initials> Experimenter $ omni.pycreatesliveraliceslicemyRSpec.xml INFO:omni:Loadingconfig file omni_config INFO:omni:Using control framework pgeni INFO:omni:Sliceurn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec file INFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspe INFO:omni: ----------------------------------- INFO:omni: Completed createsliver: Options as run: aggregate: https://www.emulab. framework: pgeni native: True Args: createsliveraliceslicemyRSpec.xml Result Summary: Slice urn:publicid:IDN+pgeni Reserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-man INFO:omni: =================================== o m n i Sliver You ProtoGENI Aggregate http://www.gpolab.bbn.com/experiment-support/ ClickExampleExperiment/rspecs/click-XX.rspec

  41. … 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 • Write script in language of choice • Upload script • Test script • Add to rspec

  42. Install Scripts: Look inside # 1. Change to dir. with installed software cd /local # 2. Check if first time if [ ! -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 needed fi #3. Run Boot-time commands #3a. Start common services hn=`echo $HOSTNAME | cut -d'.' -f 1` if [ $hn == "server" ] then #4. Host specific commands fi 1. Download install script 2. Identify the 4 sections

  43. 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

  44. Scripting Omni: remote-execute.py • Scriptthat helps you execute commands in your nodes from your computer • Makes it easy to orchestrate experiments • Write scripts to orchestrate experiments • Uses readyToLogin.pyto get login information remote-execute.py –m <command> [-h host]

  45. 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

  46. 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

  47. Send Traffic Start routers Send packet using netcat Right Top HostA Bottom HostB IP Left

  48. Click Config File route :: 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);

  49. 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

  50. 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 sliver credentials sliver project RSpec resource user AM API aggregate certificate slice

More Related