Назад | Перейти на главную страницу

Debian: Как перенаправить порты на другой сервер с оригинальным ip-адресом?

Представьте, что у меня есть несколько (debian) серверов в разных местах, которые не подключены через LAN.

Мне нужно найти способ перенаправить определенные порты на один из других серверов, но сервер, который обрабатывает запрос, должен видеть исходный IP-адрес пользователя, который подключился к серверу пересылки. Я знаю, что для HTTP есть X-Forwarded-For, но в целом меня интересует TCP.

Также можно настроить VPN (openvpn, PPTP, ...), я не знаю, поможет ли это, но проблема с VPN в том, что тогда все межсерверные соединения будут проходить через хост VPN, но было бы лучше, если бы каждый сервер может перенаправлять трафик напрямую на другой.

Я имею в виду: server1: 80 => server2: 80
сервер2: 8080 => сервер3: 8080
server3: 1234 => server1: 1234

Я пробовал пересылку по SSH, но исходный IP теряется.

Как только вы начинаете пересылать пакеты с сервера на сервер, вы удваиваете нагрузку на сеть. Почему бы не настроить маршрутизатор / брандмауэр для перенаправления пакета на основе порта назначения, чтобы он в первую очередь направлялся на правильный сервер? Затем маршрутизатор / брандмауэр будет обрабатывать переключение адресов назначения туда и обратно.

Причина, по которой необходимо "и вперед", заключается в том, что если клиент думает, что он подключается к server1, пакеты возвращаются должен поступать с IP-адреса server1, иначе клиент проигнорирует их, поэтому, когда server3 отвечает, адрес "from" необходимо изменить на server1, который межсетевой экран должен обрабатывать автоматически, если он использует что-то вроде ip_conntrack Linux для NAT.

Если вы настаиваете на пересылке между серверами, у меня есть несколько идей, но сейчас нет возможности их проверить.

Трудно соответствовать вашим конкретным потребностям, но есть одна возможность, с которой вы можете поэкспериментировать:

  1. Настройте VPN-туннели от сервера к серверу. Это устраняет вашу жалобу на VPN.
  2. Запустите HAProxy с помощью патча TProxy. Это может сделать общие TCP-прокси и сохранить исходный IP-адрес. С одной оговоркой, все ответы должны направляться через балансировщик нагрузки. Этот трафик может пройти через туннели VPN.

Ваши требования довольно специфичны, вы можете получить от нас лучший совет, если сделаете шаг назад и объясните, что вы пытаетесь создать, с немного более подробной информацией.