lunes, 18 de julio de 2011

configuración de un Servidor DHCP

El archivo de configuración primario del servidor DHCP de ISC es por defecto /etc/dhcpd.conf, este archivo permite especificar un conjunto de declaraciones de redes, máquinas o grupos unidos al sistema y un rango de direcciones. Así como un conjunto de parámetros que describen el comportamiento del servidor, los parámetros pueden ser globales o locales al conjunto de declaraciones.


Declaraciones
GROUP permite aplicar un conjunto de parámetros y declaraciones a un conjunto de clientes, redes compartidas o subredes. La sintaxis de es la siguiente:
group etiqueta{
[parámetros]
[subdeclaraciones]
}
La etiqueta es el nombre definido por el usuario para identificar el grupo, parámetros es lista de parámetros que se aplican al grupo, las subdeclaraciones se usan en caso de que se necesite un nivel mayor de granularidad para describir ciertos clientes adicionales que puedan ser miembros de la declaración actual.

HOST se usa para aplicar un conjunto de parámetros y declaraciones a una máquina en particular, además de los parámetros indicados al grupo. La sintaxis es la siguiente:
host etiqueta{
[parámetros]
[subdeclaraciones]
}
SHARED-NETWORK agrupa un conjunto de direcciones de miembros de una misma red física. Esto permite agrupar parámetros y declaraciones para propósitos administrativos. La sintaxis es:
shared-network etiqueta{
[parámetros]
[subdeclaraciones]
}
La etiqueta es el nombre definido por el usuario para la red compartida.
SUBNET se utiliza para aplicar un conjunto de parámetros y/o declaraciones a un conjunto de direcciones que coincidan con la descripción de esta declaración, la sintaxis es:
subnet número-subred netmask máscara {
[parámetros]
[subdeclaraciones]
}
La etiqueta es el nombre definido por el usuario para la subred.
RANGE para arranques dinámicos, específica el rango de direcciones válidas para los clientes. La sintaxis es la siguiente:
range [dinamic-bootp] dirección-inicial [dirección final];

La palabra clave dinamic-bootp se usa para alertar al servidor de que el rango de direcciones siguientes es para el protocolo BOOTP. Los campos dirección inicial y el opcional dirección final son las direcciones reales de los bloques de inicio y final de las direcciones IP. Los bloques se asumen como consecutivos y en la misma subred de direcciones.
Parámetros
ALWAYS-REPLY-RFC1048 se usa para clientes BOOTP, hay clientes que requieren la respuesta del servidor para ser completamente compatibles con BOOTP RFC, es posible modificar este parámetro para conseguir este requerimiento. La sintaxis es la siguiente:
Always-reply-rfc1048;
AUTHORITATIVE se usa para etiquetar una red en particular como “autorizada”. Por defecto el servidor asumirá que es autorizado. Cuando un segmento de red es “no autorizado”, el servidor enviará un DHCPNAK al cliente. El cliente se supone que reintentará su petición. La sintaxis es:
authoritative;
no authoritative;
DEFAULT-LEASE-TIME específica el tiempo en segundos que dura el contrato asignado a la dirección IP si el cliente no pide cualquier duración. La sintaxis es la siguiente:
default-lease-time segundos;
DYNAMIC-BOOTP-LEASE-CUTOFF los clientes BOOTP no son conscientes del concepto contrato, por defecto el servidor DHCP asigna una dirección IP que nunca caduca. Hay situaciones en las que puede ser útil tener al servidor sin dar direcciones para un conjunto de clientes BOOTP. La fecha se especifica de la siguiente forma AAAA/MM/DD HH:MM:SS. La sintaxis es:
dynamic-bootp-lease-cutoff fecha;
DYNAMIC-BOOTP-LEASE-LENGTH aunque los clientes BOOTP no tienen un mecanismo de caducidad de direcciones que reciben, esto es útil si la aplicación BOOTP dura poco tiempo, si es así, el servidor puede configurar el número de segundos y caducarla después de que pase el tiempo. La sintanxis es.

