
Estou tentando executar ping em um host remoto, mas recebo um erro.
# 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 outros 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
#
A mensagem "Nenhum espaço de buffer disponível" parece indicar algum tipo de erro de memória. E, de fato, quando verifico com o Netstat, o número de "clusters mbuf" parece MUITO errado:
# 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
O que está acontecendo aqui? Existe alguma maneira de corrigir isso sem tempo de inatividade ou preciso reinicializar o host ou reiniciar a interface de rede?
Responder1
Como o problema parece isolado em apenas uma interface - presumo que você esteja usando máscaras simples e antigas de classe C para essas duas redes - eu simplesmente o rejeitaria:
# ifconfig en0 down
# ifconfig en0 up
Obviamente você precisa substituir aqui o nome correto da interface por en0
.
Talvez seja necessário reiniciar qualquer servidor que esteja escutando nessa interface, e quaisquer conexões TCP estabelecidas que a utilizem serão interrompidas quando você fizer isso. É breve, porém, então não vejo esse teste como "tempo de inatividade".
Certifique-se de não fazer isso enquanto estiver usando o ssh na caixa da interface que você está saltando. É melhor fazer login no console ao fazer isso, se puder. Se o servidor for remoto, uma conexão de modem é melhor, já que a rejeição das interfaces de rede não afetará os gettys seriais. Se você precisar fazer isso enquanto estiver conectado à rede, certifique-se de que sua conexão esteja chegando por uma interface diferente.