web-dev-qa-db-ja.com

FreeBSD:「ping:sendto:利用可能なバッファ領域がありません」を修正する方法?

リモートホストにpingを実行しようとしていますが、エラーが発生します。

# 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

他のホストでも機能します:

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

「使用可能なバッファー・スペースがありません」というメッセージは、何らかのメモリー・エラーを示しているようです。そして確かに、Netstatで確認すると、「mbuf clusters」の番号は非常に間違っています。

# 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

ここで何が起こっているのですか?ダウンタイムなしでこれを修正する方法はありますか、それともホストを再起動するか、ネットワークインターフェイスを再起動する必要がありますか?

27

問題は1つのインターフェイスだけに分離されているように見えるため、これら2つのネットワークでプレーンな古いクラスCマスクを使用していると思います-すぐに直ります。

# ifconfig en0 down
# ifconfig en0 up

明らかに、ここでen0を正しいインターフェース名に置き換える必要があります。

そのインターフェースでリッスンしているサーバーを再起動する必要がある場合があり、これを使用すると、確立されたTCP接続を使用して接続が切断されます。ただし、簡単なため、実際にはそのようなテストは表示しません「ダウンタイム」として。

バウンスしているインターフェースのボックスにsshが入っている間は、これを行わないでください。可能であれば、コンソールにログインすることをお勧めします。サーバーがリモートの場合は、ネットワーク接続のバウンスがシリアルgettyに影響しないため、モデム接続が最適です。ネットワーク経由でログインしているときにこれを行う必要がある場合は、接続が別のインターフェースを介して行われていることを確認してください。

11
Warren Young