Página siguiente Página anterior Índice general

4.1 Pero primero algo de teoría a secas

Antes de nada: ¿Has leído todo lo anterior? Tienes que hacerlo.

Antes de comenzar realmente con esta sección, voy a dar un poco de teoría sobre cómo funciona DNS. Y lo va a leer porque será mejor para ti. Si no quieres, al menos deberías echar un vistazo rápido. Deja el repaso cuando sepas lo que debes incluir en tu fichero named.conf.

El DNS es un sistema jerárquico, un sistema con estructura de árbol. La raíz se escribe como `.' y se denomina `root' como es habitual para estructuras en árbol. Debajo hay cierto número de Dominios de Nivel Superior (Top Level Domains, TLDs), los más conocidos son ORG, COM, EDU y NET, pero hay muchos más. Como en un árbol, tiene raíz y ramas. Si tienes una base de informática puedes reconocer DNS como un árbol de búsqueda, y podrás buscar nodos. Los puntos son nodos, los extremos están en los nombres.

Cuando se busca una máquina, la pregunta procede recursivamente en la jerarquía comenzando desde la raíz. Si quieres localizar la dirección de prep.ai.mit.edu, tu servidor de nombres tiene que empezar preguntando en algún sitio. Comienza mirando e el cache. Si sabe la respuesta, por tenerla en el cache de antes, responderá de la misma forma que vimos en la última sección. Si no lo conoce eliminará partes del nombre comenzando por la izquierda, comprobando si sabe algo de ai.mit.edu., después mit.edu., después edu. y si no, lo que conoce de . es lo que tiene el fichero "hints". Entonces preguntará al servidor . sobre prep.ai.mit.edu. Este servidor . desconoce la respuesta, pero ayudará a tu servidor a encontrar el camino dando la referencia sobre donde buscar. Estas referencias, le dirigen al servidor de nombres que conoce la respuesta. Ilustramos eso ahora. +norec significa que dig está preguntando consultas no recursivas para que la obtengamos nosotros mismos. La otras opciones son para reducir lo que dig genera para no obtener muchas páginas.

$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu.
;; res options: init defnam dnsrch
;; got answer:
; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; AUTHORITY SECTION:
.                       5d23h48m47s IN NS  I.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  E.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  D.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  A.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  H.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  C.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  G.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  F.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  B.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  J.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  K.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  L.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  M.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
I.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.36.148.17
E.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.203.230.10
D.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.8.10.90
A.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.41.0.4
H.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.63.2.53
C.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.33.4.12
G.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.112.36.4
F.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.5.5.241
B.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.9.0.107
J.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.41.0.10
K.ROOT-SERVERS.NET.     6d23h48m47s IN A  193.0.14.129
L.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.32.64.12
M.ROOT-SERVERS.NET.     6d23h48m47s IN A  202.12.27.33

Esto es una referencia. Nos devuelve una "Authority section" sólo, no "Answer section". Nuestro propio servidor de nombres nos envía a un servidor de nombres. Toma uno al azar.

$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu. @H.ROOT-SERVERS.NET.
; (1 server found)
;; res options: init defnam dnsrch
;; got answer:
; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 3
;; AUTHORITY SECTION:
MIT.EDU.                2D IN NS        BITSY.MIT.EDU.
MIT.EDU.                2D IN NS        STRAWB.MIT.EDU.
MIT.EDU.                2D IN NS        W20NS.MIT.EDU.

;; ADDITIONAL SECTION:
BITSY.MIT.EDU.          2D IN A         18.72.0.3
STRAWB.MIT.EDU.         2D IN A         18.71.0.151
W20NS.MIT.EDU.          2D IN A         18.70.0.160

Esto nos envía a los servidores de MIT.EDU de una vez. De nuevo toma uno al azar.

$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu. @bitsy.mit.edu
; (1 server found)
;; res options: init defnam dnsrch
;; got answer:
; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; ANSWER SECTION:
prep.ai.mit.edu.        3h50m7s IN A    198.186.203.18

;; AUTHORITY SECTION:
AI.MIT.EDU.             6H IN NS        FEDEX.AI.MIT.EDU.
AI.MIT.EDU.             6H IN NS        LIFE.AI.MIT.EDU.
AI.MIT.EDU.             6H IN NS        ALPHA-BITS.AI.MIT.EDU.
AI.MIT.EDU.             6H IN NS        BEET-CHEX.AI.MIT.EDU.

;; ADDITIONAL SECTION:
FEDEX.AI.MIT.EDU.       6H IN A         192.148.252.43
LIFE.AI.MIT.EDU.        6H IN A         128.52.32.80
ALPHA-BITS.AI.MIT.EDU.  6H IN A         128.52.32.5
BEET-CHEX.AI.MIT.EDU.   6H IN A         128.52.32.22

También hay un bonito truco para máquinas con módem usando forwarders, se describe en la sección PUF.

Reinicia tu servidor de nombres y compruébalo con dig. Debería funcionar bien.


Página siguiente Página anterior Índice general