dynamic-bootp-lease-length segundos;
FILENAME en algunas aplicaciones el cliente DHCP puede necesitar saber el nombre de un archivo para usarlo en el arranque. Con frecuencia se combina con next-server para recuperar un archivo remoto para configurar la instalación o arrancar un cliente sin disco. La sintaxis es la siguiente:
filename nombre-archivo;
FIXE-ADDRESS específica el conjunto de direcciones asignables al cliente, aparece solo debajo de la declaración “host”. La sintaxis es:
fixe-address dirección [ dirección…];
GET-LEASE-HOSTNAME si se configure a “true” (cierto) el servidor resuelve todas las direcciones en el ámbito de la declaración y la usará para la opción hostname. La sintaxis es la siguiente:
get-lease-hostname [true | false];
HARDWARE con el objeto de que el servidor identifique una máquina específica, este parámetro se usa para fijar las direcciones de los clientes DHCP y se requiere para los clientes BOOTP. La sintaxis es:
hardware [Ethernet | token-ring | dirección-hardware];
MAX-LEASE-TIME un cliente tiene la opción de pedir la duración de su contrato. La petición concede tanto tiempo siempre que no exceda el número de segundos especificado aquí. La sintaxis es:
max-lease-time segundos;
NEXT-SERVER cuando inicia la red se puede dar a un cliente un nombre de archivo y un servidor de donde obtener la información de arranque. La sintaxis es la siguiente:
next-server nombre-servidor;
SERVER-IDENTIFIER este parámetro se puede usar para enviar la IP a la interfaz apropiada por la que el cliente se comunica con el servidor. La sintaxis es la siguiente:

server-identifier nombre-máquina;
SERVER-NAME especifica el nombre de la máquina servidor que arranca el cliente remoto. Se usa para clientes remotos o aplicaciones de instalación de red. La sintaxis es la siguiente:
server-name nombre;
USE HOST-DECL-NAMES se usa en el mismo ámbito que las otras declaraciones de máquina, añadirá la opción host-name a la declaración host, usando el nombre de máquina en la declaración host. La sintaxis es:
use host-decl-names [true | false];
USE-LEASE-ADDR-FOR-DEFAULT-ROUTE si la red está configurada para soportar proxyarp, se configurarán sus clientes para que la usen como ruta por defecto. Esto forzara a que use ARP para encontrar todas las direcciones remotas (fuera de la subred). la sintaxis es la siguiente:
use-lease-addr-for-default-route [true | false];
Opciones
Soporta más de 60 opciones, la sintaxis general de una opción es la siguiente: option nombre-option [modificadores], a continuación se presentan las opciones más comunes:
Broadcast-address una dirección de subred de cliente se especifica como dirección de broadcast.
domain-name el nombre del dominio que debería usar el cliente como nombre de dominio local cuando se realizan bucles locales.
domain-name-servers la lista de servidores DNS que usará el cliente para resolver nombres de máquina.
host-name la cadena usada para identificar el nombre del cliente.
nis-domain nombre del dominio NIS

nis-server la lista de servidores NIS disponibles para unirse a ellos.
routers una lista de enrutadores que puede usar el cliente
subnet-mask la máscara a usar por el cliente

Secuencia de eventos para el servicio DHCP
DHCP usa los mismos puertos asignados por el IANA1 (Autoridad de Números Asignados en Internet según siglas en inglés) en BOOTP: 67/udp para las computadoras servidor y 68/udp para las computadoras cliente.
DHCP Discover. La computadora cliente publica masivamente en la subred local para encontrar un servidor disponible. El router puede ser configurado para redireccionar los paquetes DHCP a un servidor DHCP en una subred diferente. La implementación cliente crea un paquete UDP (Protocolo de Datagramas de Usuario) con destino 255.255.255.255 y requiere también su última dirección IP conocida, aunque esto no es necesario y puede llegar a ser ignorado por el servidor.
DHCP Offer. El servidor determina la configuración basándose en la dirección del soporte físico de la computadora cliente especificada en el registro CHADDR. El servidor especifica la dirección IP en el registro YIADDR.
DHCP Request. El cliente selecciona la configuración de los paquetes recibidos de DHCP Offer. Una vez más, el cliente solicita una dirección IP específica que indicó el servidor.
DHCP Acknowledge. El servidor confirma el pedido y lo publica masivamente en la subred. Se espera que el cliente configure su interface de red con las opciones que se le proveyeron.
Descarga e instalación del servidor DHCP
El servidor dhcp está instalado en muchas distribuciones de Linux, sin embargo es posible obtener el código fuente del servidor desde el siguiente enlace http://www.isc.org, una vez descargado el paquete debe ser desempaquetado en el directorio /usr/local/src, y asumiendo que se descarga la última versión disponible dhcp-4.2.1-P1.tar.gz, se utilizará la siguiente línea de comando: tar –xfvz dhcp-4.2.1-P1.tar.gz. A continuación se procede a configurar el paquete con el siguiente comando: ./configure, para compilar e instalar se utilizan los comandos: make y make install.
También es posible descargar e instalar el paquete dhcp desde los repositorios utilizando el siguiente comando: apt-get install dhcp3-server, ó aptitude install dhcp3-server.

