]> Sergey Matveev's repositories - stargrave-blog.git/commit
Бага в FreeBSD с IPv6 NDP не отвечающим на NS
authorSergey Matveev <stargrave@stargrave.org>
Wed, 22 Nov 2023 17:40:02 +0000 (20:40 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 22 Nov 2023 17:41:35 +0000 (20:41 +0300)
commit5958e69e23f2519c6716ff689aa39a9b8c480837
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentb86432a85a70171c5e3cab83ef233d1d054b17b5
Бага в FreeBSD с IPv6 NDP не отвечающим на NS

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233683
http://www.git.stargrave.org/?p=ndproxy.git;a=summary
В f1dc900ba79ee0d1f87977c16bfbf61c574bbcdf занимался запуском ndproxy и
пробрасыванием /48 сети. Закончилось всё тем, что ndproxy работает как
мне надо после изменений, но спустя какое-то время он перестаёт отвечать
на часть NDP neighbor solicitation запросов. printf-ы в dmesg-е показали
что пакет до ndproxy вообще не доходит. Ядро слепо к NS-ам становится.

Нашёл вот такой баг в самой FreeBSD, а также кучу связанных ссылок в нём
на очень похожие симптомы как и у меня. Пересобрал ядро с предложенным
патчем, сделанным летом этого года. Но... всё равно не помогло.

Однако решил посмотреть: а какие именно изменения в API pfil произошли и
нельзя ли ndproxy поменять под них? Оказалось что всего-то надо было:
    -  pha.pa_func = packet;
    +  pha.pa_mbuf_chk = packet;
    +  pha.pa_mem_chk = NULL;
И действительно оно под FreeBSD 14 прекрасно работает. Отправил патч
автору.