La RFC 1035 n'« exige » (must ou shall) rien mais indique, si l'on peut dire à pied d'égalité (section 4.2) « The Internet supports name server access using TCP [RFC-793] on server port 53 (decimal) as well as datagram access using UDP [RFC-768] on UDP port 53 (decimal) ». Et précise aussi : « Messages carried by UDP are restricted to 512 bytes ».
D'après la RFC 1123 Requirements for Internet Hosts -- Application and Support :
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.
Là c'est clair, un resolver doit faire une requête UDP avant une requête TCP. (Et le serveur devrait savoir répondre en TCP).
La RFC 1034 discute d'ailleurs brièvement de l'utilisation de TCP dans les resolvers (et précise, à toutes fins utiles que « Because accuracy is essential, TCP or some other reliable protocol must be used for AXFR requests. » (encore heureux)).
De mon point de vue, les RFCs qui spécifient le protocole DNS sont mal écrites. D'une part il y'en a beaucoup, éparpillées un peu partout, certaines tentant de décrire des bonnes pratiques, de clarifier les anciennes, de pallier a des limitations arbitraires (les fameux 512 octets), etc...
Ces problèmes découlent du fait qu'elles sont écrites en pensant uniquement à l'implémentation de référence BIND.
Par exemple, selon moi les transfert de zone (AXFR) ne font pas partie du protocole DNS, c'est une problématique satellite. Il existe d'autre méthodes pour transferer ses zones : http, rsync, ssh, par clé USB, etc...
[^] # Re: Et SCTP ?
Posté par Hank Lords . En réponse au journal BIND, 2ème édition. Évalué à 1.
D'après la RFC 1123 Requirements for Internet Hosts -- Application and Support :
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.
Là c'est clair, un resolver doit faire une requête UDP avant une requête TCP. (Et le serveur devrait savoir répondre en TCP).
La RFC 1034 discute d'ailleurs brièvement de l'utilisation de TCP dans les resolvers (et précise, à toutes fins utiles que « Because accuracy is essential, TCP or some other reliable protocol must be used for AXFR requests. » (encore heureux)).
De mon point de vue, les RFCs qui spécifient le protocole DNS sont mal écrites. D'une part il y'en a beaucoup, éparpillées un peu partout, certaines tentant de décrire des bonnes pratiques, de clarifier les anciennes, de pallier a des limitations arbitraires (les fameux 512 octets), etc...
Ces problèmes découlent du fait qu'elles sont écrites en pensant uniquement à l'implémentation de référence BIND.
Par exemple, selon moi les transfert de zone (AXFR) ne font pas partie du protocole DNS, c'est une problématique satellite. Il existe d'autre méthodes pour transferer ses zones : http, rsync, ssh, par clé USB, etc...