В виду моей специфики (20 лет занимаюсь обслуживанием большого количества МЕЛКИХ сетей
Хорошей практикой для внутренней сети использовать диапазон 10.0.0.0/8. При использовании того же VPN L2TP на клиенте автоматически добавляется маршрут 10.0.0.0/8, что избавляет от необходимости прописывать маршрут.
А не проще натравить клиентов на 10.10.10.1?
И на Микротике прописать dstNAT с 10.10.10.1:3389 на 192.168.1.7:3389
И на Микротике прописать dstNAT с 10.10.10.1:3389 на 192.168.1.7:3389
Использование сети 192.168.1.0/24 крайне неразумно.
винда с ДНС работает так, что отправляет запрос на любой на свое усмотрение, а не по порядку в списке
Если все же нужен VPN, то тебе надо написать логер на VPN сервеве который будет логировать все соединения в базу (VPN_IP - SPT), а второй сервер на основании порта подключения доставать из базы реальный IP клиента.
Например так
Добавляем в iptables логирование
iptables -t nat -A POSTROUTING -d $BACKEND_IP -m limit --limit 2/min --limit-burst 10 -p tcp --tcp-flags NEW -j LOG --log-prefix "VPN log: "
В логе сервера получаем что-то типа (или настраиваем отдельный лог через rsyslog)
Feb 18 05:06:29 server kernel: VPN log: IN= OUT=eth1 SRC=4.3.4.5 DST=3.4.5.6 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=22 DPT=59292 WINDOW=14480 RES=0x00 ACK SYN URGP=0
Вешаем на этот лог telegraf который кидает это все в базу influx.
В этом лог будут видны VPN адреса клиентов (адрес внутри тоннеля) и SPT - порт с который клиент использует для подключения к backend, соответственно так же надо написать скрипт который будет добавлять в базу связку Real_IP - VPN_IP. Тот же WireGuard и OpenVPN позволяют запускать скрипты при подключении клиента.
Потом уже SQL запросом (LEFT JOIN) на втором сервере вытягивать нужные данные.