Comment 0 for bug 1558766

Revision history for this message
Andrei-Lucian Șerb (lucian-serb) wrote :

The current Vagantfile connects the Neutron external interface to a Bridged Adapter, but does not set the promiscuous mode to "allow". This currently needs to be done manually. Promiscuous mode is needed for L2 Neutron functionality.

But also, on computers with wi-fi adapters, promiscuous mode on the VirtualBox (or maybe other hypervisors as well) NICs does not work, which means the default way of connecting the Neutron external interface to a bridged adapter, will not allow communication to and from the Nova VMs over floating IPs with any computer on the external network (except the host computer) or with the wi-fi router. This means no ability to connect to the Nova VMs and no internet access inside the Nova VMs.

According to VirtualBox documentation (excerpt):
"""Bridging to a wireless interface is done differently from bridging to a wired interface, because most wireless adapters do not support promiscuous mode. All traffic has to use the MAC address of the host’s wireless adapter, and therefore VirtualBox needs to replace the source MAC address in the Ethernet header of an outgoing packet to make sure the reply will be sent to the host interface. When VirtualBox sees an incoming packet with a destination IP address that belongs to one of the virtual machine adapters it replaces the destination MAC address in the Ethernet header with the VM adapter’s MAC address and passes it on. VirtualBox examines ARP and DHCP packets in order to learn the IP addresses of virtual machines."""

A way to fix this issue is to use the NAT-Network service present in VirtualBox, which is effectively a virtual router. In this way, all communication to/from the wi-fi router is done through the virtual router. So instead of connecting the Neutron external interface to a Bridged Adapter, we connect it to a NAT Network (which needs to manually be created in advance). A downside to this fix, is that the Host Computer and the Nova VMs (when they have a floating ip attached) will not be in the same network anymore, but this is easily managed through setting port forwards on the virtual router.