У меня есть два интерфейса ens33
(192.168.241.131) и tap0
(10.0.0.1), как переслать пакеты (dst 10.0.0.123) от ens33
до tap0
?
Среда
ОС: Ubuntu 18.04 LTS, tap0
- это устройство Linux TUN / TAP.
Host 1
ens33 192.168.241.131/24
tap0 10.0.0.1/24
Host 2
ens33 192.168.241.128/24
Что я хочу
У меня естьстек usercap tcp / ip поверх tap0 и имеет поддельный ip 10.0.0.123.
На хосте 1 я успешно пингую 10.0.0.123. И теперь я хочу пропинговать 10.0.0.123 с другого хоста (т.е. хоста 2).
Я думаю, что мне нужны некоторые правила для пересылки пакетов с ens33 (хост 1) на tap0 (хост 1), поэтому я настраиваюiptables выглядит следующим образом:
Вот мои настройки:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -I POSTROUTING --out-interface ens33 -j MASQUERADE
iptables -I FORWARD --in-interface ens33 --out-interface tap0 -j ACCEPT
iptables -I FORWARD --out-interface ens33 --in-interface tap0 -j ACCEPT
Однако это не работает.
Я нашел:
- КогдаЯ
ping 10.0.0.1
с хоста 2, ens33
(хост 1) получил пакеты и ответил (ядром). - Когда я
ping 10.0.0.123
с хоста 2, ens33
(хост 1) получил пакеты, но никогда не переадресовывал эти пакеты. iptables -t filter --list -v
показывает, что ни один пакет не прошел через цепочку FORWARD, всепакеты выше прошли через цепочку INPUT
Что не так с моими настройками?