Are you ready for the tutorial
This presentation is the property of its rightful owner.
Sponsored Links
1 / 50

Are you ready for the tutorial? PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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


Are you ready for the tutorial

  • 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

[email protected]:~$>

omni-configure.py –f portal


Are you ready for the tutorial

  • 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

[email protected]:~$>

readyToLogin.py omni99 –a pg-utah

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

[email protected] &


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

Part III: Hands-on Experiments


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


Are you ready for the tutorial

  • 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


Are you ready for the tutorial

  • 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


  • Login