Vamos a explicar un detalle técnico muy importante: cómo es el sistema de DNS.
Vamos a ver en términos sencillos cómo funciona este proceso
DNS significa Domain Name Server y quiere decir Servidor de Nombres de Dominio.
Cuando nosotros queremos visitar, por ejemplo, el dominio www.ilihost.com (una empresa de hosting), nuestro PC necesita saber la dirección IP asociada a este nombre. Para obtenerla consulta con un Servidor de Nombres de Dominio.
La compañía que nos conecta a Internet no solo nos brinda la conexión física, sino que pone a disposición de nuestro PC un Servidor de Nombres de Dominio de su propiedad.
Entonces, cuando deseamos visitar www.ilihost.com, nuestro PC se conecta con el servidor de nombres de dominio de la empresa que nos conecta a Internet, y le pregunta ¿Cuál es la IP de ilihost.net?
El servidor de nombres se hará la misma pregunta, pues no tiene por qué conocer todas las IP del mundo.
Para averiguarlo,el servidor de nombres se conectará a un servidor especial llamado Root Server cuya IP está claramente definida y conocida mundialmente y le preguntará en este caso por la IP de algún servidor que guarde los registros de los dominios .net
El Root Server le entrgará dicha información al servidor de nombres y acto seguido este último se conectará con el servidor de los dominios .net. Le preguntará por la IP del dominio ilihost.net. y el servidor de los .net le responderá que el desconoce esa información, porque son muchos los dominios .net que existen, pero lo que sí conoce es el nombre de otro servidor de nombres que es el dueño del dominio ilihost.net y que él sí que conoce esa información. Ese servidor se nombre se llama ns1.ilihost.com y le entregará la direcicón IP.
Entonces, el servidor de nombres de nuestra compañía de internet se conectará a ns1.ilihost.com y le preguntará por la dirección IP de ilihost.net y ns1.ilihost.com contestará le entregará la tan anhelada respuesta.
Luego el servidor de nombres de nuestra compañía de internet le responderá a nuestro PC la dirección IP que preguntaba. Antes de pasar a otra tarea tarea dejará anotada la IP en su propia memoria, para que si le vuelven a preguntar no tenga que dar tantas vuelta para responder.
Nuestra PC por su parte, antes de mostrarnos la pagina web que queremos ver, anotará también en su memoria la IP de ilihost.net para no tener que volver a preguntar.
Elementos del archivo de zona
La zona de un dominio comienza con un record SOA (Start Of Authority) que define varios parámetros importantes para toda la zona.
Luego viene un listado de registros que están todos dentro de la zona.
Los comentarios en la zona van a partir de un punto y coma ( ; ) hasta el fin de línea.
Los registros tienen típicamente un prefijo IN (de Internet).
Registro SOA
Cada dominio tiene un descriptor global asociado, que es el registro SOA con el cual comienza la zona. Este registro tiene 7 campos asociados:
- El nombre del servidor primario
- La dirección electrónica del responsable del dominio
- Cinco valores numéricos que definen diversos valores y limites de tiempo (en segundos) del dominio.
Estos valores pueden generar mayor o menor tráfico y también demorar más o menos los cambios en propagarse por la Internet. Con algunos valores patológicos, también pueden generar errores como expiración del dominio.
Los campos son:
* Serial
Este número corresponde a la versión del archivo. La idea es que sea monótonamente creciente. Cada vez que se hace un cambio, debe incrementarse este número, lo que indica a los secundarios que es hora de copiar una nueva versión desde el primario. Una buena idea es mantener la fecha codificada en ese número. Para ser tolerante al año 2000, sugerimos una codificación: AAAAMMDDHH (año,mes,día,hora) que además permite ver cuánto se demoran los secundarios en tener una nueva versión y saber cuando se hizo un cambio.
* refresh
Este número indica cada cuanto tiempo (en segundos) los secundarios deben chequear con el primario si el serial ha cambiado. Esto define a qué velocidad se difunden los cambios del dominio.
* retry
Si en un secundario, el chequeo con el primario no se pudo hacer (error de conectividad u otro), este contador indica cada cuanto hay que reintentarlo.
* expire
Si un secundario no logra contactarse más con el primario, sigue respondiendo con autoridad por el dominio durante todo este intervalo (en segundos). Es muy importante que este valor sea alto, puesto que una vez que se sobrepasa, el secundario da la zona por expirada y no responde más por ella. Esto puede generar errores del tipo «host not found» que son más graves que errores de conectividad. Por ejemplo, el mail se devuelve con un error, en vez de encolarse en espera que el servidor vuelva.
* Minimum ttl
Este valor indica cuanto tiempo un servidor cualquiera (no primario ni secundario) puede recordar la información de esta zona y responder (sin autoridad) con ella a sus clientes. Es razonable que sea alto, pero no tanto porque retrasa las modificaciones en difundirse en todas partes (pero sólo afecta la modificación y la eliminación de campos, el agregar información se difunde según el valor del refresh).