Single network with DHCP server
This document expects you to have set up OpenVNet according to the installation guide and created the simple single network afterwards. We will be continuing from there so complete those guides first.
All we are going to do in this guide is add a DHCP server. This will give us the following virtual network topology.
Create a simulated interface
OpenVNet will simulate DHCP entirely using flows in Open vSwitch. However, the machines attached to OpenVNet's virtual networks will still expect a DHCP server to exist with a certain IP address. Therefore we need to tell OpenVNet to create a simulated interface that will give off the illusion of a real DHCP server.
vnctl interfaces add \ --uuid if-dhcp \ --mode simulated \ --owner-datapath-uuid dp-test1 \ --mac-address 02:00:00:00:01:11 \ --network-uuid nw-test1 \ --ipv4-address 10.100.0.100
Create the DHCP service
Now that we have a simulated interface in place, next we need to tell OpenVNet to simulate a DHCP service on it.
vnctl network-services add --uuid ns-dhcp --interface-uuid if-dhcp --type dhcp
First of all let's have a look at VNA's log file.
You should see something like this.
D, [2015-12-16T17:17:38.687225 #19913] DEBUG -- : 0x0000aaaaaaaaaaaa interface_manager: installing if-dhcp/3 (mode:simulated) D, [2015-12-16T17:17:38.732223 #19913] DEBUG -- : 0x0000aaaaaaaaaaaa active_interface_manager: installing local/3 (interface_id:3 datapath_id:1 label:dp-test1) D, [2015-12-16T17:17:38.741769 #19913] DEBUG -- : 0x0000aaaaaaaaaaaa interface/simulated: adding mac address to if-dhcp/3 (02:00:00:00:01:11) D, [2015-12-16T17:17:38.763137 #19913] DEBUG -- : 0x0000aaaaaaaaaaaa interface/simulated: adding ipv4 address to if-dhcp/3 (02:00:00:00:01:11/10.100.0.100) D, [2015-12-16T17:17:44.662743 #19913] DEBUG -- : 0x0000aaaaaaaaaaaa service_manager: installing ns-dhcp/1 (mode:dhcp)
Looking good so far. VNA seems to have created the simulated interface and added the DHCP service to it.
inst1 and have it do a DHCP request.
lxc-console -n inst1 service network restart
If everything went well,
inst1 should have received a DHCP reply and it now has IP address
Taking another look at
/var/log/openvnet/vna.log will show you how the simulated DHCP server has received the request and constructed a reply to it.
Now let's do the same on
inst2 and see how the DHCP service assigns
lxc-console -n inst2 service network restart
There we go. The two VMs can now ping each other again.
Now that you've successfully set up a single network and added a DHCP server to it, how about we set up multiple networks next?