Встроенная или открытая программа Linux для присоединения к многоадресной группе?

Встроенная или открытая программа Linux для присоединения к многоадресной группе?

Я использую tcpdump для захвата многоадресных пакетов и мне пришлось написать собственную программу для присоединения к многоадресным каналам, чтобы tcpdump "увидел" пакеты. Просто интересно, может ли netcat или какие-либо другие приложения выполнять эту функцию вместо этого?

решение1

Этот ответ был отозван.

решение2

Можно использовать socat для подписки на группы. Это отлично работает как для подписки L2, так и для подписки L3:

socat STDIO  UDP4-DATAGRAM:239.101.1.68:8889,\
  ip-add-membership=239.0.1.68:10.100.201.1

Это подпишется на группу, 239.0.1.68используя интерфейс с адресом 10.100.201.1. UDP4-DATAGRAM:239.101.1.68:8889Бит прослушивает пакеты на фиктивной группе и порту udp, которые не должны получать никаких данных, чтобы предотвратить вывод socat всего на stdout. Если вместо этого вы хотите направить полезную нагрузку на stdout, измените эту группу и порт на фактические группу и порт, на которые вы хотите подписаться.

Можно указать несколько директив, разделенных запятыми, ip-add-membershipдля подписки на несколько групп одновременно. Когда socat завершает работу, он, похоже, очищает и подписки IGMP.

решение3

В дополнение к socatответу, вот тяжеловесное решение -смкроут. Это приложение работает как демон и может управляться «на лету»:

smcroutectl join eth0 239.1.1.27
smcroutectl leave eth0 239.1.1.27

решение4

В pimd FRR вы можете сделать следующее:

interface vlan2000
 ip address A.B.C.D/24
 ip igmp
 ip igmp join 239.0.110.219
 ip igmp join 239.0.110.220
 ip igmp version 2

Связанный контент