tcpdump -i bond0.666 udp -nn port 4444
но он не делает join к мультикаст группе и, в зависимости от настройки сетевого оборудования, вы можете мультикаст и не увидеть.
Лучше использовать утилиту iperf. Она служит для анализа быстродействия сети, и для наших целей отлично подходит.
yum install http://pkgs.repoforge.org/iperf/iperf-2.0.4-1.el6.rf.x86_64.rpm
или
rpm -Uhv http://pkgs.repoforge.org/iperf/iperf-2.0.4-1.el6.rf.x86_64.rpm
Далее, если адрес мультикаст группы 239.200.1.1, а порт 4444, то делаем команду и смотрим результат:
iperf -s -u -B 239.200.1.1 -i 1 -p 4444
здесь
- -s -режим сервера,
- -u – использовать UDP,
- -i 1 – выводить информацию каждую секунду,
- -B и -p – адрес нашего мультикаста.
Полезные команды для мультикаста:
Посмотреть подписку по группам:
netstat -gn
или
ip maddr show
Дамп по интерфейсу и группе мультикаста:
tcpdump -n -nn -i eth0 host 239.31.82.10 tcpdump -i p1p1.1302 -s0 -vv net 224.0.0.0/4
Иногда необходимо поменять системные перменные:
sysctl -ar '.rp_filter' net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.em1.rp_filter = 0 net.ipv4.conf.em2.rp_filter = 0 net.ipv4.conf.em3.rp_filter = 0 >net.ipv4.conf.em4.rp_filter = 0 net.ipv4.conf.lo.rp_filter = 0 net.ipv4.conf.p1p1.rp_filter = 0 net.ipv4.conf.p1p1/1302.rp_filter = 0 net.ipv4.conf.p1p1/2202.rp_filter = 0 net.ipv4.conf.p1p2.rp_filter = 0 net.ipv4.conf.p1p2/1402.rp_filter = 0 net.ipv4.conf.p1p2/2202.rp_filter = 0
Изменить значение переменной sysctl:
sysctl -w net.ipv4.conf.em3.rp_filter=0
Включить маршрутизацию пакетов:
sysctl -w net.ipv4.ip_forward=1
Кофиги sysctl могут быть в:
- /run/sysctl.d/*.conf
- /etc/sysctl.d/*.conf
- /usr/local/lib/sysctl.d/*.conf
- /usr/lib/sysctl.d/*.conf
- /lib/sysctl.d/*.conf
- /etc/sysctl.conf
RHEL выключить мультикаст на интерфейсе:
ip link set multicast off dev br0
RHEL включить мультикаст на интерфейсе:
ip link set multicast oт dev br0
Проверить включен ли мультикаст:
ip link show br0 8: br0: mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000
Включить мультикаст на фаерволле (по-умолчанию выключен):
firewall-cmd --zone=zone-name --add-protocol=igmp
Выключить SELinux:
nano /etc/selinux/config
Источники:
- https://www.cyberciti.biz/faq/reload-sysctl-conf-on-linux-using-sysctl/
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-enabling_ip_multicast_with_igmp
- https://unix.stackexchange.com/questions/299163/app-cannot-receive-multicast-packets-on-centos-7
- https://superuser.com/questions/324824/linux-built-in-or-open-source-program-to-join-multicast-group
- https://serverfault.com/questions/163244/linux-kernel-not-passing-through-multicast-udp-packets/216568
- https://support.citrix.com/article/CTX116493