It doesn't really matter whether the vendor claims that the data is "also" cached data, since the RFC clearly states "if the desired data is present in authoritative form [...] use the authoritative data in preference to cached data". In other words, authoritative data trumps cached data. This would apply even if one were to view the authoritative data as "also" being cached data.

RFC 2181 clarified this even further, by assigning "trustworthiness" levels to different kinds of data, with "Data from a primary zone file, other than glue data" and "data from a zone transfer, other than glue" being the two most trustworthy, and "non-authoritative data from the answer section of authoritative answers", being a few levels of "trustworthiness" lower than either of those. (When one or more CNAMEs are present in the Answer Section, only the CNAME matching QNAME is authoritative, everything else is non-authoritative, so this category matches your situation as described). Less-trustworthy data is never supposed to overwrite/override more-trustworthy data.

It's quite obvious that the vendor is not in compliance with the RFCs here, the main challenge is to pierce their obfuscations enough to make this plain to the Powers That Be.

- Kevin

Maria Iano wrote:
By saying things like "We load the authoritative data into memory so that is also cached data" and other nonsense the vendor is stating that this behavior is in compliance with the RFCs and refusing to fix their code. Very frustrating, as I believe this behavior is clearly wrong and also seems to me to be a security issue.

Thanks for your help anyway!
Maria

On May 11, 2009, at 2:33 PM, Kevin Darcy wrote:

The "resolver algorithm" in RFC 1034, Section 5.3.3, states

1. See if the answer is in local information, and if so return

it to the client.


and is further detailed as

Step 1 searches the cache for the desired data. If the data is in the
cache, it is assumed to be good enough for normal use. Some resolvers
have an option at the user interface which will force the resolver to
ignore the cached data and consult with an authoritative server. This
is not recommended as the default. If the resolver has direct access to
a name server's zones, it should check to see if the desired data is
present in authoritative form, and if so, use the authoritative data in
preference to cached data.

This would be a case where the resolver "has direct access to the name server's zones", so there is no debate, in my opinion, that the resolver in question is doing The Wrong Thing.

RFC 2181 also makes it clear that authoritative data ranks higher than cached data, so that could also be used as a relevant normative reference.

- Kevin

Maria Iano wrote:
My apologies if this is considered to be too off-topic.

I have a situation where my company uses a number of servers with a commercial DNS implementation (in addition to our BIND servers). The other implementation is Windows DNS, and there is some behavior that I do not think is acceptable, but which the vendor claims is acceptable behavior. I really want them to fix this bug (as I consider it), but first I need to get general agreement that it is a bug. I will be looking through the RFCs as much as I can time for, but haven't found what I need yet. Since my next meeting with the vendor is tomorrow, I thought I would also ask if anyone can already point me to a relevant RFC or other reference.

Here is the behavior that I think is not acceptable.

We have configured a zone on the windows server - dmz.example.com. This zone contains an A record for foo.dmz.example.com with IP address 10.240.240.240. The zone example.com is hosted elsewhere and contains a CNAME record foo.example.com pointing to foo.dmz.example.com.

If the cache has just been cleared, and a client asks the WIndows DNS server for foo.example.com, it has a forwarding server to which it forwards the request. The forwarding server hands it back the CNAME record but it also hands back an A record for foo.dmz.example.com pointing to an incorrect IP address 192.168.240.240. The Windows DNS server accepts this A record for foo.dmz.example.com with an incorrect IP address into its cache, and hands out that incorrect information to the client. Even though it concurrently has dmz.gannett.com configured on it as a primary zone with a record for that same owner name pointing to a different IP address.

I believe it shouldn't do that. Since it hosts dmz.example.com as a primary zone, I think it should discard that bad A record and hand back its own.

The vendor's argument is that it should blindly trust the forwarding resolver.

Can anyone point me to an RFC or reference about this?

Thanks,
Maria



_______________________________________________
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to