Bug 36006 - Мульткастовый трафик принимается только после перевода интерфейса в promisc режим
Summary: Мульткастовый трафик принимается только после перевода интерфейса в promisc р...
Status: NEW
Alias: None
Product: Regular
Classification: Distributions
Component: any (show other bugs)
Version: не указана
Hardware: mipsel Linux
: P3 normal
Assignee: Ivan A. Melnikov
QA Contact: Andrey Cherepanov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-31 15:42 MSK by Alexey
Modified: 2019-02-01 09:25 MSK (History)
2 users (show)

See Also:


Attachments
Лог dmesg (28.87 KB, text/plain)
2019-01-31 15:43 MSK, Alexey
no flags Details
В системе Alt (1.92 KB, text/plain)
2019-01-31 17:36 MSK, Alexey
no flags Details
В системе Ubuntu 18.04 (1.77 KB, text/plain)
2019-01-31 17:38 MSK, Alexey
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey 2019-01-31 15:42:17 MSK
Имеется модуль Fastwel CPC313 на базе Байкал-Т1. Самописная программа не принимает мультикастовый трафик, до тех пор пока сетевой интерфейс не переведен в promiscuous режим.
Маршрут по-умолчанию и маршрут для мультикастовой сети установлены:
[root@localhost ~]# ip route
default via 10.0.0.1 dev eth1 
10.0.0.0/16 dev eth1 proto kernel scope link src 10.0.111.222 
224.0.0.0/4 dev eth1 scope link

3: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 7a:72:6c:4a:7a:ee brd ff:ff:ff:ff:ff:ff
    inet 10.0.111.222/16 brd 10.0.255.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::7872:6cff:fe4a:7aee/64 scope link 
       valid_lft forever preferred_lft forever

Такая же конфигурация под Ubuntu 18.04 работает без перевода сетевой карты в promiscuous режим.
Comment 1 Alexey 2019-01-31 15:43:01 MSK
Created attachment 7979 [details]
Лог dmesg
Comment 2 Ivan A. Melnikov 2019-01-31 17:22:14 MSK
Не могли бы вы привести вывод следующих команд и в системе,  где всё работает, и в alt (от рута естественно):

uname -a
grep -H .  /proc/sys/net/ipv4/conf/*/rp_filter
grep -H . /proc/sys/net/ipv4/conf/*/force_igmp_version
cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
cat /proc/net/igmp
cat /proc/net/dev_mcast

Также если бы Вы сумели воспроизвести проблему на каком-нибудь простом источнике трафика и клиенте, которыми Вы могли бы поделиться с нами, это очень бы помогло.
Comment 3 Alexey 2019-01-31 17:36:16 MSK
Created attachment 7980 [details]
В системе Alt
Comment 4 Alexey 2019-01-31 17:38:00 MSK
Created attachment 7981 [details]
В системе Ubuntu 18.04

По на данный момент не было запущено, не было возможности запустить.
Comment 5 Alexey 2019-01-31 17:39:16 MSK
С помощью wireshark было установлено, что в момент подписки на группу система Alt успешно отправляет igmp пакеты.
Comment 6 Ivan A. Melnikov 2019-01-31 17:47:01 MSK
Попробуйте выполнить от рута:

echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

и повторить эксперимент на ALT без promisc mode. Если поможет, можно попытаться сделать чуть более жесткие настройки и проверить их:

* вернуть 1 в /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
* echo 2 > /proc/sys/net/ipv4/conf/eth1/rp_filter
Comment 7 Alexey 2019-01-31 17:50:15 MSK
Такой вариант на Alt:
[root@Baikal-T1 ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
0
[root@Baikal-T1 ~]# grep -H .  /proc/sys/net/ipv4/conf/*/rp_filter
/proc/sys/net/ipv4/conf/all/rp_filter:0
/proc/sys/net/ipv4/conf/default/rp_filter:0
/proc/sys/net/ipv4/conf/eth0/rp_filter:0
/proc/sys/net/ipv4/conf/eth1/rp_filter:0
/proc/sys/net/ipv4/conf/eth2/rp_filter:0
/proc/sys/net/ipv4/conf/lo/rp_filter:0
/proc/sys/net/ipv4/conf/sit0/rp_filter:0

C помощью wireshark видно, что с Alt системы igmp пакеты отправляются, в том числе в момент подписки на группу
Comment 8 Alexey 2019-01-31 17:51:00 MSK
(In reply to comment #7)
> Такой вариант на Alt:
> [root@Baikal-T1 ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
> 0
> [root@Baikal-T1 ~]# grep -H .  /proc/sys/net/ipv4/conf/*/rp_filter
> /proc/sys/net/ipv4/conf/all/rp_filter:0
> /proc/sys/net/ipv4/conf/default/rp_filter:0
> /proc/sys/net/ipv4/conf/eth0/rp_filter:0
> /proc/sys/net/ipv4/conf/eth1/rp_filter:0
> /proc/sys/net/ipv4/conf/eth2/rp_filter:0
> /proc/sys/net/ipv4/conf/lo/rp_filter:0
> /proc/sys/net/ipv4/conf/sit0/rp_filter:0
> 
> C помощью wireshark видно, что с Alt системы igmp пакеты отправляются, в том
> числе в момент подписки на группу

Имел ввиду, что такой вариант не решил проблему.
Comment 9 Alexey 2019-02-01 09:25:40 MSK
Удалось воспроизвести с помощью стороннего ПО.

Под Ubuntu запускаю iperf клиент:
iperf -c 226.94.1.1 -B 10.0.13.35 -u -T 32 -t 100 -i 1

Под Alt начинаю слушать трафик:
socat UDP4-RECVFROM:5001,ip-add-membership=226.94.1.1:10.0.111.222,fork - |hexdump

Соответственно пока на Alt не выполню:
ip link set eth1 promisc on

Трафик не принимается.