Then, having the first entry with 8.8.8.8 and in the second entry another MK router with static DNS entries, this is what I get:
In order to work, I must to delete first entry and flush cache:
Is this desired, undesired or a real bug?
Furthermore, the DNS cache gets an invalid entry with a 24h of TTL. So “reparing” the DNS order entry doesn’t solve the problem automatically. I must remove cache entry. Seeing that a valid google.com entry has a TTL of just 30 seconds, seems to me that 24h for an invalid entry is too much.
Basic idea behind multiple DNS server addresses used by clients is high availability … so it is assumed that any of configured servers will return same answer. DNS resolver will only ask same question to another DNS server if it can’t connect to previously tried server (e.g. connection timeout). If one server replies with negative answer (e.g. no such host), resolver doesn’t have any reason to believe another server might answer positively.
Also note that you can set the time limit on that invalid entry yourself at the bottom of the DNS setting screen! (Cache Max TTL)
And note that there really is no “first” and “second” server, there are just a number of servers and the device will slowly rotate over using them and send most queries to the device that answers fastest.
But to know which is fastest, after some time queries will be sent to the other server(s) and the average reply times compared.
So as mkx already said, all DNS servers have to be equivalent, you cannot have different servers returning different results and still have a consistent situation, it will just behave randomly.