Prerequisites
Before you configure OpenStack Networking, you must enable certain kernel networking functions.
Edit
/etc/sysctl.confto contain the following:net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
Implement the changes:
# sysctl -p
To install the Networking components
# apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms \ neutron-l3-agent neutron-dhcp-agent
To configure the Networking common components
The Networking common component configuration includes the authentication mechanism, message broker, and plug-in.
Respond to prompts for database management, Identity service credentials, service endpoint registration, and message broker credentials.
Configure Networking to use the Modular Layer 2 (ML2) plug-in and associated services:
Edit the
/etc/neutron/neutron.conffile and add the following keys to the[DEFAULT]section:[DEFAULT] ... core_plugin = ml2 service_plugins = router allow_overlapping_ips = True
![[Note]](../common/images/admon/note.png)
Note We recommend adding
verbose = Trueto the[DEFAULT]section in/etc/neutron/neutron.confto assist with troubleshooting.
Comment out any lines in the
[service_providers]section.
To configure the Layer-3 (L3) agent
The Layer-3 (L3) agent provides routing services for instance virtual networks.
Edit the
/etc/neutron/l3_agent.inifile and add the following keys to the[DEFAULT]section:[DEFAULT] ... interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver use_namespaces = True
![[Note]](../common/images/admon/note.png)
Note We recommend adding
verbose = Trueto the[DEFAULT]section in/etc/neutron/l3_agent.inito assist with troubleshooting.
To configure the DHCP agent
The DHCP agent provides DHCP services for instance virtual networks.
Edit the
/etc/neutron/dhcp_agent.inifile and add the following keys to the[DEFAULT]section:[DEFAULT] ... interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq use_namespaces = True
![[Note]](../common/images/admon/note.png)
Note We recommend adding
verbose = Trueto the[DEFAULT]section in/etc/neutron/dhcp_agent.inito assist with troubleshooting.
To configure the metadata agent
The metadata agent provides configuration information such as credentials for remote access to instances.
Edit the
/etc/neutron/metadata_agent.inifile and add the following keys to the[DEFAULT]section:Replace
NEUTRON_PASSwith the password you chose for theneutronuser in the Identity service. ReplaceMETADATA_SECRETwith a suitable secret for the metadata proxy.[DEFAULT] ... auth_url = http://
controller:5000/v2.0 auth_region = regionOne admin_tenant_name = service admin_user = neutron admin_password =NEUTRON_PASSnova_metadata_ip =controllermetadata_proxy_shared_secret =METADATA_SECRET![[Note]](../common/images/admon/note.png)
Note We recommend adding
verbose = Trueto the[DEFAULT]section in/etc/neutron/metadata_agent.inito assist with troubleshooting.![[Note]](../common/images/admon/note.png)
Note Perform the next two steps on the controller node.
On the controller node, edit the
/etc/nova/nova.conffile and add the following keys to the[DEFAULT]section:Replace
METADATA_SECRETwith the secret you chose for the metadata proxy.[DEFAULT] ... service_neutron_metadata_proxy = true neutron_metadata_proxy_shared_secret =
METADATA_SECRETOn the controller node, restart the Compute API service:
# service nova-api restart
To configure the Modular Layer 2 (ML2) plug-in
The ML2 plug-in uses the Open vSwitch (OVS) mechanism (agent) to build virtual networking framework for instances.
Edit the
/etc/neutron/plugins/ml2/ml2_conf.inifile.Add the following keys to the
[ml2]section:[ml2] ... type_drivers = gre tenant_network_types = gre mechanism_drivers = openvswitch
Add the following keys to the
[ml2_type_gre]section:[ml2_type_gre] ... tunnel_id_ranges = 1:1000
Add the
[ovs]section and the following keys to it:Replace
INSTANCE_TUNNELS_INTERFACE_IP_ADDRESSwith the IP address of the instance tunnels network interface on your network node.[ovs] ... local_ip =
INSTANCE_TUNNELS_INTERFACE_IP_ADDRESStunnel_type = gre enable_tunneling = TrueAdd the
[securitygroup]section and the following keys to it:[securitygroup] ... firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver enable_security_group = True
To configure the Open vSwitch (OVS) service
The OVS service provides the underlying virtual networking framework
for instances. The integration bridge br-int handles
internal instance network traffic within OVS. The external bridge
br-ext handles external instance network traffic
within OVS. The external bridge requires a port on the physical external
network interface to provide instances with external network access.
In essence, this port bridges the virtual and physical external
networks in your environment.
Restart the OVS service:
# service openvswitch restart
Add the integration bridge:
# ovs-vsctl add-br br-int
Add the external bridge:
# ovs-vsctl add-br br-ex
Add a port to the external bridge that connects to the physical external network interface:
Replace
INTERFACE_NAMEwith the actual interface name. For example, eth2 or ens256.# ovs-vsctl add-port br-ex
INTERFACE_NAME![[Note]](../common/images/admon/note.png)
Note Depending on your network interface driver, you may need to disable Generic Receive Offload (GRO) to achieve suitable throughput between your instances and the external network.
To temporarily disable GRO on the external network interface while testing your environment:
# ethtool -K
INTERFACE_NAMEgro off

