Я создал туннельное устройство, используя
ip tuntap добавить dev режим tun0 tun пользователь 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 table myinternal
Я очистил (удалил) все записи таблиц IP. Однако есть две записи
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
Когда я выполняю tcpdump на tun0, я не могу видеть пакеты от eth0. Однако я могу видеть пакеты, когда делаю tcpdump на eth0. Я хотел бы знать, как я могу пересылать / захватывать эти пакеты на tun0. Из tun0 я позже хотел бы обрабатывать эти пакеты и отвечать на них из моего приложения и, если потребуется, передать их другому интерфейсу. Я не могу использовать eth0 для своей деятельности.
Я включил пересылку с использованием systl для ipv4.
кошка / proc / sys / net / ipv4 / ip_forward
1
Кроме того, в моей основной таблице маршрутизации нет записи маршрута по умолчанию.
Я знаю, что прошло шесть лет, но на случай, если кто-то столкнется с подобной проблемой: это звучит как фильтр обратного пути 'rp_filter' падение трафика.
По ссылке:
эхо 1> / proc / sys / net / ipv4 / conf / (имя интерфейса) / log_martians
echo 0> / proc / sys / net / ipv4 / conf / (имя интерфейса) / rp_filter