Как повторно внедрить пакет в Iptables? - PullRequest
2 голосов
/ 26 ноября 2010

У меня есть пакет внутри пакета, он же туннелирование.Таким образом, он имеет вид [IP HEADER 1] [IP HEADER 2] [PAYLOAD].После прочтения первого заголовка (сделанного библиотекой) я получу пакет с [IP HEADER 2] в цепочке INPUT iptables.Я хочу повторно внедрить пакет в запуск iptables, т.е. в цепочку PREROUTING.Конечная цель - переслать пакет на удаленный хост (поэтому я хочу, чтобы пакет был в цепочке PREROUTING).Я прочитал кое-что о libipq, но я не совсем уверен, что это лучший способ сделать это.

1 Ответ

1 голос
/ 30 ноября 2010

Хотя для этого может быть какая-то дополнительная цель.Мне кажется, что вы должны использовать цель MARK для маркировки этого пакета, а затем использовать iproute2 для настройки маршрутизации того места, куда вы хотите его направить.

Что-то вроде:

iptables -t mangle -A INPUT -s 192.168.1.2 -j MARK --set-mark 0xAA

ip rule add fwmark 0xAA table Reroute_Tunnel

Тогда вам нужно добавить и решить, что таблица Reroute_Tunnel делает

...