В итоге решил вопрос с помощью
ip netns
Написал следующий скрипт:
#!/bin/sh
# установка и настройка изолированного сетевого пространства имен
ip netns add ns0
ip link set eth2 netns ns0
ip -n ns0 link set lo up
ip -n ns0 link set eth2 up
ip -n ns0 addr add 192.168.5.2/24 dev eth2
ip -n ns0 route add default via 192.168.5.1 dev eth2
# в дефолтном пространстве надо поднять NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.5.2/32 -j MASQUERADE
# и надо запустить отдельный SSH-сервер на новом пространстве
sudo ip netns exec ns0 /usr/sbin/sshd -o PidFile=/run/sshd-ns0.pid
Завернул этот скрипт в oneshot сервис и теперь systemd дергает его при запуске системы.
Можно подключаться
ssh 192.168.5.2
и видеть ту же самую локальную машину, которая как бы находится в другой сети, весь трафик которой завернут через
eth1 на
eth0.