Re[10]: Получение данных мультикастом
От: prrt  
Дата: 02.03.17 21:56
Оценка:
Всё-таки, видимо, это не мультикаст. Поставил в tcpdump режим non-promiscuous, и он сразу перестал ловить трафик. Так что, наверное, здесь только с pcap надо делать.
Re[11]: Получение данных мультикастом
От: andrey.desman  
Дата: 02.03.17 22:24
Оценка:
Здравствуйте, prrt, Вы писали:

P>Похоже на то. Должна ли в мультикасте быть какая-то обратная связь? Должно что-то посылаться от меня к тому, кто вещает? Если да, то это точно не мультикаст. Т.к. в обратную сторону ничего не должно идти, это было четко сказано.


С одной сторны, тебе надо указать данные какой группы ты хочешь получать, иначе ядро будет игнорировать эти пакеты. С другой стороны, ядро пошлет igmp report, чтобы подписаться на группу. Насколько эта отправка критична для этого устройства х.з. Но на этом в принципе коммуникация в сторону устройства закончится.
Re[11]: Получение данных мультикастом
От: andrey.desman  
Дата: 02.03.17 22:26
Оценка:
Здравствуйте, prrt, Вы писали:

P>Всё-таки, видимо, это не мультикаст. Поставил в tcpdump режим non-promiscuous, и он сразу перестал ловить трафик. Так что, наверное, здесь только с pcap надо делать.


Возможно, устройство отправляет не на широковещательный MAC, а на какой-то хардкод. Сложно сказать, не видя заголовка пакета.
А ты пробовал сишные примеры запускать в промиск режиме?
Re[12]: Получение данных мультикастом
От: prrt  
Дата: 03.03.17 09:58
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>А ты пробовал сишные примеры запускать в промиск режиме?


Хорошая идея. Попробовал. Использовал вот этот код — https://gist.github.com/austinmarton/2862515
Пакеты получает, всё ок. Но что странно — он их получает даже в случае, если задаю другой интерфейс. И наоборот — слушаю нужный интерфейс, а кроме нужных пакетов, получаю и пакеты со своим собственным IP в качестве Source IP, т.е. как я понимаю, это мой собственный ssh трафик (на сервере работаю удаленно, захожу через второй интерфейс).

Это наводит на подозрения, что таким образом я буду получать вообще весь трафик со всех интерфейсов...
Re[13]: Получение данных мультикастом
От: andrey.desman  
Дата: 03.03.17 10:18
Оценка:
Здравствуйте, prrt, Вы писали:

P>Хорошая идея. Попробовал. Использовал вот этот код — https://gist.github.com/austinmarton/2862515


Я имел в виду мультикастовые примеры в промиск режиме. Впрочем, может так и проще даже будет.

P>Пакеты получает, всё ок. Но что странно — он их получает даже в случае, если задаю другой интерфейс. И наоборот — слушаю нужный интерфейс, а кроме нужных пакетов, получаю и пакеты со своим собственным IP в качестве Source IP, т.е. как я понимаю, это мой собственный ssh трафик (на сервере работаю удаленно, захожу через второй интерфейс).

P>Это наводит на подозрения, что таким образом я буду получать вообще весь трафик со всех интерфейсов...

Так это...

https://linux.die.net/man/7/socket
SO_BINDTODEVICE
Note that this only works for some socket types, particularly AF_INET sockets. It is not supported for packet sockets (use normal bind(2) there).


Надо через bind() к интерфейсу привязываться.
Re[14]: Получение данных мультикастом
От: prrt  
Дата: 03.03.17 11:32
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>Я имел в виду мультикастовые примеры в промиск режиме. Впрочем, может так и проще даже будет.


AD>Надо через bind() к интерфейсу привязываться.


Через bind() всё получилось, пошли пакеты на приём с нужного этого интерфейса. Ну и хоть без pcap заработало, не придется тянуть зависимость, да и так проще вышло.
Мульткастовый пример проверил в промиск режиме — не работает, не получает ничего.

Спасибо!
Отредактировано 03.03.2017 11:33 prrt . Предыдущая версия . Еще …
Отредактировано 03.03.2017 11:33 prrt . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.