Не могу перенаправить трафик с eth на TUN / TAP

Я пытаюсь перенаправить трафик с физического интерфейса enp5s0 на виртуальный tun0 . objective состоит в том, чтобы заставить tun0 получать практически все пакеты от enp5s0 .

Сначала я включаю пересылку командой

 sudo sysctl -w net.ipv4.ip_forward=1 

Затем я создаю tun0 , запустив

 sudo ip tuntap add dev tun0 mod tun 

Я назначаю ему IP-адрес и включаю устройство:

 sudo ifconfig tun0 10.1.8.5 netmask 255.255.255.0 promisc up 

Я хочу, чтобы все пакеты переходили от enp5s0 к tun0 , поэтому я должен использовать iptables . Мне нужно сделать правило, которое позволяет пересылку с enp5s0 на tun0 , поэтому команда

 sudo iptables -A FORWARD --in-interface tun0 --out-interface enp5s0 -j ACCEPT 

Затем я включаю NAT, запустив

 sudo iptables -t nat -A POSTROUTING --out-interface enp5s0 -j MASQUERADE 

tcpdump не показывает трафик на tun0 .

Также я попробовал почти то же самое, но с помощью устройства TAP. Я создал мост с помощью brctl , добавил tap0 и enp5s0 , но enp5s0 не получил пакетов, и с tap0 все было в порядке. Ничего подобного по default gw 10.1.8.5 работает в случае TUN. Где ошибка?

    Ваши входные и выходные интерфейсы меняются местами в команде iptables.

    Они должны быть:

     sudo iptables -A FORWARD --in-interface enp5s0 --out-interface tun0 -j ACCEPT 

    а также:

     sudo iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE