PDA

Просмотр полной версии : [Прочее] SCP | С сервера на сервер без выхода из игры



MassonNN
16.03.2018, 22:15
Stone Proxy Connector


В силу недавних событий, мы начали разработку первого в индустрии сампа прокси коннектора. Что это такое? - Сейчас расскажу.

Описание:
Иногда нам нужно разместить несколько миров на одном сервере, которые зависят друг от друга и кто этим занимался, наверняка, подтвердит, что это неудобно и сложно. Раньше Proxy коннекторы встречались только в сетях банковских систем, для объединения машин всего мира в одну систему обработки, потом такая полезная вещь появилась на Java платформе, потом она пришла на сайты, и с её помощью можно объединять несколько сайтов, теперь такая вещь как прокси обвязка, возможно, появится и на просторах самп серверов.
Это будет утилита, которая способна перекинуть игрока с одного сервера на другой. Причем, если так поразмыслить то с её помощью можно обвязать 2 сервера, 0.3DL и 0.3.7.

В чем удобства?:
1. С сервера на сервер без выхода из игры
2. Прощай ДДОС.
3. Возможность соединения 20 серверов на разных движках, что позволит играть игрокам с самых разных версий.
4. Возможность объединения до 20 серверов.
5. Возможность отключения\перезапуска одного из серверов(что позволит игрокам не терять время на перезаход в игру, а пока сервер перезапускается игроков можно кинуть в паркур мир или что-то такое)
6. Неограниченные возможности в области модов
7. Заметное увеличение максимального онлайна (так как каждый сервер даёт по 1000)
8. Было замечено, что все распространённые способы ддос атаки (ботнет, спам запросами и т.д.) не работают на сервера с этой утилитой, так как атака идёт на 1 сервер, если злоумышленники положат 1 сервер, то всю систему обвязки им положить не получиться, при атаке на ip хостинга(который не выдаётся, но узнать можно), атака может быть удачной, однако можно сделать систему, которая и эту лазейку уберёт.

Недостатки:
1. Увеличенное ОЗУ потребление
2. Сервера можно объединить только на локальном диске, объединить сервера на разных хостингах не получится(но в последующих обновлениях всё возможно).
3. Умение создавать скрипт прокси обвязки

Как это будет выглядеть?:
https://imgur.com/a/ilTqA (скриншоты подставные, но примерно так это и будет выглядеть)

Scripts Proxy - это специальные скрипты, которые регулируют работу пересоединения. Это нужно, чтобы игрок всегда был под контролем сервера. Обработчик кода является сам компилятор Pawn, и поэтому такие скрипты будут писаться на Pawn. В таких скриптах Вы можете регулировать передачу игрока с одного сервера на другой, регулировать передачу данных или проверять на наличие чего-то у игрока или сервера. Будет собственное API в виде include.

Addons - это специальные дополнения к скрипту утилиты. Скорее всего это будет представлять собой мини-коды, которые будут обрабатывать соединение игрока или самих серверов. С помощью аддонов можно будет соединить DL и 0.3.7 сервер. Также будет дополнение на уменьшение затрат на сервер.

Исходники и возможная помощь нам:
Исходники данной утилиты будут доступны всем, после окончания основной разработки. Вы можете помочь нам с документацией или созданием аддонов\скриптов с использованием API.

Релиз: не планируется.
Beta релиз: 20.04.2018

Появилась информация о первых тестированиях

Тестирование:

Закрытое Бета тестирование - 20.04.2018
Закрытое Бета тестирование - 21.04.2018
Закрытое Бета тестирование - 25.04.2018

