I am new to FreeBSD so please forgive (and correct) wrong terminology and 
concepts.

I’ve installed FreeBSD 11.2 as a VM host and run in to a problem with multicast 
packets over a bridge not being seen by programs [on the host] listening on the 
bridge’s physical interface constituent (igb1), which I discovered when running 
avahi-daemon.

Briefly, my setup is as follows:
FreeBSD 11.2 host, bare metal, eth PHY igb1
    bridge0 with members igb1, tap0, tap1
VM linux guest virtio-net to tap0 to bridge on FreeBSD
VM freebsd guest virtio-net to tap1 to bridge on FreeBSD 
Mac, 802.11 to AP to same switch as FreeBSD

mDNS query/response operates properly between the mac and any of the others 
(both physical and virtual), and all work in the converse direction with the 
mac.  The guests, all of which are constituents of the bridge, are able to 
communicate via mDNS with one another.  However, the guests are _unable_ to 
communicate with the host via mDNS.  tcpdump shows the query packets appearing 
on igb1, but truss on avahi-daemon shows they are not received.

This means multicast packets are forwarded out all members of the bridge, but 
not IN (at least, to physical interfaces — they do seem to go both directions 
on the taps)

If I add an IP address to the bridge, avahi-daemon on the host binds to the 
bridge interface directly and then receives incoming packets, responding with 
the IP of the bridge. All then operates correctly, except that the host now has 
two IPs on the same subnet of course.



My question is: given that if_bridge(4) is described as a virtual switch:

     A bridge works like a switch, forwarding traffic from one interface to
     another.  Multicast and broadcast packets are always forwarded to all
     interfaces that are part of the bridge.  For unicast traffic, the bridge
     learns which MAC addresses are associated with which interfaces and will
     forward the traffic selectively.

and given that unicast packets originating on one of the bridge’s taps are 
received by host programs bound to igb1, it seems to me that anything bound to 
igb1 should also be receiving the multicast packets. 

Is this an error specifically related to multicast and bridging, or is it an 
accident that unicast connections work? (or, none of the above)

Kind regards and thanks in advance.

jsb


_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to