eth0 NIC Link is Down repitiendo mensaje en el registro del kernel

14

He notado desde hace unos días que se produce el mismo tipo de mensajes repetitivos y puedo decir positivamente que nada fue cambiado (instalado / desinstalado) intencionalmente en ese período.

Aquí hay una muestra del mensaje /var/log/kern.log :

Mar 30 06:32:45 aurora kernel: [566322.867110] e1000e: eth0 NIC Link is Down

Mar 30 06:32:47 aurora kernel: [566325.313634] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Mar 30 06:32:59 aurora kernel: [566337.632930] e1000e: eth0 NIC Link is Down

Mar 30 06:33:18 aurora kernel: [566356.543664] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

Mar 30 11:05:47 aurora kernel: [582689.779752] e1000e: eth0 NIC Link is Down

Mar 30 11:05:50 aurora kernel: [582692.174337] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

del archivo de registro completo - cuando tomo en cuenta todos los mensajes de registro de este tipo - puedo concluir:

  • eth0 falla cada pocas horas
  • eth0 falla en el primer caso por dos y en el segundo por 19 segundos

Estoy hablando del servidor de producción aquí.

¿Cómo resolver este problema, ya que el servidor de correo está en producción y fallas en la red de 19 segundos de duración que no puedo tolerar?

Miloš Đakonović
fuente
1
¿Qué has comprobado hasta ahora? ¿Está el cable correctamente conectado y en buenas condiciones? ¿El interruptor en el otro extremo también observa que el enlace se cae? Vale la pena señalar que el enlace detectado es diferente en diferentes momentos (el control de flujo difiere en su registro). Tal vez la negociación automática falla? ¿El problema desaparece si fuerza 1000Mbps FD Rx / Tx?
Håkan Lindqvist
@ HåkanLindqvist No tengo la opción de verificar el cable, ya que el servidor no está físicamente cerca de mí. ¿Es eso algo que debería preguntarle a las cosas de tecnología de la granja de servidores para verificar? ¿Cómo fuerzo 1000Mbps FD Rx / Tx? Y, sobre el control de flujo que es diferente en diferentes momentos, ¿es este problema?
Miloš Đakonović
El "tipo" de enlace que cambia con el tiempo me sugiere que algo no está del todo bien, pero encontrar la causa real es, por supuesto, una pregunta completamente diferente. Preguntar al personal técnico puede ser una buena idea.
Håkan Lindqvist
1
Puede usar ethtool o mii-tool para verificar el estado de la negociación automática, etc. al final del servidor. Debe asegurarse de que el conmutador de su servidor esté configurado para coincidir. Esto suena como un problema de hardware, podría ser un adaptador de servidor, un cable o un conmutador. Sugiero mirar el estado del interruptor para ver qué piensa que está sucediendo.
Paul Haldane

Respuestas:

10
  1. compruebe si hay errores en el cable, mire el campo "errores" en la salida de ifconfig. Si no es cero, entonces hay problemas con el hardware (cable, tarjeta NIC o concentrador / conmutador). Un cable Ethernet poco confiable también generará errores en este campo.
  2. reemplace el cable Ethernet, independientemente del paso 1. Esto es rápido, económico y fácil, y debe hacerse cada vez que su enlace se activa y desactiva a intervalos aleatorios.
  3. use ethtooly asegúrese de que la configuración de red (dúplex, etc.) coincida con la del conmutador. Si no es el administrador del conmutador, solicite al administrador de la red que le proporcione la configuración.
  4. si el conmutador tiene habilitado el control de flujo, asegúrese de que esté habilitado en su caja de Linux. De lo contrario, deshabilítelo.

Como nota al margen, debe evaluar si necesita control de flujo. Según HP, solo es necesario para aplicaciones de alto rendimiento: consulte el artículo de HP sobre cuándo usar el control de flujo

Michael Martinez
fuente
1
Fue errores de cable. El material técnico de la granja de servidores hizo el trabajo después de haber informado errores.
Miloš Đakonović
1
'ifconfig' mostraba errores?
Michael Martinez
1

Aquí está mi solución. Este problema ocurre en hardware específico (en una máquina solo 1 de 2 puertos en la NIC), siempre con el controlador e1000e, desde el kernel 3.9 más o menos. Este archivo es para centos7, entra /etc/init.d/y debe habilitarse con chkconfig --add <name>. El nombre de la interfaz está codificado ... asegúrese de configurarlo.

#!/bin/sh

### BEGIN INIT INFO
# Provides:          pm-e1000e-fix
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 6
# Short-Description: workaround for e1000e issue
# Description:       e1000e fix
### END INIT INFO

################################################################################
# Give Usage Information                                                       #
################################################################################
usage() {
    echo "Usage: $0 start|restart" >&2
    exit 1
}

################################################################################
# E X E C U T I O N    B E G I N S   H E R E                                   #
################################################################################
command="$1"
shift

interface="eth0"

case "$command" in
    start)
        ethtool -K "$interface" gso off gro off tso off
        ;;
    restart)
        ethtool -K "$interface" gso off gro off tso off
        ;;
    *)
        usage
        ;;
esac
Peter
fuente