Thomas in #17

A heuristic for this is difficult, because you have to prove a negative.
If we can assume the first nameserver has local addresses, we can never
return a reply from any other nameserver until we have the reply from
the first one, in case the first one has different data. Once we see
different data from different nameservers, we can go to --strict-order
mode, but the opposite is not true: the same answer for a particular
query doesn't guarantee that the answers to future queries will always
agree. There's no way to be sure that the nameservers are equivalent
based on the history of returned queries. Unless we can assume that, we
always need to wait for the first nameserver to reply (or a timeout) and
have to stay in --strict-order mode forever.

There is one possibility, which is to assume that nameservers are
equivalent, but switch to --strict-order mode if conflicting replies are
seen. When a query is forwarded to all available servers, and the first
reply sent back to the original requestor, keep the record of the reply
(at least, a bit indicating NODATA/NXDOMAIN or a valid reply. If another
reply comes in later from another nameserver which conflicts, then
switch to --strict-order mode. This will not get the first queries
right, but it will be triggered eventually (and it might be triggered,
swicthing mode forever, by random server glitches)

For a single-host cache, --strict-order might be the simplest fix......

Simon.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1003842

Title:
  Precise NM with "dns=dnsmasq" breaks systems with non-equivalent
  upstream nameservers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1003842/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to