Hi folks, I recently posted an article on one of the official Red Hat blogs about the new Neutron integration between RHV and RHOSP. I have to say it’s very cool and might change the way you look at networking capabilities in RHV, at least if you’re also using RHOSP in the same data center.
As a side note, I’ve mentioned my friend and colleague, Tony James in recent posts and he makes another appearance this week. He helped pull together the configuration steps as well as the demo that we recorded. Big kudos to to “Big T”.
Back to the actual integration. If you don’t want to look at the other article, the condensed version of “why should you might care” is as follows:
- Run applications across RHV & RHOSP – front end of the app on RHOSP and the back end on RHV using the Neutron integration to bridge the network gap.
- Add SDN capabilities to RHV via the Neutron integration, even if the app only exists in RHV.
- Manage the SDN network topologies for both RHV and RHOSP from a single management space (web or programmatic).
Those are the 3 big use cases, in a nutshell. If you want to hear about them in more detail, read the original article, it’s not a long read, but it might be worth your time.
The overall workflow for the configuration, as with most RHV-related configurations, is straightforward:
- Install the OpenStack Neutron packages on the RHV hypervisor hosts
- Configure hosts (hypervisor nodes) – very quick text edit
- Define OpenStack Neutron as an “External Network Provider” in RHV Manager
- Create one or more hosts in RHV that utilize the Neutron integration
- Import one or more networks from RHOSP into RHV
- Create one or more virtual machines that use the Neutron network(s)
More in Depth
Just to be clear, RHV and RHOSP need to both be up and running. Nothing special needs to be done on the RHOSP side. The only thing that needs to be done in OpenStack is to have 1 or more networks created in Neutron that will be utilized by RHV.
On the RHV side of things, there are multiple steps, but they’re all easy:
- In addition to the standard software repositories, you will need to subscribe the RHV hosts to the following additional repositories:
# subscription-manager repos --enable=rhel-7-server-openstack-7.0-rpms --enable=rhel-7-server-extras-rpms
- From those repositories, the following packages need to be installed:
# yum -y install openstack-neutron openstack-neutron-openvswitch openstack-selinux openstack-utils openvswitch vdsm-hook-openstacknet
- Add the following lines to the following 2 files for the host agent configuration:
/etc/neutron/neutron.conf rabbit_host=[ip_address_of_rabbit_host] rabbit_port=5672 rabbit_userid=guest rabbit_password=guest /etc/neutron/plugins/ml2/openvswitch_agent.ini [ovs] Integration_bridge = br-int Tunnel_bridge = br-tun Local_ip = [ip_of_local_host] [agent] Tunnel_types = vxlan Define the Neutron provider in RHV-M
- After logging into RHV-M, in the left pane select “External Providers”
- Select “Add” to add a provider
- In the window that is displayed:
– Give the provider a name and optionally a description
– Select “OpenStack Networking” for the provider type
– Keep “Open vSwitch” selected for the networking plugin
– Provide the OpenStack Neutron public API endpoint for the provider URL
– Check the “Requires Authentication” box and provide the credentials for the “neutron” admin account in the “services” tenant along with the public API endpoint for OpenStack keystone
- Click the “Test” button to verify connectivity
- Select the “Agent Configuration” tab from the left side of the dialog box
- Provide a network label and bridge name for “Interface Mappings”
- Ensure “RabbitMQ” is selected for broker type
- Enter the hostname or IP address of the RabbitMQ host
- Enter the RabbitMQ port
- Unless authentication has been configured for RabbitMQ the username “guest” and password “guest” can be used.
- Click “Ok
Import a network from the Neutron provider:
- Select the newly added Neutron provider in the left pane
- Select the “Networks” sub-tab and click the “Import button”
Add a host with the external network provider:
- Select the “Hosts” main tab and click the “New” button
- Fill in the “Name” and relevant host/IP info along with SSH connection info for the the host
- Click “Ok” to begin host installation.
After the host has been added through RHV-M the following IPtables configuration should be performed in order to ensure that VMs in RHV can pull IP addresses from the DHCP servers in Neutron/OVS:
- Edit /etc/sysconfig/iptables and comment out the following line:
-A INPUT -j REJECT —reject-with icmp-host-prohibited
- Reload iptables:
# systemctl reload iptables.service
As usual, I’ve created a demo walk thru of the configuration. It shows almost everything described above, but it also shows a VM with an interface on the Neutron network. Additionally, a Floating IP is created on the RHOSP side that is associated with the IP address on the RHV side. Thanks again to Tony James for his help in creating the demo.
Best viewed in full screen:
What If You Want SDN but not OpenStack?
Great question. Help is on the way. The solution above works really well for those that already have OpenStack in their environment. But if you don’t need OpenStack, then it seems silly to stand it up just to run Neutron in RHV. I fully agree. With that said, full support for running Open vSwitch within RHV is coming. It’s in the roadmap for the 4.x release. No, I don’t have a date that I can post, but I can tell you it’s in the works.
What If You Want SDN but not OpenStack and not Open vSwitch?
That’s also a great question. Help is here, just not in this article. There is a separate API (External Partner Network API) available in RHV 4 that allows customers and partners to integrate more easily with RHV. For example, you want Midokura, Nuage, Big Switch, or any of the other awesome partners out there, there is no hard coding required.. “Use the force, Luke!!” I mean, use the API, man!
I hope this helps,