Cómo hacer los ficheros maestros
Ejemplo 6-10∞,
Ejemplo 6-11∞,
Ejemplo 6-12∞, y
Ejemplo 6-13∞ muestran ficheros de ejemplo para un servidor de nombres de la Cervecera Virtual, localizada en vlager. Debido a la naturaleza de la red propuesta (una simple LAN), el ejemplo es muy simple también.
El fichero de caché
named.ca mostrado en
Ejemplo 6-10∞ contiene ejemplos de registros de servidores raíz. Un fichero típico de caché contiene como una docena de servidores de esta clase. Se puede obtener una lista de los servidores raíz usando la utilidad The
named.ca caché file shown in
nslookup mostrada en la siguiente sección. [[
http://es.tldp.org/Manuales-LuCAS/GARL2/garl2/x-087-2-resolv.named.html#FTN.X-087-2-FNDN03∞ [3]]]
nslookup es una estupenda utilidad para comprobar el funcionamiento de un servidor de nombres. Se puede usar interactivamente o pasándole la pregunta por la línea de órdenes. En este último caso podemos invocar la orden así:
|| $
nslookup
nombre-de-host ||
nslookup envía sus peticiones al servidor citado en
resolv.conf. Si este fichero tiene más de un servidor,
nslookup eligirá uno al azar.
El modo interactivo es mucho más interesante. No sólo sirve para buscar la IP de un nodo, sino que también podemos interrogar acerca de cualquier tipo de registro DNS y transferirnos toda la información de una zona si queremos.
Si se invoca sin argumentos,
nslookup muestra el nombre del servidor elegido y entra en modo interactivo. En el prompt
> podemos escribir cualquier nombre de dominio. Al principio preguntará sólo por registros A, es decir, obtención de la IP asociada.
Podemos elegir un tipo de registro diferente con la orden:
||
set type=tipo ||
donde
tipo es uno de los tipos de RR descritos antes, o ANY.
Veamos una posible sesión de
nslookup:
|| $
nslookup
Default Server: tao.linux.org.au
Address: 203.41.101.121
>
metalab.unc.edu
Server: tao.linux.org.au
Address: 203.41.101.121
Name: metalab.unc.edu
Address: 152.2.254.81
> ||
La salida muestra el servidor DNS interrogado y el resultado obtenido.
Si preguntamos por algo que no tiene IP asociada pero sí otros registros de otra clase, el programa nos devolverá una advertencia del tipo
No type A records found. Sin embargo, podemos usar el citado comando
set type para buscar registros de otras clases. Por ejemplo, el registro SOA de un dominio puede ser pedido así:
|| >
unc.edu
Server: tao.linux.org.au
Address: 203.41.101.121
* No address (A) records available for unc.edu
> set type=SOA
> unc.edu
Server: tao.linux.org.au
Address: 203.41.101.121
unc.edu
origin = ns.unc.edu
mail addr = host-reg.ns.unc.edu
serial = 1998111011
refresh = 14400 (4H)
retry = 3600 (1H)
expire = 1209600 (2W)
minimum ttl = 86400 (1D)
unc.edu name server = ns2.unc.edu
unc.edu name server = ncnoc.ncren.net
unc.edu name server = ns.unc.edu
ns2.unc.edu internet address = 152.2.253.100
ncnoc.ncren.net internet address = 192.101.21.1
ncnoc.ncren.net internet address = 128.109.193.1
ns.unc.edu internet address = 152.2.21.1 ||
De manera parecida, para preguntar por registros MX haremos:
|| > set type=MX
> unc.edu
Server: tao.linux.org.au
Address: 203.41.101.121
unc.edu preference = 0, mail exchanger = conga.oit.unc.edu
unc.edu preference = 10, mail exchanger = imsety.oit.unc.edu
unc.edu name server = ns.unc.edu
unc.edu name server = ns2.unc.edu
unc.edu name server = ncnoc.ncren.net
conga.oit.unc.edu internet address = 152.2.22.21
imsety.oit.unc.edu internet address = 152.2.21.99
ns.unc.edu internet address = 152.2.21.1
ns2.unc.edu internet address = 152.2.253.100
ncnoc.ncren.net internet address = 192.101.21.1
ncnoc.ncren.net internet address = 128.109.193.1 ||
Con el tipo ANY obtendremos todos los registros existentes asociados al nombre dado.
Una aplicación práctica de nslookup
, para depurar un servidor, es obtener la lista de servidores raíz. Para ello no hay más que pedir los NS del registro raíz (.):
|| > set type=NS
> .
Server: tao.linux.org.au
Address: 203.41.101.121
Non-authoritative answer:
(root) name server = A.ROOT-SERVERS.NET
(root) name server = H.ROOT-SERVERS.NET
(root) name server = B.ROOT-SERVERS.NET
(root) name server = C.ROOT-SERVERS.NET
(root) name server = D.ROOT-SERVERS.NET
(root) name server = E.ROOT-SERVERS.NET
(root) name server = I.ROOT-SERVERS.NET
(root) name server = F.ROOT-SERVERS.NET
(root) name server = G.ROOT-SERVERS.NET
(root) name server = J.ROOT-SERVERS.NET
(root) name server = K.ROOT-SERVERS.NET
(root) name server = L.ROOT-SERVERS.NET
(root) name server = M.ROOT-SERVERS.NET
Authoritative answers can be found from:
A.ROOT-SERVERS.NET internet address = 198.41.0.4
H.ROOT-SERVERS.NET internet address = 128.63.2.53
B.ROOT-SERVERS.NET internet address = 128.9.0.107
C.ROOT-SERVERS.NET internet address = 192.33.4.12
D.ROOT-SERVERS.NET internet address = 128.8.10.90
E.ROOT-SERVERS.NET internet address = 192.203.230.10
I.ROOT-SERVERS.NET internet address = 192.36.148.17
F.ROOT-SERVERS.NET internet address = 192.5.5.241
G.ROOT-SERVERS.NET internet address = 192.112.36.4
J.ROOT-SERVERS.NET internet address = 198.41.0.10
K.ROOT-SERVERS.NET internet address = 193.0.14.129
L.ROOT-SERVERS.NET internet address = 198.32.64.12
M.ROOT-SERVERS.NET internet address = 202.12.27.33 ||
Para ver el conjunto completo de comandos, podemos usar help
dentro de nslookup
.
Otras Utilidades Interesantes
Hay algunas utilidades que pueden ayudarnos en nuestro trabajo como administradores de BIND. Vamos va ver algunas de ellas. Para cualquier detalle adicional se recomienda consultar la documentación específica de dichas utilidades.
hostcvt
le ayuda con la configuración inicial de BIND convirtiendo su fichero /etc/hosts en ficheros maestros para named
. Genera tanto las entradas del mapeado directo (A) como el mapeado inverso (PTR), y toma en cuenta los alias. Por supuesto, no hará todo el trabajo por usted, así que todavía tendrá que ajustar los palores de temporización el el registro SOA, por ejemplo, a añadir registros MX. También, le puede ayudar a ahorrarse algunas aspirinas. hostcvt
es parte de las fuentes BIND, pero puede encontrase como un paquete individual en unos pocos servidores FTP.
Tras la puesta en marcha del servidor, normalmente habrá que probarla. Algunas utilidades facilitan la vida para esto. Una de ellas es dnswalk
, que está basada en Perl. La segunda es nslint
. Ambas recorren la base de datos DNS buscando errores habituales y verificando que la información que encuentran es consistente. Otras dos utilidades interesantes son host
y dig
, que vienen con el paquete BIND y pueden usarse para una inspección manual del las bases de datos.
Estas utilidades suelen venir empaquetadas. dnswalk
y nslint
están disponibles en fuentes en http://www.visi.com/~barr/dnswalk/∞ y ftp://ftp.ee.lbl.gov/nslint.tar.Z∞. En cuanto a host
y dig
, el código fuente se encuentra en ftp://ftp.nikhef.nl/pub/network/∞ y ftp://ftp.is.co.za/networking/ip/dns/dig/∞.
Notas
|| [1] || BIND 4.9 fue desarrollado por Paul Vixie, paul@vix.com, aunque actualmente lo mantiene el Consorcio de Software para Internet, en bind-bugs@isc.org. ||
|| [2] || N. del T.: Time to Live ||
|| [3] || Nótese que no podemos preguntar esto a nuestro servidor de nombres si no tenemos entradas de servidores raíz instaladas. Para evitar esto, podemos usar nslookup
para interrogar a un servidor de nombres externo, o usar como fichero de caché el mostrado en Ejemplo 6-10∞ y de ahí obtener una lista completa. ||