GitHub (https://github.com/Nestyreff/StoneProxyConnector)
Русскоязычная поддержка (https://vk.com/vipilyalypin)

Зачем этот анонс? Нам просто интересно мнение людей, возможно их предложения и желание видеть в релизе такую утилиту.

Fallen A.
17.03.2018, 01:01
Не знаю, насколько это реализуемо, но:

- если все сервера будут на одном локальном диске, то как вы собираетесь защищаться от DDoS атак? Положат один физический сервер и все, приехали.

MassonNN
17.03.2018, 09:22
Положить физический сервер не так-то просто, так как его ip зашифрован и если атака будет замечена, то можно сделать, чтобы система выполняла переадресацию на другой виртуальный ip, что полностью сбрасывает результат ддоса

Fallen A.
17.03.2018, 12:57
Положить физический сервер не так-то просто, так как его ip зашифрован и если атака будет замечена, то можно сделать, чтобы система выполняла переадресацию на другой виртуальный ip, что полностью сбрасывает результат ддоса

Сервер никто "класть" и не собирается. Забьют вам весь канал и прощай онлайн. Необходимо, чтобы один сервер выступал в роли самого прокси сервера и имел 2 ip адреса. На один бы приходили основные запросы от клиента игроков, а через другой ип он был бы уже связан с остальными серверами. Получается мини кластер такой.

MassonNN
17.03.2018, 16:28
Это примерно так и работает.
При заходе на ip сервера, допустим 120.0.0.1, игрока перенаправит на виртуально-сессионный ip, пример: 120.0.0.86 или 120.0.0.1/86. После подключения, ни игрок, никто другой знать ip сервера и код прокси не будет, это сделано не для АнтиДдоса, а для того, чтобы индивидуальную сессию игрока можно было перекинуть на другую маску сервера, тобишь на другой локальный сервер.

Fallen A.
17.03.2018, 16:55
Это примерно так и работает.
При заходе на ip сервера, допустим 120.0.0.1, игрока перенаправит на виртуально-сессионный ip, пример: 120.0.0.86 или 120.0.0.1/86. После подключения, ни игрок, никто другой знать ip сервера и код прокси не будет, это сделано не для АнтиДдоса, а для того, чтобы индивидуальную сессию игрока можно было перекинуть на другую маску сервера, тобишь на другой локальный сервер.

Что за маска такая 86? я знаю только до 32.

MassonNN
17.03.2018, 19:07
виртуальный ip даёт возможность создавать сессионные ip с 5 уровнем
120.0.0.1. xx - xx это уже 5 уровень-сессия, не маска

$continue$
18.03.2018, 01:21
Лучше бы написали отдельный прокси сервер для SA-MP. Чтобы можно было без особого геморроя ставить SA-MP сервер на VDS.

MassonNN
18.03.2018, 09:16
1. Это абсолютно другое
2. Ничего не выйдет, тут либо открывать порты на компьютере или ставить на VDS по фтп
3. Ненужный бред.

А с помощью этого прокси коннектора можно сделать всё что угодно, соединить 0.3.7 и 0.3DL сервер, увеличить максимальный онлайн до 20.000, сделать авторизацию, снизить шанс ддос падения до минимума, возможность кеша и т.д., сессионные системы, что позволяет сохранять авторизацию в кеше и игрок может не авторизовываться каждый раз при перезаходе. Да и вообще это полезная вещь.

- - - Добавлено - - -

Обновление 0.2 ALPHA
Скрипты прокси возможно будут на С, так как сама утилита пишется на этом языке.
Возможно, будет pawn инклуд, который позволит писать эти скрипты.
Также появилась окончательная форма перезапуска одного из серверов.
Теперь утилита не запускается при нарушении одного из серверов, что даст разработчикам понять о неисправности одного из серверов.
Уменьшено ОЗУ потребление за счёт облегчения нагрузки на основной сервер.

Расчитаны минимальные требования для хостинга с использованием SCP:
Рекомендуется VDS
2GB ОЗУ
8+ GB физической памяти
Если на одном дедике будет стоять что-то еще(сайт или сервер), то не исключены сильные лаги, так как утилита ставит приоритет использования себе.
Расчитано на 10 серверов, для 20 серверов требования нужно увеличить на 60%

Обновление 0.2.1 ALPHA
Создали простой гитхаб, для Wiki, планов, исходников и вопросов.
Добавил вк для поддержки

Внимание!
Из-за того, что серверов несколько и соединение идёт через локальную передачу прокси, то ДДОС ботнетом и всеми распространёнными способами - бесполезен.
Даже если Вы пойдёте атаковать на один из серверов, то весь сервер обвязок положить не получится. IP атака тоже бессмыслена, ибо каждый сервер находится на виртуальном ip, который не соответствует ip хостинга. Единственный способ удачной атаки, это нападение на IP хостинга, но можно создать систему, которая будет перекидывать запрос IP, на другой локальный IP и таким образом результат ддоса будет обнулятся.

Обновление 0.2.2 ALPHA
Изменили перезаход, теперь игрока просто выбивает и он перезаходит через временное прокси (всё происходит автоматически)
Исправили баги:
- Баг с крашем при подключении
- Баг с крашем при переподключении
Обработчик Scripts Proxy теперь окончательно является Pawn

Обновление 0.2.3 ALPHA
Убраны ошибки:
- Неверное соединение с сервером
- Сервер не запускался с использованием утилиты

Обновление 0.2.4 ALPHA
Оптимизировали код
Оптимизировали затраты (-2,3%)

Появилась примитивная схема работы (я криворукий, но эта схема объясняет работу коннектора, даже лучше, чем я,если бы написал огромную десертацию)
https://i.imgur.com/HIGpCbZ.png

MassonNN
18.03.2018, 14:53
Обновление 0.2.5 ALPHA
Теперь сессия игрока может сохранить его авторизацию в кеше, что уменьшит время на повторные авторизации
Теперь сессию игрока можно отключить(см.Wiki), что приведёт игрока к "кику с сервера", но при этом, игрок может не тратить время на перезаход в игру, так как его не выкинет из игры.
Теперь, если Вы используете SCP, Вы можете создавать облачное хранение данных для сессии.
Исправлены баги:
- Баг с сессиями (смешание)
- Баг со смежными протоколами (игрока выбивает из игры при переподключении)
- Баг с запуском серверов

Обновление 0.2.6 ALPHA
Улучшили безопасность
Система кеша переписана
Исправление багов:
- Данные игрока можно было достать из кеша при повторном подключении на ту же сессию
- Данные игрока можно было достать из кеша при переподключении

Fallen A.
18.03.2018, 17:36
Теста нет?

Disinterpreter
18.03.2018, 20:11
Хочу поюзать этот ваш шедевр.

$continue$
18.03.2018, 20:45
А кто сказал, что это одно и тоже


1. Это абсолютно другое

WTF?


2. Ничего не выйдет, тут либо открывать порты на компьютере или ставить на VDS по фтп

И почему же? Для SA-MP нет прокси сервера, который может проксировать нежелательный трафик.

3. Ненужный бред.

Bib
19.03.2018, 18:03
Прощай ДДОС.

Вернее добро пожаловать


Было замечено, что все распространённые способы ддос атаки (ботнет, спам запросами и т.д.) не работают на сервера с этой утилитой, так как атака идёт на 1 сервер, если злоумышленники положат 1 сервер, то всю систему обвязки им положить не получиться, при атаке на ip хостинга(который не выдаётся, но узнать можно), атака может быть удачной, однако можно сделать систему, которая и эту лазейку уберёт.

Как раз ддосерам это на руку. Один пркси-сервер легче положить, чем допустим 5 самповских. В итоге игроки просто не смогут подключиться, хотя самп сервера работают

DeimoS
19.03.2018, 18:09
Вернее добро пожаловать



Как раз ддосерам это на руку. Один пркси-сервер легче положить, чем допустим 5 самповских. В итоге игроки просто не смогут подключиться, хотя самп сервера работают

Я не хочу влезать в этот ваш "увлекательный" спор, просто хочу заметить, что глупо воротить нос от реализации, если аналогов, которые бы реализовывали подобное без перечисляемых вами минусов, просто не существует :pardon:

Bib
19.03.2018, 18:18
Я не хочу влезать в этот ваш "увлекательный" спор, просто хочу заметить, что глупо воротить нос от реализации, если аналогов, которые бы реализовывали подобное без перечисляемых вами минусов, просто не существует :pardon:

Я просто указал на ошибку, ничего против этой идеи не имею. Даже планирую использовать на своем проекте Разве что, нужно будет увеличить пропускную способность

MassonNN
20.03.2018, 00:25
Кто сказал что мы используем технологии прокси сервера? Мы используем сквозные скрипты для изменения подключения без выхода из игры. Это тоже самое, что если Вы отключились от сервера, так как на сервере начался рестарт, Вам отправит "The Server is restarting. Reconnecting...", также это и работает, Ваша сессия, которая имеет специальный id и специальный виртуальный ip перенаправляется утилитой на подсервер по ip, о котором всем предстоит гадать. Конечно, ДДОС всегда будет в наших сердцах, но эта утилита избавит Вас от школьников и псевдохакеров, которые всегда мешали проектам.

- - - Добавлено - - -

Тестирование будет после окончания ALPHA разработки

- - - Добавлено - - -

Обновление 0.2.7 ALPHA!
Обновили API
Поменяли функции. Теперь вид больше похож на самп, нежели JS
Исправление багов:
- Не подключалось с версий ранее 0.3d
- При работе с a_samp возникали ошибки при написании Sсripts Proxy

MassonNN
21.03.2018, 21:58
Обновление 0.2.8 ALPHA!
Заканчиваем разработку кеш-хранилища
Убрали баги:
- При авторизации, кеш иногда не хешировался

MassonNN
22.03.2018, 23:16
Немного о том, что мы планируем сделать к BETA релизу:
- Уменьшить кол-во времени подключения игрока (с 3 минут до 30 сек)
- Уменьшить кол-во лагов и пинга на сервере
- Уменьшить кол-во ОЗУ затрат (-70%)
- Уменьшить кол-во крашев при использовании SCP
- Уменьшить затрат на физическую память

Ответы на вопросы:

Будет ли тестирование? - Да, во время BETA разработки будет несколько ЗБТ, ОБТ не планируем.

Исходники, будут ли они доступны? - После недавних координальных изменений, мы ставим под вопрос выставления исходников на всеобщее обозрение, однако к ним будут иметь доступ доверенные скриптеры и создатели серверов.

Что нужно для создания сервера с использованием SCP? - VDS с рекомендуемыми параметрами, желательно иметь домен-ip для того, чтобы переадресация сохранялась в журнале и умение создавать скриптов прокси.

Какие возможности будут находиться в скриптах прокси соединений? - Вы сможете обрабатывать игрока и сервера всеми функциями a_samp, однако пабликов будет всего 3.

Будет ли игрок испытывать дискомфорт при переподключении? - И да и нет. Да, так как подключение довольно долгое. Нет, так как появляются куча удобств, которые упрощают игру.

Правда ли то, что вашей разработкой заинтересовалась Аризона? - Нет. Таких данных никто из нас не обладает.

DeimoS
23.03.2018, 00:01
Исходники, будут ли они доступны? - После недавних координальных изменений, мы ставим под вопрос выставления исходников на всеобщее обозрение, однако к ним будут иметь доступ доверенные скриптеры и создатели серверов.

А можно больше информации по этому поводу? С чем это связано?

MassonNN
26.03.2018, 00:16
Связано с тем, что некоторые лица, могут использовать разработку в своих целях. Например, обнаружить уязвимость и таким образом получить доступ к управлению\крупному багоюзу сервера. Мы не хотим этого допустить, поэтому исходники будут предоставлены узкому кругу лиц, для продвижения и выявления уязвимостей в целях улучшения утилиты

DeimoS
26.03.2018, 09:59
Связано с тем, что некоторые лица, могут использовать разработку в своих целях. Например, обнаружить уязвимость и таким образом получить доступ к управлению\крупному багоюзу сервера. Мы не хотим этого допустить, поэтому исходники будут предоставлены узкому кругу лиц, для продвижения и выявления уязвимостей в целях улучшения утилиты

А разве обнаружение уязвимости не будет играть вам на руку? Их и так рано или поздно найдут, а тут вы сразу сможете отреагировать и залатать всё, хоть, возможно, временами и в стрессовом режиме.
Не думаю, что политика скрытия проблем доведёт до добра

pawnoholic
26.03.2018, 12:07
Интересно будет посмотреть, что из этого выйдет.

Думаю широко будет использоваться на всяких Freeroam или Survival проектах.

Сам бы хотел использовать для PUBG мода, но релиз, как я понял будет только для определенного круга людей ?

MassonNN
26.03.2018, 23:19
Дело все в том, что мы работаем достаточно с уязвимость системой прокси, прокси не стабилен и надеяться на него нельзя. Мы постоянно изменяем ту или иную систему, чтобы владельцы серверов могли с облегчением использовать утилиту. Хотя система виртуальных ip во многом совершеннее хостинг ip и дата центров, уязвимостей мы наблюдаем больше. Поэтому исходники будут доступны только узком в кругу людей, тобишь не будет общедоступной ссылки, однако мы будем предоставлять доступ к приватному репозиторию очень многим зарубежным и русским разработчикам и только им.

- - - Добавлено - - -

Бета реализация будет для узкого круга.
Общий релиз для всех

pawnoholic
27.03.2018, 12:46
Каким образом можно попасть в этот узкий круг доверенных лиц?

MassonNN
27.03.2018, 20:13
В каких целях?
Для получения бета релиза или для получения исходников?

pawnoholic
27.03.2018, 20:17
Для тестирования, посмотреть, пощупать, как это работает.

MassonNN
27.03.2018, 23:33
Пока в этом кругу никого нет. Попасть туда смогут приглашённые люди(разработчики проектов и знакомые).

MassonNN
28.03.2018, 22:10
Обновление 0.2.9 ALPHA!
Облегчили коды, что дало толчок в оптимзации, а именно снизили пинг и время авторизации.
Облегчили запуск, запуск идёт быстрее.
Улучшили систему безопасности, коды теперь нельзя перехватить, так как они имеют кастомный модификатор доступа.
Начали делать дырявые коды(ну или смежные), чтобы улучшить безопасность.
Теперь рассинхрон встречается реже

Убрали баги:
- Крашило при нахождении файла в cleo папке
- Крашило при вызове OnPlayerDeath

MassonNN
01.04.2018, 15:35
Появилась информация о первых тестированиях

Тестирование:

Закрытое Бета тестирование - 20.04.2018
Закрытое Бета тестирование - 21.04.2018
Закрытое Бета тестирование - 25.04.2018

MassonNN
02.04.2018, 18:02
Был произведён внутренний тест работы систем.

Замечено багов: 3
Замечено неисправностей: 0
Время подключения игрока: 2 минуты, 1 секунда
Время подключения root игрока: 2 минуты, 0 секунд
Версия теста: 0.3.0 BETA(not relised)
Время срабатывания функции OnPlayerConnect: 0,002 секунды
Время срабатывания функции OnPlayerDisconnecr: 0,001 секунды
Время срабатывания функции OnPlayerDeath: 0,002 секунды
Время срабатывания функции OnPlayerChangeServer: 0,12 секунды
Время срабатывания функции OnPlayerDisconnectFromServer: 0,25 секунды
Время срабатывания функции OnPlayerUpdate: 1 секунда

DdoS тестинг систем:

Подключалось: 230 ботов с разных ip
Средний пинг до начала атаки: 50
Средний пинг во время атаки: 56
Средний пинг после атаки: 54
Время атаки: 12 минут
Состояние до атаки: Норма (без перебоев)
Состояние во время атаки: Условно Норма (Повышение пинга)
Состояние после атаки: Норма (без перебоев)
Серверов подключено: 20 (20.000 слотов)
Серверов выключено, во время атаки: 0 (0 игроков вылетело)

VDS тестинг систем:

Использовано памяти для 20 серверов: 6 гб
Использовано ОЗУ: 34,5%
Максимально кол-во ОЗУ: 4 гб
Время включения сервера: 3 минуты, 43 секунды
Время плавного рестарта сервера: 4 минуты, 0 секунд
Время внепланового рестарта сервера: 6 минут, 45 секунд
Время выключения сервера: 43 секунды
Кол-во аддонов: 0
Кол-во пскриптов: 3

- - - Добавлено - - -

Обновление 0.3.0 BETA (relised)

Решена проблема долгого подключения.
Время присоединения укорочено в 3 раза.
Улучшили безопасность.
Исправили некоторые краши.
Исправили рассинхроны.
Исправили пинг.
Появились 3 даты ЗБТ. Приглашения будут отправлены в ближайшее время.

MassonNN
26.05.2018, 23:00
Разработка более не актуальна.
Stone больше не разрабатывает SPC.
Разработка полностью передана определённому проекту(не называем, вцелях конфиденциальности).

brebvix
05.09.2018, 23:49
Жаль, крутую штуку делали. Удачи ;)