Laboratorio de DHCP y DNS: configura dnsmasq para una red pequeña en el navegador
Este laboratorio da a cada alumno una red pequeña dentro de su propia máquina virtual Ubuntu: un servidor y dos ordenadores, pc1 y pc2, que empiezan sin ninguna dirección. El servidor ejecuta dnsmasq sin nada configurado, y el alumno escribe el único archivo que hace que reparta direcciones y responda a los nombres del laboratorio. No se instala nada en el ordenador del alumno y un script califica el resultado, así que no tienes que leer cada máquina.
Qué aprenden los alumnos
Cómo un ordenador obtiene una dirección y encuentra un nombre. DHCP: un intervalo del que conceder direcciones, cuánto dura una concesión, el router y el servidor DNS que el servidor comunica a cada cliente, y una dirección fija para un ordenador elegido por su dirección física (MAC). DNS: responder a un nombre desde un registro de la configuración del servidor y rechazar todos los demás, porque el servidor no tiene adónde reenviarlos. También ven las herramientas reales: dnsmasq en el servidor, dhclient y dig en los clientes, ip para leer el resultado y tcpdump para observar la conversación.
La red y la tarea
El servidor está en 10.0.10.1 y pc1 y pc2 están en el mismo conmutador, cada uno con una dirección física fija que da el README. El alumno escribe /etc/dnsmasq.d/lab.conf para que el servidor conceda direcciones de un intervalo dado durante doce horas, comunique a los clientes un router y un servidor DNS dados, dé siempre a pc2 una dirección dada, responda a files.lab y printer.lab con direcciones dadas y no responda a nada más. El README dice cada cifra y no da nombres de opciones ni líneas de configuración.
Ejecútalo en tu navegador
Los laboratorios de máquina virtual se asignan como una tarea de laboratorio en un módulo, y el ejemplo está en la página del laboratorio. La máquina es pequeña: una CPU, 1 GB de memoria y 10 GB de disco.
- Añade el laboratorio. En un módulo que impartes, añade una tarea y elige la tarjeta «Laboratorio de máquina virtual Ubuntu». La página muestra una breve descripción de la máquina en lugar de un archivo compose.
- Parte del ejemplo. La página ofrece laboratorios de ejemplo para empezar. Elige DHCP and DNS with dnsmasq. Usar un ejemplo sustituye el texto, y «Deshacer» recupera el tuyo.
- Publica e inicia tu propia copia. Publica y después pulsa «Iniciar». El script de preparación del laboratorio instala dnsmasq, el cliente DHCP, dig y tcpdump desde el archivo de Ubuntu y construye las tres máquinas la primera vez que se inicia la máquina virtual, en unos segundos.
- Abre el terminal. Abre su terminal y lee README.md en la carpeta personal: dice lo que debe hacer el servidor y no da ninguna respuesta.
Una lección básica en este laboratorio
DHCP and DNS Basics es una lección pequeña que se hace en este laboratorio, que es una máquina virtual Ubuntu: cada paso está explicado y tiene un botón Ejecutar que escribe su comando en el terminal de la máquina y muestra lo que imprimió. El alumno conoce las tres máquinas y ve que los clientes no tienen dirección, le pide una a pc1 y no obtiene nada, pide un nombre al servidor y este lo rechaza, y lee el archivo de configuración, que está vacío.
La lección se limita a mirar alrededor y deja al alumno la tarea propia del laboratorio, escribir la configuración, de modo que no da ninguna respuesta. Es deliberadamente pequeña: muestra a un profesor qué es una lección que se hace en un laboratorio, y el laboratorio hace el resto. Cópiala en un módulo tuyo para cambiarla.
Cómo se califica
El laboratorio tiene una comprobación. Se ejecuta sobre una copia de la máquina guardada tras un inicio en limpio, así que solo ve lo que el alumno guardó. Detiene el dnsmasq que estuviera en marcha, inicia uno desde los archivos guardados en /etc/dnsmasq.d, borra los dos clientes y hace que pidan dirección de nuevo con el cliente DHCP real. Después lee lo ocurrido: cada cliente tiene una dirección del intervalo, el router, el servidor DNS y la concesión de doce horas que pide la tarea, pc2 tiene su dirección fija, y los dos nombres se resuelven a las direcciones correctas mientras que los demás se rechazan o no se encuentran. Las direcciones escritas a mano en los clientes, un comodín que responde a todos los nombres, nombres puestos en /etc/hosts y un dnsmasq iniciado a mano con un archivo que nunca se guardó no la superan, y la primera línea de lo que imprimió la comprobación dice qué parte y por qué.
- Asígnalo. Asigna el laboratorio como cualquier tarea, con una fecha de entrega si quieres. Cada alumno recibe una máquina virtual propia, que se conserva de una sesión a otra.
- Ejecuta la comprobación. En la fila de un alumno de la lista de la clase, pulsa «Ejecutar la comprobación». Inicia una copia de su máquina guardada, sin guardar nada de vuelta, ejecuta como root el script de comprobación del laboratorio y muestra si se superó, qué imprimió y cuándo. Al alumno no se le comunica el resultado.
- Califícalo. Lee la primera línea de lo que imprimió la comprobación: nombra la primera cosa que no está bien y dice por qué. Devuelve el trabajo con un motivo si necesita más.
La definición en GitHub
El archivo es la definición completa del laboratorio, el mismo texto que ejecuta la plataforma: tamaño, script de preparación, README y comprobación. Cópialo y cambia las direcciones y los nombres, en la preparación y en la comprobación a la vez, para hacer el tuyo.
Preguntas frecuentes
- ¿Hace falta un segundo servidor DHCP o un router real?
- No. El servidor y los clientes son espacios de nombres de red unidos por un conmutador virtual dentro de la máquina virtual del alumno, y el router que se comunica a los clientes es solo una dirección de la concesión. No hay otro servidor DHCP con el que competir.
- ¿Se puede consultar un nombre de fuera del laboratorio?
- No. La máquina virtual solo llega al archivo de Ubuntu, PyPI, npm y GitHub, y el servidor DNS del laboratorio no tiene adónde reenviar un nombre, así que el laboratorio pide que todo nombre que no sean los dos suyos se rechace o no se encuentre.
- ¿Qué comprueba el laboratorio de DHCP y DNS?
- La comprobación arranca dnsmasq con los archivos guardados, hace que los dos clientes pidan de nuevo y lee el resultado. Cada cliente debe tener una dirección del rango, el router, el servidor DNS y la concesión de doce horas, pc2 debe tener su dirección fija y los dos nombres del laboratorio deben resolverse mientras que los demás se rechazan.