OpenStack Networking Service (Cloud Controller) The OpenStack Networking service provides a comprehensive and extensible networking service to the cloud. Some features include, but are not limited to, the ability for instances to reach an external network outside of the cloud as well as the ability for each user of the cloud to create multiple internal subnets of their own. Install the OpenStack Networking server: # apt-get install neutron-server # yum install openstack-neutron openstack-neutron-openvswitch # zypper install openstack-neutron Configure the OpenStack Networking service: Edit /etc/neutron/neutron.conf: [DEFAULT] verbose = True rabbit_password = password [keystone_authtoken] admin_tenant_name = service admin_user = neutron admin_password = password [DEFAULT] core_plugin = \ neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2 auth_strategy = keystone fake_rabbit = False rpc_backend=neutron.openstack.common.rpc.impl_qpid qpid_username = guest qpid_password = guest [DEFAULT] verbose = True rabbit_password = password core_plugin = \ neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2 [keystone_authtoken] admin_tenant_name = service admin_user = neuron admin_password = password Edit /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini: [database] connection = mysql://neutron:password@localhost/neutron [ovs] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True local_ip = 10.10.10.10 [securitygroup] firewall_driver = \ neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [database] connection = mysql://neutron:password@localhost/neutron [ovs] enable_tunneling = False [securitygroup] firewall_driver = \ neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver It's more handy to choose tunnel mode since you don't have to configure your physical switches for VLANs. The Fedora kernel module for OpenVSwitch has been compiled without support for tunnels. To use gre tunnels, the module must be recompiled. Edit /etc/neutron/api-paste.ini: [filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = neutron admin_password = password Enable the OVS plugin: # ln -s /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \ /etc/neutron/plugin.ini Set SELinux to permissive mode: # setenforce 0 # sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux Start the services: # service neutron-server restart # service neutron-server restart # chkconfig neutron-server on # systemctl restart openstack-neutron.service # systemctl enable openstack-neutron.service