Ubuntu 20.04
Sponsored Link

OpenStack Wallaby : Configure Neutron OVN (Network Node)
2021/04/20
 
Configure OpenStack Network Service (Neutron).
This example is based on the environment like follows.
Configure Neutron services with Open Virtual Network (OVN).
------------+---------------------------+---------------------------+------------
            |                           |                           |
        eth0|10.0.0.30              eth0|10.0.0.50              eth0|10.0.0.51
+-----------+-----------+   +-----------+-----------+   +-----------+-----------+
|    [ Control Node ]   |   |    [ Network Node ]   |   |    [ Compute Node ]   |
|                       |   |                       |   |                       |
|  MariaDB    RabbitMQ  |   |      Open vSwitch     |   |        Libvirt        |
|  Memcached  httpd     |   |     Neutron Server    |   |     Nova Compute      |
|  Keystone   Glance    |   |       OVN-Northd      |   |      Open vSwitch     |
|  Nova API             |   |                       |   |   OVN Metadata Agent  |
|                       |   |                       |   |     OVN-Controller    |
+-----------------------+   +-----------------------+   +-----------------------+

[1]
Create a user or endpoints and Database for Neutron on Control Node, refer to here.
On the example of the link, Neutron Server (API) is installed on Control Node,
but on this example, Neutron Server is installed on Network Node,
so replace the Endpoints of Neutron to [10.0.0.50].
[2] Configure OpenStack Wallaby repository first like here of [3] and Install required packages for Network Node.
root@network:~#
apt -y install neutron-server neutron-plugin-ml2 python3-neutronclient ovn-central openvswitch-switch
[3] Configure Neutron Server.
root@network:~#
mv /etc/neutron/neutron.conf /etc/neutron/neutron.conf.org

root@network:~#
vi /etc/neutron/neutron.conf
# create new

[DEFAULT]
core_plugin = ml2
service_plugins = ovn-router
auth_strategy = keystone
state_path = /var/lib/neutron
allow_overlapping_ips = True
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
# RabbitMQ connection info
transport_url = rabbit://openstack:password@10.0.0.30

# Keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://10.0.0.30:5000
auth_url = http://10.0.0.30:5000
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = servicepassword

[database]
connection = mysql+pymysql://neutron:password@10.0.0.30/neutron_ml2

[nova]
auth_url = http://10.0.0.30:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = servicepassword

[oslo_concurrency]
lock_path = $state_path/tmp

root@network:~#
chmod 640 /etc/neutron/neutron.conf

root@network:~#
chgrp neutron /etc/neutron/neutron.conf
root@network:~#
mv /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugins/ml2/ml2_conf.ini.org

root@network:~#
vi /etc/neutron/plugins/ml2/ml2_conf.ini
# create new

[DEFAULT]
debug = false

[ml2]
type_drivers = flat,geneve
tenant_network_types = geneve
mechanism_drivers = ovn
extension_drivers = port_security
overlay_ip_version = 4

[ml2_type_geneve]
vni_ranges = 1:65536
max_header_size = 38

[ml2_type_flat]
flat_networks = *

[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

[ovn]
# IP address of this Network node
ovn_nb_connection = tcp:10.0.0.50:6641
ovn_sb_connection = tcp:10.0.0.50:6642
ovn_l3_scheduler = leastloaded
ovn_metadata_enabled = True

root@network:~#
chmod 640 /etc/neutron/plugins/ml2/ml2_conf.ini

root@network:~#
chgrp neutron /etc/neutron/plugins/ml2/ml2_conf.ini
root@network:~#
vi /etc/default/openvswitch-switch
# line 8 : uncomment and add

OVS_CTL_OPTS=
"--ovsdb-server-options='--remote=ptcp:6640:127.0.0.1'"
[4] Start Neutron services.
root@network:~#
systemctl restart openvswitch-switch

root@network:~#
ovs-vsctl add-br br-int
root@network:~#
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

root@network:~#
su -s /bin/bash neutron -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head"
root@network:~#
systemctl restart ovn-central ovn-northd

root@network:~#
ovn-nbctl set-connection ptcp:6641:10.0.0.50 -- set connection . inactivity_probe=60000

root@network:~#
ovn-sbctl set-connection ptcp:6642:10.0.0.50 -- set connection . inactivity_probe=60000
root@network:~#
systemctl restart neutron-server
Matched Content