# Proxmox dejó de responder al ping, y la única forma de recuperarlo fue desconectar el cable Ethernet y volver a conectarlo. Si Proxmox dejó de responder al ping y solo se recuperó después de desconectar y volver a conectar físicamente el cable Ethernet, probablemente se trate de un problema relacionado con la red (por ejemplo, un fallo en el controlador de la NIC, un problema con la concesión de DHCP, un fallo en la negociación del enlace, etc.). ### Revise los registros del sistema alrededor del momento de la interrupción. Commando: ``` journalctl --since "20:15" --until "20:25" ``` o mas ampliamente: ``` journalctl -xe ``` Busque entradas relacionadas con: - networkd, systemd-networkd, NetworkManager o ifupdown - e1000e, igb, r8169 u otros controladores de tarjetas de red (NIC) - mensajes como *link is down*, *carrier lost*, *eth0*, *enpXsY*, etc. - dhclient, pérdida de concesión de IPv4, *timeout* en mi caso: ``` Jun 05 08:32:23 desklab rrdcached[1104]: handle_request_update: Could not read RRD file. Jun 05 08:32:23 desklab pmxcfs[1117]: [status] notice: RRDC update error /var/lib/rrdcached/db/pve2-node/desklab: -1 Jun 05 08:32:23 desklab pmxcfs[1117]: [status] notice: RRD update error /var/lib/rrdcached/db/pve2-node/desklab: mmaping file '/var/lib/rrdcached/db/pve2-node/desklab': Invalid argument Jun 05 08:32:24 desklab kernel: e1000e 0000:00:1f.6 enp0s31f6: Detected Hardware Unit Hang: TDH TDT <5f> next_to_use <5f> next_to_clean buffer_info[next_to_clean]: time_stamp <14ce53dcb> next_to_watch jiffies <14ce65201> next_to_watch.status <0> MAC Status <40080083> PHY Status <796d> PHY 1000BASE-T Status <3800> PHY Extended Status <3000> PCI Status <10> ....................... Jun 05 08:33:03 desklab kernel: e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Down Jun 05 08:33:03 desklab kernel: vmbr0: port 1(enp0s31f6) entered disabled state Jun 05 08:33:03 desklab rrdcached[1104]: handle_request_update: Could not read RRD file. Jun 05 08:33:03 desklab pmxcfs[1117]: [status] notice: RRDC update error /var/lib/rrdcached/db/pve2-node/desklab: -1 Jun 05 08:33:03 desklab pmxcfs[1117]: [status] notice: RRD update error /var/lib/rrdcached/db/pve2-node/desklab: mmaping file '/var/lib/rrdcached/db/pve2-node/desklab': Invalid argument ``` ### **Que muestran los registros?**
**Hora** **Evento**
08 : 32 : 23 Comienza el *spam* de “e1000e … Detected Hardware Unit Hang” ⇒ la tarjeta Intel I219-V se congela y no puede transmitir/recibir.
08 : 32 : 23 rrdcached/pmxcfs empiezan a fallar al hacer *mmap* de los archivos RRD – Proxmox no puede escribir los gráficos de rendimiento porque la NIC ya está detenida.
08 : 33 : 03 El controlador finalmente se rinde → Enlace de red (NIC) caído → el puerto vmbr0 se deshabilita. A partir de este punto, Proxmox queda fuera de la red hasta que se desconectó y volvió a conectar el cable (o hasta que el controlador reinició la tarjeta).
El volcado de registros repetitivo (TDH/TDT/jiffies/PHY Status) es la clásica firma del *unit-hang* de e1000e, documentada en el bug #118721 del kernel de Linux y en múltiples reportes de errores de distintas distribuciones. Por lo tanto, el problema no está relacionado con el cable o el switch; se trata del conocido error de firmware de e1000e/I219-V que reaparece en ciertos núcleos (kernels) y configuraciones de ahorro de energía. --- ### **Por que pasa esto con las NIC I219-V?** - Las rutas de ahorro de energía (EEE y PCIe ASPM) a veces dejan el transmit ring en un estado no válido. - La descarga de paquetes grandes (TSO/GSO/GRO) también puede activarlo bajo carga. - Una vez que se presenta el fallo, solo un reinicio completo del enlace o volver a conectar el cable soluciona la condición. --- ### **Soluciones que funcionan en la práctica**
**Impacto** **Acción** **Cómo hacerlo**
**Mínimo (pruebe primero)** Desactivar los dos ahorros de energía que más suelen causar el cuelgue ```bash\\n# un solo comando\\nprintf ‘options e1000e EEE=0 AspmSupport=0\\n’
Bajo Desactivar los offloads pesados bash\\nethtool -K enp0s31f6 tso off gso off gro off\\n (añádalo en /etc/network/interfaces con post-up si soluciona el problema).
Medio Instalar el último driver externo de Intel (3.8.7) o cambiar al kernel más nuevo de Proxmox Pasos detallados en el mensaje anterior; cualquiera reemplaza la versión con errores dentro del kernel.
Radical Evitar por completo la I219-V Instalar una tarjeta PCIe basada en Intel i350 / 82576, muy estable y totalmente soportada.
> **Buena práctica: después de aplicar una solución, deje una terminal root monitoreando el driver durante un día: > `journalctl -k -f | grep -E "e1000e|NIC Link"` > Si pasan 24 h sin Hardware Unit Hang, el problema está resuelto.** --- ### **(Opt.) Red de seguridad automática** Mientras verifica la solución, cree un pequeño watchdog que reinicie la interfaz cuando los pings a su puerta de enlace fallen. Así evita caídas totales y genera un registro que luego puede revisar. A continuación verá **dos archivos** que necesita crear y cómo activarlos para que su servidor compruebe la conectividad y, si se pierde, reinicie la interfaz de red automáticamente. #### **1. Script que hace el chequeo** Guárdelo como **/usr/local/sbin/net-watch** y déle permisos de ejecución. ``` #!/usr/bin/env bash IF="enp0s31f6" # nombre de la interfaz GATEWAY="192.168.1.1" # puerta de enlace a la que hará ping # Envía 2 pings; si fallan, baja y sube la interfaz ping -c2 -W2 "$GATEWAY" > /dev/null || { logger -t net-watch "Ping falló: reiniciando $IF" ip link set "$IF" down sleep 2 ip link set "$IF" up } ``` ``` chmod +x /usr/local/sbin/net-watch ``` #### **2. Servicio systemd** Cree **/etc/systemd/system/net-watch.service** con este contenido: ``` [Unit] Description=Comprueba la puerta de enlace y reinicia la NIC si no responde [Service] Type=oneshot ExecStart=/usr/local/sbin/net-watch ``` #### **3. Temporizador systemd** Para que el chequeo se ejecute cada minuto (puede cambiar el intervalo), cree **/etc/systemd/system/net-watch.timer**: ``` [Unit] Description=Ejecuta net-watch cada minuto [Timer] OnCalendar=*-*-* *:*:00 AccuracySec=30s Persistent=true [Install] WantedBy=timers.target ``` #### **4. Activar todo** ``` # Recargar los archivos de systemd systemctl daemon-reload # Habilitar y arrancar el temporizador ahora mismo systemctl enable --now net-watch.timer ``` - `systemctl status net-watch.timer` le mostrará si el temporizador está activo y cuándo correrá de nuevo. - `journalctl -u net-watch.service -f` permitirá ver en tiempo real los reinicios de la NIC (si ocurren). Con esto, Proxmox comprobará la conectividad cada minuto y recuperará la interfaz automáticamente si el NIC vuelve a colgarse. --- ## **Visión a largo plazo** La I219-V es una tarjeta de red económica; si el host es de misión crítica, la solución definitiva es instalar una tarjeta PCIe basada en Intel i350-T2/T4 o un 82576. Esa familia no comparte la base de código e1000e y es extremadamente estable bajo cargas elevadas.