Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- On a newly create ubuntu trusty or xenial:
- sudo apt update
- sudo apt-get -y install git
- # To enable password less sudo
- sudo visudo
- #Add to the end of the file
- ubuntu ALL=(ALL) NOPASSWD:ALL
- Install NSH enabled OVS
- https://github.com/yyang13/ovs_nsh_patches
- Install java
- sudo apt-get install software-properties-common -y
- sudo add-apt-repository ppa:webupd8team/java
- sudo apt-get update
- sudo apt-get install oracle-java8-installer oracle-java8-set-default -y
- Install ONOS
- Get any latest release of ONOS : https://wiki.onosproject.org/display/ONOS/Downloads
- Running ONOS :
- Extract the tar file and goto cd onos-*/apache-karaf-xxx/bin; ./karaf clean
- or to run ONOS as a service https://wiki.onosproject.org/display/ONOS/Running+ONOS+as+a+service
- Once the onos is started activate the below APPS:
- app activate org.onosproject.openflow
- app activate org.onosproject.openflow-base
- app activate org.onosproject.ovsdb
- app activate org.onosproject.drivers.ovsdb
- app activate org.onosproject.ovsdbhostprovider
- app activate org.onosproject.vtn
- externalportname-set -n onos-port
- Clone any stable devstack
- cd; git clone https://git.openstack.org/openstack-dev/devstack -b stable/pike
- cd devstack
- Use the below local.conf
- [[local|localrc]]
- DEST=/opt/stack
- # Logging
- LOGFILE=$DEST/logs/stack.sh.log
- VERBOSE=True
- LOG_COLOR=False
- SCREEN_LOGDIR=$DEST/logs/screen
- # Github's Branch
- GLANCE_BRANCH=stable/pike
- HORIZON_BRANCH=stable/pike
- KEYSTONE_BRANCH=stable/pike
- NOVA_BRANCH=stable/pike
- NEUTRON_BRANCH=stable/pike
- HEAT_BRANCH=stable/pike
- HOST_IP=<local ip address>
- VNCSERVER_LISTEN=<local ip address>
- VNCSERVER_PROXYCLIENT_ADDRESS=<local ip address>
- MULTI_HOST=1
- #CONTROLLER IP
- SERVICE_HOST=<local ip address>
- MYSQL_HOST=$SERVICE_HOST
- RABBIT_HOST=$SERVICE_HOST
- Q_HOST=$SERVICE_HOST
- MATCHMAKER_REDIS_HOST=$SERVICE_HOST
- DATABASE_TYPE=mysql
- MYSQL_PASSWORD=openstack
- DATABASE_PASSWORD=openstack
- RABBIT_PASSWORD=openstack
- ADMIN_PASSWORD=openstack
- SERVICE_PASSWORD=openstack
- HORIZON_PASSWORD=openstack
- SERVICE_TOKEN=openstack
- DATABASE_TYPE=mysql
- enable_plugin networking-onos https://github.com/openstack/networking-onos.git stable/pike
- enable_plugin networking-sfc https://github.com/openstack/networking-sfc.git stable/pike
- DEST=/opt/stack
- SCREEN_LOGDIR=$DEST/logs/
- LOGFILE=${SCREEN_LOGDIR}/xstack.sh.log
- LOGDAYS=1
- DATABASE_QUERY_LOGGING=False
- NOVA_VNC_ENABLED=True
- NOVNCPROXY_URL="http://${SERVICE_HOST}:6080/vnc_auto.html"
- [[post-config|/$Q_PLUGIN_CONF_FILE]]
- [ml2]
- mechanism_drivers = onos_ml2
- [onos]
- url_path = http://onos_ip:8181/onos/vtn
- username = <onos user name>
- password = <onos password>
- do ./clean.sh ; ./stack.sh
- Once the openstack is UP,
- check whether ONOS and openstack are integrated with the below steps
- 1. run the command in the compute/controller : sudo ovs-vsctl show
- it should show the manager of the switch as onos IP, a br-int bridge with controller as onos ip
- 2. Create a network in openstack and query it from ONOS curl get http://onos_ip:8181/onos/vtn/networks
- If any of the above steps are not satisfied then there is some problem with networking onos integration
- debug in the following way:
- In /etc/neutron/neutron.conf check for below :
- service_plugins = onos_router,flow_classifier,sfc
- In /etc/neutron/plugins/ml2/ml2_conf.ini
- mechanism_drivers = onos_ml2
- [onos]
- password = karaf
- username = karaf
- url_path = http://onos_ip:8181/onos/vtn
- Now restart neutron server, create a network in openstack and check http://onos_ip:8181/onos/vtn/networks
- - To integrate with networking sfc
- go to the networking sfc cloned folder or clone with git checkout https://github.com/openstack/networking-sfc.git stable/pike
- In networking_sfc/services/flowclassifier/common/config.py and networking_sfc/services/sfc/common/config.py make the below change
- +default=['dummy',],
- +default=['dummy', 'onos'],
- In setup.cfg
- networking_sfc.sfc.drivers =
- dummy = networking_sfc.services.sfc.drivers.dummy.dummy:DummyDriver
- - ovs = networking_sfc.services.sfc.drivers.ovs.driver:OVSSfcDriver
- + onos = networking_onos.services.sfc.driver:OnosSfcDriver
- networking_sfc.flowclassifier.drivers =
- dummy = networking_sfc.services.flowclassifier.drivers.dummy.dummy:DummyDriver
- - ovs = ****
- + onos = networking_onos.services.flowclassifier.driver:OnosFlowClassifierDriver
- Run sudo python setup.py install
- Ensure the below config changes
- In /etc/neutron/plugins/ml2/ml2_conf.ini and
- [agent]
- extensions = sfc
- In /etc/neutron/neutron.conf check for below :
- [sfc]
- drivers = onos
- [flowclassifier]
- drivers = onos
- Restart neutron server
- Create required VM's
- create port pair, port pair group, flowl classifier, port chain.
Add Comment
Please, Sign In to add comment