Servidor DHCP sobre Ubuntu Server 12.04 Precise Pangolin

Un servidor DHCP (Dynamic Host Configuration Protocol) es un servicio de red que provee direcciones IP entre otra información de configuración a los equipos que se encuentran conectados a este dentro de una red de datos sin importar el sistema operativo que posean las máquinas cliente aunque el servidor este corriendo sobre Ubuntu Server.

Las máquinas configurados vía DHCP no tienen control sobre la configuración de red de las mismas, adquiriendo toda esta información directamente desde el servidor DHCP que se encarga de configurar automáticamente la dirección IP de la máquina, la mascara de subred, la puerta de enlace predeterminada o Gateway, el nombre del host, el nombre del dominio, entre otros datos importantes para el buen funcionamiento de la red.

A continuación aprenderemos como configurar un servidor DHCP usando Ubuntu Server 12.04 Precise Pangolin.

Para este caso en particular utilizaremos los siguientes datos a entregar por el servidor DHCP y la interfaz de red eth0:

  • Rango de direcciones IP: 192.168.2.10192.168.2.20
  • Dirección de subred: 192.168.2.0
  • Mascara de red: 255.255.255.0
  • Dominio: dhcpserver.public
  • Puerta de enlace predeterminada: 192.168.2.1
  • Dirección Broadcast: 192.168.2.255
  • Servidores DNS: 208.67.222.222 y 208.67.220.220 (OpenDNS )
  1. Instalamos el paquete del servidor DHCP
    sudo apt-get install isc-dhcp-server
  2. Editamos el archivo /etc/default/isc-dhcp-server
    sudo nano /etc/default/isc-dhcp-server

    Aquí nos dirigimos hasta la opción INTERFACES ubicada aproximadamente en la linea 11 del documento, agregando eth0 como se muestra a continuación

    # Defaults for dhcp initscript
    
    # sourced by /etc/init.d/dhcp
    # installed at /etc/default/isc-dhcp-server by the maintainer scripts
    
    #
    # This is a POSIX shell fragment
    #
    
    # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
    # Separate multiple interfaces with spaces, e.g. "eth0 eth1".
    INTERFACES="eth0"

    Guardamos pulsando Ctrl+O y salimos del archivo de configuración pulsando Ctrl+X.

  3. Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un respaldo del mismo en caso de que algo salga mal
    sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original

    Ingresamos como root

    sudo -i

    Creamos el archivo de configuración dhcpd.conf

    cat > /etc/dhcp/dhcpd.conf <<-EOF
    option domain-name "preciseserver.public";
    option domain-name-servers ns1.preciseserver.public, ns2.preciseserver.public;
    
    default-lease-time 600;
    max-lease-time 7200;
    
    subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.10 192.168.2.20;
    option domain-name-servers 208.67.222.222, 208.67.220.220;
    option domain-name "serv.dhcpserver.public";
    option routers 192.168.2.1;
    option broadcast-address 192.168.2.255;
    default-lease-time 600;
    max-lease-time 7200;
    }
    EOF
  4. Reiniciamos el servidor DHCP
    sudo service isc-dhcp-server restart

Ya tenemos nuestro servidor DHCP corriendo libremente sobre Ubuntu Server 12.04 Precise Pangolin y listo para entregar la información necesaria a cada una de las máquinas que conectemos a la red en la que se encuentra.

