Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: TCP реверс-прокси.  (Прочитано 2371 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
TCP реверс-прокси.
« : 13 Апреля 2012, 15:32:55 »
Здравствуйте, уважаемый форумчане.
В нашем городе 2 провайдера и у них нет общего пиринга. Кроме того трафик от одного провайдера до другого идет сквозь тридевятые царства. Пинг 80-100 мс несмотря на то, что между их центрами около 500 метров. Я подключен к обеим провайдерам. Допустим, у провайдера 1 есть сервер CS. Могу ли я перенаправлять трафик от абонентов провайдера 2 на серверр провайдера 1 силами iptables. Идея такая. У меня 2 ip-адреса 1.1.1.1 и 2.2.2.2. Пусть сервер кс с ип-адресом 5.5.5.5. Можно ли организовать "проброс" порта (например:27001) 2.2.2.2:27001 на 5.5.5.5:27001 если пакеты приходят с сети 2-го провайдера. От обычного проброса это отличается тем, что сервер не является шлюзом. Если это реализовать, то абоненты провайдера 2 могут подключаться по адресу 2.2.2.2 к серверу кс 5.5.5.5. Кроме того, внутренний трафик оба провайдера не тарифицируют и нет лимита скорости (максимальное для используемой технологии 100 мбит/с). А так внешняя скорость очень маленькая. 256 кбит/с.

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #1 : 13 Апреля 2012, 21:03:31 »
при DNAT шлюзом быть не обязательно, параллельно с DNAT придется настроить SNAT чтобы сервер кс слал ответы не по дефолтному маршруту на адрес клиента из другой сети, а через ваш сервер.

Оффлайн Yuriy_Y

  • Старожил
  • *
  • Сообщений: 1736
    • Просмотр профиля
    • Новоишимка
Re: TCP реверс-прокси.
« Ответ #2 : 13 Апреля 2012, 21:13:32 »
ИМХО, сервер КС будет слать ответы туда, откуда пришли запросы, а уже НАТ должен разобраться, куда их дальше пульнуть.
С уважением, Юрий.

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #3 : 13 Апреля 2012, 21:20:45 »
DNAT не маскирует исходный адрес, сервер КС во входящем пакете увидит адрес, если не внешний, то сети маршрут до которой у него будет отсутствовать, и ответ от сервера отправится на его дефолтный шлюз, пакет клиенту дойдет уже с внешним адресом сервера КС и полученный пакет успешно дропнется системой т.к. клиент с этим адресом соединение не устанавливал.

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #4 : 14 Апреля 2012, 13:40:08 »
Сервер КС должен видеть только мой адрес. Потому что если он будет видеть адрес клиента из другой сети (серый) то ответы (запросы) будут гибнуть еще на первом маршрутизаторе другого провайдера.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #5 : 15 Апреля 2012, 15:41:29 »
Здравствуйте, уважаемый форумчане.
В нашем городе 2 провайдера и у них нет общего пиринга. Кроме того трафик от одного провайдера до другого идет сквозь тридевятые царства. Пинг 80-100 мс несмотря на то, что между их центрами около 500 метров. Я подключен к обеим провайдерам. Допустим, у провайдера 1 есть сервер CS. Могу ли я перенаправлять трафик от абонентов провайдера 2 на серверр провайдера 1 силами iptables. Идея такая. У меня 2 ip-адреса 1.1.1.1 и 2.2.2.2. Пусть сервер кс с ип-адресом 5.5.5.5. Можно ли организовать "проброс" порта (например:27001) 2.2.2.2:27001 на 5.5.5.5:27001 если пакеты приходят с сети 2-го провайдера. От обычного проброса это отличается тем, что сервер не является шлюзом. Если это реализовать, то абоненты провайдера 2 могут подключаться по адресу 2.2.2.2 к серверу кс 5.5.5.5. Кроме того, внутренний трафик оба провайдера не тарифицируют и нет лимита скорости (максимальное для используемой технологии 100 мбит/с). А так внешняя скорость очень маленькая. 256 кбит/с.
Нет, не сможете.
Во-первых - это задача не для iptables
Во-вторых, как абонента провайдеров, такие действия находятся не в вашей компетенции.
OpenWrt 19.07

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #6 : 16 Апреля 2012, 09:49:42 »
Это возможно. Реверс прокси.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #7 : 16 Апреля 2012, 10:16:46 »
Реверс прокси.
После этой фразы очень хочется отправить изучать матчасть. Вкратце TCP, а тем более UDP, на котором работает CounterStrike, транспортые протоколы (Layer 4), они не проксируются. Более того, UDP вообще не гарантирует доставку пакета. Проксируемые протоколы - протоколы прикладного уровня (Layer 7).
Это возможно.
Мне очень интересно было бы увидеть рабочее решение в контексте твоей задачи.
« Последнее редактирование: 19 Апреля 2012, 18:05:51 от KT315 »
OpenWrt 19.07

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #8 : 19 Апреля 2012, 17:59:18 »
сами изучайте матчасть. про протокол SOCKS не слыхал?

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #9 : 19 Апреля 2012, 18:00:16 »
и что?
OpenWrt 19.07

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #10 : 19 Апреля 2012, 19:21:03 »
После этой фразы очень хочется отправить изучать матчасть. Вкратце TCP, а тем более UDP, на котором работает CounterStrike, транспортые протоколы (Layer 4), они не проксируются. Более того, UDP вообще не гарантирует доставку пакета. Проксируемые протоколы - протоколы прикладного уровня (Layer 7).
Чем же тогда SOCKS занимается? Считаешь себя умным?

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #11 : 19 Апреля 2012, 19:34:31 »
Чем же тогда SOCKS занимается?
После этой фразы очень хочется отправить изучать матчасть. Вкратце TCP, а тем более UDP, на котором работает CounterStrike, транспортые протоколы (Layer 4), они не проксируются. Более того, UDP вообще не гарантирует доставку пакета. Проксируемые протоколы - протоколы прикладного уровня (Layer 7).
что непонятно в выделенном? SOCKS - протокол сеансового уровня (Layer 6)
Считаешь себя умным?
Считаю, хотя бы потому, что не создаю идиотских топиков. Подумай головой своей как может протокол верхнего уровня заключать в себе протоколы нижнего уровня. Ты и в свободную энергию наверное веруешь?
Еще раз для проховидящих: твоя задача не решается в твоих условиях.
« Последнее редактирование: 19 Апреля 2012, 19:40:00 от KT315 »
OpenWrt 19.07

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #12 : 20 Апреля 2012, 05:43:43 »
Мне вас жалко. SOCKS проксирует TCP. Полностью.

Пользователь решил продолжить мысль 20 Апреля 2012, 05:51:16:
при DNAT шлюзом быть не обязательно, параллельно с DNAT придется настроить SNAT чтобы сервер кс слал ответы не по дефолтному маршруту на адрес клиента из другой сети, а через ваш сервер.
да, я тоже подумывал так. попробую реализовать.
« Последнее редактирование: 20 Апреля 2012, 05:51:16 от teraflops »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #13 : 20 Апреля 2012, 06:24:54 »
Реверс прокси.
После этой фразы очень хочется отправить изучать матчасть. Вкратце TCP, а тем более UDP, на котором работает CounterStrike, транспортые протоколы (Layer 4), они не проксируются.
Мда... Что-то ты сплоховал.
SOCKS как раз и придумали, чтобы TCP и UDP проксировать.
Нормально реализованный SOCKS5 - в том числе может проксировать в обе стороны, имея в своём арсенале аналог UPnP редиректора.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн teraflops

  • Автор темы
  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: TCP реверс-прокси.
« Ответ #14 : 20 Апреля 2012, 12:48:54 »
Задача решена.
ип-адрес первого провайдера 1.1.1.1
ип-адрес второго провайдера 2.2.2.2.
Сервер с ип-адресом 5.5.5.5 в сети второго провайдера и с некоторой службой, слушающей tcp-порт 4000.
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 4000 -j DNAT --to-destination 5.5.5.5:4000
iptables -t nat -A POSTROUTING -p tcp --dst 5.5.5.5 --dport 4000 -j SNAT --to-source 2.2.2.2
первое правило отправляет пакеты пришедшие с первого провайдера на сервер из сети второго провайдера.
второе правило, дабы пакеты не потерялись, заменяет адрес источника на адрес второго провайдера.
Таким образом, клиенты из сети первого провайдера могут подключаться к серверу второго провайдера. При этом им будет казаться как будто сервер на самом деле запущен на 1.1.1.1, в то время как он работает на 5.5.5.5
Они даже не будут подозревать о существовании 5.5.5.5.
А сам сервер в сети второго провайдера не будет знать о том, что к нему подключаются с сети другого провайдера. Он будет видеть только адрес 2.2.2.2
« Последнее редактирование: 20 Апреля 2012, 12:54:12 от teraflops »

 

Страница сгенерирована за 0.042 секунд. Запросов: 25.