Mailinglist Archive: opensuse-es (678 mails)

< Previous Next >
Re: [opensuse-es] OT - Duda sobre consulta DNS recursiva y no recursiva.
  • From: Mauro Antivero <mauro.antivero@xxxxxxxxx>
  • Date: Fri, 02 Oct 2009 09:15:27 -0300
  • Message-id: <4AC5EEDF.9070900@xxxxxxxxx>
Camaleón escribió:
El 2009-10-01 a las 12:41 -0300, Mauro Antivero escribió:


Qué significa que un servidor DNS resuelve una consulta en forma
recursiva o en forma no recursiva (denominada también iterativa).

Bien, después de leer bastante esto es lo que yo entendí:

Recursiva: El servidor de DNS recibe la consulta del cliente DNS y asume
la totalidad de la carga de la resolución, es decir, asumiendo que no
tiene la respuesta "cacheada", es el mismo servidor el que se pone en
contacto con otros servidores hasta obtener la respuesta completa y se
la otorga entonces al cliente.

No recursiva (o iterativa): El servidor DNS recibe la consulta del
cliente DNS y le otorga al mismo la mejor respuesta que esta pueda dar
(osea que hablando mal y pronto le da "la parte de la respuesta que el
conozca"), luego es el cliente el encargado de contactar con otros
servidores DNS para poder formar así la respuesta completa.

Podría alguien confirmarme si está bien lo que yo tengo entendido???


Hum... después de leer este artículo:

http://www.zytrax.com/books/dns/ch2/#queries

Te diría que sí pero con un "pero" :-)

Una consulta "no recursiva" la resuelve el mismo servidor dns (no el
cliente) pero añadiendo un paso más (fíjate donde cambian las tornas,
en el paso 3: mientras que la consulta "recursiva" pregunta directamente
a los servidores raíz, la "no recursiva" responde con una pregunta
-pregunta a otros servidores que sean autoritativos para esa zona-)

Tampoco me queda clara la diferencia "práctica" entre uno y otro O:-)

Saludos,


S, es verdad lo que me decís, es el servidor con el cual el cliente se
comunica en primera instancia el que le resuelve todo o no. Lo
comprobamos con un servidor de acá habilitando / deshabilitando la
recursividad y también poniendo como DNS primaro uno de los Root Name
Servers, los cuales no tienen habilitada la recursividad (ya que según
creo yo esto implicaría un trabajo excesivo para ellos).

Usando el comando dig verificamos que el RNS solo te dice quien es el
que sigue en el "árbol" de DNS. Por ejemplo al hacer dig www.google.com
el RNS nos decía "la autoridad de ".com" es "tal". Y así fuimos bajando
en el árbol de DNS "a mano" hasta obtener la respuesta deseada.

Resumiendo:

A mi entender cuando tenés habilitada la recursividad en el servidor al
que consultás primero es este el que se tiene que encargar de brindarte
una respuesta completa, osea el se contacta con los servidores que sea
necesario hasta obtener una respuesta completa y luego se la envía al
cliente. A mi entender es por esto que la recursividad implica un
"trabajo" considerable para el servidor que la tiene implementada, por
lo que los RNS no son recursivos, sino todo el mundo los usaría como
servidores DNS e imagínense la carga que deberían soportar.

Cuando no tenés habilitada la recursividad en el servidor al que
consultás este solo te responde respecto de las zonas que es autoridad.
En el caso de que el domino por el que le estés consultando no esté
dentro de su o sus zonas de autoridad el te responde "con la mejor
respuesta posible", osea que serías vos el encargado de ir "desglosando"
el árbol hasta llegar a la respuesta que necesitás.

Por lo que leí un escenario típico para entender mejor todo esto es
aquel en el que tu servidores DNS primario y secundario tienen
habilitada la recursividad y los que están "por encima" de él no (es
decir " admiten consultas iterativas"), entonces tu servidor DNS
primario / secundario es el encargado de "recopilar" la información
necesaria y brindarte una respuesta completa. Esto se puede ver
claramente en las figuras que les dejo más abajo.

Un servidor primario / secundario por "encima" de un cliente no tendrían
mucho sentido si no admiten consultas recursivas y se desaría tener
acceso a Internet, ya que solo te responderían por las zonas en las
cuales son autoridad. En cambio podría tener sentido para una LAN.

Espero se haya entendido. Igualmente, como una imagen dice más que mil
palabras creo que estos "dibujitos" dejan todo muy claro:

Consultas iterativas y recursivas:

http://i.msdn.microsoft.com/ms810277.dnsnt44(en-us,MSDN.10).gif

http://i.technet.microsoft.com/Cc751138.xwrff06(en-us,TechNet.10).gif
(la recursiva es entre el resolver y el primer DNS, las demás son
iterativas).

http://www.ils.unc.edu/spaces/inls578/pix/IPS/recursive.gif (ídem que el
anterior pero "más bonito").

Saludos y gracias como siempre!

Mauro.

--
Para dar de baja la suscripción, mande un mensaje a:
opensuse-es+unsubscribe@xxxxxxxxxxxx
Para obtener el resto de direcciones-comando, mande
un mensaje a:
opensuse-es+help@xxxxxxxxxxxx

< Previous Next >
List Navigation