Jump to content
Калькуляторы

Распределение нагрузки между ВПН серверами

Необходимо сделать несколько ВПН серверов для разграничения нагрузки.

Пользователи настраивают подключение на 1 ВПН сервер.

Дальше необходимо распределять нагрузку между несколькими серверами, не заставляя пользователей создавать себе дополнительное ВПН подключение на другой сервер.

Кто-то сталкивался с такой задачей?

 

Используется MPD на Фре (poptop на линуксе) + freeradius.

Edited by aklex

Share this post


Link to post
Share on other sites

делается так:

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

Share this post


Link to post
Share on other sites

Жестко... А так не пробовали:

$ host vpn.lds.net.ua
vpn.lds.net.ua has address 10.0.0.8
vpn.lds.net.ua has address 10.0.0.12
vpn.lds.net.ua has address 10.0.0.14
vpn.lds.net.ua has address 10.0.0.5

 

Share this post


Link to post
Share on other sites

Настраиваем подключение не по адресу, а по имени. К имени на DNS-сервере привязываем несколько адресов.

Share this post


Link to post
Share on other sites

martin74

пробовали - замечательно работает

Share this post


Link to post
Share on other sites
martin74

пробовали - замечательно работает

В этом решении есть минус, точнее 3

 

 

1. Выход из стороя ВПН-сервера - проблема. Нагрузка не перераспределиться автоматом, нужно ручое исправление зоны.

2. ДНС кешируем, отсюда - отказ одного ВПН-сервера может вызвать неработспособность многих клиентов даже после п.2 - многие виндовые файрволы кешируют агрессивно.

3. (возможно только я не смогг настроить) Нагрузка распределиться равномерно, либо нужно вешать ip-алиасы

 

 

потому, вопос - лоад-балансеры кто то делал, и если да то как?

Share this post


Link to post
Share on other sites
1. Выход из стороя ВПН-сервера - проблема. Нагрузка не перераспределиться автоматом, нужно ручое исправление зоны.
Автоматом нагрузка перераспределится, если использовать pppoe вместо pptp. В таком случае никаких телодвижений вообще не нужно.

А для любых важных серверов нужно содержать копии систем, чтоб свести даунтайм к минимуму. Например, можно использовать xen+drbd+ha.

Share this post


Link to post
Share on other sites
martin74

пробовали - замечательно работает

В этом решении есть минус, точнее 3

 

 

1. Выход из стороя ВПН-сервера - проблема. Нагрузка не перераспределиться автоматом, нужно ручое исправление зоны.

2. ДНС кешируем, отсюда - отказ одного ВПН-сервера может вызвать неработспособность многих клиентов даже после п.2 - многие виндовые файрволы кешируют агрессивно.

3. (возможно только я не смогг настроить) Нагрузка распределиться равномерно, либо нужно вешать ip-алиасы

 

 

потому, вопос - лоад-балансеры кто то делал, и если да то как?

1 и 2 - Глупости все это, все нормально работает, у адреса vpn.prov.ru четыре адреса отдаются dnsом

Share this post


Link to post
Share on other sites

1 и 2 - Глупости все это, все нормально работает, у адреса vpn.prov.ru четыре адреса отдаются dnsом

А объясните мне тупому, пожалуйста, как может куча разных IP на одно имя в DNS сервере РАВНОМЕРНО распределить пользователей между серверами??? Где гарантия, что 1000 из 1005 юзеров не загрузят vpn1.pupkin.com, а остальные 5 из 1000 будут юзать vpn2.pupkin.com??? С какого перепугу DNS сервер будет УЧИТЫВАТЬ нагрузку на vpn сервера и отдавать соответственно адрес НЕНАГРУЖЕННОГО сервера??

Edited by AlKov

Share this post


Link to post
Share on other sites

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

Edited by ugluck

Share this post


Link to post
Share on other sites

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

Вы уверены? Винда не пингует пптп-сервер перед коннектом, чтоб проверить, жив ли он. Не будет ли так же по кругу периодически выпадать ошибка 800?

Share this post


Link to post
Share on other sites

Magnum72

Есть 4 ВПНа

 

192,168,1,1

192,168,1,2

192,168,1,3

192,168,1,4

 

 

и по host vpn.prov.ua отдаются все 4.

 

