¿Cómo actúa DynamicDNS de inmediato?

16

Entiendo que la funcionalidad principal de DNS es proporcionar un servicio de nombres / mapeo entre nombres de dominio (p blah-whatever.com. Ej. ) Y direcciones IP (p . Ej. 100.2.3.4 ).

Además, entiendo cómo funcionan los servidores DNS de Internet es que cuando se cambia un registro de mapeo de dominio / IP (por ejemplo, cambiar blah-whatever.comahora a 105.2.3.4 , etc.), este cambio debe propagarse en todos los servidores DNS del mundo antes de que se pueda decir que el cambio es "completo". Este período de propagación a veces puede durar hasta 24 horas.

Para empezar, si algo de lo que he dicho hasta ahora es erróneo o incorrecto, ¡comience por corregirme!

Suponiendo que soy más o menos correcto, no entiendo cómo compañías como CloudFlare o DynamicDNS pueden ofrecer servicios de tipo "rollover instantáneo" mediante los cuales usted cambia su registro DNS con ellos y, boom , el cambio tiene efecto instantáneamente.

Entiendo que hay algo llamado "TTL" (¿es hora de vivir, supongo?!?) Que juega un papel en esta capacidad de transferencia instantánea, pero dado que ya tengo dudas sobre la capacidad para comenzar, es difícil entender qué este TTL es o para qué sirve.

Entonces, pregunto: ¿qué tiene el DNS dinámico y sus competidores que les permite cambiar las asignaciones de DNS al instante (sin tomar 24 horas para propagar los cambios de DNS como todos los demás) y cómo encaja TTL en este proceso? Gracias por adelantado.

pnongrata
fuente

Respuestas:

3

Mi respuesta anterior contenía información falsa porque tenía algunas ideas erróneas sobre cómo se propagan los cambios de DNS. Así que aquí hay un segundo intento. Para una explicación detallada, le animo a leer la respuesta de Alex .

A mi entender, hay 2 factores involucrados en la rapidez con que se propaga un cambio de DNS:

  1. Transferencias de zona entre los servidores DNS que son operativos para una zona.
  2. El TTL establecido para registros individuales en esa zona.

Transferencias de zona

Dado que necesita dos servidores de nombres distintos para administrar una zona, desearía que estos servidores tengan rápidamente disponible la última versión de esa zona.

Esto se logra extrayendo la última versión de la zona en un intervalo fijo o esperando una NOTIFICACIÓN de un servidor de nombres autorizado.

Dado que este mecanismo está bajo el control total de quien ejecuta los servidores de nombres, cualquier demora en esta área puede controlarse por completo.

TTL

El TTL es un tiempo de espera especificado para cada registro de recursos en una zona. Este valor define cuánto tiempo los proveedores de DNS no autorizados deben almacenar en caché el registro.

Tenga en cuenta que este valor solo entra en juego si se cambia un registro existente . Los nuevos registros aún no se pueden almacenar en caché.

Dado que el TTL también está bajo el control total de quien controla la zona, el retraso también se puede controlar por completo.

Der Hochstapler
fuente
Gracias @Oliver (+1) - ¡Parece que un "rollover instantáneo" es una leyenda urbana! Supongo que mi pregunta de seguimiento sería: ¿por qué no solo edito mis registros DNS yo mismo? ¿Es porque estas compañías ofrecen API para que los cambios de DNS puedan automatizarse cuando se desencadenan ciertos eventos? ¡Supongo que estoy buscando para qué sirven en primer lugar!
pnongrata
1
@zharvey: Puede, por supuesto, ejecutar su propio servidor DNS y editar sus zonas directamente usted mismo. Pero debe proporcionar al menos 2 servidores DNS distintos que sean operativos para que su zona sea aceptada por los servidores raíz. La gente generalmente no tiene ese tipo de infraestructura disponible para ellos.
Der Hochstapler
1
Puede editar registros DNS usted mismo. Solo necesita ejecutar un par de servidores de nombres (en diferentes subredes). Sin embargo, DynDNS funciona para usted y permite actualizaciones relativamente fáciles. Básicamente estás subcontratando algo de trabajo.
Hennes
@zharvey, por supuesto, puede tener un "rollover instantáneo". Si quiere decir eso literalmente, simplemente deje que ambas máquinas cambien sus IP (lo cual no siempre es posible). Aparte de eso, siempre tendrá un cierto retraso. Por lo general, si los servicios se van a mover a diferentes servidores, el administrador cambia el TTL por adelantado (por ejemplo, lo reduce a algo así como 1 h), por lo que cuando el cambio se produce, el retraso será mínimo. Una vez hecho esto, TTL aumentará nuevamente (por ejemplo, 24 horas o más) para permitir un mejor almacenamiento en caché y respuestas más rápidas en consultas DNS. Pero eso generalmente no involucra a DynDNS;)
Izzy
2
Perdón por ser grosero, pero esta respuesta es incorrecta en casi todos los puntos.
Alex
18

Tienes algunas ideas falsas, así que intentaré explicar todo el proceso. (Estoy bien con los detalles ya que participé en la operación de un servicio DNS dinámico público).

