====== 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''