[Dnsmasq-discuss] 2.68rc4: bind-interfaces, FreeBSD, IPv6 2001:... addr fails and loses error code, parallel build brittle
Matthias Andree
matthias.andree at gmx.de
Wed Dec 4 01:09:35 GMT 2013
Am 03.12.2013 12:11, schrieb Simon Kelley:
>> Could you double-check iface_allowed_v6() and the network enumeration
>> code that calls it, and the code in network.c:703 that calls bind()?
>> Either needs to zero out the scope_id for non-link-local i'faces.
>
> That looks like a very good diagnosis: zeroing the scope_id in the
> appropriate cases should be easy. I wonder why this has just struck, the
> code has been like that for some time, and never previuosly hit a
> problem. FreeBSD change?
I don't think so - I rather suspect that this is a rare occasion and I
was the first to see and report it. It would seem we have four
nondefault constraints for the bug to show:
1. IPv6 needs to be enabled on the external interface
2. a global IPv6 needs to be configured, either manually, or
autoconfigured from an external router
3. dnsmasq needs to be installed
4. dnsmasq needs to use --bind-interfaces.
> I'm thinking of having a small tattoo, in a visible (to me) place that
> reads "REMEMBER: IPv6 is not IPv4".
:)
> It's not a martian problem, it's the Weak End System Model which is used
> by Linux. I don't know if that's used by FreeBSD.
I have never bothered to check, yet.
> The standard fix is to use --bind-dynamic, which can rely on the
> existence of the extended API. Unfortunately that doesn't work on
> FreeBSD because it also relies on a a method of getting asynchronous
> events when interfaces/address come and go. Does FreeBSD have an
> equivalent of the Linux netlink socket?
I'm not aware of one, and address changes do not appear through
devctl(4). This would best be asked on FreeBSD-hackers or similar lists.
More information about the Dnsmasq-discuss
mailing list