Вот моя дилемма. Внезапно, со вчерашнего дня, multicast-пакеты перестали поступать с eth1 (частная гигабитная сеть) с одного узла. Маршрутизация между всеми узлами в порядке, никаких коллизий, потерь пакетов и т. д.
ifconfig
info, inet addr, Bcast, Mask, все в порядке - они все используют один и тот же bcast и сетевую маску. Также они все используют: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 on eth1 .
Все эти узлы размещены поставщиком Xen VM. Все гости видят частные IP-адреса друг друга. Никаких iptables
правил не предусмотрено. Многоадресные пакеты видны между всеми узлами (20+), кроме одного — с использованием tcpdump
. Система была перезапущена и т. д.
просто добавлю, что, согласно netstat -g, затронутому узлу не назначена группа многоадресной рассылки «eth1 1 224.2.2.4», как всем остальным.
Что могло вызвать что-то подобное? Похоже, что один узел больше не является частью группы multicast - у меня открыт тикет, но у меня такое чувство, что они в тупике.
решение1
Я не знаю о какой-либо политике истечения срока действия для членства в группе IGMP в стеке Linux. Это может произойти, но я сомневаюсь, поскольку есть по крайней мере два способа сообщить ядру (один явный, другой неявный), когда членство программы в IGMP должно быть прекращено.
Поэтому я думаю, что у вас есть ошибка в программном обеспечении, прослушивающем пакеты многоадресной рассылки. (Не могли бы вы назвать ее?) Программа, получающая многоадресную рассылку, каким-то образом либо отменила свое членство, либо забыла добавить свое членство при запуске. При перезапуске программы многоадресного прослушивателя, tcpdump
вы должны увидеть, как запрос на добавление членства в группе IGMPv2+ выходит в сеть.
Вы, возможно, никогда не замечали эту ошибку при тестировании в небольшой локальной сети, поскольку дешевые сетевые коммутаторы не понимают IGMP. Эта функция называется IGMP snooping и встречается только в коммутаторах, которые стоят примерно в 5 раз дороже, за порт, самых дешевых устройств, или даже больше. Коммутатор без возможности IGMP snooping — или с отключенной функцией — превращает многоадресную рассылку в широковещательную, поэтому сообщения IGMP group-add не нужны.
По всей видимости, ваш хостинг-провайдер включил отслеживание IGMP в своей сетевой инфраструктуре, поскольку многоадресные сообщения перестали поступать после того, как членство в группе IGMP исчезло в сетевом стеке проблемной машины.
Также может быть, что параметры отслеживания IGMP хостинг-провайдера неправильно настроены на коммутаторах, поэтому они отменяют членство в группе, но это не объясняет результат netstat -g
.