it-swarm-es.tech

FreeBSD: ¿Cómo arreglar "ping: sendto: No hay espacio de búfer disponible"?

Estoy tratando de hacer ping a un host remoto, pero aparece un error.

# ping 192.168.80.1
PING 192.168.80.1 (192.168.80.1): 56 data bytes
ping: sendto: No buffer space available
ping: sendto: No buffer space available
^C
--- 192.168.80.1 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss

Funciona para otros hosts:

# ping 192.168.16.1
PING 192.168.16.1 (192.168.16.1): 56 data bytes
64 bytes from 192.168.16.1: icmp_seq=0 ttl=254 time=0.442 ms
64 bytes from 192.168.16.1: icmp_seq=1 ttl=254 time=0.402 ms
^C
--- 192.168.16.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.402/0.422/0.442/0.020 ms
#

El mensaje "No hay espacio de búfer disponible" parece indicar algún tipo de error de memoria. Y, de hecho, cuando verifico con Netstat, el número de "clústeres mbuf" parece MUY incorrecto:

# netstat -m
11780 mbufs in use
4294966716/32768 mbuf clusters in use (current/max)
0/3/6656 sfbufs in use (current/peak/max)
1785 KBytes allocated to network
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines

¿Que esta pasando aqui? ¿Hay alguna solución para solucionar esto sin tiempo de inactividad, o necesito reiniciar el Host o reiniciar la interfaz de red?

27
Stefan Lasiewski

Dado que el problema parece estar aislado de una sola interfaz, supongo que está usando máscaras de clase C antiguas y simples para estas dos redes, lo rechazaría rápidamente:

# ifconfig en0 down
# ifconfig en0 up

Obviamente, debe sustituir el nombre de interfaz correcto aquí por en0.

Es posible que tenga que reiniciar cualquier servidor que escuche en esa interfaz, y cualquier conexión establecida TCP que lo use caerá cuando haga esto. Sin embargo, es breve, así que realmente no veo tal prueba como "tiempo de inactividad".

Asegúrate de no hacer esto mientras ssh'd en el cuadro en la interfaz que estás rebotando. Lo mejor es iniciar sesión en la consola cuando haga esto, si puede. Si el servidor es remoto, lo mejor es una conexión de módem, ya que el rebote de las interfaces de red no afectará los gettys en serie. Si debe hacer esto mientras está conectado a través de la red, asegúrese de que su conexión llegue a través de una interfaz diferente.

11
Warren Young