Собственно, есть 2 тазика в разных ДЦ (между тазиками пинг 1-2мс).
На тазике 2 (дц2) крутиться сервис, которому важен минимальный пинг от пользователя.
Но у некоторых пользователей пинг до разных ДЦ разный, например до ДЦ1 - пинг 10, до ДЦ2 - 40.
Собственно, сделал такую схему:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 123 -j DNAT --to 11.22.33.44:123
Чтобы некоторые юзеры, могли ходить к сервису через ДЦ1 с маленьким пингом.
Все работает, все ок. Но есть 1 момент, а именно, при заходе юзера через ДЦ1, у него будет IP тазика в ДЦ1. Собственно задача показывать реальные ипы юзеров при заходе через ДЦ1.
Пробовал snat, но похоже я криворук и у меня не вышло.
Подскажите правила.
>[оверквотинг удален]
> - пинг 10, до ДЦ2 - 40.
> Собственно, сделал такую схему:
> iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 123 -j
> DNAT --to 11.22.33.44:123
> Чтобы некоторые юзеры, могли ходить к сервису через ДЦ1 с маленьким пингом.
> Все работает, все ок. Но есть 1 момент, а именно, при заходе
> юзера через ДЦ1, у него будет IP тазика в ДЦ1. Собственно
> задача показывать реальные ипы юзеров при заходе через ДЦ1.
> Пробовал snat, но похоже я криворук и у меня не вышло.
> Подскажите правила.поднимай туннель между серваками.
openvpn/gre/ipip - по вкусу.
> поднимай туннель между серваками.
> openvpn/gre/ipip - по вкусу.если не хочешь заморачиваться с тоннелями, то на дц2 делаешь нат не твой рабочий порт дц1, а на служебный например дц1:66666.
на дц1, пакеты идущие на порт 66666 маркируешь и отправляешь на твой служебный порт 123.
ответы отправляешь обратно на дц2, а там через SNAT кидаешь уже клиенту.фигня какая-то получилась, но как-то так
>[оверквотинг удален]
>> iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 123 -j
>> DNAT --to 11.22.33.44:123
>> Чтобы некоторые юзеры, могли ходить к сервису через ДЦ1 с маленьким пингом.
>> Все работает, все ок. Но есть 1 момент, а именно, при заходе
>> юзера через ДЦ1, у него будет IP тазика в ДЦ1. Собственно
>> задача показывать реальные ипы юзеров при заходе через ДЦ1.
>> Пробовал snat, но похоже я криворук и у меня не вышло.
>> Подскажите правила.
> поднимай туннель между серваками.
> openvpn/gre/ipip - по вкусу.Правильно Вам подсказывают, туннель + маршрутизация более удачное решение, нежели трансляция адресов.
> Правильно Вам подсказывают, туннель + маршрутизация более удачное решение, нежели трансляция
> адресов.Туннель немного не подходит, ибо на ипах уже есть сервисы, нужно именно по определенным портам.
>> Правильно Вам подсказывают, туннель + маршрутизация более удачное решение, нежели трансляция
>> адресов.
> Туннель немного не подходит, ибо на ипах уже есть сервисы, нужно именно
> по определенным портам.Ну так как раз чтобы был доступ к этим сервисам на этих IP, Вам и нужна маршрутизация. Переносить сервисы на иные IP не придется.
>[оверквотинг удален]
> - пинг 10, до ДЦ2 - 40.
> Собственно, сделал такую схему:
> iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 123 -j
> DNAT --to 11.22.33.44:123
> Чтобы некоторые юзеры, могли ходить к сервису через ДЦ1 с маленьким пингом.
> Все работает, все ок. Но есть 1 момент, а именно, при заходе
> юзера через ДЦ1, у него будет IP тазика в ДЦ1. Собственно
> задача показывать реальные ипы юзеров при заходе через ДЦ1.
> Пробовал snat, но похоже я криворук и у меня не вышло.
> Подскажите правила.1)
при DNAT ИП источника подменяется адресом сервера, который DNAT делал. так что тут никаких вариантов решения нет2)
смотреть в сторону раздельных таблиц маршрутизации iproute2 etc3)
смотреть в сторону тунелей
> при DNAT ИП источника подменяетсяПри DNAT заменяется dest.ip пакета. Не "ИП источника", а адрес _назначения, то есть.
>> при DNAT ИП источника подменяется
> При DNAT заменяется dest.ip пакета. Не "ИП источника", а адрес _назначения, то
> есть.все верно. каюсь) - отвлекся на другую задачу и глупость сморозил.