История изменений
Исправление anc, (текущая версия) :
Сумбурно написали. Поясню о чем была речь выше.
1. DNAT на сервере в iptables прописываем что-то типа -t nat -A PREROUTING -p udp -s IP-клиента --dport порт-поумолчанию-который-придумали-и-раздали-всем-клиентам-в-конфиге -j DNAT --to-destination ip-сервера:порт-нужного-сервера-на-который-отправляем-по-ip-этого-клиента
Это про вариант если у клиента статика.
2. Теперь про вариант костылей. Хотя я бы такого не делал, просто если очень надо, то возможно, но за кач-во не ручаемся.
В конфиг сервера прописываем скрипт в параметре client-connect в котором на основании переменной common_name (имя клиента) смотрим на переменную trusted_ip (реальный ip клиента).
Если у нас в iptables уже прописан именно этот ip для dnat то ничего не делаем.
Если нет то удаляем старое и добавляем на его место новое (простой вариант использовать отдельные цепочки iptables для этого) и exit 1, клиент пересоединится, итого всего одно пересоединение. Вероятность что за это время у клиента который вам нужен как defroute измениться ip не высок, а точнее тогда он вам и вообще нафиг не нужен. Хотя и в этом случае будут реконекты в цикле.
Исходная версия anc, :
Сумбурно написали. Поясню о чем была речь выше.
1. DNAT на сервере в iptables прописываем что-то типа -t nat -A PREROUTING -p udp -s IP-клиента --dport порт-поумолчанию-который-придумали-и-раздали-всем-клиентам-в-конфиге -j DNAT --to-destination ip-сервера:порт-нужного-сервера-на-который-отправляем-по-ip-этого-клиента
Это про вариант если у клиента статика.
2. Теперь про вариант костылей. Хотя я бы такого не делал, просто если очень надо, то возможно, но за кач-во не ручаемся.
В конфиг сервера прописываем скрипт в параметре client-connect в котором на основании переменной common_name (имя клиента) смотрим на переменную trusted_ip (реальный ip клиента).
Если у нас в iptables уже прописан именно этот ip для dnat то ничего не делаем.
Если нет то удаляем старое и добавляем на его место новое (простой вариант использовать отдельные цепочки iptables для этого) и exit 1, клиент пересоединится. Вероятность что за это время у клиента который вам нужен как defroute измениться ip не высока, а точнее тогда он вам и вообще нафиг не нужен.