1%% LyX 1.1 created this file.  For more info, see http://www.lyx.org/.
2%% Do not edit unless you really know what you are doing.
3\documentclass{article}
4\usepackage[spanish]{babel}
5\usepackage[T1]{fontenc}
6\usepackage[latin1]{inputenc}
7\usepackage{graphicx}
8\setlength\parskip{\medskipamount}
9\setlength\parindent{0pt}
10
11\makeatletter
12
13%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
14\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
15\addto\extrasspanish{\bbl@deactivate{~}}
16
17%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
18\usepackage{hyperlatex}
19\htmltitle{Jorge Leon}
20\htmladdress{\xlink{Georg Lehner}{mailto:Jorge.Lehner@gmx.net} - \xlink{homepage}{/\~{}jorge}}
21\htmldirectory{html}
22\htmlname{dns_intro}
23
24\makeatother
25\begin{document}
26
27\title{Domain Name Service}
28
29
30\date{24 de Febrero del 2002}
31
32
33\author{Georg Lehner}
34
35\maketitle
36\abstract{
37El servicio primario para el funcionamiento de INTERNET es el Domain
38Name Service. Este documento resume de forma breve su funcionamiento
39y da algunas referencias a otra informaci�n
40}
41
42\section{Qu� es DNS}
43
44Cada computadora conectada a Internet tiene (al menos) un n�mero de
45identificaci�n asociado: su \emph{n�mero IP}. En todo Internet no
46se repite un n�mero en diferentes computadoras.
47
48Cada computadora tiene (generalmente) un nombre. Grupos de computadoras
49est�n organizados en \emph{dominios} lo que permite que diferentes
50computadora tengan el mismo nombre, siempre y cuando se encuentran
51en diferentes dominios. El nombre calificado \emph{(fully qualified
52domain name~--~fqdn}) \emph{}de una computadora es la concatenaci�n
53del nombre con el dominio, mediante un punto '.' de separaci�n, ejemplo:
54puma.felinos.net = computadora puma, dominio felinos.net
55
56Existe una base de datos distribuida en Internet, de la cual se puede
57obtener el n�mero IP de una computadora de la cual se conoce el fqdn
58mediante un \emph{query}; este tipo de query se llama \emph{forward
59resolution} (resoluci�n de nombre directo). Teniendo un n�mero IP
60se puede obtener el fqdn de la computadora correspondiente mediante
61un \emph{reverse query} (resoluci�n inversa).
62
63Es responsabilidad de la administraci�n de un dominio proveer este
64servicio de resoluci�n de nombres para las computadoras conectados.
65Esto involucra dos tareas: instalaci�n de servidores de nombres y
66actualizaci�n constante de los registros de nombres en el dominio
67administrado.
68
69Una buena administraci�n del DNS puede hacer m�s fiable y eficiente
70el funcionamiento del dominio. Muchas veces esto tambi�n involucra
71tareas de configuraci�n de las computadoras clientes del dominio.
72
73
74\section{Una base de datos distribuida}
75
76En el dibujo \ref{domain_fig} apreciamos la vista a dos dominios
77(ficticios) de Internet. Cada computadora tiene un nombre y un n�mero
78IP asignado. Por m�s conveniencia, todas las computadoras en una red
79f�sica utilizan n�meros de un grupo com�n: 12.206.3.{[}0\ldots{}255{]}
80corresponde al dominio felinos.net, 97.3.3.{[}0\ldots{}255{]} a mujeres.org,
81y por ende 198.27.37.{[}0\ldots{}255{]} a ispex.com.
82\begin{figure}
83\label{domain_fig}\resizebox*{0.8\textwidth}{!}{Some missing figure}
84\end{figure}
85En la figura \ref{dns_fig} observamos de forma esquem�tica la agrupaci�n
86de la informaci�n sobre un dominio en una tabla, manejado por una
87computadora, el servidor DNS.
88\begin{figure}
89\label{dns_fig}\resizebox*{0.8\textwidth}{!}{Some other missing figure}
90\end{figure}
91En vez de crear una tabla completa de todos los n�meros de todas las
92computadoras que podr�an estar conectados a Internet y manejar esta
93tabla inmensa en todas las computadoras se manejan tablas de los {}``vecinos
94cercanos'', que de todas formas se requieren m�s frecuentemente.
95Para obtener la informaci�n sobre computadoras remotas se establece
96un sistema de b�squeda jer�rquica explicados m�s adelante.
97
98El n�mero de computadoras en un dominio puede ser grande, y con ello
99la frecuencia de consultas que se hacen al servidor de base de datos
100que maneja la tabla para el dominio. Esto puede causar un retraso
101significativo en el acceso a la red. Para aliviar esta situaci�n,
102se maneja la informaci�n sobre nombres y n�meros IP en uno o varios
103cach�s. El cach� realiza la b�squeda correspondiente a una consulta
104hecha por un cliente y entrega el resultado, pero a la vez guarda
105el resultado localmente en memoria o en el disco duro. Si se repite
106la misma consulta ya no se realiza una b�squeda en las tablas {}``oficiales'',
107sino se entrega el resultado guardado. El problema de un cach� es,
108que su informaci�n puede hacerse obsoleta: una computadora puede desaparecer,
109cambiar su nombre o su n�mero IP. Por esto cada resultado grabado
110contiene un tiempo de expiraci�n (TTL - Time To Live), despu�s del
111cual est� descartado de la memoria del cach�, una subsiguiente consulta
112del dato resulta en una b�squeda en los Servidores DNS y por lo tanto
113(ojal�) en una respuesta aut�ntica. El programa cach� puede ser instalado
114en todas las computadoras (�ptimo), o puede instalarse solo en alguna(s),
115las cuales entonces sirven dentro de un dominio como la fuente de
116informaci�n DNS: son los servidores de nombre del dominio, o \emph{nameserver}.
117
118
119\subsection{Jerarqu�a de la base de datos distribuida}
120
121Una serie de servidores root (por redundancia no es solo uno) manejan
122\emph{delegaciones} de dominios, que son listas de cuales Servidores
123DNS manejan cual dominio. Estos Servidores pueden delegar a su vez
124la resoluci�n de nombres de sub-dominios a Servidores DNS subordinados.
125
126
127\begin{figure}
128\resizebox*{0.8\textwidth}{!}{Another missing figure} \label{root_server}
129\end{figure}
130En la figura \ref{root_server} solamente se muestra la delegaci�n
131de un (1) servidor ra�z (root server) en la parte izquierda arriba,
132todas las flechas s�lidas que indican la delegaci�n a los dominios
133primarios, tienen que duplicarse en cada uno de los servidores ra�z
134(puntos negros conectados con una l�nea punteada). Se puede apreciar
135entonces, que el tiempo de respuesta del DNS se mejora, ya que cualquier
136consulta a los servidores root en promedio toma la v�a de acceso media
137en la red global.
138
139Regresando a la imagen \ref{dns_fig} podemos ver dos v�as que caracterizan
140el sistema DNS: La distribuci�n jer�rquica de los servidores DNS que
141garantiza (te�ricamente) que todos los datos pueden ser encontrados,
142aunque recursivamente (l�neas punteadas), y la jerarqu�a de b�squeda
143de los nameserver (cach�s), que forman {}``ventanas restringidas''
144pero adaptables a la base de datos completa (l�neas s�lidas). Los
145cach�s son cercanos a la computadora cliente, y pueden ascender de
146un cach� al siguiente hacia {}``arriba''. Si encuentran la respuesta
147en alg�n cach� superior en el camino, no necesitan recurrir al servidor
148root.
149
150
151\section{Escenarios comunes}
152
153La pr�ctica com�n en Internet es configuraci�n minimista, deficiente
154y arcaica, por lo que muchos administradores no est�n en conocimiento
155de la pr�ctica �ptima (best practice). Software popular de clientes
156y servidores DNS se adapta a las pr�cticas deficientes y dificulta
157as� el uso eficiente y la divulgaci�n de la pr�ctica �ptima.
158
159Estoy tratando de resumir en esta secci�n \emph{best} \emph{practice}
160para algunos casos comunes (NO para todas las situaciones), lo que
161no concuerda necesariamente con la experiencia de lectores experimentados
162en Internet. En corto: Lo presentado es solo mi punto de vista, nada
163mas.
164
165T�rminos usados:
166
167\begin{description}
168\item [Cach�~local]un programa que consulta la base de datos DNS a solicitud
169de un programa cliente en la computadora local, le retorna el resultado
170requerido o una respuesta negativa, y memoriza la respuesta durante
171un cierto tiempo para acelerar futuros queries sobre la misma computadora
172\item [Cach�~externo]realiza la misma funci�n como un cach� local, pero
173tambi�n acepta queries de programas clientes en computadoras remotas.
174\item [Servidor~DNS]un programa que maneja una parte de la base de datos
175DNS y que acepta queries de clientes locales o remotos, pero solo
176contesta queries para los cuales tiene un registro disponible.
177\item [Servidor~DNS~local]solo acepta queries desde la computadora local,
178normalmente desde un cache local o externo.
179\item [Servidor~DNS~externo]acepta queries desde computadoras remotas.
180\item [LAN/Red~privada]una red, en la cual se utilizan n�meros IP reservados
181para crear dominios en redes aislados. Estos n�meros no se utilizan
182en Internet, y pueden re-utilizarse en diferentes redes f�sicas. Estas
183redes y los n�meros IP se denominan \emph{redes} \emph{privadas}.
184\end{description}
185
186\subsection{Configuraci�n de computadora cliente}
187
188\begin{description}
189\item [Sistemas~Operativos~Unix]configurar un cach� local
190\item [Otros]utilizan cach�s externos (remotos)
191\end{description}
192En ambos casos se configura uno o m�s n�meros de cach�s o servidores
193remotos (\emph{nameserver}) a los cuales se env�an queries.
194
195En muchos sistemas Unix es com�n seguir tambi�n la segunda pr�ctica.
196
197
198\subsection{LAN sin conexi�n externa}
199
200\label{LAN_sin_conext}
201
202Configuraci�n de un servidor DNS externo en una o mas computadoras
203en la LAN.
204
205Opcional:
206
207Configuraci�n de uno o varios servidores DNS locales y en la misma
208computadora un cache externo, que env�a sus queries al servidor local
209y a los otros caches externos.
210
211
212\subsection{LAN con conexi�n externa}
213
214Es como la configuraci�n opcional en \ref{LAN_sin_conext}. Los cach�s
215externos adem�s de enviar queries a los servidores de la LAN env�an
216queries a cach�s externos.
217
218Este escenario en muchos casos es reducido de tal forma, que todos
219los clientes locales de la LAN utilizan uno o varios cach�s externos.
220
221
222\subsection{Dominio p�blico}
223
224\label{dominio_publico}
225
226Configuraci�n de uno o varios servidores DNS externos. Estos son consultados
227por cach�s de dominios remotos sobre registros del dominio.
228
229Configuraci�n de uno o varios caches externos, estos son consultados
230por computadoras del mismo dominio.
231
232
233\subsection{Dominio p�blico asegurado}
234
235La pr�ctica com�n es, seccionar el dominio en una parte con contacto
236directo al Internet, incluyendo un gateway (pasarela) que contacta
237con una parte {}``interna'' del dominio. El gateway restringe el
238acceso de computadoras de dominios remotos a las computadoras {}``internas''
239realizando as� la funci�n de un \emph{firewall}.
240
241La configuraci�n del DNS es id�ntico a \ref{dominio_publico}, con
242la salvedad que los servidores y uno o m�s cach�s externos est�n detr�s
243del firewall en la parte {}``interna''. El firewall permite a todos
244los clientes, internos o del Internet remoto acceso a los cach�s externos.
245
246
247\section{Redundancia}
248
249Hay b�sicamente dos razones por los cuales se introducen servidores
250de bases de datos redundantes:
251
252\begin{itemize}
253\item Si uno de ellos falla, uno de los servidores redundantes puede asumir
254el servicio y
255\item Se puede distribuir la carga de solicitudes a dos o m�s servidores
256y de esta manera acelerar el acceso de los clientes a la informaci�n
257requerida.
258\end{itemize}
259La parte negativa de la redundancia es, que hay que mantener copias
260id�nticas de la informaci�n en todo servidor redundante. Este corresponde
261a mayor trabajo administrativo y riesgo adicional de fallas.
262
263La mejor pr�ctica es, utilizar un mecanismo automatizado para la actualiqzaci�n
264de un dominio, e incluir en este la duplicaci�n de los datos en los
265servidores secundarios con cada cambio realizado.
266
267La transferencia de los archivos necesarios debe hacerse con un programa
268que no permite la modificaci�n involuntaria de su contenido - ejemplo:
269ssh. Para minimizar la cantidad de informaci�n transferida se puede
270usar un programa de compresi�n y/o transferencia diferential, ejemplo:
271rsync. En una sola frase:
272
273rsync bajo ssh es actualmente la mejor forma de actualizar datos remotos
274de manera confiable.
275
276Tradicionalmente se realiza esta duplicaci�n mediante {}``transferencias
277de zonas'' (zone transfer) a trav�s de un protocolo que es parte
278del sistema DNS. Este protocolo no es eficiente ni confiable.
279
280
281\section{BIND, djbdns y otro(s)}
282
283El programa {}``oficial'' para el servicio DNS en Internet es BIND
284- Berkeley Internet Name Daemon. BIND combina la funci�n de servidor
285y cach� en un solo programa. En toda la historia de su desarrollo
286se han visto problemas de seguridad y problemas de fiabilidad.
287
288Dan Bernstein es el autor del paquete de programas djbdns, que son
289optimizados en seguridad, velocidad y fiabilidad. djbdns separa las
290tareas de servidor DNS y cach� (nameserver) en diferentes programas.
291La configuraci�n de djbdns es completamente diferente a la de BIND
292y requiere aprendizaje desde cero, una desventaja para administradores
293que conocen este primer programa bien.
294
295Existe por lo menos otra alternativa: maradns que provee tambi�n un
296servidor DNS dise�ado para seguridad.
297
298
299\section{Referencias}
300
301Existe una gran cantidad de literatura en papel y en forma electr�nica
302sobre DNS. Para la documentaci�n oficial de BIND recomiendo visitar
303las p�ginas Web de los servidores sam.uni.edu.ni, magma.com.ni, loghog.uni.edu.ni
304y visitar el directorio doc/bind-doc.
305
306La p�gina Web de Daniel Bernstein, que tiene una excelente y compacta
307discusi�n de \xlink{DNS, BIND y sus problemas se encuentra en }{http://cr.yp.to/djbdns.html}
308junto con mucha otra informaci�n valiosa.
309
310\xlink{Linux-Howtos}{http://www.linuxdoc.org/HOWTO/DNS-HOWTO.html}
311(tambi�n en los servidores arriba mencionados en doc/HOWTO/)
312
313\xlink{http://axs.org/\~{}cp/DNS.html}{http://axs.org/\~{}cp/DNS.html}
314
315\xlink{http://www.dns.net/dnsrd/docs/ }{http://www.dns.net/dnsrd/docs/}
316
317\xlink{http://www.psionic.com/}{http://www.psionic.com/}
318
319
320\section{Copias y Legalidades}
321
322Georg Lehner mantiene los derechos de autor de este documento, bajo
323la Licencia Publica de Documentaci�n. Cabe se�alar, que pr�cticamente
324toda la informaci�n brindada aqu� es extra�da de fuentes externos,
325como los creadores de Internet y las personas que lo siguen desarrollando.
326Newton dec�a {}``Si veo lejos es, porque estoy sentado en los hombros
327de gigantes.
328
329El documento fue elaborado durante una asesor�a para la Universidad
330Nacional de Ingenier�a y el proyecto ICT financiado por SIDA - Suecia,
331y forma parte de la documentaci�n elaborado a fin de proveer informaci�n
332y formaci�n b�sica a todo el equipo de trabajo y al grupo meta involucrado.
333
334Puede bajarlo en formato \xlink{PDF (Acrobat) aqu�}{dns_intro.pdf},
335o en formato html empacado en \xlink{un archivo zip}{dns_intro.zip}.
336\end{document}
337