Методы балансирования нагрузки на несколько независимых серверов

zexis
На сайте с 09.08.2005
Offline
388
5243

Есть сайт работающий на выделенном сервере с каналом 100 Мбит.

Назовем его «Сервер А»

На сайт идут ддос атаки свыше 100 Мбит. (Могут быть и больше 1 Гбит)

Что нужно.

Придумать систему из нескольких серверов, расположенных в разных датацентах.

Назовем их «Сервера Б»

Эти сервера должны фильтровать трафик и передавать его серверу А.

IP адрес сервера А посетители и ддосер не знают.

К серверу А доступ происходит только через фильтрующие сервера Б.

Передача производится с помощью проксирования NGINX.

Фильтрация на каждом сервере Б реализуется программно с помощью iptables.

Каждый из серверов Б может в любой момент оказаться не доступен по причине, того что его канал будет забит ддосом.

Нужно, что бы при выходе из строя любого из серверов «группы Б» сайт продолжал работать через другие сервера и у пользователей не возникали проблемы, если один из фильтрующих серверов не доступен.

Предполагается , что задиддосить сразу все фильтрующие сервера группы Б хакер не сможет.

Сейчас пробую балансирвку с помощью ДНС.

Принцип такой.

На каждый фильтрующий сервер Б ставится ДНС сервер.

Каждый ДНС сервер в качестве А записи сайта выдает IP самого себя.

Все фильтрующие сервера прописываются для сайта как записи NS.

В результате клиент при резолве домена обращается сначала к одному ДНС серверу, если он не доступен, потом к другому и так пока не найдет работающий. Тот выдаст в качестве А записи сайта IP самого себя.

Минус этого метода в том, что нужно ставить очень короткий TTL для домена, что бы если сервер становится не доступен, клиенты быстро перешли на другие сервера.

Вопрос.

Какие есть еще технологии для решения такой задачи? Что бы при выходе из строя нескольких серверов, клиенты без задержек переключились на работу с оставшимися?

N
На сайте с 06.05.2007
Offline
419
#1
zexis:
Минус этого метода в том, что нужно ставить очень короткий TTL для домена, что бы если сервер становится не доступен, клиенты быстро перешли на другие сервера.

и в чем тут минус? ты реально видел чтобы named вылезал в top ? да ладно!

других методов тебе тоже насоветуют, но зачем недооценивать самый простой и не требующий особенной мороки.

Кнопка вызова админа ()
zexis
На сайте с 09.08.2005
Offline
388
#2
netwind:
и в чем тут минус? ты реально видел чтобы named вылезал в top ? да ладно!
других методов тебе тоже насоветуют, но зачем недооценивать самый простой и не требующий особенной мороки.

Минус в том, что если клиент сначала работал через один сервер, потом этот сервер стал не доступен, у клиента будет задержка, пока он обратится к другому серверу.

L
На сайте с 07.07.2008
Offline
89
#3

https://www.cloudflare.com/

используй в качестве серверов Б

V
На сайте с 25.07.2006
Offline
128
#4

А почему просто не сделать несколько A-записей для своего домена, указывающих на все Б-серверы?

Приватный linux-администратор
N
На сайте с 06.05.2007
Offline
419
#5
zexis:
Минус в том, что если клиент сначала работал через один сервер, потом этот сервер стал не доступен, у клиента будет задержка, пока он обратится к другому серверу.

Компромисс. знакомо это слово?

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#6
zexis:
Минус в том, что если клиент сначала работал через один сервер, потом этот сервер стал не доступен, у клиента будет задержка, пока он обратится к другому серверу.

А вы каким-то образом хотите влиять на настройки DNS кеша у провайдера за которым сидит ваш посетитель ?

---------- Post added at 06:21 ---------- Previous post was at 06:20 ----------

vapetrov:
А почему просто не сделать несколько A-записей для своего домена, указывающих на все Б-серверы?

Потому что если из 10 серверов 5 будут по ддосом, то у посетителей с вероятностью 50/50 будет открываться сайт, ибо по DNS записям они будут попадать на сервера которые фактически не могут ответить.

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
edogs software
На сайте с 15.12.2005
Offline
775
#7

Непонятно почему сюда еще не набежали "защитники от ддоса" с предложением "фильтровать траффик у себя" и на сервер клиента направлять "чистый и кошерный трафф только".

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

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#8

zexis,

