Как пересылать пакеты с одного интерфейса на другой на одном хосте? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть два интерфейса 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

Однако это не работает.

Я нашел:

  1. КогдаЯ ping 10.0.0.1 с хоста 2, ens33 (хост 1) получил пакеты и ответил (ядром).
  2. Когда я ping 10.0.0.123 с хоста 2, ens33 (хост 1) получил пакеты, но никогда не переадресовывал эти пакеты.
  3. iptables -t filter --list -v показывает, что ни один пакет не прошел через цепочку FORWARD, всепакеты выше прошли через цепочку INPUT

Что не так с моими настройками?

...