A continuación vamos a explicar como configurar un servidor DHCP en nuestro Debian, de esta forma automatizaremos la configuración de red de los clientes y facilitaremos la organización de direcciones IP de nuestra red
Instalación y configuración del servicio DHCP
El primer paso para instalar nuestro DHCP es instalar el paquete necesario con apt-get install isc-dhcp-server
.
Una vez instalado vamos a configurar la interfaz por la que va a repartir direcciones, para ello editamos el fichero /etc/default/isc-dhcp-server
y configuramos que la interfaz de red por la que reparta direcciones sea eth1 modificando la siguiente linea INTERFACES="eth1"
.
El siguiente paso sera configurar nuestra red en el fichero de configuración /etc/dhcp/dhcpd.conf
, hay varias opciones entre las que elegir, en mi caso lo he configurado de la siguiente forma
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.2 192.168.1.100; option domain-name "manuelmachado.com"; option routers 192.168.1.254; option broadcast-address 192.168.1.255; default-lease-time 1200; max-lease-time 1500; option domain-name-servers 192.168.102.2; }
Las diferentes opciones que podemos configurar son:
: Tiempo de renovación de la concesióndefault-lease-time
: Tiempo de la concesión de la dirección IPmax-lease-time
: Puerta de enlaceoption routers
Dirección IP de los servidores DNSoption
domain-name-server
: Nombre de dominiooption
domain-name
: Dirección de difusión de la redoption
broadcast-address
A continuación reiniciamos el servicio DHCP con systemctl restart isc-dhcp-server.
Configuración de clientes
Como paso final solo queda configurar nuestros clientes para que obtengan la configuración de red de forma automática.
- En el caso de Linux editamos el fichero
/etc/network/interfaces
y modificamos la linea de eth0 de la siguiente forma
auto eth0 iface eth0 inet dhcp
- En el caso de Windows accedemos a «Panel de control –> Redes e internet –> Centro de redes y recursos compartidos –> Cambiar la configuración del adaptador –> Conexión de area local –> propiedades» seleccionamos la sección «TCP/IPv4» y hacemos click en propiedades. Marcamos las opciones «Optener una dirección IP automáticamente» y «Obtener la dirección del servidor DNS automáticamente»
Prueba de funcionamiento del DHCP
Para comprobar las concesiones que ha dado nuestro servidor hacemos un cat /var/lib/dhcp/dhcpd.leases
y las 2 primeras concesiones del archivo son las últimas IPs ofrecidas
lease 192.168.1.3 { starts 2 2017/01/17 11:22:03; ends 2 2017/01/17 11:26:44; tstp 2 2017/01/17 11:26:44; cltt 2 2017/01/17 11:22:03; binding state free; hardware ethernet 08:00:27:a8:01:43; uid "\001\010\000'\250\001C"; } lease 192.168.1.2 { starts 2 2017/01/17 11:21:16; ends 2 2017/01/17 11:27:46; tstp 2 2017/01/17 11:27:46; cltt 2 2017/01/17 11:21:16; binding state free; hardware ethernet 08:00:27:09:28:a2; }
Ahora vamos a ver las IP que tienen nuestros clientes:
- Con Windows en un terminal ejecutamos
ipconfig
Configuración IP de Windows Adaptador de Ethernet Conexión de área local: Sufijo DNS específico para la conexión. . : manuelmachado.com Vínculo: dirección IPv6 local. . . : fe80::618d:9143:206f:fe12%11 Dirección IPv4. . . . . . . . . . . . . . : 192.168.1.3 Máscara de subred . . . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . . . : 192.168.1.254 Adaptador de túnel isatap.manuelmachado.com: Estado de los medios. . . . . . . . . . . : medios desconectados Sufijo DNS específico para la conexión. . : manuelmachado.com
- Con Linux ejecutamos un
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:09:28:a2 brd ff:ff:ff:ff:ff:ff inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe09:28a2/64 scope link valid_lft forever preferred_lft forever
Reserva de IP
Ahora nuestro servidor DHCP está configurado pero vamos a suponer que algunos de nuestros clientes requieren una IP fija, en este caso tendremos que hacer reservas de IP para que el DHCP siempre le ofrezca la IP que le digamos a nuestro cliente, para ello editamos el fichero de configuración /etc/dhcp/dhcp.conf
y agregamos una linea de texto de esta forma
host penny{ hardware ethernet 08:00:27:A8:01:43; fixed-address 192.168.1.50; } host leonard{ hardware ethernet 08:00:27:09:28:a2; fixed-address 192.168.1.60; }
Como vemos en el ejemplo tenemos que saber la MAC de nuestro cliente y la IP que queremos reservarle
Prueba de funcionamiento de concesiones
Comprobamos el fichero de las concesiones en nuestro servidor situado en /var/lib/dhcp/dhcpd.leases
y comprobamos las concesiones.
lease 192.168.1.50 { starts 2 2017/01/24 12:47:20; ends 2 2017/01/24 12:56:07; tstp 2 2017/01/24 12:56:07; cltt 2 2017/01/24 12:47:20; binding state free; hardware ethernet 08:00:27:a8:01:43; uid "\001\010\000'\250\001C"; } lease 192.168.1.60 { starts 2 2017/01/24 12:46:51; ends 2 2017/01/24 12:58:25; tstp 2 2017/01/24 12:58:25; cltt 2 2017/01/24 12:46:51; binding state free; hardware ethernet 08:00:27:09:28:a2; }
Igual que en el punto anterior comprobamos las IP de nuestros clientes:
Linux
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:09:28:a2 brd ff:ff:ff:ff:ff:ff inet 192.168.1.60/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe09:28a2/64 scope link valid_lft forever preferred_lft forever
Windows
Adaptador de Ethernet Conexión de área local: Sufijo DNS específico para la conexión. . : example.org Vínculo: dirección IPv6 local. . . : fe80::618d:9143:206f:fe12%11 Dirección IPv4. . . . . . . . . . . . . . : 192.168.1.50 Máscara de subred . . . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . . . : 192.168.1.254 Adaptador de túnel isatap.example.org: Estado de los medios. . . . . . . . . . . : medios desconectados Sufijo DNS específico para la conexión. . : example.org