On a hunch I've added a delay in /etc/network/if-pre-up.d/bridge.
Specifically, in the following fragment:

  brctl addbr $IFACE || exit 1
  if [ "$IF_BRIDGE_HW" ]; then
    ip link set dev $IFACE address $IF_BRIDGE_HW
  fi

So that now it reads:

  brctl addbr $IFACE || exit 1
  if [ "$IF_BRIDGE_HW" ]; then
    sleep 1
    ip link set dev $IFACE address $IF_BRIDGE_HW
  fi

This appears to fix the issue. At least I was no longer able to
reproduce it while commenting out sleep immediately results in the
wrong address. In fact, even echo instead of sleep appears to be
sufficient.

Let me know if you need me to try anything else.

Reply via email to