Troubleshooting Proxmox

Red vmbr1 sin conectividad a Internet

Síntomas

Dispositivos en la red 10.10.10.0/24 (vmbr1) tienen conectividad local pero no acceden a Internet ni resuelven DNS:

Causa

La regla NAT para vmbr1 no está activa en iptables, aunque esté configurada en /etc/network/interfaces.

¿Por qué sucede?

Las reglas post-up en /etc/network/interfaces solo se ejecutan cuando la interfaz se levanta. Si vmbr1 ya estaba UP cuando se agregaron las líneas de NAT, nunca se ejecutaron.

Diagnóstico

1. Verificar síntomas desde un cliente

# Desde Proxmox, conectar a un cliente en vmbr1
ssh usuario@10.10.10.113

# Pruebas de conectividad
ping -c 2 10.10.10.1        # ✅ OK = red local funciona
ping -c 2 10.10.10.2        # ✅ OK = router accesible
ping -c 2 1.1.1.1           # ❌ FAIL = sin salida Internet
nslookup google.com         # ❌ timeout = DNS no funciona

2. Verificar NAT en Proxmox

# Conectar a Proxmox
ssh root@proxmox.byolivia.work

# Buscar regla NAT para 10.10.10.0/24
iptables -t nat -L POSTROUTING -v -n | grep '10.10.10.0/24'

# Si no hay salida → regla NAT faltante ❌

3. Verificar configuración en /etc/network/interfaces

cat /etc/network/interfaces | grep -A10 'auto vmbr1'

Debe contener las líneas de NAT:

auto vmbr1
iface vmbr1 inet static
        address 10.10.10.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o ens4 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o ens4 -j MASQUERADE

Solución

Opción A: Agregar regla temporal (rápido)

Solución inmediata que no persiste tras reboot:

ssh root@proxmox.byolivia.work

# Agregar regla NAT
iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o ens4 -j MASQUERADE

# Verificar
iptables -t nat -L POSTROUTING -n | grep '10.10.10.0/24'

# Test desde cliente
ping -c 2 1.1.1.1
nslookup google.com
Temporal

Esta regla se pierde tras reiniciar Proxmox. Usar solo como solución inmediata.

Opción B: Reiniciar networking (recomendado)

Aplica la configuración de /etc/network/interfaces de forma permanente:

ssh root@proxmox.byolivia.work

# Reiniciar servicio networking
systemctl restart networking

# Verificar VMs siguen running
qm list | grep running

# Verificar NAT activo
iptables -t nat -L POSTROUTING -n | grep '10.10.10.0/24'
Breve corte

Puede causar una interrupción breve de conectividad (10-30 segundos) en todas las redes.

Opción C: Reboot completo (definitivo)

Solución más invasiva pero garantiza configuración limpia:

ssh root@proxmox.byolivia.work
reboot

Downtime completo: ~2-5 minutos

Problema adicional: ifdown/ifup desconecta VMs

Si has usado ifdown vmbr1 && ifup vmbr1 para reiniciar la interfaz, las VMs running pierden conexión con el bridge.

Detectar VMs desconectadas

# Ver qué VMs deberían estar en vmbr1
grep 'bridge=vmbr1' /etc/pve/qemu-server/*.conf | cut -d: -f1

# Ver qué está realmente conectado al bridge
brctl show vmbr1

Si falta alguna interfaz tapXXXiY, está desconectada.

Reconectar VMs manualmente

Para cada VM en vmbr1 (ejemplo: VM 102, 200, 300):

# Encontrar interfaces tap
ip link show | grep tap102
ip link show | grep tap200
ip link show | grep tap300

# Conectar al bridge (ajustar según el número de NIC)
ip link set tap102i0 master vmbr1
ip link set tap200i1 master vmbr1
ip link set tap300i0 master vmbr1

# Verificar
brctl show vmbr1
Evitar ifdown/ifup

NO usar ifdown vmbr1 && ifup vmbr1 con VMs running. Usa systemctl restart networking o reinicia Proxmox completo.

Prevención

Script de verificación automática

Crear /usr/local/bin/check-vmbr1-nat.sh:

#!/bin/bash
# Verificar NAT para vmbr1 activo

if ! iptables -t nat -L POSTROUTING -n | grep -q '10.10.10.0/24'; then
    echo "⚠️  NAT faltante para vmbr1, agregando..."
    iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o ens4 -j MASQUERADE
    logger "NAT vmbr1 restaurado automáticamente"
else
    echo "✅ NAT vmbr1 OK"
fi
# Hacer ejecutable
chmod +x /usr/local/bin/check-vmbr1-nat.sh

# Agregar a cron (ejecutar cada 5 minutos)
echo "*/5 * * * * root /usr/local/bin/check-vmbr1-nat.sh" > /etc/cron.d/check-nat

Systemd service (alternativa recomendada)

Crear /etc/systemd/system/vmbr1-nat.service:

[Unit]
Description=Ensure NAT for vmbr1 network
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'iptables -t nat -C POSTROUTING -s 10.10.10.0/24 -o ens4 -j MASQUERADE || iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o ens4 -j MASQUERADE'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
# Activar service
systemctl daemon-reload
systemctl enable vmbr1-nat.service
systemctl start vmbr1-nat.service

# Verificar estado
systemctl status vmbr1-nat.service

Checklist de diagnóstico rápido

Cuando tengas problemas de conectividad en 10.10.10.0/24:

  1. ¿Ping local (10.10.10.x) funciona? → Red capa 2 OK
  2. ¿iptables -t nat -L | grep 10.10.10 tiene salida? → NAT OK
  3. ¿brctl show vmbr1 muestra interfaces tap de VMs? → VMs conectadas
  4. ¿ip addr show vmbr1 muestra 10.10.10.1/24? → IP configurada
  5. ¿ip route en cliente muestra default via 10.10.10.1? → Gateway OK

Otros problemas comunes

VMs no arrancan tras actualización de Proxmox

Verificar configuración de CPU y modo de virtualización en la configuración de la VM.

Almacenamiento lleno

# Ver uso de disco
df -h

# Ver qué volúmenes ocupan más espacio
pvesm status

# Limpiar logs antiguos
journalctl --vacuum-time=7d

Ver también: Configuración de Proxmox, OpenWrt en Proxmox