Мой вопрос:
Как захватить входящий IP-пакет с сетевого интерфейса, изменить его содержимое и отправить его с другого сетевого интерфейса?
Выбор за вами, предпочтений нет (и, следовательно, нет «нормального»).
Обычный способ сделать что-то вроде этого - создать модуль ловушки netfilter .
См. этот пример для быстрого запуска.
Вы не упоминаете, что именно намереваетесь изменить, что затрудняет правильный ответ на ваш вопрос.
Для подстановки контента на устройстве типа маршрутизатора (угадайте), netsed может быть самый простой доступный подход.