====== DHCP3-Server How-to ======
===== Situación =====
^ Servidor | fastfoot-ng.locolandia.net |
^ Red IP | 192.168.23.0/24 |
^ Pasarela | 192.168.23.23 |
^ Dominio | locolandia.net |
^ Interfaz | eth1 |
^ DDNS | 192.168.23.23 |
^ IPs Dinámicas | 192.168.23.100-200 |
===== Instalación =====
Necesitamos instalar el servidor [[wp>dhcp]] para poder ofrecer las direcciones IP a los clientes DHCP y así no tener quebraderos de cabeza... para ello utilizaremos [[http://www.isc.org/sw/dhcp/|ISC DHCP Server 3]], y para instalarlo con apt-get.
usuario@maquina:~$ sudo apt-get install dhcp3-server
===== Configuración Básica =====
La configuración que aqui se muestra esta orientada a una red con un servidor principal, que actúa de router, [[wp>dns]], [[wp>wins]], ... Preparado para redes donde los clientes se conectan y desconectan sin control de acceso, por lo que pasamos una serie de parámetros para asegurar las configuraciones de red de los clientes.
Basicamente, el fichero de configuración es ''/etc/dhcp3/dhcpd.conf''
server-identifier fastfoot-ng.locolandia.net;
authoritative;
log-facility local7;
subnet 192.168.23.0 netmask 255.255.255.0 {
one-lease-per-client on;
default-lease-time 600;
max-lease-time 7200;
option domain-name "locolandia.net";
option domain-name-servers 192.168.23.23;
range 192.168.23.100 192.168.23.200;
option routers 192.168.23.23;
option broadcast-address 192.168.23.255;
option netbios-name-servers 192.168.23.23;
server-name "fastfoot-ng";
option netbios-node-type 8;
option www-server 192.168.23.23;
option smtp-server 192.168.23.23;
option pop-server 192.168.23.23;
option ip-forwarding off;
}
===== Configuración PXE =====
Si queremos arranque por red, por ejemplo para lanzar la instalación de Ubuntu por [[wp>Preboot_Execution_Environment|PXE]] o [[wp>bootp]], es necesario añadir una serie de parámetros en la subnet o host en la que queramos añadir el soporte para PXE en ''/etc/dhcp3/dhcpd.conf''
allow booting;
allow bootp;
filename="pxelinux.0";
next-server 192.168.23.23;
Tenemos que acordarnos de activar el servicio [[wp>TFTP]] en el equipo configurado como **''next-server''**((En nuestro caso Next-Server, el servidor TFTP, es 192.168.23.23, pero puede ser distinto)), para que sirva el fichero **''pxelinux.0''**((Se especifica con la opción filename)) como fichero para arrancar el Sistema Operativo en la máquina a través de la red.
===== Configuración DDNS =====
Si queremos que ''dhcp3-server'' utilize [[wp>DDNS]] y actualize alguna zona DNS utilizando [[http://www.isc.org/sw/bind/|BIND9]] como servidor de nombres, es necesario copiar el fichero con la clave [[wp>Rndc|RNDC]] al directorio con la configuración del servidor DHCP, en la mayor parte de los casos en ''/etc/dhcp/'' y **cambiar los permisos** para que el grupo con el que se ejucta el proceso **''dhcpd''**((dhcpd es el proceso que se ejecuta para el servidor dhcp3-server))
usuario@maquina:~$ sudo cp /etc/bind9/rndc.key /etc/dhcp/
usuario@maquina:~$ sudo chmod 660 /etc/dhcp/rndc.key
usuario@maquina:~$ sudo chown root:dhcpd /etc/dhcp/rndc.key
No se te olvide lo de los permisos, que si no puede que no funcione o que sa muy sencillo modificar la zona DNS con ese fichero, y sin privilegios ;)
En nuestro caso queremos actualizar la zona ''locolandia.net.'' y ''23.168.192.in-addr.arpa.''((zona de resolución inversa para la red 192.168.23.0/24)), por lo que tenemos que añadir al fichero ''/etc/dhcp/dhcpd.conf'' en la configuración global:
include "/etc/dhcp3/rndc.key";
ddns-domainname "locolandia.net.";
ddns-rev-domainname "in-addr.arpa.";
zone locolandia.net. {
primary 192.168.23.23;
key rndc-key;
}
zone 23.168.192.in-addr.arpa. {
primary 192.168.23.23;
key rndc-key;
}
Bind9 tiene que estar configurado para permitir actualizaciones dinámicas del servidor DHCP
===== Clientes con la misma IP siempre =====
Por lo general DHCP3 mantiene las direcciones IP otorgadas a los hosts en función a su dirección MAC. Estos datos, para saber la IP que tenía antes el host, los obtiene de ''/var/lib/dhcp3/dhcpd.leases''.
Pero esto no garantiza que el mismo equipo tenga siempre la misma dirección, para garantizar que el servidor DHCP otorgue la misma dirección siempre a un host, es necesario añadir en ''/etc/dhcp/dhcpd.conf'' para la subnet donde tenemos el host
host poipon {
hardware ethernet 00:23:F0:23:52:23;
hardware ethernet 00:23:23:90:23:23;
fixed-address 192.168.23.223;
}
host bancal {
hardware ethernet 00:00:23:23:23:23;
fixed-address 192.168.23.224;
}
host cornelius {
hardware ethernet 00:23:23:23:23:23;
fixed-address 192.168.23.225;
}
A poipon se le otorga la misma IP en las dos interface sde red que tiene (sabiendo que una es Wireless y otra Ethernet y que nunca van a estar conectadas simultaneamente a la red)
===== Configuración total =====
Si aplicamos todo lo anterior, entonces
==== /etc/dhcp/dhcpd.conf ====
server-identifier fastfoot-ng.locolandia.net;
authoritative;
include "/etc/dhcp3/rndc.key";
ddns-domainname "locolandia.net.";
ddns-rev-domainname "in-addr.arpa.";
zone locolandia.net. {
primary 192.168.23.23;
key rndc-key;
}
zone 23.168.192.in-addr.arpa. {
primary 192.168.23.23;
key rndc-key;
}
log-facility local7;
subnet 192.168.23.0 netmask 255.255.255.0 {
one-lease-per-client on;
default-lease-time 600;
max-lease-time 7200;
option domain-name "locolandia.net";
option domain-name-servers 192.168.23.23;
range 192.168.23.100 192.168.23.200;
option routers 192.168.23.23;
option broadcast-address 192.168.23.255;
option netbios-name-servers 192.168.23.23;
server-name "fastfoot-ng";
option netbios-node-type 8;
option www-server 192.168.23.23;
option smtp-server 192.168.23.23;
option pop-server 192.168.23.23;
option ip-forwarding off;
allow booting;
allow bootp;
filename="pxelinux.0";
next-server 192.168.23.23;
host poipon {
hardware ethernet 00:23:F0:23:52:23;
hardware ethernet 00:23:23:90:23:23;
fixed-address 192.168.23.223;
}
host bancal {
hardware ethernet 00:00:23:23:23:23;
fixed-address 192.168.23.224;
}
host cornelius {
hardware ethernet 00:23:23:23:23:23;
fixed-address 192.168.23.225;
}
}
===== Enlaces de Interés =====
* [[http://www.isc.org/sw/dhcp/|Pagina oficial del servidor DHCPd en ISC]]
* ''man dhcpd3''
* ''man dhcpd.conf''
* ''man dhcpd.leases''