On 10/23/2012 11:07 AM, Gene Czarcinski wrote:
The problem is that, without interface=, bind-interfaces does not
work. Bind-interfaces uses SO_BINDTODEVICE. Unless this in
in effect, there is no guarantee that the kernel will route
DHCP (v4 or v6) packets to the correct instance of dnsmasq,
when there is more than one.
Gene - did I understand the last several messages on this topic
correctly? I *think* it all said that we don't need --interface, and
dnsmasq will behave identically as long as all the ip addresses
specified on the commandline (or in the conf file) are on the same
interface, right?
Although I'm holding off on the "change from long commandline to using a
conf file" patch until after 1.0.0 is released (due to the potential for
a regression), I had been considering pushing youre earlier version of
the --interface patch *before* 1.0.0 (under the assumption that people
would experience breakage if we didn't have it). Now I *think* that I
don't need to do that, but watned to verify.
In addition to the problem that Simon had originally thought we would
have, are there any other easily identifiable bugs caused by a lack of
--interface=? If so, I still may consider pushing it. I've tested on
everything down to RHEL5 (which has dnsmasq-2.45); when discussing this
with Dan Berrange earlier in the week he said he recalled some sort of
race condition where the interface sometimes wasn't available early
enough (or something like that) when using --interface, which was why it
was taken out. I haven't seen that, but then I may not be exercising it
in the right way (or maybe it's not as problematic when both --interface
and --listen-address are specified).
At any rate, if there is still a specific problem that it is solving, we
can push that change and deal with any fallout found on old distros
later (since my initial testing doesn't find any, I'm hoping that's
fairly safe). If not, then I think we should leave it, at least until
after 1.0.0, and maybe push it then.