Instalación
La ejecución de esta línea de comando permite crear la carpeta /etc/dhcp3/ donde está el archivo “dhcpd.conf” el cual vamos a configurar.

Observamos un mensaje de error ya que intenta arrancar el servicio y aún no se ha configurado.
Establecemos el número IP fijo correspondiente al servidor, editando el archivo interfaces, ubicado en la siguiente ruta: /etc/network.
Editamos el archivo indicando la dirección IP y la mascara (en este caso corresponde a una clase A y utiliza 16 bits para subredes)
Salvamos las modificaciones y procedemos a reiniciar el servicio a través del siguiente comando

Ahora haremos la configuración del archivo dhcpd.conf, para ello es conveniente realizar una copia de seguridad de este archivo de configuración a través del siguiente comando:
cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.back procedemos a editar el archivo de configuración con el editor nano

Especificamos la subred y la mascara, el rango de direcciones a distribuir, la puesta de enlace, la dirección de broadcast de los nodos, el dominio, el tiempo de renovación y el tiempo máximo de respuesta agregando las siguientes líneas.
Salvamos las modificaciones y procedemos a reiniciar el servicio a través del siguiente comando:
El servicio ahora se encuentra activo con los parámetros que hemos configurado, para verificar esto utilizamos el siguiente comando ps ax que nos indica los procesos activos.

Como podemos observar en la siguiente imagen esta activo el servicio dhcp3
Otro comando que nos permite verificar si el servidor está trabajando es el siguiente:
netstat -uap
DHCP del cliente
Ubuntu tiene por lo menos un cliente dhcp y se encuentra activado, por lo que el dhclient ya está instalado en el equipo cliente, y al ejecutar el comando dhclient permite realizar la solicitud de dirección IP al servidor DHCP, sin embargo lo primero que realizaremos será verificar el archivo interfaces del cliente, editamos el archivo usando el siguiente comando:
nano /etc/network/interfaces
El archivo interface debe contener lo siguiente
Ahora debemos reiniciar el servicio de red con el siguiente comando:
/etc/init.d/networking restart
Finalmente podemos hacer solicitud del servicio DHCP indicando la tarjeta que estamos utilizando.
dhclient eth0
Otros comandos que puedo ejecutar para probar el funcionamiento del cliente DHCP son:
dhclient -r 
tail -n 15 /var/lib/dhcp3/dhclient.*.leases
tail -n 15 /var/lib/dhcp3/dhclient.eth0.leases
Al ejecutar comando dhclient eth0, desde el terminal, en el cliente se verá como se produce la asignación de IP, por parte del servidor DHCP.



En este momento podemos ver la dirección IP del cliente que debe coincidir con las direcciones IP distribuidas por el servidor DHCP, para ello tecleamos ifconfig





3 comentarios:

  1. hola mi problema es el siguiente no avanso del paso #6 el de instalcion
    porque me saca el siguiente error:
    The error was:
    Internet Systems Consortium DHCP Server V3.1.3
    Copyright 2004-2009 Internet Systems Consortium.
    All rights reserved.
    For info, please visit https://www.isc.org/software/dhcp/
    /etc/dhcp3/dhcpd.conf line 118: subnet 192.168.1.64 netmask 255.255.255.0: bad subnet number/mask combination.
    subnet 192.168.1.64 netmask 255.255.255.0 Configuration file errors encountered -- exiting

    POR FAVOR RESPONDERME LO MAS PRONTO POSIBLE GRACIAS

    ResponderEliminar
  2. En ningún momento debes tocar el dhcp3-server, todas las configuraciones se hacen el dhcpd.conf.
    Si lo has tocado te recomiendo eliminar dhcp3-server completamente y reinstalarlo.... Como lo borras?¿? de la siguiente manera:
    sudo apt-remove dhcp3-server

    *O también:*

    sudo aptitude remove dhcp3-server
    *Desde synaptic:
    Solo ingresa dhcp3-server en el buscador y en el listado, con el botón derecho elije marcar para desinstalar totalmente y le das aplicar.* Espero haberte servido de ayuda creo que tu problema es eso si no lo es avisame entonces... =)

    ResponderEliminar
  3. Y asegurate de estar conectado al menos a una PC, ya sea por cable cruzado o switch, sino te va a dar error.

    ResponderEliminar