Digamos que su dominio es example.com , y digamos que el dominio example.com alojado con alguna compañía de DNS dinámica, llamémoslo lightfastdns.net (nombre ficticio). Su dominio contiene un registro DNS: somehost.example.com , que actualmente apunta a 1.1.1.1 .

  1. Cuando realiza un cambio en su registro DNS, este cambio se envía primero a algún servidor intermedio, operado por lightfastdns.net, por ejemplo, updates.lightfastdns.net . Esto sucede casi al instante (en fracción de segundo). Puede enviar su actualización a través de la interfaz web o con un cliente de actualizaciones dinámicas, o mediante alguna API. Eso no importa, en cualquier caso, esta actualización llegará a algún servidor que maneje actualizaciones de DNS.

  2. Este servidor de actualizaciones empuja su registro actualizado (digamos, 1.2.3.4 ) al servidor DNS " maestro " para su dominio. Este servidor DNS también es operado por lightfastdns.net . Qué tan rápido sucede: depende de cómo el proveedor de DNS diseñó su software. (Puede ser instantáneamente, y puede ser cada 24 horas. Por ejemplo, gandi.net envía actualizaciones de DNS una vez por hora). Por supuesto, nuestro lightfastdns.net lo hará instantáneamente.

  3. Este servidor DNS maestro enviará actualizaciones a los servidores DNS esclavos para el dominio example.com . Estos servidores también son operados por la misma compañía lightfastdns.net . Qué tan rápido sucede esto: con el software moderno, el maestro enviará instantáneamente un mensaje de NOTIFICACIÓN a los esclavos , e instantáneamente obtendrán el registro actualizado del maestro. con el software anterior teníamos valores de REFRESH y RETRY en el registro SOA, pero hoy en día rara vez es relevante. Por supuesto, nuestro lightfastdns.net implementa NOTIFY y las actualizaciones se propagan instantáneamente.

Lo que tenemos ahora es que todos los servidores "autorizados" para su dominio recibieron el registro actualizado ( 1.2.3.4 ). Para lightfastdns.net tomó alrededor de dos segundos.

  1. Ahora, nos trasladaremos a la casa de Ivan en Rusia, e Ivan quiere abrir " somehost.example.com " en su navegador. Si nunca abrió eso antes, su navegador no conoce la dirección, por lo que le preguntará a su sistema operativo. Pero, si visitó el sitio recientemente, la dirección aún puede almacenarse dentro del navegador, ¡y usará la dirección antigua (obsoleta)! Por cuanto tiempo ? - Depende del navegador, Google Chrome, por ejemplo, almacena registros DNS solo por hasta 60 segundos. Tenemos hasta 60 segundos de retraso . Por este hecho, diría que el cambio de DNS aún no se propagó a este navegador.

  2. En cualquier caso, después de 60 segundos, o inmediatamente, el navegador eventualmente le pedirá al sistema operativo que obtenga la dirección. Es posible que el sistema operativo ya conozca la respuesta (antigua, obsoleta) y la devuelva, en este caso, diría que el nuevo registro aún no se propagó al sistema operativo de Ivan. Cuánto tiempo almacenará el sistema operativo el valor anterior: fow sistemas operativos modernos controlados por el parámetro TTL . TTL en DNS define cuánto tiempo se puede almacenar un registro en la memoria caché. Nuestro lightfastdns.net permitió usar TTL bastante bajo: 30 segundos, por lo que obtuvimos un nuevo retraso de hasta 30 segundos, en general, 90 segundos hasta ahora.

  3. Si el sistema operativo no conoce la respuesta, o si la respuesta que sabía ahora está desactualizada por TTL, el sistema operativo le preguntará al solucionador DNS (el ISP de Ivan le asignó un solucionador DNS dns.moscow-telecom.ru ). Aquí, el registro antiguo puede almacenarse en caché hasta TTL segundos, o dns.moscow-telecom.ru puede no conocer la dirección. Obtenemos otros 30 segundos, ya que dns.moscow-telecom.ru también almacena en caché DNS por un valor no superior al TTL. Tenemos 120 segundos de retraso. Eso es lo que se llama que el nuevo registro DNS aún no se propagó a los servidores DNS de Moscow-Telecom .

  4. Si el servidor DNS del ISP no conoce la respuesta, o si la respuesta que sabía ya está obsoleta porque ha caducado TTL, dns.moscow-telecom.ru le preguntará a uno de los servidores DNS AUTORITATIVOS por ejemplo.net (¿los recuerda?). Esos obtuvieron el cambio hace aproximadamente 118 segundos, y devolverán la nueva respuesta, esta respuesta se enviará inmediatamente por cadena al solucionador DNS, al sistema operativo y al navegador de Ivan.

Por lo tanto, la propagación del registro tomó de 2 a 120 segundos, dependiendo del estado de varios cachés. TTL más largo: pueden producirse retrasos más largos.

Para completarlo, algunos ISP violan los estándares y los registros de caché durante mucho tiempo. Algunos sistemas operativos más antiguos mantuvieron registros antiguos durante mucho tiempo, y los navegadores más antiguos también. Pero para la mayoría de los usuarios funcionará como se esperaba.

Alex
fuente
Lamento mucho que haya salido así de detallado. Tal vez alguien quiera hacer una variante más corta (como respuesta por separado): de nada.
Alex
@zharvey En realidad, usted preguntó cuál es la diferencia entre dinámico y no dinámico: es 1. Qué tan rápido manejan los pasos (2) y (3) y 2. Qué tan bajo TTL le permiten establecer.
Alex
3

No. El cambio no necesita propagarse a todos los servidores DNS del mundo .

Si cambia algo y alguien consulta el registro modificado en su servidor DNS, el resultado es instantáneo.

El problema es si consultaste este nombre antes y se almacenó en caché. Luego obtendrá la IP anterior hasta que caduque el caché. En DNS, puede establecer cuánto tiempo es válida una consulta anterior, y ese período a menudo se establece en varios días. Para DynDNS, generalmente se establece más bajo, pero no todos los solucionadores de DNS lo respetan.

Hennes
fuente
Gracias @Hennes (+1) - mira mi pregunta bajo la respuesta de Oliver - ¡Tengo la misma pregunta para ti!
pnongrata