Duplicate Address Detection misfire?

Zaphod Beeblebrox zbeeble at gmail.com
Tue Jul 23 05:44:24 UTC 2013


What to do when you don't trust the interface?  VMWare is obviously
emulating the hardware and their interpretation of what the hardware "is"
is possibly different from ours.

If I boot single-user and tcpdump the interface, I see two transmitted
solicitations.  The kernel claims to have sent one.

My concern: is the vmware interface reflecting the solicitation packet
because it is a broadcast packet?

To determine this, I've gone over the tcpdump and pcap-filter man pages to
look for a way to only dump packets leaving from or arriving at an
interface.  Can this be done?

If VMWare is reflecting the packet back, I'm curious as to how we can fix
this.



On Mon, Jul 22, 2013 at 1:22 AM, Zaphod Beeblebrox <zbeeble at gmail.com>wrote:

> I've further narrowed this down.  According to the output:
>
> em0 DAD detected duplicate IPv6 address fe80:2::250:56ff:fe2e:45fd: NS
> in/out=2/1, NA in=0
>
> ... FreeBSD *thinks* it has transmitted one and received 2 solicitations.
> The packet dump shows two solicitations (which would, if it were not bogus,
> indicate that another machine was booting at the exact same time trying to
> use the same link-local address).
>
> The question becomes: is vmware duplicating the packet, or is FreeBSD?
> IE: driver problem with em0 and vmware?
>
> I'm not completely sure how to debug this.
>
>
>
> On Thu, Jul 18, 2013 at 9:21 PM, Zaphod Beeblebrox <zbeeble at gmail.com>wrote:
>
>>
>>
>>
>> On Sun, Jun 30, 2013 at 10:39 PM, Kevin Day <kevin at your.org> wrote:
>>
>>>
>>> On Jun 30, 2013, at 6:48 PM, Zaphod Beeblebrox <zbeeble at gmail.com>
>>> wrote:
>>>
>>> > I have a FreeBSD 9.1-RELEASE vmware guest running. It is using the
>>> > "bridged" type of networking with VMWare.  It gets it's IPv4 address
>>> from
>>> > DHCP (successfully) and then fails to initialize IPv6.  The relevant
>>> > rc.conf is:
>>> >
>>> > ipv6_activate_all_interfaces="YES"
>>> > ifconfig_em0_ipv6="inet6 accept_rtadv"
>>> > ip6addrctl_verbose="YES"
>>> >
>>> > The console output says:
>>> >
>>> > em0: DAD detected duplicate IPv6 address fe80:2::20c:29ff:fe0a:3989: NS
>>> > in/out=2/1, NA in=0
>>> > em0: DAD complete for fe80:2::20c:29ff:fe0a:3989 - duplicate found
>>> > em0: manual intervention required
>>> > em0: possible hardware address duplication deteted, disable IPv6
>>> >
>>> > And subsequently, em0's nd6 has "IFDISABLED" in it.
>>> >
>>> > With wireshark, I see two ICMPv6 neighbor solicitations that are
>>> identical
>>> > --- is this the problem?
>>> >
>>> > How do I fix this?
>>>
>>> Did you copy this VM and have both copies running at once? If so, it
>>> assigned the same MAC address to each VM.
>>>
>>> VMware is suppose to detect this and ask if you "copied" or "moved" the
>>> VM, and if you say "copied" it will randomly assign a new MAC to the VM. If
>>> this didn't happen or if you said "moved" when you actually copied it, just
>>> go in and delete/re-create the network interface in the VM's settings to
>>> create a new MAC for it.
>>>
>>> If that's not the issue, we'd probably need more details about your
>>> configuration.
>>>
>>
>> To further diagnose, there is only one VM running.  To ensure that there
>> were no duplicates, I reassigned the MAC address in the VMWare
>> configuration dialogue.  Additionally, I tried stopping rtadvd on my router
>> (no effect) and I tried putting the guest on a "host-only network"
>> (basically isolated it) --- this clears the problem --- both the link-local
>> and the static address are assigned.
>>
>> Frustrated, I dumped the windows interface that is bridged to the VMWare
>> guest.  When it boots, I see the following:
>>
>> 2461    19:24:16.376027000    Vmware_2e:46:fd    Broadcast    ARP
>> 42    Gratuitous ARP for 66.96.20.42 (Request)
>> 2462    19:24:16.388241000    ::    ff02::1:ff00:42    ICMPv6    78
>> Neighbor Solicitation for 2001:1928:1::42
>> 2463    19:24:16.389065000    ::    ff02::1:ff00:42    ICMPv6    78
>> Neighbor Solicitation for 2001:1928:1::42
>> 2464    19:24:16.444130000    ::    ff02::16    ICMPv6    130
>> Multicast Listener Report Message v2
>> 2465    19:24:16.444605000    ::    ff02::16    ICMPv6    130
>> Multicast Listener Report Message v2
>> 2466    19:24:16.594663000    ::    ff02::1:ff2e:46fd    ICMPv6    78
>> Neighbor Solicitation for fe80::250:56ff:fe2e:46fd
>> 2467    19:24:16.595179000    ::    ff02::1:ff2e:46fd    ICMPv6    78
>> Neighbor Solicitation for fe80::250:56ff:fe2e:46fd
>> 2753    19:24:22.274728000    Vmware_2e:46:fd    Broadcast    ARP
>> 42    Who has 66.96.20.33?  Tell 66.96.20.42
>> 2754    19:24:22.274902000    Intel_bc:6f:87    Vmware_2e:46:fd    ARP    60
>> 66.96.20.33 is at 00:0e:0c:bc:6f:87
>>
>> ... and then it goes on to chatter ipv4-wise as expected.  Note that
>> there are two of each packet.  Is that normal?  The ethernet source of all
>> these packets is my vmware guest (save the who-has reply that I copied in).
>>
>>
>


More information about the freebsd-net mailing list