Post by Hugo MonteiroPost by Maciej Żenczykowskinot dns servers, dns caches / recursive resolvers
They ARE dns servers. The records they serve may or not be local.
No, they are not, dns servers serve authoritative data (ie. tinydns),
dns caches/resolvers perform queries for users (ie. dnscache). Bind
often mixes the two up (serving both roles out of one binary on one
ip:port), but they are very different beasts.
Post by Hugo MonteiroAnd how can you know that every query to your resolver will produce a < 512
bytes answer? Do you by any chance control all the queried authoritative
servers? If not, i would say that you are your implementation is not RFC
compliant.
Who said it was a resolver? It's not a resolver it's a dns server,
not a cache, not a resolver, not a proxy. It serves exactly the
authoritative data that I gave it in it's configuration file (which I
control, I know exactly what is in it, and I know there's nothing in
there that could cause a big reply) and not a iota of information
more. There are no queried authoritative servers because it issues no
queries - it's an authoritative server, not a resolver...
To quote ftp://ftp.rfc-editor.org/in-notes/rfc1123.txt
6.1.3.2 Transport Protocols
DNS resolvers and recursive servers MUST support UDP, and
SHOULD support TCP, for sending (non-zone-transfer) queries.
Specifically, a DNS resolver or server that is sending a
non-zone-transfer query MUST send a UDP query first. If the
Answer section of the response is truncated and if the
requester supports TCP, it SHOULD try the query again using
TCP.
DNS servers MUST be able to service UDP queries and SHOULD
be able to service TCP queries. A name server MAY limit the
resources it devotes to TCP queries, but it SHOULD NOT
refuse to service a TCP query just because it would have
succeeded with UDP.
...etc...
Hence, while it is RECOMMENDED, it is not REQUIRED for you to support
TCP queries.
Remember:
3. SHOULD This word, or the adjective "RECOMMENDED", mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.
4. SHOULD NOT This phrase, or the phrase "NOT RECOMMENDED" mean that
there may exist valid reasons in particular circumstances when the
particular behavior is acceptable or even useful, but the full
implications should be understood and the case carefully weighed
before implementing any behavior described with this label.