Пересылка IP-пакетов на туннельное устройство

Я создал туннельное устройство, используя

ip tuntap add dev tun0 mode tun user 0 группа 0

Затем я назначаю ему IP-адрес 192.168.0.1/22.

ifconfig tun0 192.168.0.1 маска сети 255.255.252.0

На моем устройстве ethernet eth0 я получаю пакеты от машин в диапазоне IP-адресов 192.168.1.2-192.168.1.5. Я хотел бы, чтобы эти пакеты были направлены на туннельное устройство. Я не хочу создавать мост между Ethernet и туннельным устройством. Поэтому я добавил записи маршрутизации в таблицу маршрутизации следующим образом.

IP-правило добавить из 192.168.1.0/24 поиска myinternal

ip route добавить значение по умолчанию через таблицу 192.168.0.1 dev tun0 myinternal

Я очистил (удалил) все записи таблиц IP. Однако есть две записи

iptables -A FORWARD -i eth0 -o tun0 -j ПРИНЯТЬ

iptables -A FORWARD -i tun0 -o eth0 -j ПРИНЯТЬ

Когда я делаю tcpdump на tun0, я не могу увидеть пакеты из eth0. Однако я могу видеть пакеты, когда я делаю tcpdump на eth0. Я хотел бы знать, как я могу переслать / перехватить эти пакеты на tun0. С tun0 я позже хотел бы обработать эти пакеты и ответить на них из моего приложения и при необходимости передать их на другой интерфейс. Я не могу использовать eth0 для своей деятельности.

Я включил пересылку с использованием systl для ipv4.

cat / proc / sys / net / ipv4 / ip_forward

1

Кроме того, в моей основной таблице маршрутизации нет записи маршрута по умолчанию.

1 ответ

Я знаю, что прошло шесть лет, но в случае, если кто-то споткнется здесь с подобной проблемой: это звучит как фильтр обратного пути "rp_filter", сбрасывающий трафик.

По ссылке:

  • log rp_filter отбрасывает трафик:

echo 1> / proc / sys / net / ipv4 / conf / (имя интерфейса)/log_martians

  • отключить rp_filter:

echo 0> / proc / sys / net / ipv4 / conf / (имя интерфейса)/rp_filter

Другие вопросы по тегам