URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93357
[ Назад ]

Исходное сообщение
"arp multicast и freebsd 9"

Отправлено iltmpz , 12-Май-12 15:35 
Ситуация такая: есть сеть, в ней freebsd-роутер и win-сервера, в частности, nlb-кластер. Кластер сконфигурирован в режиме multicast: обе ноды с разными маками имеют одинаковый ip, и у каждого мака - свой отдельный ip алиасом прописан.

Все работало хорошо, пока я не решил обновить роутер до freebsd 9.0
Теперь же кластер недоступен, при попытке пингануть кластер, получаю в логе строчку:
router3 kernel: in_arp: source hardware address is multicast.in_arp: source hardware address is multicast.

А пинг отвечает:
ping: sendto: Host is down

В arp -a просто нет этого ip, который должен висеть на 2 маках.
ip каждой ноды в arp-таблице присутствует и благополучно пингуется, но надо чтобы работал именно кластер.

В более ранних версиях freebsd все работало хорошо: на каждый пинг просто приходило по 2 ответа (по 1 от каждой ноды). TCP-сессии тоже благополучно работали.
В гугле по этой проблеме на редкость мало инфы, нарыл только то, что по стандарту оно и не должно работать, вроде, что есть патч, который убирает ошибку из логов, и все.

Есть какие-нибудь идеи, никто не сталкивался?


Содержание

Сообщения в этом обсуждении
"arp multicast и freebsd 9"
Отправлено dima , 14-Май-12 03:21 
> Ситуация такая: есть сеть, в ней freebsd-роутер и win-сервера, в частности, nlb-кластер.
> Кластер сконфигурирован в режиме multicast: обе ноды с разными маками имеют
> одинаковый ip,

хз.

можно сравнить исходники  /usr/src/sys/netinet/if_ether.c
в 8  и 9-ке


"arp multicast и freebsd 9"
Отправлено iltmpz , 30-Май-12 11:17 
> можно сравнить исходники  /usr/src/sys/netinet/if_ether.c
> в 8  и 9-ке

Сравнил. Код в основном одинаковый, но есть и изменения, в частности в функции in_arpinput, появилась проверка:
       if (ETHER_IS_MULTICAST(ar_sha(ah))) {
               log(LOG_ERR, "in_arp: source hardware address is multicast.");
               return;
       }

И чем это мне поможет, интересно? Никаких ifdef'ов поблизости не видно, как я понимаю, параметры ядра не помогут. Или надо в другом месте где-то смотреть?

Сегодня ночью сервер вообще перестал отвечать по сети, остальные сервисы все работали - разбираться времени не было, поэтому мы его перезагрузили с консоли. В логах ничего кроме кучи сообщений про "source hardware address is multicast.".
Интересно, причина может быть связана с этим?

Как решить проблему? Или единственный способ - откатиться на 8-ю ветку?


"arp multicast и freebsd 9"
Отправлено crazy , 30-Май-12 12:22 
>[оверквотинг удален]
>        }
> И чем это мне поможет, интересно? Никаких ifdef'ов поблизости не видно, как
> я понимаю, параметры ядра не помогут. Или надо в другом месте
> где-то смотреть?
> Сегодня ночью сервер вообще перестал отвечать по сети, остальные сервисы все работали
> - разбираться времени не было, поэтому мы его перезагрузили с консоли.
> В логах ничего кроме кучи сообщений про "source hardware address is
> multicast.".
> Интересно, причина может быть связана с этим?
> Как решить проблему? Или единственный способ - откатиться на 8-ю ветку?

Ну попробуйте в freebsd-questions@, или как там правильно, задать.


"arp multicast и freebsd 9"
Отправлено voin , 18-Дек-12 17:55 
Ну как успехи в этом вопросе. Как-то удалось победить?

"arp multicast и freebsd 9"
Отправлено iltmpz , 18-Дек-12 19:38 
> Ну как успехи в этом вопросе. Как-то удалось победить?

Удалось, прописал в rc.conf то ли один из маков в arp-таблицу статически то ли другой в список исключений. В итоге только один из адресов доступен, но этого хватало.
Что и как именно прописал, уже не вспомню, т.к. сейчас по ряду других причин откатился обратно на 8-ю фрю...


"arp multicast и freebsd 9"
Отправлено vasya , 10-Фев-14 13:29 
> Ну как успехи в этом вопросе. Как-то удалось победить?

В 9ке новый параметр системы. net.link.ether.inet.allow_multicast=1 добавить в /etc/sysctl.conf. зачем он появился непонятно


"arp multicast и freebsd 9"
Отправлено Khuman , 12-Окт-15 12:56 
>> Ну как успехи в этом вопросе. Как-то удалось победить?
> В 9ке новый параметр системы. net.link.ether.inet.allow_multicast=1 добавить в /etc/sysctl.conf.
> зачем он появился непонятно

Выяснилось, что данный параметр позволяет системе добавлять в arp-таблицу MAC адреса из multicast диапазона. Работает и для FreeBSD 10.0


"arp multicast и freebsd 9"
Отправлено iltmpz , 12-Ноя-15 14:41 
>>> Ну как успехи в этом вопросе. Как-то удалось победить?
>> В 9ке новый параметр системы. net.link.ether.inet.allow_multicast=1 добавить в /etc/sysctl.conf.
>> зачем он появился непонятно
> Выяснилось, что данный параметр позволяет системе добавлять в arp-таблицу MAC адреса из
> multicast диапазона. Работает и для FreeBSD 10.0

Вот это я удачно зашел спустя 3,5 года в поисках решения этой же проблемы после того как обновился до 10.2.
Смотрю, что-то такое когда-то уже читал. Потом смотрю - а оказывается я же и тему создал, вот так бывает!

По сабжу подтверждаю, net.link.ether.inet.allow_multicast=1 - ровно то, что нужно.
С ним 10.2 отвечает аналогично 8-й ветке:
64 bytes from 192.168.xx.xx: icmp_seq=0 ttl=128 time=0.720 ms
64 bytes from 192.168.xx.xx: icmp_seq=0 ttl=128 time=0.768 ms (DUP!)