Ejercicio: Instalación y configuración del servidor dhcp en linux
En las siguientes tareas vamos ver como podemos instalar y configurar un servidor dhcp en una maquina vagrant para que este proporcione direcciones dinamicas a otras maquinas clientes.
Instalción del servidor isc-dhcp-server
Para poder hacer una instalacion del servidor isc-dhcp-server en nuestro servidor, para ello nos vamos a la linea de comandos y escribimos:
vagrant@servidor:~$ sudo apt install isc-dhcp-server
Con ese comando vamos a hacer la instalacion de nuestro servidor. Veremos que cuando estamos instalado este servidor dhcp nos saldra unos errores pero no debemos tenerlos en cuenta ya que estos errores se deben a que nuestro servidor dhcp no esta configurado.
Configuración del servidor isc-dhcp-server
Lo primero que debemos de hacer es indicar a nuestro servidor que interfaz de red por la que va a trabajar dhcp, para ello debemos de irnos al siguiente fichero de configuración:
vagrant@servidor:~$ sudo nano /etc/default/isc-dhcp-server
Cuando estamos en el fichero nos fijamos que hay una linea en la que pone INTERFACESv4="". Nosotros nos vamos a esta linea y le indicamos la interfaz que va a usar nuestro servidor dhcp, en este caso la mia es la eth1:
INTERFACESv4="eth1"
Ahora nos dirigimos al fichero de configuracion de dhcp que es /etc/dhcp/dhcpd.conf. En dicho fichero debemos de poner la configuracion dhcp que nosotros necesitemos en nuestro servidor, todos los parametros que se pueden especificar son:
-
Subnet: Especifican rangos de direcciones IPs que serán cedidas a los clientes que lo soliciten.
-
max-lease-time: Tiempo de la concesión de la dirección IP
-
default-lease-time: Tiempo de renovación de la concesión
-
option routers: Indicamos la dirección red de la puerta de enlace que se utiliza para salir a internet.
-
option domain-name-servers: Se pone las direcciones IP de los servidores DNS que va a utilizar el cliente.
-
option domain-name: Nombre del dominio que se manda al cliente.
-
option subnetmask: Subred enviada a los clientes.
-
option broadcast-address: Dirección de difusión de la red.
Al indicar una sección subnet tenemos que indicar la dirección de la red y la mascara de red y entre llaves podemos poner los siguientes parámetros:
-
range: Indicamos el rango de direcciones IP que vamos a asignar.
-
Algunos de los parámetros que hemos explicado en la sección principal.
Ejemplo de configuración de la sección subnet puede ser:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.100 192.168.100.110;
option routers 192.168.100.1;
option domain-name-servers 80.58.0.33, 80.58.32.9;
}
Reinciciamos el servidor dhcp:
vagrant@servidor:~$ sudo systemctl restart isc-dhcp-server.service
Ejercicio 1
-
Configura el servidor dhcp con las siguientes características
- Rango de direcciones a repartir: 192.168.0.100 - 192.168.0.110
- Máscara de red: 255.255.255.0
- Duración de la concesión: 1 hora
- Puerta de enlace: 192.168.0.1
- Servidores DNS: 8.8.8.8, 8.8.4.4
-
Configura los clientes para obtener direccionamiento dinámico. Comprueba las configuraciones de red que han tomado los clientes. Visualiza el fichero del servidor donde se guarda las configuraciones asignadas.
Tarea 1
Para poder realizar este ejercicio necesitaremos minimos dos maquinas para poder hacer un servidor y un cliente, para ello vamos a usar vagrant para la creacion de estas dos maquinas y usaremos el siguiente contenido en el Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.define :servidor do |servidor|
servidor.vm.box = "debian/buster64"
servidor.vm.hostname = "servidor"
servidor.vm.network :private_network, ip: "192.168.0.1",
virtualboxintnet: "red1"
end
config.vm.define :nodolan1 do |nodolan1|
nodolan1.vm.box = "debian/buster64"
nodolan1.vm.hostname = "nodolan1"
nodolan1.vm.network :private_network, type: "dhcp",
virtualboxintnet: "red1"
end
end
Una vez tengamos ambas maquinas creadas nos vamos a la maquina “servidor” mediante vagrant ssh servidor y una vez dentro seguimos los pasos de instalacion del servidor dhcp hasta la parte donde añadimos la interfaz de red que vamos a usar, en este caso usaremos eth1 por lo que debemos de tener en el fichero /etc/default/isc-dhcp-server y tener el parametro INTERFACESv4=“eth1”.
Una vez tengamos este paso nos dirigimos al fichero de configuracion de dhcp y ponemos lo siguiente:
subnet 192.168.0.1 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.110;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 3600;
}
Una vez hecho este ultimo paso, reiniciamos nuestro servicio con:
vagrant@servidor:~$ sudo systemctl restart isc-dhcp-server.service
Y vemos el estado del servicio veremos que esta activo:
vagrant@servidor:~$ sudo systemctl status isc-dhcp-server.service
Tarea 2
Ahora que ya tenemos el servicio dhcp configurado y activado, si nos dirigimos a nuestra maquina cliente y hacemos vagrant@nodolan1:~$ ip a show dev eth1 y veremos que tiene asignada una ip del rango que nosotros le hemos dicho en nuestro fichero de configuracion del servidor dhcp y tambien la direccion de broadcast que le hemos indicado.
A la hora de ver la configuracion que toma nuestro cliente se le añade a nuestro servidor unas concesiones, donde tenemos los datos de la maquina a la que se le a asignado la ip. En este fichero nos muestra el tiempo de concesion que tiene esa ip, y el tiempo de renovacion de esa concesion, que en este caso el tiempo de renovacion es de 10 min.
Para ver este fichero nos dirigimos al fichero /var/lib/dhcp/dhcpd.leases y ahi tendremos todas las concesiones a los clientes que estan cogiendo ip de nuestro servidor dhcp.
Ejercicio 2
-
Crea en el servidor dhcp una sección HOST para conceder a un cliente una dirección IP determinada (por ejemplo la 192.168.0.105)
-
Obtén una nueva dirección IP en el cliente y comprueba que es la que has asignado por medio de la sección host.
Realiza las siguientes comprobaciones
Vamos a comprobar que ocurre con la configuración de los clientes en determinadas circunstancias, para ello vamos a poner un tiempo de concesión muy bajo.
-
Los clientes toman una configuración, y a continuación apagamos el servidor dhcp. ¿qué ocurre con el cliente windows? ¿Y con el cliente linux?
-
Los clientes toman una configuración, y a continuación cambiamos la configuración del servidor dhcp (por ejemplo el rango). ¿qué ocurre con el cliente windows? ¿Y con el cliente linux?
Tarea 1
En esta tarea debemos de hacer que una ip determinada (en este caso usaremos la 192.168.0.105) pueda ser asignada a un solo dispositivo y que dicho dispositivo al hacer una peticion dhcp a nuestro servidor este solo le asigne la ip que hemos mencionado anteriormente.
Para realizar este proceso tenemos que indicar en el fichero de configuracion /etc/dhcp/dhcpd.conf y, esto es muy importante, para realizar esta reserva debemos de indicarla dentro de la subnet que tengamos definida, en este caso la subnet de la tarea anterior:
subnet 192.168.0.1 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.110;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 3600;
host reserva-1 { #seccion host dentro de la subnet
fixed-address 192.168.0.105; # La dirección IP que le vamos a asignar.
hardware ethernet 08:00:27:38:ee:c6; # Es la dirección MAC de la tarjeta de red del host.
}
}
De esta forma tendremos que, cuando nuestra maquina cliente haga una peticion dhcp a nuestro servidor se le asignara la ip que le hemos indicado en el fichero de configuración. Para que nos de la ip solo debemos de renovar nuestra concesion con dhclient y al hacer ip a show dev eth1 veremos que nos han asignado la ip 192.168.0.105 .