Conectar los dispositivos del evento

LinuxBeginner
Practicar Ahora

Introducción

Maple Yard prepara un evento de fin de semana. El puesto de referencia ya recibe automáticamente su configuración de red. Dos dispositivos nuevos necesitan el mismo servicio, sin ocupar direcciones reservadas para el router o los puestos fijos.

Configurarás un pequeño rango de direcciones DHCP, harás que ambos clientes obtengan concesiones reales y descargarás el programa mediante la puerta de enlace y el DNS recibidos. Solo se presupone que sabes introducir comandos básicos y cambiar entre pestañas con nombre. No necesitas programar ni haber administrado DHCP.

Utiliza Network Desk para editar la configuración del servidor, Guest A y Guest B para los comandos de cliente y Network Map para observar los nodos activos. Son nodos de red Linux aislados que comparten un kernel. Sus directorios y estados de red son independientes. Abrir o reconectar una pestaña no reinicia el curso.

Reservar espacio para los dispositivos nuevos

En este paso elegirás un rango dinámico seguro y harás que el servidor DHCP lo ofrezca. Comienza en Network Map. Busca la tarjeta reference y selecciona Request programme. Debe aparecer el programa de Maple Yard. Es un ejemplo existente que funciona, todavía no es tu resultado nuevo.

Una dirección IPv4 identifica un dispositivo en esta red. El /24 de 10.77.0.10/24 indica que las direcciones que empiezan por 10.77.0 pertenecen a esta subred local. La puerta de enlace transporta el tráfico al servidor del programa, en otra subred. DNS convierte un nombre como programme.event.test en su dirección. Recibir una dirección no demuestra que los demás ajustes sean útiles.

Cambia a Network Desk. Esta terminal comienza en /home/labex/project/event-network. pwd muestra el directorio actual; cat muestra un archivo de texto:

pwd
cat devices.tsv

La dirección MAC es la identidad de capa de enlace del dispositivo en esta red preparada. Es diferente de su dirección IPv4 y del nombre de su pestaña. El puesto de referencia utiliza 10.77.0.10; el router y DNS utilizan 10.77.0.1. Conserva esas direcciones fijas. El rango de invitados va de 10.77.0.100 a 10.77.0.109, ambos incluidos, con máscara 255.255.255.0, equivalente a /24.

Lee el archivo editable del servidor:

cat dhcp.conf

Su línea conf-file incluye el servicio de referencia preparado. Consérvala. dhcp-range define la primera dirección, la última, la máscara de subred y la duración de la concesión. Una concesión es una asignación temporal; 2h significa dos horas, no propiedad permanente.

El siguiente here-document escribe el archivo pequeño completo. > sustituye el contenido anterior. Las comillas de 'CONF' conservan literalmente el bloque; el CONF final debe estar solo al principio de su línea. Copia el bloque entero:

cat > dhcp.conf <<'CONF'
conf-file=/opt/labex/event-network/server-base.conf
dhcp-range=10.77.0.100,10.77.0.109,255.255.255.0,2h
CONF

--test comprueba la sintaxis sin iniciar otro servidor. --conf-file selecciona tu archivo:

dnsmasq --test --conf-file=dhcp.conf

Debes ver dnsmasq: syntax check OK.. Si aparece un error, lee el archivo guardado con cat, restaura el bloque mostrado y comprueba de nuevo. No reinicies un servicio operativo con un error de sintaxis conocido.

sudo ejecuta este único comando administrativo. systemctl restart carga la configuración modificada en el servicio del curso, llamado event-dhcp:

sudo systemctl restart event-dhcp

Un reinicio correcto normalmente no imprime nada. No solicita concesiones para los invitados. Has preparado lo que puede ofrecer el servidor; los clientes todavía deben pedirlo. En este primer laboratorio, dnsmasq anuncia su dirección local preparada como puerta de enlace y DNS predeterminados. El siguiente enseña cómo las opciones explícitas del servidor controlan esos valores.

Hacer que cada invitado solicite una concesión

En este paso conectarás ambos clientes nuevos mediante solicitudes DHCP reales. Cambia a Guest A. Es el shell de administrador de ese cliente aislado, ya situado en su directorio de trabajo. Su eth0 es el enlace del curso, no la interfaz de la plataforma. No ejecutes estos comandos en Network Desk.

dhclient es el cliente ISC DHCP suministrado. El curso utiliza una copia local sin modificar con un hook preparado que aplica únicamente las opciones recibidas a este nodo aislado. No inventa direcciones ni cambia el resolvedor de la plataforma. -4 selecciona IPv4, -v muestra el intercambio y -1 hace que este intento de adquisición termine si ningún servidor responde. -cf client.conf selecciona los ajustes suministrados; -pf client.pid y -lf client.leases guardan el estado del proceso y las concesiones de este cliente en su propio directorio. El archivo de concesiones preparado empieza vacío; el cliente escribe allí su concesión real recibida. Conserva estos archivos preparados.

