...
Table of Contents |
---|
Introduction
You will need:
- ONOS clusters installed and running, one for SONA and the others for vRouter. ONOS for vRouter runs on every gateway node.
- An OpenStack service installed and running ("stable/mitaka" version is used here)
Note that this instructions assume you’re familiar with ONOS and OpenStack, and do not provide a guide to how to install or trouble shooting these services. However, If you aren’t, please find a guide from ONOS(http://wiki.onosproject.org) and OpenStack(http://docs.openstack.org), respectively.
...
1. Refer to the guide(SONA Network Configuration Guide) and write a network configuration file, typically with name of network-cfg.json, for SONA. Place the network-cfg.json configuration file under tools/package/config/, build, create package, and then install ONOS. Here's an example cell configuration and commands. Please note that it needs additional steps for building and installing openstackNetworking application due to the app does not fully support Buck build yet.
Code Block | ||
---|---|---|
| ||
# SONA cluster (1-node)
export OC1=onos-01
export ONOS_APPS="drivers,openflow-base" |
Code Block | ||||
---|---|---|---|---|
| ||||
onos$ buck build onos
onos$ | ||||
Code Block | ||||
| ||||
onos$ cell
ONOS_CELL=sona
OCI=10.134.231.29
OC1=10.134.231.29
ONOS_APPS=drivers,openflow-base,openstackswitching,openstackrouting
ONOS_GROUP=sdn
ONOS_TOPO=default
ONOS_USER=sdn
ONOS_WEB_PASS=rocks
ONOS_WEB_USER=onos
onos$ buck build onos
onos$ cp ~/network-cfg.json ~/onos/tools/package/config/
onos$ onos-package
onos$ stc setup |
Make sure to activate "only" the following ONOS applications.
Code Block |
---|
ONOS_APPS=drivers,openflow-base,openstackswitching |
If you want Neutron L3 service, enable openstackrouting, too.
Code Block |
---|
ONOS_APPS=drivers,openflow-base,openstackswitching,openstackrouting |
2. Check all the applications are activated successfully.
onos$ onos-buck-publish-local
onos$ onos-buck publish --to-local-repo //protocols/ovsdb/api:onos-protocols-ovsdb-api
onos$ onos-buck publish --to-local-repo //protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc
onos$ onos-buck publish --to-local-repo //apps/openstacknode:onos-apps-openstacknode
onos$ cd apps/openstacknetworking; mci;
onos$ onos-app $OC1 reinstall! target/onos-app-openstacknetworking-1.10.0-SNAPSHOT.oar |
2. Check all the applications are activated successfully.
Code Block |
---|
onos> apps -a -s
* 9 org.onosproject.ovsdb-base |
Code Block |
onos> apps -s -a * 4 org.onosproject.dhcp 1.7.0.SNAPSHOT DHCP Server App * 6 org.onosproject.optical-model 1.710.0.SNAPSHOT OpticalOVSDB information modelProvider * 1213 org.onosproject.openflowoptical-basemodel 1.710.0.SNAPSHOT Optical OpenFlowinformation Providermodel * 1920 org.onosproject.ovsdb-basedrivers 1.710.0.SNAPSHOT Default OVSDBdevice Providerdrivers * 2239 org.onosproject.drivers.ovsdb 1.710.0.SNAPSHOT OVSDB Device Drivers * 2747 org.onosproject.openstackinterfaceopenflow-base 1.710.0.SNAPSHOT OpenStackOpenFlow Interface AppProvider * 2856 org.onosproject.openstacknode 1.710.0.SNAPSHOT OpenStack Node Bootstrap App * 2957 org.onosproject.scalablegateway openstacknetworking 1.710.0.SNAPSHOT ScalableOpenStack GW App * 30 org.onosproject.openstackrouting 1.7.0.SNAPSHOT OpenStack Routing App * 44 org.onosproject.openstackswitching 1.7.0.SNAPSHOT OpenStack Switching App * 50 org.onosproject.drivers 1.7.0.SNAPSHOT Default device drivers |
OpenStack Setup
How to deploy OpenStack is out of scope of this documentation. Here, it only describes some configurations related to use SONA. All other settings are completely up to your environment.
Controller Node
1. Install networking-onos (Neutron ML2 plugin for ONOS) first.
Code Block | ||
---|---|---|
| ||
$ git clone https://github.com/openstack/networking-onos.git
$ pip install ./networking-onos |
2. Specify ONOS access information. You may want to copy the config file to /etc/neutron/plugins/ml2/ where the other Neutron configuration files are.
Code Block | ||||
---|---|---|---|---|
| ||||
# Configuration options for ONOS ML2 Mechanism driver
[onos]
# (StrOpt) ONOS ReST interface URL. This is a mandatory field.
url_path = http://10.134.231.29:8181/onos/openstacknetworking
# (StrOpt) Username for authentication. This is a mandatory field.
username = onos
# (StrOpt) Password for authentication. This is a mandatory field.
password = rocks |
Note |
---|
URL path is changed from "onos/openstackswitching" to "onos/openstacknetworking" since 1.8.0. |
3. Next step is to install and run OpenStack services. For DevStack users, use this sample DevStack local.conf to build OpenStack controller node. Make sure your DevStack branch is consistent with the OpenStack branches, "stable/mitaka" in this example.
Networking App |
OpenStack Setup
How to deploy OpenStack is out of scope of this documentation. Here, it only describes some configurations related to use SONA. All other settings are completely up to your environment.
Controller Node
1. Install networking-onos (Neutron ML2 plugin for ONOS) first.
Code Block | ||
---|---|---|
| ||
$ git clone https://github.com/openstack/networking-onos.git
$ pip install ./networking-onos |
2. Specify ONOS access information. You may want to copy the config file to /etc/neutron/plugins/ml2/ where the other Neutron configuration files are.
Code Block | ||||
---|---|---|---|---|
| ||||
# Configuration options for ONOS ML2 Mechanism driver
[onos]
# (StrOpt) ONOS ReST interface URL. This is a mandatory field.
url_path = http://10.134.231.29:8181/onos/openstacknetworking
# (StrOpt) Username for authentication. This is a mandatory field.
username = onos
# (StrOpt) Password for authentication. This is a mandatory field.
password = rocks |
Note |
---|
URL path is changed from "onos/openstackswitching" to "onos/openstacknetworking" since 1.8.0. |
3. Next step is to install and run OpenStack services. For DevStack users, use this sample DevStack local.conf to build OpenStack controller node. Make sure your DevStack branch is consistent with the OpenStack branches, "stable/mitaka" in this example.
Code Block | ||
---|---|---|
| ||
Code Block | ||
| ||
[[local|localrc]] HOST_IP=10.134.231.28 SERVICE_HOST=10.134.231.28 RABBIT_HOST=10.134.231.28 DATABASE_HOST=10.134.231.28 Q_HOST=10.134.231.28 ADMIN_PASSWORD=nova DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=$ADMIN_PASSWORD DATABASE_TYPE=mysql # Log SCREEN_LOGDIR=/opt/stack/logs/screen # Images IMAGE_URLS="http://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64.tar.gz,http://www.planet-lab.org/cord/trusty-server-multi-nic.img" FORCE_CONFIG_DRIVE=True # Networks Q_ML2_TENANT_NETWORK_TYPE=vxlan Q_ML2_PLUGIN_MECHANISM_DRIVERS=onos_ml2 Q_PLUGIN_EXTRA_CONF_PATH=/opt/stack/networking-onos/etc-onos/etc/neutron/plugins/ml2 Q_PLUGIN_EXTRA_CONF_FILES=(ml2_conf_onos.ini) ML2_L3_PLUGIN=networking_onos.plugins.l3.driver.ONOSL3Pluginonos_router NEUTRON_CREATE_INITIAL_NETWORKS=False # Services enable_service q-svc disable_service n-net disable_service n-cpu disable_service tempest disable_service c-sch disable_service c-api disable_service c-vol # Branches GLANCE_BRANCH=stable/mitaka HORIZON_BRANCH=stable/mitaka KEYSTONE_BRANCH=stable/mitaka NEUTRON_BRANCH=stable/mitaka NOVA_BRANCH=stable/mitaka |
...
Code Block | ||
---|---|---|
| ||
# Configuration options for ONOS ML2 Mechanism driver [onos] # (StrOpt) ONOS ReST interface URL. This is a mandatory field. url_path = http://[proxy-server IP]:8181/onos/openstackswitching # (StrOpt) Username for authentication. This is a mandatory field. username = onos # (StrOpt) Password for authentication. This is a mandatory field. password = rocks |
4. Stop one of the ONOS instance and check everything works fine.
Code Block |
---|
$ onos-service $OC1 stop |
Scale Out Nodes
Scale out compute or gateway node is easy. Just add the new node to the SONA network config and update the config to the ONOS-SONA.
CLI Commands
...
4. Stop one of the ONOS instance and check everything works fine.
Code Block |
---|
$ onos-service $OC1 stop |
...