¿Cómo instalar un Servidor DHCP para asignar direcciones IP automáticamente?

By 9 de agosto de 2006 Linux, Ubuntu No Comments

ubuntu for robots

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

  • Busca esta linea …
INTERFACES=""
  • Sustituyela con la siguiente linea
INTERFACES="eth0"
  • Guarda el fichero editado (Ejemplo)
$ sudo gedit /etc/dhcp3/dhcpd.conf
  • Busca esta sección
...# 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;

...
  • Sustituye por las líneas siguientes
# 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;
  • Busca esta sección
...# 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;

#}

...
  • Sustituye por las líneas siguientes
# 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;

}
  • Guarda el fichero editado (Ejemplo)
$ sudo /etc/init.d/dhcp3-server restart

¿Cómo instalar un servidor DNS de sólo cacheo?

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

¿Cómo acelerar las consultas de nuestro servidor DNS?

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

¿Cómo configurar nuestro propio dominio DNS local?

¡¡¡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.myServer:         127.0.0.1

Address:        127.0.0.1#53Name:   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 [email protected]       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 restartStopping domain name service: named.

Starting domain name service: named.

$ nslookup 192.168.1.5

Server:         127.0.0.1

Address:        127.0.0.1#535.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

Actualizar automáticamente el DNS con el DHCP

¡¡¡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.myServer:         127.0.0.1

Address:        127.0.0.1#53Name:   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 😉

Leave a Reply

Your email address will not be published.