[[Categoría:Networking]] [[Categoría:OpenBSD|Server]] >** OpenBSD como servidor dhcp ** ===== Introducción ===== Antes que nada quiero decir que si leiste el FAQ de OpenBSD, no tenes nada que hacer acá. En el mismo hay bastante información de como configurar un OpenBSD como servidor DHCP para tu red (de hecho los datos de este tutorial vienen de ahi). Para mas información sobre esto podes ver las paginas de los distintos man: [[http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd&sektion=8|dhcpd(8)]], [[http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd.conf&sektion=5|dhcpd.conf(5)]], y [[http://www.openbsd.org/cgi-bin/man.cgi?query=dhcpd.options&sektion=5|dhcp-options(5)]] ===== Empecemos ===== Son muy pocos los archivos que tenemos que modificar para poder configurar el dhcpd. Lo primero que debemos hacer es activarlo en el arranque. Como la gran parte de los demonios en OpenBSD se activan desde el archivo /etc/rc.conf. En la linea que dice "dhcpd_flags", por defecto viene algo así: **/etc/rc.conf - dhcpd_flags** dhcpd_flags="" # for normal use: "" Como pueden ver seteamos "" para el uso normal, esto permitirá que el servidor DHCP inicie al bootear; el archivo de /etc/rc se cerciorará de que esta opción no este deshabilitada e iniciarlo para las interfaces que hayamos definido. Esto nos trae al segundo paso; configurar qué interface(s) de la red sea la que dhcpd escuchara peticiones, lo cual se hará en el archivo /etc/dhcpd.interfaces de la siguiente manera: **/etc/dhcpd.interfaces** # $OpenBSD: dhcpd.interfaces,v 1.1 1998/08/19 04:25:45 form Exp $ # # List of network interfaces served by dhcpd(8). # # ep0 # ed0 le0 # de1 fxp1 En el ejemplo antes mencionado, todas las lineas estan comentadas, excepto la de la interfaz fxp1. En este ejemplo el anfitrión está funcionando con un firewall con dos interfaces. fxp1 es la interfaz conectada a la LAN, de donde las peticiones al servidor DHCP se originaran. Si tenemos más de una interfaz en nuestro servidor para servir las peticiones, debemos poner el nombre de la interfaz en este archivo. Si no especificamos una interfaz, el dhcpd intentará y escuchará en todas las interfaces. Un ejemplo para los que tienen muchas interfaces: **dhcpd(8)** # $OpenBSD: dhcpd.interfaces,v 1.1 1998/08/19 04:25:45 form Exp $ # List of network interfaces served by dhcpd(8). ath0 sis0 sis1 ===== Editando el archivo /etc/dhcpd.conf ===== El archivo principal para la configuración del dhcpd es /etc/dhcpd.conf. Este archivo contiene todas las opciones del cliente, definiciones de subred, y otras de dhcpd. Un pequeño ejemplo de configuracion: **/etc/dhcpd.conf** # $OpenBSD: dhcpd.conf,v 1.1 1998/08/19 04:25:45 form Exp $ # # DHCP server options. # See dhcpd.conf(5) and dhcpd(8) for more information. # # Network: 10.0.0.0/255.255.255.0 # Domain name: mydomain.tld # Name servers: 10.0.0.2 and 10.0.0.3 # Default router: 10.0.0.1 # Addresses: 10.0.0.20 - 10.0.0.250 # ######################## # this is to specify to the dhcpd server that # some of the subnets share the same network information ######################## shared-network MYDOMAIN-TLD { ############################ # The three lines below are to specify the shared resources # for all the subnets specified below # # order of options # Lease duration: one week (7 days) # domain name for DNS and such # DNS servers to use for lookups ############################ default-lease-time 604800; option domain-name "mydomain.tld"; option domain-name-servers 10.0.0.2, 10.0.0.3; ############################ # Specify the subnet to give ips on and the netmask # given with the ip address ############################ subnet 10.0.0.0 netmask 255.255.255.0 { #specify the subnet again (see below NB***) option subnet-mask 255.255.255.0; #specify the broadcast address for the subnet option broadcast-address 10.0.0.255; #specify the gateway to use option routers 10.0.0.1; #specify the range of IPaddresses to lease range 10.0.0.20 10.0.0.250; } } **Importante**: Noten que las lineas terminan con ; (punto y coma), esto es bastante importante. Para editar el archivo tendrán que analizar para qué redes usaremos la configuración, determinenlas por subred y mascara de red. Generalmente el nombre del dominio y los DNSs serán primordiales para la configuración del archivo, mientras que las opciones tales como el mascara de red y gateway por defecto son específicas para la subred en particular. ===== Iniciar dhcpd ===== Con el archivo dhcpd.conf editado, podemos iniciar dhcpd para que empiece a recibir peticiones. Podemos iniciar el demonio reiniciando el servidor completo o podemos iniciar el demonio de manera manual. Si vamos a iniciar el demonio manualmente primero tendremos que crear el siguiente archivo /var/db/dhcpd.leases de esta manera: **Inicio manual** # touch /var/db/dhcpd.leases Una vez hecho esto, podremos iniciar el demonio con la opcion -q seguido de la interfaces. Cuando el sistema enciende el dhcpd por medio de los rc del sistema, se analiza el archivo de /etc/dhcpd.interfaces y el servidor dhcpd se fija para escuchar en los interfaces especificados (o todos los interfaces si no se especifica ningunos). **Inicio manual** //( a partir de la version 4.4 no necesitan la opcion '-q' )// dhcpd -q fxp1 Podemos ver en el /var/log/messages si hay algún error en el inicio del demonio, como así también podemos ver si esta iniciado con un simple comando: **Vemos el estado del demonio** ps ax | grep dhcpd USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND _dhcp 11760 0.0 0.1 588 568 ?? Ss 10:27PM 0:00.04 dhcpd fxp1 Si necesitáramos hacer algunos cambios de configuración en los archivos, solo deberíamos matar el proceso (PID) y volver a iniciarlo. ===== Conclusión ===== Espero que les haya servido para algo el tutorial y cualquier duda, sugerencia o errata sera bienvenida por los medios habituales.