[CentOS] Libvirt guest receives dadfailed on all ipv6

Mon Jan 26 01:53:39 UTC 2015
William <william at firstyear.id.au>

Hi,

I have a Centos7 host with libvirt, attempting to boot a Centos7 guest.
I am attempting to do the install over ipv6 (because why not). 

I have the following network configuration.

Cisco 3550 gi0/1 <-> eno1 (Centos7) host.

gi0/1 is configured as:

 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 1-17
 switchport mode trunk


Mainly in question is vlan11 as this is the network I am trying to work
with.

The switch have vlan11 configured with STP:

# sh spa v 11
VLAN0011
  Spanning tree enabled protocol rstp
  Root ID    Priority    12299
             Address     000c.30d1.9700
             This bridge is the root
             Hello Time   2 sec  Max Age 10 sec  Forward Delay  5 sec

  Bridge ID  Priority    12299  (priority 12288 sys-id-ext 11)
             Address     000c.30d1.9700
             Hello Time   2 sec  Max Age 10 sec  Forward Delay  5 sec
             Aging Time 300

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- --------
--------------------------------
Gi0/1               Desg FWD 4         128.25   P2p 
Gi0/2               Desg FWD 4         128.26   P2p 

Notice that the switch is the root of the STP.

The Centos7 host network is configured as:

DEVICE="eno1.11"
VLAN="yes"
BOOTPROTO="none"
IPV6INIT="no"
IPV6_AUTOCONF="no"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE=br11


With the corresponding bridge as:

DEVICE=br11
ONBOOT=yes
BOOTPROTO=none
TYPE=Bridge
IPV4_FAILURE_FATAL=no
IPV6_FAILURE_FATAL=no
NM_CONTROLLED=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_ROUTER=no
STP=off

The output of ip a for these interfaces is as such:

5: eno1.11 at eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
noqueue master br11 state UP 
    link/ether c0:3f:d5:61:c8:ec brd ff:ff:ff:ff:ff:ff
    inet6 fe80::c23f:d5ff:fe61:c8ec/64 scope link 
       valid_lft forever preferred_lft forever
6: br11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP 
    link/ether c0:3f:d5:61:c8:ec brd ff:ff:ff:ff:ff:ff
    inet6 fe80::c23f:d5ff:fe61:c8ec/64 scope link 
       valid_lft forever preferred_lft forever

brctl show br11 

bridge name	bridge id		STP enabled	interfaces
br11		8000.c03fd561c8ec	yes		eno1.11
							vnet1


vnet1 being the interface of the connected vm.

When the VM is booted, the following error is received.

[  OK  ] Reached target Paths.
[  OK  ] Reached target Basic System.
[   33.874572] IPv6: eth0: IPv6 duplicate address
2001:db8:0:11:5054:ff:fedd:a617 detected!


Any address assigned to the interface immediately triggers a dadfailed
warning such as:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP qlen 1000
    link/ether 52:54:00:dd:a6:17 brd ff:ff:ff:ff:ff:ff
    inet6 2001:db8:0:11::200/64 scope global tentative dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fedd:a617/64 scope link 
       valid_lft forever preferred_lft forever


Assigning an ipv4 address, traffic is correctly able to flow over the
bridge via the switch to other hosts.

I am suspicious that the issue lays somewhere in ND being reflected from
the cisco in some capacity perhaps?

A fedora 20 system connected to gi0/2, with identical network
configuration and switch does not suffer this issue when booting guests.

This has left me quite stumped as to what I am doing wrong on the
Centos7 host, or if there is another issue.

And help would be greatly appreciated in helping solve this issue.