[openstack-dev] [Neutron][Nova] DHCP sent by veth interface connected to Linux Bridge

Padmanabhan Krishnan kprad1 at yahoo.com
Tue Jun 2 19:48:32 UTC 2015


Hello,
I am seeing some weird behavior in my setup and would really appreciate if someone could clarify a few things below:

Setup: Simple two node. One with control+compute (Node1) and another a compute (Node2). Since, Node2 is running low in HW, I create a AvlZone putting only Node2 so that I could also launch a VM in Node2. I use OVS as mech_driver. I use type_Driver as ‘local’, for test purposes. 

When a VM is launched in Node2:

A DHCP Discover is sent out for the veth connected to the Linux Bridge side. Eventually, both the VM and veth connected to the bridge gets IP addresses (one a .2 and another .3). Ofcourse, the external DHCP server that I use, shouldn’t have given out an IP address for the veth, which should be corrected. But, why was a DHCP sent out in the first place on behalf of the veth? I didn’t see this behavior for VM’s launched in Node1 or even in other setups (I don’t use AvlZones in other setups).
So, I assume Nova (or is it libvirt underneath?) creates the veth and attaches one side to br-int and another side to Linux bridge. Is it a veth or LinuxBr property that signifies this DHCP behavior?
————————

Srvr23:~$ ifconfig qvb5d8aa01c-53
qvb5d8aa01c-53 Link encap:Ethernet  HWaddr 62:ab:98:e4:8a:7e  
          inet addr:145.189.82.2  Bcast:145.189.82.255  Mask:255.255.255.0
          inet6 addr: fe80::60ab:98ff:fee4:8a7e/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
…………….

Srvr23:~$ brctl show
bridge name     bridge id               STP enabled     interfaces
qbr5d8aa01c-53          8000.62ab98e48a7e       no              qvb5d8aa01c-53
                                                        tap5d8aa01c-53

Srvr23:~$ sudo ovs-vsctl show
5dfbb68a-7d32-4efb-b9df-6e04d5c1b402
    Bridge br-int
        fail_mode: secure
        Port int-br-ethd
            Interface int-br-ethd
                type: patch
                options: {peer=phy-br-ethd}
        Port br-int
            Interface br-int
                type: internal
        Port "qvo5d8aa01c-53"
            tag: 10
            Interface "qvo5d8aa01c-53"

—————————————

Now, my compute server’s (Node2) default gateway is messed up and connectivity is lost. Now, the default GW points to  whatever is sent out by my external DHCP server. BTW, I haven’t created any external network or Neutron routers.

————
Before VM was spawned:

Srvr23:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.28.12.1     0.0.0.0         UG    0      0        0 eth2  <----- Original Default GW
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth2
172.28.12.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2

After VM was spawned:

Srvr23:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         145.189.82.1    0.0.0.0         UG    0      0        0 qvb5d8aa01c-53 <---- Default GW modified
145.189.82.0    0.0.0.0         255.255.255.0   U     1      0        0 qvb5d8aa01c-53
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth2
172.28.12.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
------------

This is stable/Juno.
Thanks,
Paddu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150602/3089e989/attachment.html>


More information about the OpenStack-dev mailing list