Доброго времени.
Суть проблемы - есть две машины в сети С. 1 машина с одним интерфейсом (eth0:5.5.5.5), просто висит в инете. 2 машина имеет два интерфейса, одним (vmbr0) смотрит в инет (IP:20.20.20.20), вторым (vmbr2) в локалку (192.168.0.0/24).
Нужно из локалки второй машины (192.168.0.0/24) пускать все пакеты через GRE-туннель между первой и второй машиной в интернет, чтобы 1 машина выступала в качестве шлюза.
Собственно туннель:
1 машина:
ip tunnel add tunnel0 mode gre local 5.5.5.5 remote 20.20.20.20 ttl 255 key 0xffafdfdf
ip link set tunnel0 up
ip addr add 10.0.0.1/24 peer 10.0.0.2/24 dev tunnel0
ip route add 192.168.0.0/24 via 10.0.0.2 dev tunnel0
2 машина:
ip tunnel add tunnel0 mode gre local 20.20.20.20 remote 5.5.5.5 ttl 255 key 0xffafdfdf
ip link set tunnel0 up
ip addr add 10.0.0.2/24 peer 10.0.0.1/24 dev tunnel0
Пытаюсь использовать TPROXY, но что-то подсказывает что можно без него:
1 машина:
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
2 машина
iptables -t mangle -I PREROUTING -p tcp -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j TPROXY --on-ip 10.0.0.1 --on-port 0
tcpdump -I tunnel0 #молчит на обоих машинах
Так же выключен rp_filter на второй машине:
cat /proc/sys/net/ipv4/conf/all/rp_filter
0
Прошу помощи, что не хватает данной конфигурации? Если «tcpdump -I tunnel0» молчит даже на второй машине, то что-то именно на ней настроено не так?