Пробую поднимать тоннель от микротика до сервера, например IPIP, с подсетью 192.168.2.0/24, и использовать в качестве шлюза адрес сервера из тоннеля 192.168.2.3 - трафик по прежнему идет на 192.168.1.3 (проверяю трассировкой)
либо с помощью connection mark/routing mark (если трафик маркируется в IP Firewall / Mangle),
либо просто указав out interface = интерфейс микротика с адресом 192.168.1.1
chain=srcnat action=masquerade out-interface=gre-tunnel1 log=no log-prefix=""
Какая разница?
Ага, и слота на матери нет, в который можно вставить сетевую карту... микросервер, что ли?
Туннель - для разделения подсетей? вы серьёзно? нет, оно может быть так, но это будет побочный эффект, а совсем даже не целевой.
1. Разнести компьютер и linux-сервер по разным подсетям
2. Если нужно сохранить ip-адресацию, то на микротике нужно делать маскарадинг трафика (правило SNAT с action=MASQUERADE),
хотите, чтобы на станции шлюзом был микротик, он пересылал пакеты на linux, тот пересылал пакеты обратно на mikrotik, и только теперь пакеты шли в интернет, так? и всё это в одной подсети и одном вилане? Вам не кажется, что такая схема, мягко говоря, странненькая?
С моей точки зрения при такой постановке задачи разумнее добавить на linux ещё одну сетевую и врезать его между сетью и mikrotik. Соответствено у станции шлюзом будет linux, у того mikrotik, схема линейная и без заморочек.
Как вариант того же без перекоммутации - выделить под канал linux-mikrotik для трафика в интернет отдельный VLAN (а ещё лучше - отдельный линк, но мы решили обойтись без перекомутации), с отдельной подсетью.
ip route add default via 192.168.2.5 dev tun0 table 120
ip rule add from 192.168.1.12 table 120
iptables -t nat -A POSTROUTING -j MASQUERADE
# ip route add default via 10.1.0.1 table 120
Создаем правило, отправляющее нужные пакеты в нужную таблицу:
# ip rule add from 192.168.1.20 table 120
Как видите, все просто.