====== Práctica Router Linux entre dos LAN ====== **Versión:** V_26_11 Esta práctica configura una máquina Debian como router entre dos redes internas. No hay Internet, NAT, DNS ni firewall: el objetivo es comprender el direccionamiento, la puerta de enlace y el reenvío IPv4. > **Regla de trabajo:** se usa NetworkManager y ``nmcli``. No se deben crear archivos ``.network`` de systemd-networkd para estas mismas interfaces. Antes de empezar, crea una instantánea de las tres máquinas virtuales. ===== 1. Objetivos ===== * Configurar dos redes IPv4 independientes en un router Linux. * Asignar una dirección estática y una puerta de enlace a cada cliente. * Activar el reenvío IPv4 y comprobar el paso de paquetes entre redes. ===== 2. Escenario ===== ^ Máquina ^ Adaptadores VirtualBox ^ Direcciones previstas ^ | Router | Adaptador 1: Red interna **LAN10**\\ Adaptador 2: Red interna **LAN20** | ``enp0s3``: 192.168.10.1/24\\ ``enp0s8``: 192.168.20.1/24 | | Cliente LAN10 | Adaptador 1: Red interna **LAN10** | ``enp0s3``: 192.168.10.10/24\\ Gateway: 192.168.10.1 | | Cliente LAN20 | Adaptador 1: Red interna **LAN20** | ``enp0s3``: 192.168.20.10/24\\ Gateway: 192.168.20.1 | No conectes ninguna máquina a NAT. Si el ping a ``1.1.1.1`` falla, es correcto: no existe una interfaz WAN ni NAT. ===== 3. Preparación de VirtualBox ===== Con las máquinas apagadas, abre **Configuración > Red**. Activa **Cable conectado** en todas las tarjetas. * En el router, conecta el adaptador 1 a la red interna ``LAN10`` y el adaptador 2 a ``LAN20``. * En Cliente LAN10, conecta el único adaptador a ``LAN10``. * En Cliente LAN20, conecta el único adaptador a ``LAN20``. Arranca las tres máquinas y comprueba los nombres reales de las interfaces: ip -br link nmcli device status ``ip -br link`` muestra los nombres y el estado de las tarjetas. ``nmcli device status`` debe indicar que NetworkManager las administra; no deben aparecer como ``unmanaged``. Sustituye ``enp0s3`` y ``enp0s8`` por los nombres reales si fueran distintos. ===== 4. Configuración del router ===== Ejecuta en la VM **Router**: sudo nmcli connection add type ethernet ifname enp0s3 con-name Router-LAN10 ipv4.method manual ipv4.addresses 192.168.10.1/24 ipv4.never-default yes sudo nmcli connection add type ethernet ifname enp0s8 con-name Router-LAN20 ipv4.method manual ipv4.addresses 192.168.20.1/24 ipv4.never-default yes sudo nmcli connection up Router-LAN10 sudo nmcli connection up Router-LAN20 * ``ipv4.method manual`` configura IP estática. * ``/24`` equivale a máscara 255.255.255.0. * ``ipv4.never-default yes`` evita que una LAN se convierta en ruta por defecto. * ``connection up`` activa el perfil creado. Comprueba el resultado: ip -4 -br address ip route Deben aparecer 192.168.10.0/24 y 192.168.20.0/24 como redes directamente conectadas. No debe existir una ruta ``default``. ===== 5. Activar el reenvío IPv4 ===== Linux no reenvía paquetes entre interfaces por defecto. Actívalo en el router: sudo sysctl -w net.ipv4.ip_forward=1 sysctl net.ipv4.ip_forward El segundo comando debe mostrar el valor ``1``. Para conservarlo tras reiniciar: sudo nano /etc/sysctl.d/99-router-lab.conf Escribe: net.ipv4.ip_forward=1 Guarda y aplica: sudo sysctl --system ===== 6. Cliente LAN10 ===== Ejecuta en **Cliente LAN10**: sudo nmcli connection add type ethernet ifname enp0s3 con-name Cliente-LAN10 ipv4.method manual ipv4.addresses 192.168.10.10/24 ipv4.gateway 192.168.10.1 sudo nmcli connection up Cliente-LAN10 ip -4 -br address ip route La puerta de enlace ``192.168.10.1`` es la primera tarjeta del router. ``ip route`` debe mostrar ``default via 192.168.10.1``. ===== 7. Cliente LAN20 ===== Ejecuta en **Cliente LAN20**: sudo nmcli connection add type ethernet ifname enp0s3 con-name Cliente-LAN20 ipv4.method manual ipv4.addresses 192.168.20.10/24 ipv4.gateway 192.168.20.1 sudo nmcli connection up Cliente-LAN20 ip -4 -br address ip route La puerta de enlace ``192.168.20.1`` es la segunda tarjeta del router. ``ip route`` debe mostrar ``default via 192.168.20.1``. ===== 8. Pruebas ===== En Cliente LAN10: ping -c 3 192.168.10.1 ping -c 3 192.168.20.10 ip route get 192.168.20.10 En Cliente LAN20: ping -c 3 192.168.20.1 ping -c 3 192.168.10.10 Los pings a la puerta de enlace verifican cada LAN. Los pings al cliente de la otra red verifican el router. ``ip route get 192.168.20.10`` debe indicar que Cliente LAN10 envía el tráfico mediante ``192.168.10.1``. En el router, opcionalmente observa los paquetes mientras un cliente hace ping: sudo tcpdump -ni any icmp Detén la captura con ``Ctrl+C``. ===== 9. Entrega ===== - Captura de ``ip -4 -br address`` e ``ip route`` en las tres máquinas. - Dos pings correctos entre Cliente LAN10 y Cliente LAN20. - Captura de ``sysctl net.ipv4.ip_forward`` con valor ``1``.