Ejecuta lo siguiente en una sola línea:

dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0

Busca DHCPDISCOVER, DHCPOFFER, DHCPREQUEST y DHCPACK. En un primer intercambio, el cliente busca un servidor, recibe una oferta, la solicita y recibe la confirmación. Una concesión existente puede acortar un intercambio posterior. El mensaje final bound to 10.77.0... identifica la dirección asignada. La dirección exacta y el momento de renovación pueden variar dentro del rango.

ip -4 addr show muestra las direcciones IPv4 de la interfaz seleccionada:

ip -4 addr show dev eth0

Debe aparecer una dirección de 10.77.0.100–10.77.0.109 con /24.

Cambia a Guest B, que tiene su propio directorio y estado de cliente. Ejecuta allí también el comando completo:

dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
ip -4 addr show dev eth0

Ambas direcciones deben pertenecer al rango y ser diferentes. Si ves No DHCPOFFERS received, confirma primero la pestaña correcta y vuelve a Network Desk para leer dhcp.conf, comprobar su sintaxis y reiniciar event-dhcp. Repite la adquisición solo en el cliente que sigue esperando. No borres archivos de concesiones ni reinicies la VM por un error al escribir.

En Network Map, recarga la página. Las dos tarjetas de invitados deberían mostrar sus direcciones reales. Esta observación no solicita ni repara concesiones.

Utilizar los ajustes para obtener el programa

En este paso demostrarás que cada cliente puede usar la configuración recibida y guardarás un archivo real del programa. Comienza en Guest A.

ip route show default muestra la puerta de enlace utilizada para destinos fuera de esta subred local. /etc/resolv.conf enumera el resolvedor DNS de este cliente:

ip route show default
cat /etc/resolv.conf

La puerta de enlace debe ser 10.77.0.1 en eth0, con nameserver 10.77.0.1. El router preparado también proporciona DNS. El programa está en otra subred, por lo que la solicitud necesita ambos ajustes.

curl solicita un recurso HTTP. --noproxy '*' evita que el ejercicio local pase por un proxy externo; las comillas mantienen literal *. -f considera fallos los errores HTTP, -s oculta el indicador de progreso y -S sigue mostrando los errores. --max-time 5 limita la espera a cinco segundos. -o programme.txt guarda los bytes de la respuesta en el directorio actual del cliente:

curl --noproxy '*' -fsS --max-time 5 -o programme.txt http://programme.event.test:8080/programme.txt
cat programme.txt

El resultado esperado es:

MAPLE YARD | Weekend programme
10:00 Welcome desk opens
11:00 Bicycle repair
13:00 Seed exchange
15:00 Community workshop

Cambia a Guest B e inspecciona los ajustes que ha recibido de forma independiente:

ip route show default
cat /etc/resolv.conf

Descarga y lee allí también el programa:

curl --noproxy '*' -fsS --max-time 5 -o programme.txt http://programme.event.test:8080/programme.txt
cat programme.txt

Could not resolve host indica un problema de resolución de nombres; un tiempo de espera agotado puede indicar un problema de ruta o puerta de enlace; Connection refused significa que el destino seleccionado no tiene un servicio que acepte conexiones en ese puerto. Una respuesta HTTP correcta puede contener el recurso equivocado: lee todas las entradas del programa.

Si existe una dirección pero falla la solicitud, compara la puerta de enlace y DNS con los valores anteriores. Vuelve al archivo correcto del servidor en lugar de asignar ajustes manualmente al cliente. Si necesitas liberar y solicitar otra vez la concesión, -r libera la concesión actual de este cliente y termina su proceso anterior:

dhclient -4 -v -r -cf client.conf -pf client.pid -lf client.leases eth0

Utiliza después el comando de adquisición ya aprendido y repite la descarga. Ejecuta estas acciones de recuperación únicamente en la pestaña del invitado afectado.

Por último, recarga Network Map. Selecciona Request programme en ambos invitados y en el puesto de referencia. Los tres deben devolver el programa completo. Los archivos guardados y las solicitudes reales demuestran una configuración utilizable, además de un archivo de servidor aparentemente correcto.

Network Map después de las solicitudes reales de los clientes

Compara la dirección IPv4, la puerta de enlace y DNS de cada tarjeta; después lee la respuesta del programa bajo su botón. Las direcciones asignadas a los invitados pueden diferir del ejemplo.

Resumen

Has elegido un rango que excluye los dispositivos fijos, obtenido concesiones DHCP reales distintas, leído la puerta de enlace y DNS aplicados y descargado el programa completo desde ambos clientes. También has conservado el puesto de referencia operativo.

Son ajustes temporales dentro de la VM de formación actual. No garantizan persistencia tras reiniciar, acceso público a Internet ni compatibilidad con todos los clientes DHCP. El siguiente laboratorio guiado prepara de forma independiente otro entorno para una reserva de dispositivo y la recuperación de la configuración.