1. UNIVERSIDAD TÉCNICA DE AMBATO
Facultad de Ciencias Humanas y de la Educación
Carrera de Docencia en Informática
Estudiante: Freddy Salazar
DNS
Es una base de datos distribuida, con información que se usa para traducir los nombres de
dominio, fáciles de recordar y usar por las personas, en números de protocolo de Internet (IP) que
es la forma en la que las máquinas pueden encontrarse en Internet.
Componentes
Para la operación práctica del sistema DNS se utilizan tres componentes principales:
Los Clientes DNS: Un programa cliente DNS que se ejecuta en la computadora del usuario y que
genera peticiones DNS de resolución de nombres a un servidor DNS (Por ejemplo: ¿Qué dirección
IP corresponde a nombre.dominio?);
Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores recursivos tienen
la capacidad de reenviar la petición a otro servidor si no disponen de la dirección solicitada.
Y las Zonas de autoridad, porciones del espacio de nombres de dominio que almacenan los datos.
Cada zona de autoridad abarca al menos un dominio y posiblemente sus subdominios, si estos
últimos no son delegados a otras zonas de autoridad.
DNS en el mundo real
Los usuarios generalmente no se comunican directamente con el servidor DNS: la resolución de
nombres se hace de forma transparente por las aplicaciones del cliente (por ejemplo,
navegadores, clientes de correo y otras aplicaciones que usan Internet). Al realizar una petición
que requiere una búsqueda de DNS, la petición se envía al servidor DNS local del sistema
operativo. El sistema operativo, antes de establecer alguna comunicación, comprueba si la
respuesta se encuentra en la memoria caché. En el caso de que no se encuentre, la petición se
enviará a uno o más servidores DNS.
La mayoría de usuarios domésticos utilizan como servidor DNS el proporcionado por el proveedor
de servicios de Internet. La dirección de estos servidores puede ser configurada de forma manual
o automática mediante DHCP. En otros casos, los administradores de red tienen configurados sus
propios servidores DNS.
2. En cualquier caso, los servidores DNS que reciben la petición, buscan en primer lugar si disponen
de la respuesta en la memoria caché. Si es así, sirven la respuesta; en caso contrario, iniciarían la
búsqueda de manera recursiva. Una vez encontrada la respuesta, el servidor DNS guardará el
resultado en su memoria caché para futuros usos y devuelve el resultado.
Jerarquía DNS
El espacio de nombres de dominio tiene una estructura arborescente. Las hojas y los nodos del
árbol se utilizan como etiquetas de los medios. Un nombre de dominio completo de un objeto
consiste en la concatenación de todas las etiquetas de un camino. Las etiquetas son cadenas
alfanuméricas (con '-' como único símbolo permitido), deben contar con al menos un carácter y un
máximo de 63 caracteres de longitud, y deberá comenzar con una letra (y no con '-') (ver la RFC
1035, sección "2.3.1. Preferencia nombre de la sintaxis "). Las etiquetas individuales están
separadas por puntos. Un nombre de dominio termina con un punto (aunque este último punto
generalmente se omite, ya que es puramente formal). Un FQDN correcto (también llamado
FullyQualifiedDomainName), es por ejemplo este: www.example.com. (Incluyendo el punto al
final)
Un nombre de dominio debe incluir todos los puntos y tiene una longitud máxima de 255
caracteres.
Funcionamiento del protocolo DNS
Las máquinas de Internet están identificadas por direcciones IP, que constan de 32 bits, aunque
habitualmente se representan en un formato más sencillo de manejar para los humanos, que es el
de cuatro números decimales separados por puntos. En realidad no hay una dirección IP por cada
máquina de Internet, sino una (o más) por cada "punto de acceso a red", o interfaz de red: por
ejemplo un router o encaminador tiene varias tarjetas de red, y asociada a cada una de ellas tiene
una dirección IP. Por ejemplo, veamos la dirección IP de nuestro servidor:
Dirección IP (dotted-decimal): 66.227.74.170
3. Dirección IP (binario): 01000010 .11100011 .01001010 . 10101010
Sin embargo las direcciones IP en el formato llamado dotted-decimal no son lo bastante
convenientes de cara a los usuarios. Una dirección IP no nos permite identificar la empresa,
organismo o particular a quién pertenece de manera automática, y se hace tremendamente difícil
recordar la dirección asociada a cada usuario o empresa. Las personas somos bastante mejores
recordando nombres que números, especialmente si el nombre en cuestión guarda relación
directa con la temática que se trata en dicha dirección.
Pues bien, en su concepción original el sistema y protocolo DNS se pensó como una base de datos
que asociara las direcciones IP en Internet con nombres textuales fáciles de recordar para las
personas. Cuando un usuario quisiera referirse a una máquina de Internet, usaría su nombre, e
internamente el sistema DNS se encargaría de averiguar la direccón IP asociada, que es el dato que
utilizan los protocolos de red para establecer la comunicación con el extremo remoto. Para el
usuario es mucho más sencillo y fácil de recordar que www.24x7linux.com es una página web que
trata de Linux, que no la dirección 66.227.74.170.
Sin embargo el DNS dispone de más información que las equivalencias entre cada nombre de
máquina y su dirección IP en Internet. En ocasiones resulta necesario poder averiguar el nombre
de una máquina a partir de su dirección IP (por ejemplo, en los log de muchos programas sólo
aparecen direcciones IP, no nombres de máquina), y DNS también permite averiguar esta
información. Y por ejemplo, cuando enviamos un correo electrónico debemos averiguar cuál es la
dirección del servidor de correo del destinatario a partir de la dirección de correo del destinatario:
el DNS también se encarga de almacenar y proporcionar esta información.
Piense ahora por un momento el tamaño que puede tener esta base de datos llamada DNS,
encargada de albergar las equivalencias de nombres de máquina a dirección IP. Teniendo en
cuenta que Internet cuenta con varios cientos de millones de máquinas, y que para máquina
puede haber varias equivalencias almacenadas, puede suponer que dicha base de datos es
tremendamente grande. Pero el problema no es ya el tamaño de la base de datos (en empresas
grandes no es extraño tener bases de datos cuyos tamaños se miden en terabytes), sino el
volumen de peticiones que recibe a lo largo del día. Por cada página web que visita se generan
posiblemente varias consultas al DNS, así como para cada correo enviado, o cualquier otra
actividad en Internet.
Suponiendo que en Internet existen aproximadamente unos 500 millones de máquinas y que cada
una de ellas realiza de media 200 consultas diarias al DNS (la media seguro que es muy superior)
se obtiene un número de, como mínimo mil millones de consultas diarias, lo que se traduce en
más de un millón de ellas por segundo.
4. Resulta evidente que por razones de escalabilidad y para evitar un único punto de fallo la base de
datos del DNS está distribuida a lo largo y ancho de Internet. En realidad el DNS consiste en una
gran base de datos distribuida y jerárquica, donde cada servidor almacena sólo una pequeña parte
del total de los datos. Cada una de estas partes está hospedada en un servidor DNS, que sólo
conoce los servidores de nivel inferior, y que no requiere de ninguna autorización previa por parte
del servidor de nivel inmediatamente superior para hacer cambios en su configuración.
Esta característica por la cual un servidor puede delegar la gestión de parte de su espacio de
nombres a otro servidor diferente y del que sólo necesita saber la dirección IP que usar para llegar
a él, dejando que el resto de las modificaciones sean responsabilidad del administrador del
servidor de nivel inferior es el que proporciona una gran escalabilidad a la base de datos
distribuída que es DNS.
El esquema que se muestra en la figura siguiente expone los conceptos mencionados de manera
gráfica. En dicho esquema los tres niveles superiores representan servidores DNS mientras que el
nivel inferior representa máquinas cualquiera de Internet. Las líneas que unen unos servidores con
otros y con las máquinas de Internet muestran la relación existente entre las citadas máquinas,
que siempre es desde un nivel a uno situado por debajo.
Tipos de servidores DNS
Preferidos: Guardan los datos de un espacio de nombres en sus ficheros
Alternativos: Obtienen los datos de los servidores primarios a través de una transferencia de zona.
Locales o caché: Funcionan con el mismo software, pero no contienen la base de datos para la
resolución de nombres. Cuando se les realiza una consulta, estos a su vez consultan a los
5. servidores secundarios, almacenando la respuesta en su base de datos para agilizar la repetición
de estas peticiones en el futuro continuo o libre.
Existen dos tipos de consultas que un cliente puede hacer a un servidor DNS:
Iterativa
Las resoluciones iterativas consisten en la respuesta completa que el servidor de nombres pueda
dar. El servidor de nombres consulta sus datos locales (incluyendo su caché) buscando los datos
solicitados. El servidor encargado de hacer la resolución realiza iterativamente preguntas a a los
diferentes DNS de la jerarquía asociada al nombre que se desea resolver, hasta descender en ella
hasta la máquina que contiene la zona autoritativa para el nombre que se desea resolver.
Recursiva
En las resoluciones recursivas, el servidor no tiene la información en sus datos locales, por lo que
busca y se pone en contacto con un servidor DNS raíz, y en caso de ser necesario repite el mismo
proceso básico (consultar a un servidor remoto y seguir a la siguiente referencia) hasta que
obtiene la mejor respuesta a la pregunta.