backconnect

Тема в разделе "WASM.NETWORKS", создана пользователем K10, 19 мар 2010.

  1. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Подскажите, как сделать многопоточный backconnect?
    Т.е. есть сервер, на нем программа-шлюз открывает 2 порта и перенаправляет траффик с одного на другой. Машина за NAT соединяется с одним портом, клиенты соединяются с другим. Клиентов может быть несколько, а соединение от машины за NAT одно. Как лучше решить этот вопрос?
     
  2. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    зачем два???
    К чему спешка? А поговорить ;) ?
     
  3. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    litrovith
    К одному соединяется машина за натом, к другому коннектятся клиенты.
     
  4. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    K10, это должно происходить 'позже'!!! Для каждой сессии желательно открывать на сервере новую пару портов (или париться с парсингом ипов). тут как в камасутре вариантов поз может быть много.
     
  5. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    покурите rfc1928, должно помочь.
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Для начала сформулировать правильно. Пока я понял так, что надо "преодолеть" NAT и клиенты снаружи находятся. Так вот NAT и делает то, что вам нужно и преодолевать его не нужно, а нужно пробросить порты. Правда бывают варианты, но тогда уточните в чем проблема.
    Если проблема обратная : пров запретил часть сервисов и вы имеете одну машину снаружи, то тогда надо использвать прокси-сервера и туннели, тут опять все зависит от задачи. Я например своего прова обхожу через туннель и никаких внешних машин не нужно.
     
  7. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    Машина за NAT(боты) соединяются со шлюзом(порт A) и ждут от него команд. Приходит клиент на порт шлюза(порт B), в этот момент шлюз отправляет боту команду которая содержит в себе уникальный индефикатор(элементарно i++ для каждого нового клиент-подключения) для нового клиента, после чего шлюз ожидает нового подключения от бота на тотже порт A, когда бот вновь подключается он сообщает шлюзу - id клиент-подключения, ну и дальше ставим тунель между клиентом и ботом. Т.е. бот постоянно держит одно соединение для приема команд на создание новых соединений, ну а другие создает для организации тунеля. Понятно?)
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    С трудом. Ты описываешь решение неизвестной мне задачи. Или решай ее сам или опиши задачу нормально. Чем тебе NAT мешает? До сих пор были клиенты и шлюз. Теперь уже есть еще машины(боты) за NAT. За NAT всегда означало "внутри", а у тебя похоже это снаружи. Пока топологию сети не нарисуешь и расположение всех составляющих - понятно будет только телепатам.
     
  9. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    valterg я вообще для K10 писал) А вот Вы видемо плохо предсталвяете задачу, почитайте в интернетах, что такое backconnect и зачем он нужен... Это не много не то, что Вы пытаетесь объяснить.
     
  10. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    >от машины за NAT одно.
    не заметил. Ну тогда создаем пакеты типа struct{char command; uint clientId; uint dataSize; char data[0];} и гоняем через них трафик туда-сюда через одно соединеие шлюз-машина за натом. Это геморойнее...
     
  11. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Теперь понял. Надо было его имя вбивать :)
    Кстати я фактически для K10 и писал все.
    Почитал. Обсуждение сетевого взлома здесь не профильное, т.ч. ответа не будет.
     
  12. Shadovv13

    Shadovv13 Андрей

    Публикаций:
    0
    Регистрация:
    27 июл 2008
    Сообщения:
    65
    Адрес:
    Украина
    Правильно ли я все понял????
    1. Шлюз (Сервер) находится по NATом.!?
    2. Машины (Боты) в глобальной сети (Интернет).!?
    3. Клиенты тоже в глобальные сети.?

    4. Клиент подключается к шлюзу (например порт 80), Сервер соединяется с Ботом и .....? Он должен пропускать трафик через себя или может объединить Клиента и Бота?
     
  13. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    >Почитал. Обсуждение сетевого взлома здесь не профильное, т.ч. ответа не будет.
    это не сетевой взлом, это доступ к компам в локалке, из инета.
     
  14. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    djmans
    Вроде понятно...
     
  15. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Shadovv13
    И клиент и боты могут устанавливать только исходящие соединения. Для их "обьединения", т.е. передачи траффика между ними служит шлюз-сервер, находящийся в глобальной сети и принимающий их (клиента и бота) соединения.

    valterg
    Настройки НАТ не доступны.
     
  16. Shadovv13

    Shadovv13 Андрей

    Публикаций:
    0
    Регистрация:
    27 июл 2008
    Сообщения:
    65
    Адрес:
    Украина
    Для начала нужно чтобы был свой идентификатор, для того чтобы сервер мог различить входные бидключення (при работе через один порт.
    Например: при соединенные на сервер отправляются данные B101 (Бот 101)) или C002 (клиент 2). До сих имен сервер прикрепит IP адрес, и будет выполнять маршрутизацию.

    Для таких целей используют IСQ. Каждый новый бот автоматом получает уникальный номер и отправляет на один известный (Сервер \ Клиент) через тот же IСQ.
     
  17. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Shadovv13
    Проще открыть 2 порта - один для бота, другой для клиента.

    Мне нужно socks соединение, чтобы можно было завернуть через него произвольный TCP трафик...
     
  18. Shadovv13

    Shadovv13 Андрей

    Публикаций:
    0
    Регистрация:
    27 июл 2008
    Сообщения:
    65
    Адрес:
    Украина
    Под словом произвольный, это просто передача данных или модификацию заголовка?
    Во втором случае winsock не позволяет нормально работает с raw сокетами.
     
  19. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Shadovv13
    Передача данных конечно...
     
  20. Shadovv13

    Shadovv13 Андрей

    Публикаций:
    0
    Регистрация:
    27 июл 2008
    Сообщения:
    65
    Адрес:
    Украина
    Тогда все понял. На каком языке пишэш???
    А впрочем АПИ! и Басике АПИ!
    С винсокетом знаком?