Giter VIP home page Giter VIP logo

opendaylight-setup's Introduction

opendaylight-setup

This directory contains setup scripts for ODL.

Start with a Linux host or VM with git and java installed (at a minimum - ideally mininet, openconnect, pip, pyang etc. too, depending on what features you plan to test).

Installation Instructions:

  1. Clone this repo:

git clone https://github.com/CiscoDevNet/opendaylight-setup.git ODL

  1. Within the ODL directory create an "images" subdirectory:

cd ODL
mkdir images

So you will now have 2 subdirectories:

  • python
  • images
  1. Copy the appropriate OpenDaylight distribution file (.tar.gz) from https://www.opendaylight.org/downloads (or other location) to images:

Example: (Assumes you are downloading the Oxygen-SR2 release.)

wget -P images https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/karaf/0.8.2/karaf-0.8.2.tar.gz

  1. Under the "ODL" directory, edit the DISTRO and VERSION variables in the "parameters" file to reflect the release you just downloaded into the "images" directory.

  2. Unpack ODL using

    ./unpack-odl

  3. If you are not using the dCloud infrastructure (http://dcloud.cisco.com) to experiment with ODL, edit the "nodes" file to reflect the list of nodes and their IP Addresses in your VIRL simulation.

  4. If you are not using dCloud and if you plan to use BGP, edit the parameters file to change the IP address of the BGP speaker.

  5. Optionally edit the parameters file to change the set of features installed at ODL startup.

  6. Optionally edit the logs file to change the set of additional logging activated at ODL startup.

  7. Set up ODL using (this loads key features and logging configs)

./setup-odl

  1. If you are using dCloud from Linux then set up the VPN using:

    sudo ./start-vpn site username password

    • site is one of sjc, rtp, lon, sng or chi
    • username and password can be found in your dCloud session details

    (note that your unix account will need sudo privileges)

  2. If using dCloud from a Mac then use the Cisco AnyConnect VPN client. Set the host to https://dcloud-xxx-anyconnect.cisco.com and substitute sjc, rtp, lon, sng or chi for xxx.

  3. Start ODL using

./start-odl

  1. Configure ODL using

./config-odl interface (e.g. tun0, eth0)

(this will connect ODL to the NETCONF nodes and configure BGP-LS/PCE-P - if the features are selected)

The repository also contains a subdirectory "vagrant" which contains a Vagrantfile and bootstrap.sh script.

If you have Vagrant and VirtualBox or VMWare Workstation/Fusion installed you can do a "vagrant up" from that directory and a VirtualBox VM will be created consisting of:

  • Ubuntu 16.04
  • git
  • zip
  • openconnect (required if using dCloud)
  • java (JRE only)
  • mininet (required if testing OpenFlow)
  • pip
  • pyang
  • this repository
  • OpenDaylight Oxyten SR2

ODL will be unpacked. So you can follow the instructions above from step 6.

Note that the Vagrantfile is currently configured to allocate 2 vCPUs and 8GB of RAM to the VM. If your machine only has 8GB of RAM then you may wish to allocate 4GB of RAM. Likewise if you only have 2 CPU cores you may wish to allocate 1 vCPU. Equally if you want to use a different hypervisor you will need to edit the Vagrantfile.

The repository also contains a subdirectory "xrvr-5" with KVM scripts etc. for setting up a 5 node XRv lab.

Scripts are:

unpack-odl unpacks the .tar.gz file. Creates a new subdirectory for the ODL distro.

setup-odl sets up logging/features for ODL

start-vpn connects to dCloud VPN. Takes 3 parameters:

  • site (sjc/rtp/lon/sng/chi)
  • username
  • password

stop-vpn disconnects from dCloud VPN

start-odl cleans out data from previous runs and starts ODL

stop-odl stops ODL

config-odl sets up NETCONF nodes, BGP etc. - uses scripts from the python subdirectory (plus in the dCloud case REST calls to dCloud APIs)

delete-odl deletes the ODL distribution

restart-odl restarts ODL by calling other scripts

Additional files are:

parameters parameters - encoded as environment vars:

  • DISTRO (name of ODL distribution)
  • VERSION (release of ODL - e.g. Oxygen)
  • BGP_PEER (IP address of BGP peer)
  • BGP_NODE (NETCONF name of BGP peer)
  • BGP_NEXT_HOP (next-hop from BGP peer towards ODL - only required if ODL is on a different subnet from the BGP peer)
  • LOCAL_AS
  • REMOTE_AS
  • ODL_USER
  • ODL_PASS
  • NETCONF_PORT
  • NETCONF_USER
  • NETCONF_PASS
  • FEATURES (list of features to add to ODL's default set)

logs extra logs to activate

nodes list of NETCONF nodes to mount (each line consists of a node name and node IP address)

nodes.16 / parameters.16 16-node setup for RTP dCloud

Python scripts are:

del-node.py unmounts a node

put-node.py mounts a node

is-node-connected.py checks if a node is mounted

put-bgp-rib.py configures the ODL BGP RIB

put-app-rib.py configures the ODL App RIB

put-bgp-peer.py configures a BGP peer in ODL

put-bgp-neighbor.py configures an XR router to peer with ODL

put-pcep-client.py configures an XR router to act as a PCC towards ODL

put-static-route.py configure a static route on an XR router

opendaylight-setup's People

Contributors

eckelcu avatar gilesheron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opendaylight-setup's Issues

Add file extensions

Hi Giles

You might like to add file extensions such that the shell scripts end in ".sh", and the configurations in ".config" and the other files in ".txt".

Regards

Nathan

Using QCOW2 instead of VMDK

Hi Giles

The scripts that you started with use a VMDK, which I know that you obtain by means not available to mere mortals. The only way that someone outside of Cisco can obtain a VMDK is to extract it from the OVA. by untar'ing the OVA.

Trying that VMDK, though, results in this error:

./XRe
qemu-system-x86_64: -hda ./XRe.vmdk: VMDK version 3 must be read only

I seem to have more success with using the distributed QCOW2 image instead of the VMDK.

Regards

Nathan

No user definitions in configs

Hi Giles

There do not seem to be any users defined in the configurations for the XRv devices in the 5 node network. Does that mean you are relying on a default cisco/cisco user?

Thanks

Nathan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.