Как захватить IP-пакет, изменить его содержимое и повторно отправить его в Linux? - PullRequest
6 голосов
/ 03 апреля 2012

Мой вопрос:

Как захватить входящий IP-пакет с сетевого интерфейса, изменить его содержимое и отправить его с другого сетевого интерфейса?

Ответы [ 3 ]

5 голосов
/ 03 апреля 2012

Выбор за вами, предпочтений нет (и, следовательно, нет «нормального»).

  • использование libnetfilter_queue для доставки в пользовательское пространство и внесения в него широких изменений.
  • или модуль xtables, также работает (так как он все равно вызывается NF). Обеспечивает достаточную детальную настройку с помощью пользовательского пространства.
  • Модуль nfhook, если необходимо. Все настройки вы должны реализовать самостоятельно.
  • Ну и наконец, если вам нравятся вещи, которые причиняют боль, вы также можете реализовать свой собственный драйвер виртуальной сетевой карты.
3 голосов
/ 03 апреля 2012

Обычный способ сделать что-то вроде этого - создать модуль ловушки netfilter .

См. этот пример для быстрого запуска.

0 голосов
/ 04 апреля 2012

Вы не упоминаете, что именно намереваетесь изменить, что затрудняет правильный ответ на ваш вопрос.

Для подстановки контента на устройстве типа маршрутизатора (угадайте), netsed может быть самый простой доступный подход.

...