OVS GRE setup on Hyper-V without OpenStack
In this post we will explain how to configure manually a Open vSwitch GRE tunnel between VMs running on Hyper-V and KVM hosts.
KVM OVS configuration
In this example, KVM1 provides a GRE tunnel with local endpoint 14.14.14.1:
- gre-1 connected to Hyper-V (14.14.14.2) through br-eth3
Please note the MTU value on vm1 is set to 1472.
Hyper-V OVS configuration
Let us assume that you have a Hyper-V Virtual Switch of type external bound to the interface port1 called vSwitch.
The following commands will: create an IP-able device called br-port1, add the physical NIC to the bridge called br-port1, enable the device named br-port1, set the IP 14.14.14.2 to br-port1, add a bridge br-int in which we shall add the VMs later on, and will create another bridge with the tunneling information on the port gre-1.
As you can see, all the commands are very familiar if you are used to OVS on Linux.
As introduced before, the main area where the Hyper-V implementation differs from its Linux counterpart is in how virtual machines are attached to a given OVS port. This is easily accomplished by using the Set-VMNetworkAdapterOVSPort PowerShell cmdlet provided with the installer (please refer to part1 for details on installing OVS).
Let us say that we have a Hyper-V virtual machine called “instance-00000003” and that we want to connect it to the Hyper-V OVS switch. All we have to do for each VM network adapter is to connect it to the Hyper-V Virtual Switch named vSwitch as you would normally do, assign it to a given OVS port and create the corresponding ports in OVS:
Here is how the resulting OVS configuration looks like on Hyper-V:
Further control can be accomplished by applying flow rules.
OVS based networking is now fully functional between KVM and Hyper-V hosted virtual machines!
P.S.: Don’t forget to check out part 1 (OpenStack) and part 2 (VXLAN) of this series if you missed them!