web-dev-qa-db-fra.com

FreeBSD: Comment réparer "Ping: SendTo: Pas d'espace tampon disponible"?

J'essaie de ping un hôte distant, mais je reçois une erreur.

# 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

Cela fonctionne pour d'autres hôtes:

# 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
#

Le message "Aucun espace tampon disponible" semble indiquer une sorte d'erreur de mémoire. Et en effet, lorsque je vérifie avec NetStat, le nombre "grappes de MBUF" a l'air très faux:

# 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

Qu'est-ce qui se passe ici? Est-il loin pour résoudre ce problème sans temps d'arrêt ou dois-je redémarrer l'hôte ou redémarrer l'interface réseau?

27
Stefan Lasiewski

Étant donné que le problème semble isolé à une seule interface - je suppose que vous utilisez des masques de classe C nature uni pour ces deux réseaux - je le rebondis rapidement:

# ifconfig en0 down
# ifconfig en0 up

Évidemment, vous devez substituer le nom d'interface correct ici pour en0.

Vous devrez peut-être redémarrer tous les serveurs d'écouter sur cette interface et tout établi TCP connexions à l'aide de celle-ci tombera lorsque vous faites cela. C'est bref, cependant, donc je ne vois pas vraiment un tel test comme "temps d'arrêt".

Assurez-vous de ne pas le faire pendant que Ssh'd est dans la case de l'interface que vous rebondissez. Il est préférable de se connecter sur la console lorsque vous le faites, si vous le pouvez. Si le serveur est à distance, une connexion de modem est la meilleure, car les interfaces réseau ne reflètent pas les gettys en série. Si vous devez le faire lors de votre connexion via le réseau, assurez-vous que votre connexion se trouve sur une interface différente.

11
Warren Young