[ntp:hackers] What does "interface listen wildcard" do?

Danny Mayer mayer at ntp.org
Fri Jul 12 13:40:11 UTC 2013


On 7/12/2013 12:25 AM, Philip Prindeville wrote:
>>
>> On a related but mostly independent note:
>>
>> I think we made a big mistake in 2004, extending the usage of the
system of binding all of the interfaces as documented in bug 314,
instead of trying to eliminate it. At the time I was concerned about how
prevalent IP_PKTINFO was, particularly since it wasn't available in
Solaris. But I think it is now available in most platforms. Other than
the single issue of whether of not it is a supported part of all of our
supported platforms, there is no other argument against using IP_PKTINFO
documented in bug 314 that I think has held up nine years on.

No it wasn't a mistake. It was to solve a larger problem. By default, if
you didn't use it then you had the previous behavior and you need do
nothing.

> 
> You could use SOCK_RAW as a work-around for platforms not providing
IP_PKTINFO. On Linux you could additionally use IP_RECVORIGDSTADDR.

I've occasionally entertained that option and decided that it wouldn't
be a good idea since we would then have to maintain it and it would be a
maintenance nightmare.

>>
>> I argued against the introduction of the "interface listen"
>> keywords
exactly because I thought it would make it harder to adopt IP_PKTINFO,
because by that point I was convinced that it was the right way forward,
and I still think so. Posix adopted IP_PKTINFO precisely to eliminate
the need to bind to all interfaces. However, I no longer think that the
"interface listen" configuration are actually an impediment. I would
certainly love to see the ntp_io.c code refactored to use IP_PKTINFO.

If IP_PKTINFO was generally available on all O/S's with all of the
information we needed it would have made some things easier but with the
resulting problem of how to deal with incoming packets sent to an
address that the admin didn't want to have people using.

Danny


More information about the hackers mailing list