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.
| 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.
Con las máquinas apagadas, abre Configuración > Red. Activa Cable conectado en todas las tarjetas.
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.
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
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``.
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
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``.
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``.
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``.