FreeBSD if_wg POINTTOPOINT and MULTICAST behaviour

Stefan Haller stefan.haller at stha.de
Wed Apr 14 21:50:45 UTC 2021


Hi Jason,

Thanks for your clarification. I understand that setting this flag would
be a false promise to userspace, because generally Wireguard is
point-to-multipoint and doesn't copy messages to multiple peers (which
is not exactly necessary in my case, where only a single peer is
configured on both sides).

I just wanted to ensure that the introduced change was intentional
before looking into other directions, hence my question.

On Wed, Apr 14, 2021 at 02:24:20PM -0600, Jason A. Donenfeld wrote:
> Does bird completely ignore interfaces without it? Is there no setting
> to change that?

At least a brief look at the code suggests this: [1]

The Babel protocol seems to rely on well-known *link-local* IPv6
multicast addresses. I did not find anything related to unicast "hello"
messages in the RFC or in the implementations. (OSPF is similar, but
as far as I remember unicast hellos are explicitly allowed.)

One odd thing I noticed: On Linux (5.11.13-arch1-1, so quite recent),
the interface does not list the MULTICAST flag and the interface is
still used by bird:

# ip l show dev wg1
4: wg1: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000

I will have a closer look why it doesn't work on FreeBSD but the same thing
works on Linux. I am probably missing something important.


Kind regards,
Stefan


[1]: https://gitlab.nic.cz/labs/bird/-/blob/9c41e1ca3e93d4498eaa085139caf1545e08c1d8/proto/babel/babel.c#L1662


More information about the WireGuard mailing list