ping6: sendmsg: 사용 가능한 버퍼 공간이 없습니다.

ping6: sendmsg: 사용 가능한 버퍼 공간이 없습니다.

zfs receive을 사용해야 했던 이후로 무엇이 변경되었는지 잘 모르겠습니다 zfs send -R. 이것이 관련이 있는지는 모르겠지만 뭔가가 바뀔 것이라고 생각할 수 있는 유일한 것입니다.

아래 출력에서 ​​혼란을 겪어 이해해 주시기 바랍니다. 어떤 주소가 로컬, 라우팅 가능 및 기본 게이트웨이인지 알아내려고 합니다.

# ifconfig vtnet0
vtnet0: 플래그=8843 메트릭 0 mtu 1500
      옵션=6c07bb
        Ether00:16:--:--:--:--
        화더 00:16:--:--:--:--
        inet ---.---.---.--- 넷마스크 0xffffff00 브로드캐스트 ---.---.---.---
        inet6 fe80::---:----:----:------%vtnet0 prefixlen 64scopeid 0x1
        inet6 2604:--:--:--:--:--:----:---- 접두사 길이 64
        nd6 옵션=23
        미디어: 이더넷 10Gbase-T
        상태: 활성

# netstat -rf inet6
라우팅 테이블

인터넷 6:
대상 게이트웨이 플래그 Netif가 만료되었습니다.
::/96 localhostUGRS lo0
기본 2604:----:--::1 UGS vtnet0
로컬호스트 링크 #3 ehlo0
::ffff:0.0.0.0/96 로컬 호스트 UGRS lo0
2604:----:--::1 00:16:--:--:--:--UHS vtnet0
2604 6 링크 #1 U vtnet0
2604:----:--:--:123 링크 #1 UHS lo0
fe80::/10 로컬 호스트 UGRS lo0
fe80::%vtnet0/64 링크 ​​#1 U vtnet0
fe80::---:----:--- 링크 #1 UHS lo0
fe80::%vtnet1/64 링크 ​​#2 U vtnet1
fe80::---:----:--- 링크 #2 UHS lo0

# ping6 -c 1 2604:--:--:--:--:--:--
PING6(56=40+8+8바이트) 2604:--:--:--:----:----:---- --> 2604:----:- - :--:----:----:--
2604의 16바이트:----:--:--:--:--:--, icmp_seq=0 hlim=64 time=0.097ms

# ping6 -c 1 2604:----:--::1
PING6(56=40+8+8바이트) 2604:--:--:--:----:----:---- --> 2604:----:- - ::1
ping6: sendmsg: 사용 가능한 버퍼 공간이 없습니다.
ping6: 2604:--:--::1 16자 작성, ret=-1

#ipfwshow5
00005 200 21096 어느 것에서든 IP6을 허용합니다.

로컬이 아닌 다른 주소를 사용해도 ping6같은 일이 발생합니다 .

-iface vtnet0게이트웨이 대신 기본 경로를 설정해 보았지만 결과는 동일했습니다.

down인터넷의 다른 곳에서 이 문제를 본 적이 있지만 해결책을 찾지 못했습니다(재부팅 및 up인터페이스 등을 시도했습니다 ). 무슨 일인지 아는 사람 있나요?

dtrace편집 어떤 함수(아마도 처음부터 어딘가 ip6_output)가 이 잘못된 반환을 유발하는지 알아내기 위해 사용하는 방법을 아는 사람이 있다면 도움이 될 것입니다. 조금 헤매었지만 dtrace결국 해결책을 찾지 못했습니다.

답변1

Centos 포럼의 yogeshpujari의 제안입니다.

이 문제를 해결하려면 ARP 테이블스페이스를 늘려야 합니다.

영구적으로 수행하려면: /etc/sysctl.conf를 편집하고 다음 행을 추가하십시오.

net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh1 = 1024

# sysctl -p

임시 수정의 경우:

echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

관련 정보