Con el nuevo año también se renuevan las ganas de volver a escribir posts. En este caso voy a explicar algo muy sencillito pero notablemente útil cuando estás administrando una red de equipos.

Uno de los protocolos utilizados para la intercomunicación de equipos informáticos es el protocolo IP o Internet Protocol. Este protocolo define que cada equipo en una red debe estar identificado por un número. Existen dos versiones de este protocolo IPv4 y IPv6. La primera de ellas, IPv4, utiliza números de 32 bits para identificar los equipos, estos números están agrupados en cuatro números de 8 bits cada uno separados por puntos que generan 4 rangos de 0 a 255, por ejemplo, 192.168.1.1. Muchos podrían pensar que el número de IPs versión 4 es enorme y que no se va a acabar nunca, pues esto no es del todo correcto. Está empezando a notarse una preocupación cada vez mayor sobre la imposibilidad de mantener este sistema de numeración, lo cual ha llevado a la aparición de IPv6. Esta nueva versión del protocolo utiliza 128 bits para el direccionamiento, con lo que el espacio de direcciones aumenta enormemente. Además, esta nueva versión del protocolo tiene otras muchas ventajas que tal vez mencione en un nuevo post. Por ahora os dejo simplemente un ejemplo de cómo sería una dirección IPv6 fe80::21f:c6ff:fe85:8997/64. Si tenéis el módulo IPv6 cargado en el kernel de linux os aparecerá esta dirección al teclear el comando ifconfig.

Una vez que he llamado vuestra atención sobre la importancia de las direcciones IP, empezamos a ver el problema de que alguien debe otorgar dichas direcciones a los equipos de una red para que no se repitan y para que funcionen bien, debido a que no todas las direcciones IP son válidas.

La primera aproximación siempre es la de hacerlo a mano. En este caso, el administrador del sistema establece una dirección IP para cada ordenador de la red y todo quedaría resuelto. El problema aparece cuando la red es muy grande o cuando queremos cambiar todos los equipos de la red 192.168.1.X a 192.168.2.X. Para solventar estos problemas se creó el protocolo DHCP.

Este protocolo se encarga de la configuración de IPs de los equipos que lo soliciten. Además, permite configurar opciones extras como la puerta de enlace predeterminada de un equipo o el servidor DNS que utilizarán. Una de las características de IPv6 es la autoconfiguración de la IP, por lo que me voy a centrar en la configuración de un servidor DHCP en IPv4.

Para instalar un servidor DHCP hay que descargarse los fuentes o utilizar algún gestor de paquetes como apt-get o yum. Por ejemplo:

sudo apt-get install dhcp3-server

Una vez instalado, hay que completar el archivo de configuración que se encuentra en /etc/dhcp3/dhcpd.conf como se muestra a continuación:

subnet 162.128.30.0 netmask 255.255.255.0 {
range 162.128.30.30 162.128.30.100;
option domain-name-servers dns.alberto.com;
option domain-name “alberto.com”;
option routers 162.128.30.1;
option broadcast-address 162.128.30.255;
default-lease-time 600;
max-lease-time 7200;
}

Por supuesto, esto es solo un ejemplo. Se pueden establecer opciones por defecto, asignar direcciones fijas a un ordenador con una dirección MAC concreta, asignar subredes distintas dependiendo de la interfaz del servidor DHCP a la que llega la solicitud, etc.

Ahora solo resta reiniciar el servidor:

root@abian:~# /etc/init.d/dhcp3-server restart
* Stopping DHCP server dhcpd3
* Starting DHCP server dhcpd3
root@abian:~#

Para comprobar que realmente funciona, tan solo hay que utilizar una máquina cliente y teclear el comando:

root@alberto:~# dhclient3 [interfaz]

Para que el cliente utilice siempre la configuración por DHCP se puede modificar el archivo /etc/network/interfaces para que contenga algo como lo que muestro a continuación:

abian@shadowland:~$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

De esta manera, cada vez que se encienda el equipo o que se utilicen los comando “ifup eth0” o “/etc/init.d/networking restart” el equipo solicitará una dirección IPv4 al servidor DHCP.

Al hacer un ifconfig aparecerá la información actualizada. Por supuesto, si hemos utilizado información extra como puerta de enlace predeterminada o servidor DNS podremos hacer más comprobaciones revisando el fichero /etc/resolv.conf o utilizando el comando route -n.

Espero que os haya gustado el post, un saludo a todos y hasta pronto.