Juniper Networks DMI Plug-In for OpenStack Quantum
Plug-In Overview
The Juniper Networks plug-in for OpenStack Quantum enables you to use the DMI/NETCONF interfaces on Juniper Networks switches to orchestrate virtual networks. The plug-in uses Open vSwitch (OVS) as the virtual switch.
OpenStack release supported: Folsom
To orchestrate virtual networks, the plug-in requires you to specify the Juniper Networks switch port to node (compute and Quantum server) NIC mapping information. See Configuring Nodes for information about specifying this mapping information.
The plug-in supports the following Juniper Networks switching platforms running Junos OS Release 11.4R1.6 or later. For more information about these platforms, see https://www.juniper.net/us/en/products-services/switching/.
- All EX Series switches
- QFX3500 and QFX3600 standalone switches
- QFX3000-G QFabric system
- QFX3000-M QFabric system
Plug-In Directory Structure
The directory structure for the plug-in is described below:
Directory | Description |
---|---|
quantum/plugins/juniper/dmi/ | Main plug-in directory |
quantum/plugins/juniper/dmi/bin | Contains CLI commands for the plug-in |
quantum/plugins/juniper/dmi/cli | Contains the code for binaries |
quantum/plugins/juniper/dmi/test | Contains scripts for testing the plug-in installation |
Pre-requisites for Using the Plug-In
Before you use the plug-in:
- Install and configure OpenStack Quantum with the Open vSwitch (OVS) plug-in.
- Install the following on the Quantum server:
- ncclient Python library for NETCONF clients (see https://github.com/leopoul/ncclient/)
- novaclient Python client for the OpenStack Nova API
- Configure the same login name and password on all the
Juniper Networks switches you want to use with the plug-in.
This is a requirement for the plug-in settings in the [DEVICE] section of the ovs_quantum_plugin.ini file. For more information, see Configuring the Plug-In on the Quantum Server.
Installing the Plug-In
To install the plug-in:
- Download the tar.gz file for the plug-in to a directory.
- Extract the tar.gz file.
For example:
tar zxvf quantum-juniper-dmi-plugin-version.tar.gzA quantum-juniper-dmi-plugin-version directory is created in your current working directory.
- Copy the contents of the quantum-juniper-dmi-plugin-version directory to the Quantum plugins directory.
For example:
cp -rp quantum-juniper-dmi-plugin-version/quantum/plugins/juniper quantum-plugins-directoryThe Quantum plugins directory is usually located at /usr/lib/python2.7/dist-packages/quantum/plugins in a package-based Quantum installation or at /opt/stack/quantum/quantum/plugins in a DevStack-based Quantum installation.
Configuring the Plug-In on the Quantum Server
To configure the plug-in on the Quantum Server:
- Make a backup copy of the /etc/quantum/quantum.conf file.
- Edit the quantum.conf file to specify the Juniper Networks
OpenStack Quantum plug-in in the core_plugin section.
core_plugin = quantum.plugins.juniper.dmi.dmi_plugin.JuniperDmi
- Make a backup copy of the /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini file.
- Specify the following settings in the ovs_quantum_plugin.ini
file.
- In the [DATABASE] section, replace <mysql-host> with the actual MySQL hostname for your setup.
- In the [OS] section, replace <keystone_host> with the actual hostname for your setup.
- In this example, physnet1 is used as the bridge_mappings alias name in the [OVS] section. You can specify any other alias name instead. However, ensure that the same alias name is specified for other settings in the ovs_quantum_plugin.ini file and for specifying port mapping information using the jnpr_switchport_mapping command.
[DATABASE] sql_connection = mysql://root:password@<mysql_host>/ovs_quantum?charset=utf8 reconnect_interval = 2 [OVS] tenant_network_type = vlan network_vlan_ranges = physnet1:1000:2999 bridge_mappings = physnet1:br-eth1 [AGENT] polling_interval = 2 root_helper = sudo /usr/local/bin/quantum-rootwrap /etc/quantum/rootwrap.conf ## Juniper Networks plug-in specific configuration # OpenStack Tenant configuration [OS] USERNAME=quantum PASSWORD=password TENANT=service AUTH_URL=http://<keystone-host>:5000/v2.0 # Juniper Networks switch configuration # The same login name and password must be configured on all the switches you want to use with the plug-in. [DEVICE] LOGIN=root PASSWORD=password PORT=22 TIMEOUT=600
Configuring Nodes
To configure the nodes:
- Ensure that the Open vSwitch (OVS) agent is configured on every node.
- Log in into the Quantum server and issue the jnpr_switchport_mapping command to specify the Juniper Networks switch port to node (compute
and Quantum server) NIC mapping information.
The port mapping information can be specified one at a time or read from a comma separated value (CSV) file.
- To specify port mapping information one at a time, issue
the following command:
quantum/plugins/juniper/dmi/bin/jnpr_switchport_mapping add -H host-name -n network-name -s switch-name -p switch-port-name
For example:
quantum/plugins/juniper/dmi/bin/jnpr_switchport_mapping add -H compute-node47 -n physnet1 -s qfx3500-a -p ge-0/0/34
Where:
-H
Specifies the DNS name of the host that is connected to the switch
-n
Specifies the name of the physical network on the host
-s
Specifies the DNS name of the switch to which the physical network on the host is connected
-p
Specifies the switch port name to which the physical network on the host is connected
- To read port mapping information from a comma separated
value (CSV) file:
- Enter the port mapping information using the following
syntax in a file:
host-name,node-name,switch-name,switch-port-name
For example:
compute-node47,physnet1,qfx3500-a,ge-0/0/34
compute-node48,physnet1,qfx3500-a,ge-0/0/30
- Issue the following command to read the port mapping information
in the CSV file.
quantum/plugins/juniper/dmi/bin/jnpr_switchport_mapping update -f map-file-name.csv
Where map-file-name.csv is the path to the CSV file in which the port mapping information exists.
- Enter the port mapping information using the following
syntax in a file:
For more information about the jnpr_switchport_mapping command, issue the jnpr_switchport_mapping -h command.
- To specify port mapping information one at a time, issue
the following command:
- After you complete the above steps, restart the Quantum server and the Quantum agent for Open vSwitch.
Configuring Juniper Networks Switches for the Plug-In
To use Juniper Networks switches with the plug-in, you must configure the NETCONF management protocol on the switches.
To configure the NETCONF management protocol on a switch:
- Configure SSH and NETCONF on the switch.[edit]user@switch# set system services sshuser@switch# set system services netconf ssh
- Review your configuration and issue the commit command.[edit]user@switch# commitcommit complete
Additional Information
For more information about the plug-in, write to quantum-plugin-support@juniper.net.