Пересылка 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