^ Se asume la siguiente situación ^
Rango de Direcciones IP: de 192.168.1.100 a 192.168.1.200 |
Mascara de Subred: 255.255.255.0 |
Servidores DNS: 202.188.0.133, 202.188.1.5 |
Dominios: tm.net.my |
Dirección de la Puerta de Enlace: 192.168.1.1 |
$ sudo aptitude install dhcp3-server $ sudo gedit /etc/default/dhcp3-server
INTERFACES=""
INTERFACES="eth0"
$ sudo gedit /etc/dhcp3/dhcpd.conf
... # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; ...
# option definitions common to all supported networks... #option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org; #default-lease-time 600; #max-lease-time 7200;
... # A slightly different configuration for an internal subnet. #subnet 10.5.5.0 netmask 255.255.255.224 { # range 10.5.5.26 10.5.5.30; # option domain-name-servers ns1.internal.example.org; # option domain-name "internal.example.org"; # option routers 10.5.5.1; # option broadcast-address 10.5.5.31; # default-lease-time 600; # max-lease-time 7200; #} ...
# A slightly different configuration for an internal subnet. subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option domain-name-servers 202.188.0.133, 202.188.1.5; option domain-name "tm.net.my"; option routers 192.168.1.1; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; }
$ sudo /etc/init.d/dhcp3-server restart
Comenzamos instalando el servidor:
$ sudo aptitude install bind9
Esto nos cambiará la configuración de nuestro fichero /etc/resolv.conf a:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.0.1
Esto hace que cada consulta de DNS que hagamos se solicite a nuestro ordenador (127.0.0.1) y nuestro servidor DNS -si no lo tiene en caché- se la haga a los servidores root y a los subsecuentes servidores hasta encontrar el host adecuado.
Ahora podemos configurar el resto de equipos de nuestra red local con este servidor DNS:
o hacer que sea nuestro servidor DHCP el que les asigne esta información:
— ColdBeer 2005/02/23 13:59
Podremos acelerar las consultas aún más de nuestro servidor DNS, haciendo que en vez de consultar a toda la rama de servidores DNS, lo haga a través de los servidores DNS de nuestro proveedor de Internet (que son más rápidos y además, también disponen de su propia caché).
Para ello sólo hemos de editar el archivo /etc/bind9/named.conf.options para que el servidor DNS sepa dónde debe ir a solicitar informaciones DNS (en los servidores DNS de nuestro proveedor de Internet o, también muy usualmente, en nuestro router, que suele conocer -mediante dhcp- los servidores DNS de nuestro proveedor de Internet y los tendrá siempre actualizados).
Para ello, editamos el archivo /etc/bind/named.conf.options:
$sudo gedit /etc/bind/named.conf
y allí descomentamos y cambiamos donde pone:
// forwarders { // 0.0.0.0; // };
por:
forwarders { 192.168.1.1; // Para mi router, que hace consultas recursivas a los DNS de mi proveedor. };
o, si sabéis las DNS de vuestro proveedor de Internet:
forwarders { 202.188.0.133; // Sustituir por las correctas de vuestro proveedor 202.188.1.5; // Sustituir por las correctas de vuestro proveedor };
Reiniciamos el servidor dns para que asuma los cambios y listo:
$ sudo /etc/init.d/bind9 restart
— ColdBeer 2005/02/23 13:55
¡¡¡OJO!!! Esto es un trabajo avanzado y requiere de conocimientos previos en el protocolo TCP/IP, así como en el sistema de resolución de nombres DNS.
Para saber más sobre el funcionamiento de DNS:
Editamos el archivo /etc/bind/named.conf.local:
$ sudo gedit /etc/bind9/named.conf.local
y añadimos al final lo siguiente (cambiando las opciones oportunas dependiendo de los nombres y direcciones correspondientes):
zone "tm.net.my" { notify no; type master; file "/etc/bind/db.tm.net.my"; };
Luego creamos el archivo de información de nuestro nuevo dominio:
$ sudo gedit /etc/bind9/db.tm.net.my
Y escribimos algo (igualmente, modificando y añadiendo lo que corresponda) similar a lo siguiente:
; ; Fichero de zona para tm.net.my ; ; El fichero de zona completo ; $TTL 3D @ IN SOA ns.tm.net.my. hostmaster.tm.net.my. ( 2005022301 ; serie, fecha de hoy + serie de hoy # 8H ; refresco, segundos 2H ; reintento, segundos 4W ; expira, segundos 1D ) ; mínimo, segundos ; NS ns ; Dirección Inet del servidor de nombres MX 10 mail.tm.net.my ; Relay de correo primario ; localhost A 127.0.0.1 ns A 192.168.1.1 server A 192.168.1.1 mail A 192.168.1.2 hermanita A 192.168.1.5
Recordatorio: Esto es sólo un ejemplo, este fichero dependerá totalmente de la configuración y servidores de que dispongamos en nuestra red, y en él podremos añadir todo tipo de registros DNS, como MX, CNAME, AAA...
Debemos reiniciar el servidor para que los cambios surtan efecto:
$ sudo /etc/init.d/bind9 restart
Y podremos ya probar la configuración:
$ nslookup server.tm.net.my Server: 127.0.0.1 Address: 127.0.0.1#53 Name: server.tm.net.my Address: 192.168.1.1
Hasta aquí hemos solventado la configuración del servidor dns para resolver los nombres de nuestro dominio y nos devuelva su dirección IP. Ahora vamos a conseguir que nos funcione también la resolución inversa. Es decir, que preguntándole por una IP nos devuelva el (o los) nombres de dominio que la poseen.
Editamos de nuevo el fichero de configuración local:
$ sudo gedit /etc/bind/named.conf.local
Y añadimos al final del fichero (nuevamente, -insisto- adaptándolo a nuestra configuración específica de red) la “zona inversa”:
zone "1.168.192.in-addr.arpa" { notify no; type master; file "/etc/bind/db.192.168.1"; };
Tendremos que crear el fichero correspondiente para la zona inversa:
$ sudo gedit /etc/bind/db.192.168.1
Y en él, escribir algo similar a:
$TTL 3D @ IN SOA ns.tm.net.my. hostmaster.tm.net.my. ( 2005022301 ; Serial, todays date + todays serial 8H ; Refresco 2H ; Reintento 4W ; Expira 1D) ; Minimo TTL NS ns.tm.net.my. 1 PTR ns.tm.net.my. 1 PTR server.tm.net.my. 2 PTR mail.tm.net.my. 5 PTR hermanita.tm.net.my.
Son muy importantes en este fichero los puntos al final de cada nombre de dominio, y volveré a insistir -hasta la saciedad- en que este fichero hay que adaptarlo a nuestras características particulares de red.
Vuelta a reiniciar y a comprobar su buen funcionamiento:
$ sudo /etc/init.d/bind9 restart Stopping domain name service: named. Starting domain name service: named. $ nslookup 192.168.1.5 Server: 127.0.0.1 Address: 127.0.0.1#53 5.1.168.192.in-addr.arpa name = hermanita.tm.net.my.
¡¡¡Perfecto!!! Nuestro servidor DNS ahora resuelve en directa e inversamente las direcciones de nuestra web.
— ColdBeer 2005/02/23 17:10
¡¡¡OJO!!! Esto es un trabajo avanzado y requiere de conocimientos previos en el protocolo TCP/IP, así como en el sistema de resolución de nombres DNS.
Para saber más sobre el funcionamiento de DNS:
En esta sección pretendemos que, además de los hosts que tenemos definidos en nuestra configuración DNS, los equipos que se autoconfiguren mediante DHCP se autoañadan automáticamente al DNS, de modo que podamos localizarlos por resolución (directa e inversa) de DNS.
Para empezar, editaremos el fichero named.conf.local:
$ sudo gedit /etc/bind/named.conf.local
Y cambiaremos las secciones:
zone "tm.net.my" { notify no; type master; file "/etc/bind/db.tm.net.my"; }; zone "1.168.192.in-addr.arpa" { notify no; type master; file "/etc/bind/db.192.168.1"; };
dejándolas de este modo:
zone "tm.net.my" { notify no; type master; allow-update{ 127.0.0.1; 192.168.1.0/24; }; file "/etc/bind/db.tm.net.my"; }; zone "1.168.192.in-addr.arpa" { notify no; type master; allow-update{ 127.0.0.1; 192.168.1.0/24; }; file "/etc/bind/db.192.168.1"; };
Y reiniciamos el servidor DNS para que coja los cambios:
$ sudo /etc/init.d/bind9 restart
Ahora haremos que el servidor DHCP pueda hacer este trabajo automáticamente. Editamos el archivo /etc/dhcp3/dhcpd.conf:
$ sudo gedit /etc/dhcp3/dhcpd.conf
Y debajo de este texto:
# The ddns-updates-style parameter controls whether or not the server will # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.)
Añadimos lo siguiente:
ddns-domainname "tm.net.my"; ddns-update-style interim; ddns-updates on; zone tm.net.my. { primary 127.0.0.1; } zone 1.168.192.in-addr.arpa. { primary 127.0.0.1; }
Y asunto terminado. Para probarlo, arrancamos algún PC de nuestra Intranet que esté configurado mediante DHCP (imaginemos que se llama “belbedere”), y en el servidor, probamos:
$ nslookup belbedere.tm.net.my Server: 127.0.0.1 Address: 127.0.0.1#53 Name: belbedere.tm.net.my Address: 192.168.1.100 $ nslookup 192.168.1.100 Server: 127.0.0.1 Address: 127.0.0.1#53 100.1.168.192.in-addr.arpa name = belbedere.tm.net.my.
OK. Todo correcto.
— ColdBeer 2005/02/23 17:26