I try to use the KDE Plasma NetworkManager to create the bridge. Your question ip addr reverse to OSI 3 which is indeed at a higher level than datalink (MACs and stuff)
Be sure that both eth0 and vnet5 belong to the bridge, I get:
$ bridge link show master bridge0
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 2
and the bridge should get the IP address from the network, not the eth0. in NetworkManager, eth0 should be defined as slave of br0. Then it should work.
I believe all the qemukvm bridge blues can be retraced to the fact that I have docker installed as well. This is not specifically covered in the many resources I’ve found online and deepseek. I had Claude signal me that docker bridging could potential thward bridging for others and was able to solve the problem (for the time being.)