Si tienes alguna duda acerca del procedimiento aquí publicado, no dudes en realizar un comentario al respecto.

  • carlos

    estaba buscando dhcp3-server e isc-dhcp-server en lla lista de paquetes de debian y en los 2 pone que son proporcionados por isc-dhcp-server …. supoongo que sera lo mismo con un nombre diferente pero sigo sin tenerlo claro.

    http://packages.debian.org/squeeze/dhcp3-server
    http://packages.debian.org/squeeze/isc-dhcp-server

    Y gracias por el tutto siempre hay q actualizarse.

    • http://emslinux.com/ David Gómez

      La verdad no estoy seguro, tendrías que probar a ver si te funcionan.

  • Ramón

    y Como hago para reservar una dirección ip proporcionada por dhcp a un cliente. desde ya gracias por su contestacion.

    • http://emslinux.com/ David Gómez

      A partir de la línea 74 en el archivo de configuración, explica como se puede usar el servidor DHCP para asignar direcciones IP fijas a diferentes equipos de la red utilizando la dirección MAC.

    • Jorge

      Hola, si quieres que un cliente tenga fijada la direccion ip, con su mascara y puerta de enlace lo que hay que hacer es lo siguiente:

      Esto debe ir dentro del fichero /etc/dhcp/dhcpd.conf

      host loquequierasllamar {
      hardware ethernet 00:03:47:31:e1:7f;
      fixed-address 192.168.1.20;
      }

      Por supuesto la direccion que te he puesto en el fixed-address la debes cambiar por la ip que desees poner dentro del rango que tengas configurado en el servidor.

      • http://emslinux.com/ David Gómez

        Muchas gracias por tu ayuda @Jorge.

  • Erick

    oye una pregunta como le hago para comprobar si me quedo bien correcta la configuracion que realice!!

    • http://emslinux.com/ David Gómez

      Prueba conectando algunos equipos a tu servidor DHCP.

  • Natan

    Cuando quiero reiniciar el servidor después de haber hecho todo con sudo service isc-dhcp-server restart, me sale el siguiente error:

    “stop: Unknown instance:
    start: Job failed to start ”

    ¿A qué se debe?

    Gracias. Un saludo.

  • erick

    pues ya lo intente pero no me conecta no se no hice bienn!!!!

  • Dani

    buenas. lo he echo todo como has puesto en el tutorial pero cuando pongo “service idc-dhcp-server restart” me lanza esto:
    stop: Unknown instance:
    start: Job failed to start

    ¿de que puede ser? Gracias!

    • http://emslinux.com/ David Gómez

      Lo estas haciendo como root?

      • Dani

        si, si que lo estoy haciendo como root. influye? saludos y gracias por responder david.

        • http://emslinux.com/ David Gómez

          De hecho debes hacerlo como root.

          Fíjate también si el servicio tiene el nombre correcto, en caso de que sea otro nombre, simplemente modifica la linea de ejecución del comando con el nombre correcto del servicio.

    • Judit Cobo Xaudiera

      sudo isc-dhcp-server restart

      Abre un fichero de logs y comprueba que no te de ningún error.

  • Dani

    Ok. Una cosa que tengo que aclarar. Estoy intento montar el servidor DHCP en maquina virtual (vmware fusión). En ubuntu, ¿como tiene que estar configurado el fichero /etc/network/interfaces? saludos y gracias por la ayuda

  • erick

    reinicio mi servidor y de ahi checo si esta activo con el comando service isc-dhcp-server status y me mando un error q dice isc-dhcp-server stop/waiting
    q puedo hacerrr

    • Judit Cobo Xaudiera

      El problema es que estas pidiendo que inicie cuando aun no a acabado de morirse… a unas malas, reinicia el servidor… configura la red del servidor, abre un fichero de logs y haz un restart al servicio,, en el fichero de logs podrás ver cualquier fallo si es que no se ha solucionado reinicando en servidor.

  • erick

    me urgeeee…

  • Hugo Mora

    amigo me tira el mismo error cuando quiero reiniciar el servidor no tienes mas foros donde enseñes a configurar DNS,SSH,FTP,FIREWALL,PROXI IGUAL EN UBUNUTU SERVER 12.04

  • sergio

    Le habéis asignado una IP fija al servidor?, yo de vosotros lo intentaría…, una ip del mismo rango de las ips que el servidor DHCP asigna por supuesto…

    Saludos

  • Ale DC

    Hola, alguien sabe donde se guarda el LOG del DHCP3 ? quiero saber cuantas conexiones estoy teniendo en el servidor DHCP.

    Gracias por su tiempo

  • Pedro

    Tengo el mismo problema, al seguir los pasos tal cual, al final me indica esto:

    idc-dhcp-server restart” me lanza esto:
    stop: Unknown instance:
    start: Job failed to start

    Alguien que pueda ayudar con esta falla?

  • Judit Cobo Xaudiera

    Con el editor mc como se haría?
    si por ejemplo tienes que dar 170 ips con dhcp, de esas, 3 tienen k estar reservadas para tres portatiles.
    Y como se haría la redundáncia de este servidor y de uno dns?

  • Judit Cobo Xaudiera

    Pedro abre un fichero de logs para que puedas ver los errores. Comanda;
    sudo tail -f/var/log/syslog | grep dhcp

  • Javier

    También estaba yo liado con los problemas que indican algunos por aquí (Natan, Pedro,…) Y después de darle vueltas al tema, cambié la configuración de la red y arrancó sin más!!
    Incluso yo via webmin.
    En particular yo establecía una red: 10.0.2.0/8
    Y para funcionar he tenido que poner: 10.0.0.0/8
    El resto casi que ni tocarlo.
    Saludos, y suerteeeee!!!

  • Kevin

    Como podría listar los clientes que tengo conectados en mi servidor actualmente, de ante manos gracias y muy buen aporte para la comunidad!

    • http://emslinux.com/ David Gómez

      Deberías poder verlos en este archivo /var/lib/dhcp3/dhcpd.leases

  • Christian

    Amigo:

    Como lo hago para solucionar este error?

    stop: Unknown instance:
    start: Job failed to start

  • Gerardo

    oye, tengo el siguiente escenario: tengo una maquina virtual (vmware player) en la q tengo 2 adaptadores de red, uno con ip fija y otro con dhcp, pero necesito q la dhcp se la asigne otro servidor y no el q tengo montado. Como hago para q mi servidor no le brinde ip a ese adaptador? Hay alguna manera de configurarlo para q rechace la solicitud d dhcp tomando como referencia una mac especifica. Xfa es para una tarea.

    • http://emslinux.com/ David Gómez

      No tiene sentido tener dos servidores DHCP dentro de una misma red, por lo tanto no es posible hasta donde se, configurar la NIC para que elija entre dos servidores distintos.

      Lo que podrías hacer sin embargo, es segmentar la red desde el mismo servidor DHCP, para que se asignen direcciones IP/Mascaras de subred diferentes a cada uno de los clientes.

      • Gerardo

        Verás, esta es la situación. En mi servidor virtual tengo mas servicios instalados, como el proxy, el web, el ldap y el dns. Para el proxy es el segundo adaptador de red, para poderme conectar a través de ese a la red física y hacia internet. Pero para ello, ese adaptador debe ser configurado por el dhcp de la institución. Para eso es que necesito saber si se le puede instruir a mi servidor para que rechace una solicitud de configuraciones.

        • http://emslinux.com/ David Gómez

          No logro ubicarme bien en tu situación.

          Pero si lo que necesitas es que el cliente (así sea un servidor) elija de cual servidor tomar la dirección IP, creo que no se puede hacer.

  • wissa

    Yo lo quequiero es que un servidor de dhcp bajo Ubuntu 10.10 , sea el que de servicios de internet a un aula de 25 Equipos los cuales se quedan constantemente sin internet debido a que el servidor DHCP de Router de Timifonica se cuelga.
    Configuro el sistema bajo Ubuntu 10.10 con dos tarjetas dered una apunta al Router de Telefonica con IP Fija 192.168.1.10 y la otra para que de los servicios de DHCP a los 25 equipos desde 192.168.1.11 a 192.168.1.35 .

    Hasta hay todo corecto tengo IP en los equipos DNS y puerta de enlace…

    Pero ni los 25 equipos ni el Servidor Ubuntu 10.10 tienen Internet,

    Algo se me escapa y no se que… AYUDAAAA GRACIAS )..

  • Carlos

    Amigo que tal muy buenas noches, mira soy estudiante de ing. en sistemas computacionales y mi duda es la siguiente: me gustaria implementar en un servidor ubuntu server dos sub-redes, he escuchado que todo el procedimiento esta en el dhcp, asi como tambien hay otras formas de hacerlo, no se si hay la posibilidad de que puedas postear como implementar dos subredes en ubuntu server?… de antemano muchas gracias.

  • Carlos

    Olvide mensionar que mi servidor ubuntu es virtualizado en virtualbox…

  • Obiware

    Los errores al iniciar el servicio se deben a archivos de configuración con errores. Ojo con las comas, punto y coma, y con comillas

  • http://www.facebook.com/rober.gomez.14 Rober Gómez

    hola buenos dias, me han pedido que genere en ubuntu un script que contenga la instalacion y configuracion de los servicios de dhcp, apache, dns, ftp, correo, proxy, ssh, samba e impresion. todos ellos en ubuntu. alguien podria ayudarme por favor? gracias

  • http://www.facebook.com/clemente.diaz.santiago Clemente Diaz

    tengo una duda, deseo que todas las maquinas que se conecten atravez de este servidor de dhcp, tomen como pagina por default la misma pagina institucional de la empresa, hay que hacer algun scrip en especial? o es mera configuracion de agregar la pagina en algun archivo especifico, no quiero hacerlo manualmente en cada una quiero que en el moemnto que se les asigne la ip y empiecen a usar el itnernet sea la primer pagina que tengan, asi cada que abran su navegador sea la pagina de inicio para todas

  • http://twitter.com/Dani_el_Grande El mendigo del güifi

    Este paquete sirve para su uso con webmin? Gracias

  • Guest

    Hola Gracias por tan magnifico tutorial, de hecho no lo he implementado porque antes de hacerlo se me dio por reiniciar las inerfaces /etc/init.d/networking restart y me dio como resultado:

    *Running etc/init.d/networking restart is deprecated because it may not enable again some interfaces
    *Reconfiguring network interfaces…

    ssh stop/waiting
    ssh start/running, process 3302

  • leoalv

    Hola Gracias por tan magnifico tutorial, de hecho no lo he implementado porque antes de hacerlo se me dio por reiniciar las inerfaces /etc/init.d/networking restart y me dio como resultado:

    *Running etc/init.d/networking restart is deprecated because it may not enable again some interfaces
    *Reconfiguring network interfaces…

    ssh stop/waiting
    ssh start/running, process 3302 OK

    EL numero de proceso va cambiando he intentado solucionarlo por todos los medios pero no lo he logrado. Mi IP es estatica y la configuracion de las inbterfaces eth0 esta como dhcp.

    Por favor necesito Ayuda