Alojo un servidor de nombres recursivo localmente, por lo que no necesito mi proveedor de servicios ni otro servidor DNS público para la resolución de nombres. Aunque las direcciones IP del servidor de nombres raíz están codificadas en el archivo de configuración (en el /etc/bind/db.root
archivo Bind), cuando ejecuto varios nslookup
comandos consecutivos para el servidor de nombres raíz .
, el campo TTL aún disminuye.
¿Por qué disminuiría el TTL cuando está codificado en el archivo de configuración?
¿Y por qué sería necesario un TTL en el nivel raíz en primer lugar cuando está codificado?
Respuesta1
Normalmente, configuraría explícitamente los servidores raíz DNS de forma similar al siguiente fragmento:
zone "." {
type hint;
file "/etc/bind/db.root";
};
Donde observes que el tipo de zona no es la común master
ni slave
sino unatipo de zona especialllamadohint
.
Cuando se inicia el servidor de nombres, solo utiliza las sugerencias de la raíz para encontrar un servidor de nombres raíz que responda y luego obtendrá la lista actual de servidores de nombres raíz desde allí. Esos son los servidores raíz que realmente se utilizarán durante la operación.
Dado que están almacenados en caché, necesitarán un TTL y, como ha observado, ese TTL disminuirá como cualquier otro registro DNS en caché.
Si no se especifica ninguna zona de sugerencias para la clase IN, el servidor utiliza un conjunto predeterminado compilado de sugerencias de servidores raíz. Fuente: el vínculoManual de referencia del administrador.
Como Brian explicó en su respuesta, la zona raíz cambia, y siempre que al menos un servidor de nombres siga siendo válido, la zona de sugerencias permite dichos cambios en los servidores de nombres raíz sin requerir que todos los servidores de nombres existentes actualicen sus archivos de configuración estática.
Respuesta2
No están codificados de forma permanente: el archivo de la zona raíz cambia con el tiempo, por lo que las entradas transmitidas a los solucionadores no se pueden configurar para que duren para siempre.
Por ejemplo, el actual se actualizó por última vez en 2014, como se muestra al inicio del archivo.aquí:
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: November 05, 2014
; related version of root zone: 2014110501
;
; formerly NS.INTERNIC.NET
;
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
Respuesta3
db.root sólo se utiliza como parte del proceso de inicio del servidor DNS para encontrar los servidores raíz actuales reales. Luego se actualizan según el TTL.