The networking-odl
repository includes integration with DevStack that
enables creation of a simple OpenDaylight (ODL) development and test
environment. This document discusses what is required for manual installation
and integration into a production OpenStack deployment tool of conventional
architectures that include the following types of nodes:
http://docs.opendaylight.org provides manual and general documentation for ODL
Review the following documentation regardless of install scenario:
Choose and review one of the following installation scenarios:
# sudo pip install networking-odl
Note
pip need to be installed before running above command.
All related neutron services need to be restarted after configuration change.
Configure Openstack neutron server. The neutron server implements ODL as an
ML2 driver. Edit the /etc/neutron/neutron.conf
file:
Enable the ML2 core plug-in.
[DEFAULT]
...
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
(Optional) Enable ODL L3 router, if QoS feature is desired, then qos should be appended to service_plugins
[DEFAULT]
...
service_plugins = odl-router
Configure the ML2 plug-in. Edit the
/etc/neutron/plugins/ml2/ml2_conf.ini
file:
Configure the ODL mechanism driver, network type drivers, self-service (tenant) network types, and enable extension drivers(optional).
[ml2]
...
mechanism_drivers = opendaylight_v2
type_drivers = local,flat,vlan,vxlan
tenant_network_types = vxlan
extension_drivers = port_security, qos
Note
The enabling of extension_driver qos is optional, it should be enabled if service_plugins for qos is also enabled.
Configure the vxlan range.
[ml2_type_vxlan]
...
vni_ranges = 1:1000
Optionally, enable support for VLAN provider and self-service networks on one or more physical networks. If you specify only the physical network, only administrative (privileged) users can manage VLAN networks. Additionally specifying a VLAN ID range for a physical network enables regular (non-privileged) users to manage VLAN networks. The Networking service allocates the VLAN ID for each self-service network using the VLAN ID range for the physical network.
[ml2_type_vlan]
...
network_vlan_ranges = PHYSICAL_NETWORK:MIN_VLAN_ID:MAX_VLAN_ID
Replace PHYSICAL_NETWORK
with the physical network name and
optionally define the minimum and maximum VLAN IDs. Use a comma
to separate each physical network.
For example, to enable support for administrative VLAN networks
on the physnet1
network and self-service VLAN networks on
the physnet2
network using VLAN IDs 1001 to 2000:
network_vlan_ranges = physnet1,physnet2:1001:2000
Enable security groups.
[securitygroup]
...
enable_security_group = true
Configure ML2 ODL
[ml2_odl]
...
username = <ODL_USERNAME>
password = <ODL_PASSWORD>
url = http://<ODL_IP_ADDRESS>:<ODL_PORT>/controller/nb/v2/neutron
port_binding_controller = pseudo-agentdb-binding
Optionally, To enable ODL DHCP service in an OpenDaylight enabled cloud,
set enable_dhcp_service=True under the [ml2_odl] section. It will load
the openstack-odl-v2-dhcp-driver which will create special DHCP ports in
neutron for use by the OpenDaylight Controller’s DHCP Service. Please make
sure to set controller-dhcp-enabled = True within the OpenDaylight
Controller configuration file netvirt-dhcpservice-config.xml
along
with the above configuration.
OpenDaylight Spec Documentation Link:.
[ml2_odl]
...
enable_dhcp_service = True
Each compute/network node runs the OVS services. If compute/network nodes are already configured to run with Neutron ML2 OVS driver, more steps are necessary. OVSDB with OpenStack can be referred to.
Install the openvswitch
packages.
Start the OVS service.
Using the systemd unit:
# systemctl start openvswitch
Using the ovs-ctl
script:
# /usr/share/openvswitch/scripts/ovs-ctl start
Configure OVS to use ODL as a manager.
# ovs-vsctl set-manager tcp:${ODL_IP_ADDRESS}:6640
Replace ODL_IP_ADDRESS
with the IP address of ODL controller node
Set host OVS configurations if port_binding_controller is pseudo-agent
# sudo neutron-odl-ovs-hostconfig
Verify the OVS service.
# ovs-vsctl show
Note
After setting config files, you have to restart the neutron server if you are using screen then it can be directly started from q-svc window or you can use service neutron-server restart, latter may or may not work depending on OS you are using.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.