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

おすすめ記事