На сколько я понимаю , даже если вы в DNS поставите недопустимо мизерный TTL и укажете Name Servers для домена по вашей схеме..... вы все равно будете получать задержки в "переходе" клиентов с упавших на работающие сервера. Обусловлено это будет кешами по всему пути от клиента до ваших ДНС, не будем внедряться в подробности , это не суть важно по моему, достаточно понимать что ДНС обновить моментально невозможно для всего мира... для внутренней сети еще может быть, если везде все правильно настроить :D

Тут в ваших формулировках кроется некий двоякий смысл, если вы употребляете слово "фильтровать", то это означает что какая-то часть трафика будет таки куда-то проходить , а паразитивный трафик будет помирать в этой точке. При такой формулировке я вообще проблемы не вижу, зачем придумывать какие-то DNS и прочее, делайте redirect (или "проксируйте запрос") куда надо, если ваша "точка" может отфильтровать входящий поток и разобрать его на составляющие по вашему фильтру, а что делать если поток > чем ваш Uplink ? Тут уже слово фильтр становится не уместно, будет лежать, причем плотно и долго.. и никак вы ничего не пофильтруете на локальном уровне, может быть в содействии с Upstream ... но это не автоматика. Да и как бы суть то какая, все равно вам придется засветить какую-то часть ИП, пусть даже основного IP никто никогда и не узнает, разве от этого лечге? Ну будет лежать не ваш сервер который мега спрятан, а те публичные которые проксируют запросы, результат один - сайт не доступен. :( Да и себестоимость понимать надо, фильтр - означает что провайдер будет принимать ваш трафик...... т.е платить за него фактически, будет не дешево "сидеть под атакой" :D

Тут весьма скользок вопрос, что вы хотите получить в конце, никто же не мешает злоумышленнику бомбить ВСЕ точки сразу? :)

---------- Post added at 06:35 ---------- Previous post was at 06:33 ----------

edogs:
Непонятно почему сюда еще не набежали "защитники от ддоса" с предложением "фильтровать траффик у себя" и на сервер клиента направлять "чистый и кошерный трафф только".
zexis, раз у Вас уже ддос и Вы уверены что у Вас он есть и будет (а то есть предлагатели, которые сами же ддос и устраивают) - пошукайте тут по разделу (и в хостинге) подобные предложения. Может оказаться чуть дороже своего велосипеда, но в равной степени и чуть эффективнее, а главное свою головную боль переложите на чужую голову.

Тем про DDOS много, фильтровать по сути могут те, у кого достаточные каналы для этого, вот и все :D Обращаться можно к любому провайдеру который имеет каналы большие чем "сила атаки", а там договоритесь, я уверяю. К примеру если у вас на сервер 100mb/s канал заходит, то на свиче или роутере который по топологии выше я могу отфильтровать ну как бы до 99 mb/s (для примера) а 1 mb/s передавать на сервер, но если ко мне начнет заходить > 100Mb/s то у меня уже не хватит канала для фильтра и по факту я сам под ддосом в таком случае оказываюсь :D

pupseg
На сайте с 14.05.2010
Offline
347
#9
netwind:
и в чем тут минус? ты реально видел чтобы named вылезал в top ? да ладно!
других методов тебе тоже насоветуют, но зачем недооценивать самый простой и не требующий особенной мороки.

я видел. не изучал - с чем связано было, но видел не раз и почему то именно на FreeBSD, нагрузка на машины была, но не сказать что бы адовая.

Канала не хватит все равно.

найдет бот первую успешную A-запись и полезет туда. и так остальные. балансинг конечно будет... но .....

Хотя описанная выше схема имеет право на жизнь.. ИМХО - пробуйте.

---------- Post added at 10:26 ---------- Previous post was at 10:18 ----------

и зачем изобретать велосипед? почему при действительно сильных ддос-атаках, более 60-100мбит не обращаться в специализированные компании? это будет стоить просто дешевле, чем арендовать N-штук серверов группы Б.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
N
На сайте с 06.05.2007
Offline
419
#10
Romka_Kharkov:
А вы каким-то образом хотите влиять на настройки DNS кеша у провайдера за которым сидит ваш посетитель ?

не нужно влиять на то, чего практически нет.

pupseg:
и зачем изобретать велосипед?

затем, что товарищ сам предоставляет эти услуги со своей спецификой, если вы не заметили еще.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий