У меня есть коммутатор L3, который выполняет отслеживание IGMP, но он не может действовать как запросчик IGMP, и к этой сети не подключен запросчик IGMP.
Можно ли реализовать IGMP-запросчик в программном обеспечении, чтобы мой коммутатор L3 мог отслеживать его и соответствующим образом маршрутизировать?
Я реализовал доказательство концепции и обнаружил, что это действительно возможность программной реализации IGMP Querier.
С моим программным Querier обращаются как с реальным, то есть клиенты отправляют свои отчеты по запросу, как я мог проверить с помощью Wireshark
, сравнивая сеть с реальным запросчиком IGMP с сетью без него, но с запущенным программным запросчиком.
Программный запросчик периодически отправляет «общие запросы IGMP» и, используя WinPCap для захвата всего трафика IGMP, может отправлять сообщения «специфические запросы IGMP» в ответ на сообщения «IGMP leave».
N.B. Если вы хотите подписаться на группы IGMP на том же хосте (и NIC), на котором вы запускаете программный IGMP Querier, кажется необходимым использовать (= спуф) комбинацию IP-адреса / MAC-адреса, отличную от той, что используется в интерфейсе, который вы используете, в противном случае моя Windows (8.1) например неправильно определил версию IGMP.
IGMP используется только в широковещательном домене, например, в коммутаторе или коммутаторах. Между доменами все, что маршрутизируется, информация группы многоадресной рассылки передается по другому протоколу - почти всегда это протокол PIM.
Я не уверен, что понимаю ваш вопрос. Клиент присоединяется к группе многоадресной рассылки, сервер не заставляет его присоединяться к группе. Если маршрутизатор не поддерживает протокол IGMP, клиент не может установить членство в группе через маршрутизатор.