LINUX.ORG.RU

Фильтрация по MAC-адресу


0

0

Доброго времени суток!

Шлю через packeth пакеты с PC на плату с embedded linux. На плате tcpdump показывает только пакеты, посланные на MAC-адрес платы и на broadcast (MAC = ff:ff:ff:ff:ff:ff). Что, кроме iptables, может быть причиной этого?

Заранее спасибо!

Возможно tcpdump не переводит ethernet-контроллер платы в Promiscuous-режим. Может поможет "ifconfig eth0 promisc", а может просто ошибка в драйвере/железе.

И, вроде, как раз iptables не могут быть помехой tcpdump, так как он берёт пакеты прямо с интерфейса, до прохождения их по цепочкам.

mky ★★★★★
()
Ответ на: комментарий от mky

Спасибо за совет, действительно это могла быть одна из причин. Но, к сожалению, установка promiscuous режима не помогла. Всё равно спасибо!

Igrushkin
() автор топика
Ответ на: комментарий от gibbon

Да, между linux машиной и платой стоит switch, но я шлю пакеты на unknown MAC. т.е. switch форвардит их на все активные порты, это видно по светодиодам на свиче и на других linux машинах в сети я вижу посланные пакеты. Кроме того я слал пакеты на multicast DMAC-адрес группы, в которую входит плата с embedded linux. IGMP запрос от платы приходит на switch и он должен 100% форвардить muticast пакеты в порт платы.

Igrushkin
() автор топика

Проблема решена.

Кому интересно: после долгого копания в драйверах и ядре обнаружил что для сетевого драйвера FCC ENET для ppc (arch/ppc/8260_io/fcc_enet.c) функция set_multicast_list закомментирована (устанавливает promiscuous режим для интерфейса и фильтрацию по multicast MAC адресам).

Причину этого я не понял, никаких объснений в коде не обнаружил, на свой страх и риск раскомментировал и всё отлично заработало.

Igrushkin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.