Leave a comment

Comments 7

filonov October 12 2016, 19:42:23 UTC
man pf.conf
/dup-to

Reply

ufm October 12 2016, 20:11:10 UTC
Не считая того, что это не ipfw.
Мне надо менять и dst и src _mac_ у пакета. Не трогая ip адрес.

Или я что-то упустил?

Reply

filonov October 12 2016, 20:16:41 UTC
Оно фактически это и делает - берет в arp-таблице mac-адрес указанного хоста, и шлет туда копию пакета.
Настраивается в одну строчку в конфиге.

Reply

dil October 13 2016, 10:55:23 UTC
А src зачем менять? Снифферу ж пакеты надо только получать, отвечать он на них не будет.

Reply


dadv October 13 2016, 14:32:32 UTC
Перекладывание пакетов в другой сегмент с заменой src и dst MAC это то, что делает любой роутер с обычным трафиком. В вашем случае разница только в перекладывании копии вместо оригинала. Поэтому для этой задачи вовсе не обязательно заморачиваться с опусканием на уровень Ethernet-фреймов, раз Ethernet-заголовки не нужны. Нужно лишь a) создавать копии IP-пакетов и b) делать ipfw fwd копиям.

Можно воспользоваться тем, что ipfw tee одновременно создаёт копию пакета и засовывает её в divert-сокет и если divert-сокет выплюнет копию обратно в ipfw, то у копии будет флаг diverted, который можно проверить следующим правилом ipfw. Осталось только заставить divert-сокет отражать пакеты обратно. Это легко делается парой нод ng_ksocket и ng_echo: нода ksocket принимает пакеты из divert-сокета, отдаёт в echo, а та разворачивает пакет обратно по цепочке.

Вот скрипт для ngctl:

mkpeer echo dummy dummy ( ... )

Reply

ufm October 13 2016, 19:42:32 UTC
Еще раз - спасибо. Про fwd я сразу подумал, но как сдублировать пакет - не сообразил.

Reply


Leave a comment

Up