On a couple of occasions I've had LXC containers restarted but they've ended up in a bad situation with their IP's.
Basically the IPv4 address comes up but experiences disconnects. The IPv6 address fails to come up with "tentative dadfailed".
What's happened here is the veth from the previous container wasn't cleaned up properly.
Unfortunately arp -a or ip neigh show don't show the problem because as far as they're concerned the offending endpoint is behind br0.
The only way I know of to confirm this is to check the bridge against the LXC info:
$ brctl show br0
br0 8000.fe46606ac64f no veth7UFFVA
vethFF6D6Y
vethXAOAMYAnd
$ lxc-ls --active lxc-guest-1 lxc-guest-1 $ lxc-info -n lxc-guest-1 | grep veth Link: vethFF6D6Y $ lxc-info -nlxc-guest-1| grep veth Link: vethXAOAMY
We see here that veth7UFFVA is abandoned.
To fix this we need to shut down the LXC instance that's experiencing connectivity issues, then remove the abandoned interface from the bridge.
$ lxc-stop -n lxc-guest-1
$ brctl delif br0 veth7UFFVA
$ lxc-start -n lxc-guest-1And confirm in the newly started container that we have a fully assigned IPv6 address.