Всё-таки, видимо, это не мультикаст. Поставил в tcpdump режим non-promiscuous, и он сразу перестал ловить трафик. Так что, наверное, здесь только с pcap надо делать.
Здравствуйте, prrt, Вы писали:
P>Похоже на то. Должна ли в мультикасте быть какая-то обратная связь? Должно что-то посылаться от меня к тому, кто вещает? Если да, то это точно не мультикаст. Т.к. в обратную сторону ничего не должно идти, это было четко сказано.
С одной сторны, тебе надо указать данные какой группы ты хочешь получать, иначе ядро будет игнорировать эти пакеты. С другой стороны, ядро пошлет igmp report, чтобы подписаться на группу. Насколько эта отправка критична для этого устройства х.з. Но на этом в принципе коммуникация в сторону устройства закончится.
Здравствуйте, prrt, Вы писали:
P>Всё-таки, видимо, это не мультикаст. Поставил в tcpdump режим non-promiscuous, и он сразу перестал ловить трафик. Так что, наверное, здесь только с pcap надо делать.
Возможно, устройство отправляет не на широковещательный MAC, а на какой-то хардкод. Сложно сказать, не видя заголовка пакета.
А ты пробовал сишные примеры запускать в промиск режиме?
Здравствуйте, andrey.desman, Вы писали:
AD>А ты пробовал сишные примеры запускать в промиск режиме?
Хорошая идея. Попробовал. Использовал вот этот код — https://gist.github.com/austinmarton/2862515
Пакеты получает, всё ок. Но что странно — он их получает даже в случае, если задаю другой интерфейс. И наоборот — слушаю нужный интерфейс, а кроме нужных пакетов, получаю и пакеты со своим собственным IP в качестве Source IP, т.е. как я понимаю, это мой собственный ssh трафик (на сервере работаю удаленно, захожу через второй интерфейс).
Это наводит на подозрения, что таким образом я буду получать вообще весь трафик со всех интерфейсов...
Я имел в виду мультикастовые примеры в промиск режиме. Впрочем, может так и проще даже будет.
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).
Здравствуйте, andrey.desman, Вы писали:
AD>Я имел в виду мультикастовые примеры в промиск режиме. Впрочем, может так и проще даже будет.
AD>Надо через bind() к интерфейсу привязываться.
Через bind() всё получилось, пошли пакеты на приём с нужного этого интерфейса. Ну и хоть без pcap заработало, не придется тянуть зависимость, да и так проще вышло.
Мульткастовый пример проверил в промиск режиме — не работает, не получает ничего.