Назад | Перейти на главную страницу

Устранение неполадок многоадресной рассылки UDP в Windows

Я программист, а не системный администратор, так что простите, пожалуйста, мою административную наивность. Мое программное обеспечение, написанное на C #, полагается на многоадресную рассылку UDP. Одна машина, сервер, передает события на известный групповой адрес UDP (настраиваемый, но по умолчанию 224.130.103.5), на который подписаны все клиенты в сети.

Обычно это прекрасно работает, но у некоторых моих клиентов это не работает вообще, и часто их сетевые администраторы не могут решить проблему. Мой вопрос: каковы общие причины того, что многоадресная рассылка UDP не работает? Могу ли я что-нибудь сказать администраторам сети о том, как это исправить или хотя бы где искать?

Если у тебя есть VirtualBox Host-Only Ethernet Adapter активирован в вашей системе, что может быть проблемой, которая была для меня, поэтому попробуйте отключить ее. Видеть https://www.virtualbox.org/ticket/8698.

Вы можете использовать такой инструмент, как wirehark, для просмотра UDP-пакетов на проблемной машине. Исходя из этого, вы сможете определить, достигают ли даже UDP-пакеты этой машины.

Я бы сказал, что наиболее распространенная причина, по которой вам нужно будет искать, - это маршрутизированные сети, где весь набор систем, которые должны участвовать в группе многоадресной рассылки (клиенты и сервер), не находятся в одной и той же широковещательной передаче. домен.

Это первое, что нужно спросить у сетевых администраторов клиента. Что касается ее решения, если это так, это зависит от их сетевого оборудования; им нужно будет настроить PIM и отслеживание IGMP на их оборудовании маршрутизации.

Их оборудование, поддерживающее его, может быть повреждено или пропущено; это может стать серьезным препятствием для некоторых ваших клиентов. Возможно, вам придется искать альтернативные решения, которые не требуют, чтобы их сетевое оборудование хорошо работало с многоадресной передачей. Пара идей:

  • Наличие своего рода `` прокси '' в каждой подсети с клиентами, который получает сообщения с сервера по одноадресной рассылке и повторяет их в группу многоадресной рассылки.
  • Переход на одноадресную рассылку для всего трафика событий. Может быть, одна из таких вещей: RabbitMQ ActiveMQ

Попробуйте отключить брандмауэр Windows и проверьте, принимает ли ваше программное обеспечение пакеты. У меня были аналогичные проблемы с моей программой Java. Если проблема в брандмауэре, начните экспериментировать с правилами брандмауэра для входящего трафика.

У меня были аналогичные проблемы, когда на моей машине был активен адаптер виртуального Ethernet Hyper-V (рекламируемый как vEthernet (переключатель по умолчанию)).

С wirehark я мог видеть многоадресный сетевой трафик на моем сервере, но серверное приложение не отвечало, даже если оно было зарегистрировано на адрес и порт.

Так что Ответ в этом случае: Отключите адаптер виртуального Ethernet Hyper-V, если он включен.