URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 8
[ Назад ]

Исходное сообщение
"Не проходит мультикаст на сетевой интерфейс"

Отправлено Sergetv , 14-Фев-23 15:19 
Здравствуйте.
Есть сетевой интерефейс
enp3s1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.3  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 00:19:5b:87:17:8c  txqueuelen 1000  (Ethernet)
        RX packets 3946935  bytes 5374039533 (5.3 GB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 318  bytes 16956 (16.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
на него прописан маршрут
225.0.0.0       0.0.0.0         255.255.255.0   U     0      0        0 enp3s1

На этом интерфейсе по очереди присутствует мультикаст на адрес 225.0.0.1:11111 от двух разных источников с одинаковым IP (192.168.0.2)

Задача записать его на комп с помощью ffmpeg.

Прблелема такая - от одного источника пишется нормально, а от второго ffmpeg не видит потока.
TCPDUMP видит пакеты с обеих источников-

Этот пишется-
14:17:12.988202 IP (tos 0x0, ttl 16, id 23824, offset 0, flags [DF], proto UDP (17), length 1344)
    192.168.0.2.47383 > 225.0.0.1.11111: [udp sum ok] UDP, length 1316
14:17:12.990436 IP (tos 0x0, ttl 16, id 23825, offset 0, flags [DF], proto UDP (17), length 1344)
    192.168.0.2.47383 > 225.0.0.1.11111: [udp sum ok] UDP, length 1316
14:17:12.992664 IP (tos 0x0, ttl 16, id 23826, offset 0, flags [DF], proto UDP (17), length 1344)
    192.168.0.2.47383 > 225.0.0.1.11111: [udp sum ok] UDP, length 1316

Этот не видится-
14:10:40.519952 IP (tos 0x0, ttl 32, id 2546, offset 0, flags [DF], proto UDP (17), length 1344)
    192.168.0.2.54752 > 225.0.0.1.11111: [udp sum ok] UDP, length 1316
14:10:40.519957 IP (tos 0x0, ttl 32, id 2547, offset 0, flags [DF], proto UDP (17), length 1344)
    192.168.0.2.54752 > 225.0.0.1.11111: [udp sum ok] UDP, length 1316
14:10:40.519960 IP (tos 0x0, ttl 32, id 2548, offset 0, flags [DF], proto UDP (17), length 1344)
    192.168.0.2.54752 > 225.0.0.1.11111: [udp sum ok] UDP, length 1316

На виндовой машине видятся оба потока.

Куда копать, подскажите, кто в курсе тонкостей...
Спасибо


Содержание

Сообщения в этом обсуждении
"Не проходит мультикаст на сетевой интерфейс"
Отправлено Sergetv , 16-Фев-23 11:57 
Разобрался частично.
Проблема  была в том, что поток, который не виделся, был в VLAN.
Возник вопрос - как сделать так, чтоб сетевой интерфейс пропускал внутрь потоки вне зависимости от VLAN (как это работает на виндовой машине) ?


"Не проходит мультикаст на сетевой интерфейс"
Отправлено anonymous , 16-Фев-23 13:45 
> Разобрался частично.
> Проблема  была в том, что поток, который не виделся, был в
> VLAN.
> Возник вопрос - как сделать так, чтоб сетевой интерфейс пропускал внутрь потоки
> вне зависимости от VLAN (как это работает на виндовой машине) ?

Вариант решения - добавить влан и объединить в бридж? Или указать на свиче, чтобы снимал тэги.


"Не проходит мультикаст на сетевой интерфейс"
Отправлено Sergetv , 20-Фев-23 10:34 
> Вариант решения - добавить влан и объединить в бридж? Или указать на
> свиче, чтобы снимал тэги.

А проще никак нельзя? Например, просто отключить теггирование на интерфейсе?


"Не проходит мультикаст на сетевой интерфейс"
Отправлено anonymous , 20-Фев-23 15:15 
>> Вариант решения - добавить влан и объединить в бридж? Или указать на
>> свиче, чтобы снимал тэги.
> А проще никак нельзя?

Дык, куда уж проще - поснимать лишние тэги на порту свича?

> Например, просто отключить теггирование на интерфейсе?

Тэгирование - это расширение стандарта ethernet. И простой драйвер сетевой карты такие пакеты не понимает. tcpdump или wireshark расшифровывает ethernet самостоятельно. А для системы есть драйвер vlan, который в большинстве unix/linux систем включается в ядро отдельно и отбирает предназначенные для указанного в настройках системы влан-a пакеты, "за/расшифровывает" их и передаёт получателю.

Если вы обратите внимание - в *nix системах vlan выглядит как отдельный интерфейс (сетевая карта). И вся его работа с данными заключается в том, что "наш" тэг добавляется в пакет или удаляется из пакета. Всё. И пакет отправляется на передачу в линию или в сетевой стек ядра для последующей отработки.

Так что вам на месте надо решать, что проще - заводить ещё один интерфейс в системе и городить бриджи или указать на свиче снимать тэги на данном порту.


"Не проходит мультикаст на сетевой интерфейс"
Отправлено Sergetv , 03-Мрт-23 10:16 
Гуд. Все прояснил для себя. Спасибо огромное за развернутый ответ.