И вот у вас сгорел БП на одном из них, ЧТО БУДЕТ? условие - руками ничего не править!

 

DNS выдает айпишники тупо раунд-робином, не взирая ни на что. поэтому распределится все действительно равномерно. ни о каком учете нагрузки речь не идет. в случае отказа одного из пптп-серверов клиент, получивший дохлый айпишник, вынужден будет перезапросить адрес у днс-сервера.
Вы уверены? Винда не пингует пптп-сервер перед коннектом, чтоб проверить, жив ли он. Не будет ли так же по кругу периодически выпадать ошибка 800?

Не знаю, что там пингует, но поытка конекта имхо никак не связана с резолвом.

 

Разрешил имя, получил ип дохлого ВПНа, закешировал, и долбишь до охренения - вот ваш сценарий )

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

ugluck

просмотрел пост, сории, не всегда применимо, у меня все ВПНы включены в один свитч и стоят в ядре сети...

Нет никакого ближайшего.

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

 

Share this post


Link to post
Share on other sites

числом алиасов :) красиво :) а как с отказоустойчивостью ? айпишники по heartbeat?

Share this post


Link to post
Share on other sites

надо что нить типа haproxy для поптопа, вот это было бы интересно

Share this post


Link to post
Share on other sites
числом алиасов :) красиво :) а как с отказоустойчивостью ? айпишники по heartbeat?
красиво?

Надеюсь, вы имели ввиду "убожество". )))

Ну почему ДНС не может давать ответ с заданной вероятностью, а не роунд-робин ( Было б куда изящнее.

 

С отказоустойчивастью - все плохо.

При обслуживании - выкидываю из кластера зараннее. При аварии - в аварийном режиме.

Как сделать лучше - не знаю (

 

С pppoe все куда изящнее )

 

Share this post


Link to post
Share on other sites

2sirmax: pppoe - это L2, врядли изящнее таскать VLANы по всей сети (если, конечно, сеть не на нортелях).

а почему не юзаете heartbeat для алиасов? тем более, если серваки в одном свиче - дык вообще красота..

Share this post


Link to post
Share on other sites
2sirmax: pppoe - это L2, врядли изящнее таскать VLANы по всей сети (если, конечно, сеть не на нортелях).

а почему не юзаете heartbeat для алиасов? тем более, если серваки в одном свиче - дык вообще красота..

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

pppoe изящно балансируется, но имеет другие минусы. Иначе б все его использовали.

 

Сеть не на нортелах (

Share this post


Link to post
Share on other sites

странные вы какие то... Стоит 5 серверов. Взял на офисе среднестатическую винду, выключил один из серверов. Время коннекта увеличилось секунды на две... Никаких ошибок, все как то само. Что я сделал неправильно?

Впн - поптоп, все соединения настраиваются исключительно на dns имя....

Share this post


Link to post
Share on other sites
странные вы какие то... Стоит 5 серверов. Взял на офисе среднестатическую винду, выключил один из серверов. Время коннекта увеличилось секунды на две... Никаких ошибок, все как то само. Что я сделал неправильно?

Впн - поптоп, все соединения настраиваются исключительно на dns имя....

о.. знать, не кеширует..

Share this post


Link to post
Share on other sites

время жизни 1-3 секунды....

Share this post


Link to post
Share on other sites

чтоб в кеше все жило нормально - короткоживущие записи сделать в ДНС и все.

Share this post


Link to post
Share on other sites
DNS выдает айпишники тупо раунд-робином, не взирая ни на что. поэтому распределится все действительно равномерно. ни о каком учете нагрузки речь не идет. в случае отказа одного из пптп-серверов клиент, получивший дохлый айпишник, вынужден будет перезапросить адрес у днс-сервера.

Вообщето в виндах по другому.

И в дргуих ОС скорее всего тоже.

Ответ днс сервера содержит сразу все ип адреса, просто порядок их меняется. Если пптп не может законектится к одному, он пробует следующий из списка.

Пвторных перезапросов днс быть не может, хотябы потому что служба клиента днс включена и закешировала запись, и она не упела устареть за 5 секунд.

Share this post


Link to post
Share on other sites

у нас ряд pptp серверов воткнут в одну циску, все имеют один ип, распределение нагрузки происходит с помощью какой-то умной команды на 7606 (какой - забыл)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this