What is the configuration?
# brctl showstp virbr0
# brctl showmacs virbr0
Is dhclient being run on the bridge interface?
# cat /proc/net/ptype
# cat /proc/net/bonding/bond0
How is bond and bridge configured? Are bonding bridges (wrong)
or bridging bonded interfaces?
Are all links up?
Since this is the initial packet it will have to be flood forwarded by
the bridge, is there any iptables/netfilter rule that might be blocking
I'm quite sure this output will show us why this isn't working and it
won't be the first time I've seen this.
What happens with mode 0 is that the DHCPDISCOVER goes out and since the
MAC is unlearned by the switch connected to the host, the frame will
come back on all other members of the bond other than the one that sent
Since the bond interface is receiving the frame, the bridge will relearn
the source address of the guest on the bonding interface and any
subsequent frames received on the bond interface that have the
destination MAC of the guest will be dropped by the bridge. This is as
expected since a bridge should drop frames when the destination MAC of
the incoming frame matches an entry in the forwarding database that
indicates those frames are destined for the receiving port.
I would suggest switching to mode 5 (balance-tlb) if your switch cannot
handle bonding or mode 2 or 4 (balance-xor or 802.3ad, respectively) if
it can. Both of those modes avoid this problem since mode 5 will drop
additional broadcast frames and modes 2 and 4 will not send broadcast
frames back to any of the bond member's interfaces.
There is a Red Hat kbase article that talks about this problem as well:
When it was originally written mode 6 was thought to be a workaround
as well, but it has been recently proved to still be a problem and the
article needs to be updated.