Hola Taringueros
Hoy les voy a comentar como configurarn al CentOs como servidor DHCP.
Como deberiamos saberDHCP (Dinamic Host Control Protocol) es un protocolo de red utilizado para asignar una serie de configuraciones TCP/IP (dirección IP, nombre de la maquina,dominio al que pertenece, routeador, servidor DNS, gateway) a los equipos que forman parte de una red de área local LAN (Local Area Network). El DHCP es un protocolo de tipo cliente/servidor que se comunica por el puerto 67 y 68 a través de UDP, generalmente un servidor DHCP posee una lista de direcciones IP dinámicas y las va asignando a las maquinas clientes conforme estas van estando disponibles.
Sin el uso de un servidor DHCP, cada dirección IP se tendría que configurar manualmente en cada equipo y, si el equipo se mueve a otra subred, la IP del equipo seria diferente a la establecida antes. El DHCP le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar una nueva IP si el equipo es conectado en un lugar diferente de la red.
Funcionamiento de un DHCP
Antes que nada hay que tener en cuenta que nuestro servidor DHCP debe contar con una dirección IP fija, por lo tanto en nuestra red solo existirá un equipo que dispondrá de una IP fija, o sea, nuestro servidor DHCP. El paso siguiente es cuando la maquina cliente se conecta a la red, en este fase, la maquina cliente hace uso del sistema básico de comunicación BOOTP. El BOOTP (Bootstrap Protocol) es un protocolo de red UDP utilizado para obtener la dirección IP automáticamente y usualmente es iniciado cuando se realiza en el proceso de boteo de una computadora o sistema operativo. Cuando la maquina cliente se inicia esta no cuenta con información sobre la configuración de red a la cual esta conectada, en este momento la maquina cliente inicia una técnica llamada
transmisión la cual busca, encuentra y se comunica con el servidor DHCP solicitándole los parámetros de configuración de la red. Cuando el DHCP recibe el paquete de transmisión este contestará con otro paquete de transmisión que contiene toda la información solicitada por el maquina cliente.
Algunos de esos paquetes que se transmiten del cliente al servidor DHCP y viceversa son los siguientes:
● DHCP Discovery.La maquina cliente enviá este paquete para ubicar los servidores DHCP disponibles en la red interna, una vez recibido este paquete, el servidor DHCP almacena la dirección Ethernet de quien genera la petición.
● DHCP Offer.Respuesta del servidor DHCP al paquete DHCP Discover la cual contiene los parámetros de red interna.
● 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.Cuando el servidor DHCP recibe el mensaje DHCP Request del cliente, este inicia la fase final del proceso de configuración .Esta fase implica el reconocimiento DHCP Pack el envío de un paquete al cliente. En este punto, la configuración TCP/IP se ha completado. El servidor reconoce la solicitud y se lo enviá al cliente.
● DHCP Release.La maquina cliente enviá una petición al servidor DHCP informándole sobre la liberación de su dirección IP
● DHCP Ack.Respuesta del Servidor DHCP al la maquina cliente la cual enviá los parámetros de red como por ejemplo la dirección IP que le corresponde a la misma.
● DHCP Inform.El cliente envía una petición al servidor de DHCP para solicitar más información que la que el servidor ha enviado con el DHCP Ask o para repetir los datos para un uso particular.
● DHCP Nak.Respuesta del servidor DHCP a la maquina cliente la cual le indica que su dirección IP ha vencido o que su configuración es errónea
● DHCP Decline.La maquina cliente le informa el servidor DHCP que la dirección IP ya esta en uso.
Asignación de direcciones IP
El protocolo DHCP incluye tres métodos de asignación de direcciones IP:
• Asignación manual: Asigna una dirección IP a un equipo determinado. Es mas frecuentemente utilizado cuando se desea controlar la asignación de direcciones IP a cada equipo y así evitar también , que se conecten equipos no identificados
• Asignación automática: Asigna una dirección IP de forma permanente a un equipo. Se suele utilizar cuando el número de equipos en la LAN no varía demasiado.
• Asignación dinámica: Este método hace uso de la reutilizacion de direcciones IP, técnica mediante la cual, el servidor dhcp reinicia las tarjetas de red cada cierto intervalo de tiempo, asignando una nueva dirección IP a los equipos.
Bueno ya estuvo la teoría orasi a lo que nos interesa.
Primero los requerimientos de instalación.
Procederemos a instalar nuestro servidor DHCP mediante la descarga de los siguientes paquetes por lo que se recomienda que dichas descargas se hagan como root. Para ello teclearemos en consola lo siguiente:
[localhost@localdomain ~]# yum install -y dhcp
Una vez que se halla descargado e instalado el dhcp, este creara su fichero de configuración en la siguiente ubicación:
/etc/dhcpd.conf
Configuración del fichero dhcpd.conf
El primer paso para configurar el servidor de DHCP sera editar el fichero dhcp.conf al cual le añadiremos la información de nuestra LAN. El archivo de configuración puede contener tabulaciones o líneas en blanco adicionales para facilitar el formato. Las palabras clave no distinguen entre mayúsculas y minúsculas. Las líneas que empiezan con el símbolo numeral (#) se consideran comentarios. Consideremos el siguiente requerimiento:
Se requiere implementar un servidor DHCP que implemente los tres métodos de asignación de direcciones IP.
El servidor DHCP contara con dos tarjetas de red, las cuales tendrán asignadas las direcciones 192.168.1.5 y 192.168.2.5 , el segmento de red sobre el cual actuara el servidor DHCP es el 192.168.1.0, la submascara de red asignada sera la 255.255.255.0, así mismo el servidor DHCP servirá como gateway el cual tendrá asignada la misma dirección IP que el DHCP (192.168.1.5), la dirección de broadcast asignada sera la 192.168.1.255, el rango de direcciones IP que asignara el servidor DHCP estará entre el rango de 192.168.1.7 á 192.168.1.100.
Qudaría algo así:
Parametros de configuración
Parámetros de configuración
ignore/allow client-updates Permite la actualización de las asignaciones de un cliente a requerimiento de este, o bien las asignaciones se actualizan cuando el servidor así lo requiera (ignore).
shared-network redLocal Parámetro que describe las subredes que compartirán la misma red física las cuales se especifican dentro de esta declaración
subnet Segmento de subred sobre el cual actuara el dhcp
netmask Mascara de red de la subred
option routers Parámetro que especifica mediante IP la ubicación del router
option subnet-mask Mascara de red de la subred
option broadcast-address Parámetro que especifica la IP de broadcast
option domain-name "tuDominio.com" Parámetro que describe el nombre de tu dominio
option domain-name-servers Parámetro que especifica mediante IP la ubicación del DNS
range Rango sobre el cual el DHCP asignara direcciones IP
default-lease-time Parámetro que indica el tiempo entre cada nueva asignación de IP a los equipos
max-lease-time Parámetro que indica el tiempo de vigencia de la dirección IP para cada equipo
host nombreDeLaMaquina Parámetro que describe el nombre del equipo
option host-name "nombreDeLaMaquina.tuDominio.com" Parámetro que describe el nombre de la computadora y el nombre de dominio asociado a la misma
hardware ethernet Parámetro que describe la dirección MAC asociada a la tarjeta ethernet del equipo
fixed-address Parámetro que describe la dirección IP destinada a un equipo
authoritative La configuración correcta para la red es la definida en el servidor DHCP. Poner este parámetro al comienzo
del archivo de configuración supone que el servidor DHCP reasignará direcciones a los clientes mal configurados por el motivo que sea, incluida una configuración nueva del servidor.
not authoritative La función de este parámetro es justo la contraria del anterior. Es decir: la configuración del servidor de DHCP no es concluyente y los clientes mal configurados que sean detectados por el servidor, seguirán con su configuración intacta.
ddns-domainname <nombre> Mediante el uso de este parámetro, se añadirá <nombre> al final del nombre de la máquina cliente, para formar un nombre de dominio totalmente cualificado (FQDN).
ddns-hostname <nombre> Por defecto, el servidor DHCP utiliza como nombre para la solicitud el nombre que el cliente tiene asignado a su máquina. Mediante este parámetro se asigna un nombre concreto a una máquina o a todas en general. Por ejemplo, para asignar un nombre a una dirección MAC concreta, utilizaremos el código siguiente:
host "nada"
{
hardware ethernet 00:60:30:3f:2d:4a;
ddnshostname "nombre_del_host";
}
Y para asignar, por ejemplo, la dirección MAC como parte del nombre del maquina cliente, podemos usar lo siguiente:
ddnshostname = binarytoascii (16,8, "", substring (hardware, 1, 6));
ddns-updates <on|off> Activa la actualización DNS mediante los valores asignados por DHCP.
group Inicia la declaración de Grupo.
min-lease-time <duración> Especifica la cantidad mínima de tiempo, en segundos, que será mantenida una asignación de direcciones.
one-lease-per-client <on/off> Cuando la opción se iguala a on y un cliente solicita una asignación de dirección (DHCPREQUEST), el servidor libera de forma automática cualquier otra asignación asociada a dicho cliente. Con esto se supone que si el
cliente solicita una nueva asignación es porque ha olvidado que tuviera alguna, luego tiene un sólo interfaz de red. No dándose esta situación entre los clientes no es muy aconsejable el uso de esta opción.
range ip-menor ip-mayor n una declaración de subred, este parámetro define el rango de direcciones que serán asignadas. Pueden darse dos instrucciones range seguidas del modo:
range 192.168.0.11 192.168.0.100;
range 192.168.0.125 192.168.0.210;
server-identifier <IP> Identifica la máquina donde se aloja el servidor de DHCP.
Su uso se aplica cuando la máquina en cuestión tiene varias direcciones asignadas en un mismo interfaz de red.
server-name <nombre> Nombre del servidor que será suministrado al cliente que solicita la asignación.
Editaremos el fichero /etc/dhcpd.conf de tres maneras diferentes, esto con el fin de ejemplificar los tres métodos de asignación de direcciones IP.
Asignación manual
Abriremos una terminal y con la ayuda de “vi” editaremos el fichero dhcpd.conf
[localhost@localdomain ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddnsupdatestyleinterim;
ignore clientupdates;
sharednetworkredLocal{
subnet 192.168.2.0 netmask 255.255.255.0{
option routers 192.168.2.5;
option subnetmask 255.255.255.0;
option broadcastaddress 192.168.2.255;
option domainname "redLocal.com.";
option domainnameservers 192.168.2.5;
}
host maquina1{
option hostname"maquina1.redLocal.com";
hardware ethernet 00:1b:24:e2:d7:41;
fixedaddress192.168.2.10;
}
host maquina2{
option hostname"maquina2.redLocal.com";
hardware ethernet 00:2c:212:ef5:a7:13;
fixedaddress192.168.2.11;
}
}
Lo hecho anteriormente hace que el servidor DHCP asigne a dos equipos de la red, las direcciones IP que fueron anexadas en el fichero dhcp.conf
Asignación automática
Abriremos una terminal y con la ayuda de “vi” editaremos el fichero dhcpd.conf
[localhost@localdomain ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddnsupdatestyleinterim;
ignore clientupdates;
sharednetworkfactorcentos{
subnet 192.168.2.0 netmask 255.255.255.0{
option routers 192.168.2.5;
option subnetmask 255.255.255.0;
option broadcastaddress 192.168.2.255;
option domainname "factorcentos.com.mx";
option domainnameservers 192.168.2.5;
range 192.168.2.1 192.167.2.100;
}
}
Lo hecho anteriormente hace que el servidor DHCP asigne a dos equipos de la red, dos direcciones IP aleatorias dentro del rango de 192.168.2.10 al 192.168.1.200
Asignación dinámica
Abriremos una terminal y con la ayuda de “vi” editaremos el fichero dhcpd.conf
[localhost@localdomain ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddnsupdatestyleinterim;
ignore clientupdates;
sharednetworkfactorcentos{
subnet 192.168.2.0 netmask 255.255.255.0{
option routers 192.168.2.5;
option subnetmask 255.255.255.0;
option broadcastaddress 192.168.2.255;
option domainname "factorcentos.com.mx";
option domainnameservers 192.168.2.5;
range 192.168.2.1 192.167.2.100;
defaultleasetime 21600;
maxleasetime 43200;
}
}
Lo hecho anteriormente hace que el servidor DHCP asigne a dos equipos de la red, dos direcciones IP aleatorias dentro del rango de 192.168.2.10 al 192.168.1.200 las cuales serán renovadas cada cierto tiempo asignado de nuevo direcciones IP aleatorias dentro del rango de 192.168.2.10 al 192.168.1.200
Ejemplos de mas asignaciones
Existen algunas opciones adicionales para configurar un servidor de DHCP las cuales casi siempre son necesarias. A continuación vamos a analizar algunas de ellas con prácticos ejemplos, analizando siempre los parámetros mas importantes que podemos llegar a usar
Declaración de Subred
Para este tipo de configuración , se debe incluir la declaración subnet la cual deberá estar especificada para cada subred en la red original. Si no es así, el servidor DHCP nunca arrancara Para este ejemplo hemos puesto opciones globales para cada cliente del servidor DHCP en la subred, así como el parámetro range lo cual hará que a cada maquina cliente le asigne una dirección IP dentro de las IP declaradas en range
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnetmask 255.255.255.0;
option domainname "ejemplolinux.com";
option domainnameservers 192.168.1.1;
option timeoffset 18000;
range 192.168.1.10 192.168.1.100;
}
Declaracion de Red Compartida
Las subredes son un subconjunto de la red original, pero para declararlas deben especificarse dentro de una declaración sharednetwork.
Los parámetros dentro de sharednetwork pero fuera de las declaraciones subnet se consideran parámetros globales. El nombre de sharednetwork debe ser el título descriptivo de la red, como, por ejemplo redLocal. Dicho nombre puede ser igualmente una dirección IP.
sharednetworkredLocal {
option domainname "wiki.ejemplolinux.com";
option domainnameservers mydns.ejemplolinux.com;
option routers 192.168.1.1;
Declaración de subredes específicas
subnet 192.168.1.2 netmask 255.255.255.0 {
parameters for subnet
range 192.168.1.3 192.168.1.50;
}
subnet 192.168.1.51 netmask 255.255.255.0 {
parameters for subnet
range 192.168.1.52 192.168.1.100;
}
}
Declaracion de Grupo
EL parámetro group puede utilizarse para aplicar parámetros globales a un grupo de declaraciones. Puede agrupar redes compartidas, subredes, hosts u otros grupos.
group {
option routers 192.168.1.1;
option subnetmask 255.255.255.0;
option domainname "ejemplolinux.com";
option domainnameservers 192.168.1.1;
option timeoffset 18000;
host recepción {
option host_name "recepcion.ejemplolinux.com";
hardware ethernet 00:1b:24:e2:d7:41;
fixed_address 192.168.1.69;
}
host soporte {
option host_name "soporte.ejemplolinux.com";
hardware ethernet 00:2c:212:ef5:a7:13;
fixed_address 192.168.1.13;
}
}
Y pues ya despues de este desmane es hora de levantar el servicio
El servicio como la mayoría puede inicializarse, detenerse o reinicializarse con el comando “/etc/init.d” ó de otra forma añadirlo al arranque del sistema en un nivel o niveles de corrida en particular con el mandato chkconfig.
Para levantar por primera vez el servicio teclear en consola lo siguiente:
[localhost@localdomain ~]#/etc/init.d/dhcpd start
Para reiniciar el servicio:
[localhost@localdomain ~]#/etc/init.d/dhcpd restart
Para detener el servicio, utilice:
[localhost@localdomain ~]#/etc/init.d/dhcpd stop
Para añadir el servidor DHCP al arranque del sistema en todos los niveles de corrida, utilice:
[localhost@localdomain ~]#chkconfig dhcpd on
Bueno pues eso sería todo
Espero que les sirva
Saludos