FreeBSD : “ping : sendto : 사용 가능한 버퍼 공간이 없습니다”를 수정하는 방법? 192.168.16.1: icmp_seq=0 ttl=254

원격 호스트를 핑하려고하는데 오류가 발생합니다.

# 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

무슨 일이야? 다운 타임없이이 문제를 해결할 수 있습니까? 아니면 호스트를 재부팅하거나 네트워크 인터페이스를 다시 시작해야합니까?



답변

이 문제는 하나의 인터페이스에만 국한된 것으로 보이므로이 두 네트워크에 대해 일반 오래된 클래스 C 마스크를 사용한다고 가정합니다.

# ifconfig en0 down
# ifconfig en0 up

분명히 여기에 올바른 인터페이스 이름을 사용해야합니다 en0.

해당 인터페이스에서 수신 대기중인 서버를 다시 시작해야 할 수 있으며이 작업을 수행하면 설정된 TCP 연결이 끊어집니다. 그러나 간단히 말해서 그러한 테스트를 “다운 타임”이라고 생각하지는 않습니다.

수신 거부하는 인터페이스의 상자에 ssh’d되어있는 동안이 작업을 수행하지 마십시오. 가능하면 콘솔에 로그인하는 것이 가장 좋습니다. 서버가 원격 인 경우 네트워크 인터페이스를 수신 거부해도 직렬 게티에 영향을 미치지 않으므로 모뎀 연결이 가장 좋습니다. 네트워크를 통해 로그인 한 상태에서이 작업을 수행해야하는 경우 다른 인터페이스를 통해 연결되어 있는지 확인하십시오.