are you ready for the tutorial n.
Download
Skip this Video
Download Presentation
Are you ready for the tutorial?

Loading in 2 Seconds...

play fullscreen
1 / 50

Are you ready for the tutorial? - PowerPoint PPT Presentation


  • 114 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Are you ready for the tutorial?' - maj


Download Now 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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
      • GEC16 Tutorial VM image
  • Sign In to GENI Portal
  • Join Project: GEC16AdvNetw
  • Grab a Worksheet and Instructions
tutorial advanced network experiments

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

tutorial outline
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
part i introduction to omni

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

hands on exercise
Hands On Exercise

Do a Simple Client-Server Experiment

Reserve two hosts using Omni and

exchange traffic between them

new geni terminology
New GENI Terminology

AM API

credentials

certificate

sliver

geni credentials geni certificates geni keys
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

omni resource reservation tool
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

omni command workflow
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

omni configure py
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
omni config
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, ...

getting help
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
before we start
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.
slide14

Part I: Design/Setup

    • Step 1: Configure Omni
    • Step 2: Obtain Resources
  • Part II: Execute
    • Execute Experiment
    • View results
  • Part III: Finish
    • Teardown Experiment
configure omni
Configure omni

geni@NSDI13-Tutorials:~$>

omni-configure.py –f portal

slide16

Part I: Design/Setup

    • Step 1: Configure Omni
    • Step 2: Obtain Resources
  • Part II: Execute
    • Execute Experiment
    • View results
  • Part III: Finish
    • Teardown Experiment
for the tutorial keep it simple
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

request specifications
Request Specifications

Resource Specification Document (RSpec)

  • XML document that describes resources
    • hosts, links, switches, etc

GENI v3

  • AM extensions
  • Client extensions
  • Tool extensions
the three types of rspecs
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

omni commands
Omni Commands
  • omni.pygetversion
  • omni.pycreatesliceslicename
  • omni.pyrenewsliceslicenamedate
  • omni.pylistmyslicesusername
  • omni.pycreatesliverslicenamerequestRSpec
  • omni.pysliverstatusslicename
  • omni.pylistresources[slicename]
  • omni.pydeletesliverslicename
experiment workflow
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
scripting omni
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
run experiment
Run Experiment

geni@NSDI13-Tutorials:~$>

readyToLogin.py omni99 –a pg-utah

xterm-e ssh -i /home/geni/.ssh/

geni_keynriga@pc204.emulab.net &

experiment workflow1
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
part iii finish experiment
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

omni command line tool
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: ===================================

part ii tmix traffic generator

Part II: TMix Traffic Generator

Jay Aikat

University of North Carolina, Chapel Hill

part ii click software routers

Part II: Click Software Routers

Niky Riga

GENI Project Office

software routers
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
access of multiple users in resources
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

install scripts
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
install scripts1
Install scripts
  • Automatic installation of software
click example experiment
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
part iii click example experiment

Part III: Click Example Experiment

Niky Riga, Vic Thomas

GENI Project Office

hands on exercise1
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

slide37

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
multiple users
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

slide39

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
for the tutorial portal account with omni
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

in the meantime install scripts
… 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
install scripts look inside
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

experiment workflow2
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
scripting omni remote execute py
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]

remote configuration of click
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

experiment workflow3
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
send traffic
Send Traffic

Start routers

Send packet using netcat

Right

Top

HostA

Bottom

HostB

IP

Left

click config file
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);

experiment workflow4
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
part iii finish experiment1
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