Descripción del Servidor DHCP
Equipo utilizado como servidor DHCP: GNU/Linux, distribución Fedora 11.
Versión del Kernel Linux: 2.6.30.8-64.fc11.i586
Versión del servidor DHCP: 4.1.0p1-2.fc11
Instalación del servidor DHCP
El primer paso es conseguir que el demonio DHCP, dhcpd, esté instalado en el sistema. En los sistemas Red Hat Enterprise, la utilidad up2date puede ser usada para instalar el servidor y cualquier dependencia, con el siguiente comando:
# up2date -i dhcp
En sistemas Debian, se usa la utilidad apt-get:
# apt-get install dhcp
En sistemas Fedora, como en el caso de esta práctica, se usa yum para hacer lo mismo:
# yum install dhcp
Si se quiere compilar las fuentes, puede descargarse un fichero .tar de la Web de ISC en http://www.isc.org/index.pl?/sw/dhcp/. El software fue creado por Internet System Consortium. Para compilar, se utiliza los tres siguientes comandos:
$ ./configure
$ make
# make install
En la presente práctica al instalar el servidor DHCP tenemos la siguiente salida:
[angelv@localhost ~]$ su root
Contraseña:
[root@localhost angelv]# yum install dhcp
Complementos cargados:downloadonly, refresh-packagekit
adobe-linux-i386 | 951 B 00:00
adobe-linux-i386/primary | 12 kB 00:00
adobe-linux-i386 17/17
livna | 2.4 kB 00:00
rpmfusion-free-updates | 3.8 kB 00:00
rpmfusion-free-updates/primary_db | 286 kB 00:03
rpmfusion-nonfree-updates | 3.8 kB 00:00
rpmfusion-nonfree-updates/primary_db | 120 kB 00:01
updates/metalink | 2.7 kB 00:00
updates | 4.4 kB 00:00
updates/primary_db | 4.1 MB 00:43
Configurando el proceso de instalación
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete dhcp.i586 12:4.1.0p1-2.fc11 definido para ser actualizado
--> Resolución de dependencias finalizada
Dependencias resueltas
============================================================================================================================================
Paquete Arquitectura Versión Repositorio Tamaño
============================================================================================================================================
Instalando:
dhcp i586 12:4.1.0p1-2.fc11 updates 976 k
Resumen de la transacción
============================================================================================================================================
Instalar 1 Paquete(s)
Actualizar 0 Paquete(s)
Tamaño total de la descarga: 976 k
Está de acuerdo [s/N]:Y
Descargando paquetes:
dhcp-4.1.0p1-2.fc11.i586.rpm | 976 kB 00:08
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
Prueba de transacción finalizada
La prueba de transacción ha sido exitosa
Ejecutando transacción
Instalando : [#######################] 12:dhcp-4.1.0p1-2.fc11.i586 1/1
Instalado:
dhcp.i586 12:4.1.0p1-2.fc11
¡Listo!
[root@localhost angelv]#
Configuración del servidor DHCP
DHCP no es difícil de configurar. El fichero de configuración para este servicio es /etc/dhcp/dhcpd.conf. Un ejemplo de archivo de configuración se encuentra en: /usr/share/doc/dhcp-4.1.0p1/dhcpd.conf.sample (dhcp-4.1.0p1 cambiara de acuerdo a la versión de DHCP).
Las primeras líneas de este fichero establecen parámetros generales que se aplican a todos los equipos servidos por este servidor DHCP.
option domain-name “laboratoriolinux.org”
option subnet-mask 255.255.255.0
deny unknown-clients;
option domain-name-servers 192.168.198.50
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0
deny unknown-clients;
option domain-name-servers 192.168.198.50
default-lease-time 600;
max-lease-time 7200;
La primera línea asigna un nombre de dominio a nuestro entorno, el cual es bastante arbitrario en un entorno pequeño que no está soportando un dominio de Internet registrado. La opción subnet-mask asegura que todos tienen la misma máscara de subred en la red. Este podría no ser el caso en otras ocasiones, por lo que se puede especificar este parámetro en diferentes lugares dentro del fichero de configuración para conseguir el efecto deseado.
La opción deny unknown-clients evita que el servidor otorgue direcciones IP a equipos que no estén especificados en el fichero de configuración. La opción por defecto, por alguna razón, es permitir esta actividad.
La directiva domain-name-servers se utiliza cuando existe un Servidor de Nombres de Dominio (DNS), que todos los equipos internos usan. En vez de configurar sus direcciones manualmente en cada equipo (y teniendo que actualizarlas manualmente si se hace algún cambio), simplemente se entrega las direcciones a los clientes vía DHCP, usando esta directiva.
Finalmente, se establecen los tiempos de arrendamiento tales como el default-lease-time a 600 segundos (10 minutos) y el tiempo máximo que un equipo puede permanecer sin renovar su contrato a 7.200 segundos (2 horas).
A diferencia de la primera sección de fichero, la siguiente no es global, sino especifica a una subred. Es llamada de manera acertada una “declaración de subred”, y puede tener tantas de estas como subredes (incluso más, pero en pocas ocasiones tiene sentido). He aquí la entrada para la subred de la red interna de la práctica.
Subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.85 192.168.42.99;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
}
Cada declaración de subred requiere tener una máscara de red especificada, a pesar de lo que haya en la sección global del fichero de configuración. Lo primero que está entre llaves (range 192.168.42.85 192.168.42.99) indica que los equipos recibirán direcciones IP entre 192.168.42.85 y 192.168.42.99 (15 direcciones).
A continuación, se especifica la dirección broadcast para el dominio, que es la dirección para “todos todos los equipos” en la subred. Se especifica la dirección de la pasarela con la opción routers (la dirección de DNS suele ser la misma).
A continuación se muestra el archivo de configuración para la presenta práctica (se lo edita con # vi /etc/dhcp/dhcpd.conf):
A continuación se muestra el archivo de configuración para la presenta práctica (se lo edita con # vi /etc/dhcp/dhcpd.conf):
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
range 192.168.1.2 192.168.1.254;
}
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
range 192.168.1.2 192.168.1.254;
}
Se trata siempre de tener servidores DHCP sencillos, puesto que el mantenimiento será más sencillo si se omiten los comentarios y se hace que el archivo de configuración sea pequeño.
Configuración de la interfaz de red
En el caso de esta práctica la interfaz de red es eth0. Tras la configuración del servidor DHCP, se tiene que establecer que la interfaz eth0 tenga la configuración esperada por el servidor DHCP. Se lo hace en el terminal con el siguiente comando:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0
La salida de este comando en la práctica es la siguiente:
[root@localhost angelv]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
[root@localhost angelv]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:A0:D1:87:75:E0
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2a0:d1ff:fe87:75e0/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:180 errors:0 dropped:0 overruns:0 frame:0
TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21924 (21.4 KiB) TX bytes:12682 (12.3 KiB)
Interrupt:27 Base address:0x4000
Iniciación el servicio DHCP
Algunos servicios DHCP necesitan un archivo dhcpd.leases. En caso de que no exista el archivo dicho, se usa el comando touch para crear un el archivo vacío en el directorio /var/lib/dhcpd/, de la siguiente manera:
# touch /var/lib/dhcpd/dhcpd.leases
Para iniciar el servicio dhcpd, escribimos en el terminal lo siguiente(/etc/init.d/dhcp start en distribuciones Debian):
# service dhcpd start
A continuación se muestra la salida a este comando en la práctica
[root@localhost angelv]# service dhcpd start
Iniciando dhcpd: [ OK ]
[root@localhost angelv]#
Se puede comprobar si el proceso DHCP se está ejecutando con el comando ps aux | grep dhcpd; si el servicio se está ejecutando, se mostrará una línea con las estadísticas del proceso. A continuación se muestra la salida de este comando para el caso de la presente práctica:
[root@localhost angelv]# ps aux | grep dhcpd
root 4162 0.0 0.1 8552 2052 ? Ss 08:23 0:00 /usr/sbin/dhcpd
root 4172 0.0 0.0 4228 768 pts/0 S+ 08:26 0:00 grep dhcpd
[root@localhost angelv]#
Se usa chkconfig para conseguir que DHCP se inicie al arrancar(Al igual que sucede con los otros servicios de Linux, se tiene que reiniciar el demonio DHCP siempre que se haga cambios en los archivos de configuración). La salida de este comando en la práctica se muestra a continuación:
[root@localhost angelv]# chkconfig dhcpd on
[root@localhost angelv]# chkconfig --list | grep dhcp
dhcpd 0:desactivado 1:desactivado 2:activo 3:activo 4:activo 5:activo 6:desactivado
[root@localhost angelv]#
Ahora ya está el servidor funcionando en la máquina que ahora responde a la IP 192.168.1.1 para las máquinas de dentro de la subred. Y que irá asignando automáticamente direcciones IP desde la 192.168.1.2 hasta 192.168.1.254
Para probarlo ahora lo único que debemos hacer es conectar un hub o switch al cable saliente de la tarjeta de red que se corresponda con la interfaz eth0 y conectar a él máquinas con un cliente DHCP instalado(En la distribución Fedora se puede utilizar yum install dhcp-client) y con la configuración de red en modo DHCP.
Para configurar una máquina cliente en modo DHCP, en Linux, sólo se tiene que editar el fichero /etc/network/interfaces, comentando en él la línea relativa a eth0 así como las que hay debajo e indentadas con una tabulación a la derecha y poner esta línea: iface eth0 inet dhcp. Luego se reinicia la red con /etc/init.d/networking restart
Si le gustó esta entrada, ¡podría invítame a un café!
0 comentarios:
Publicar un comentario