Перейти к содержимому
Калькуляторы

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

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

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

При такой схеме на один dst адрес vpn-а максимум 8 серверов повесить можно, вариантом обхода ограничения может быть выстраивание дерева. Минусов тут так же дохрена - при выводе из эксплуатации одного из серверов (квагу можно тупо убивать) схема маршрутизации перестраивается и не все клиенты будут ходить через тот серв к которому конектили изначально, что сами понимаете чем пахнет... т.е. нюансы примерно такие - если один из серверов начнет флопировать анонсом, то всему сервису жопа... если выстраивать деревом, то последствия жопы можно минизировать и "ни одного разрыва(тм)" действительно у кого-то будет. Всё это актуально если при расстановке по сети на одну точку требуется более чем 1 серв... в общем пищи для размышлений тут много, но это в тыщи раз лучше чем с ДНС-ом и прочими лоад балансерами.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чем в тыщу раз лучше?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Уверен, вот батник и то что получилось..

 

@echo off
:start
set time=
for /f "tokens=*" %%d in ('nslookup vpn.olympus.ru ^| find /i "Addresses:"') do (echo %time% - %%d)
goto start:

23:17:29,33 - Addresses:  10.0.0.66, 10.0.0.65, 10.0.0.67, 10.0.0.68
23:17:29,35 - Addresses:  10.0.0.65, 10.0.0.67, 10.0.0.68, 10.0.0.66
23:17:29,38 - Addresses:  10.0.0.67, 10.0.0.68, 10.0.0.66, 10.0.0.65
23:17:29,40 - Addresses:  10.0.0.68, 10.0.0.66, 10.0.0.65, 10.0.0.67
23:17:29,43 - Addresses:  10.0.0.66, 10.0.0.65, 10.0.0.67, 10.0.0.68
23:17:29,44 - Addresses:  10.0.0.65, 10.0.0.67, 10.0.0.68, 10.0.0.66
23:17:29,46 - Addresses:  10.0.0.67, 10.0.0.68, 10.0.0.66, 10.0.0.65
23:17:29,49 - Addresses:  10.0.0.68, 10.0.0.66, 10.0.0.65, 10.0.0.67
23:17:29,50 - Addresses:  10.0.0.66, 10.0.0.65, 10.0.0.67, 10.0.0.68
23:17:29,54 - Addresses:  10.0.0.65, 10.0.0.67, 10.0.0.68, 10.0.0.66
23:17:29,55 - Addresses:  10.0.0.67, 10.0.0.68, 10.0.0.66, 10.0.0.65
23:17:29,58 - Addresses:  10.0.0.68, 10.0.0.66, 10.0.0.65, 10.0.0.67
23:17:29,60 - Addresses:  10.0.0.66, 10.0.0.65, 10.0.0.67, 10.0.0.68
23:17:29,63 - Addresses:  10.0.0.65, 10.0.0.67, 10.0.0.68, 10.0.0.66
23:17:29,65 - Addresses:  10.0.0.67, 10.0.0.68, 10.0.0.66, 10.0.0.65
23:17:29,66 - Addresses:  10.0.0.68, 10.0.0.66, 10.0.0.65, 10.0.0.67
23:17:29,69 - Addresses:  10.0.0.65, 10.0.0.67, 10.0.0.68, 10.0.0.66
23:17:29,71 - Addresses:  10.0.0.67, 10.0.0.68, 10.0.0.66, 10.0.0.65
23:17:29,74 - Addresses:  10.0.0.68, 10.0.0.66, 10.0.0.65, 10.0.0.67
23:17:29,76 - Addresses:  10.0.0.66, 10.0.0.65, 10.0.0.67, 10.0.0.68
23:17:29,79 - Addresses:  10.0.0.65, 10.0.0.67, 10.0.0.68, 10.0.0.66
23:17:29,80 - Addresses:  10.0.0.67, 10.0.0.68, 10.0.0.66, 10.0.0.65
23:17:29,83 - Addresses:  10.0.0.68, 10.0.0.66, 10.0.0.65, 10.0.0.67
23:17:29,85 - Addresses:  10.0.0.66, 10.0.0.65, 10.0.0.67, 10.0.0.68

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Вспоминайте давайте команду :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

там же написано, чем лучше - чем ДНСом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чем в тыщу раз лучше?

тем что при правильном дизайне траф мажется нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если выстраивать деревом, то последствия жопы можно минизировать

а как это деревом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уверен, вот батник и то что получилось..
Спасибо, интересные результаты.

 

Чем в тыщу раз лучше?

тем что при правильном дизайне траф мажется нормально.

Извините, а что означает "мажется"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извините, а что означает "мажется"?

балансится.

 

Уверен, вот батник и то что получилось..
Спасибо, интересные результаты.

результаты ниачем по сути. нужны реальные тесты из конкретной софти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Вспоминайте давайте команду :)

упорно казалось, что именно vrrp (по-моему раньше так и было, ну или по крайней мере тестилось)

 

а сейчас проще:

ip cef

ip route 10.0.0.1 255.255.255.255 192.168.0.1

ip route 10.0.0.1 255.255.255.255 192.168.0.5

ip route 10.0.0.1 255.255.255.255 192.168.0.9

и сколько там еще надо, важно только, чтобы вес пути был для всех одинаков

 

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

зависимости от того, сколько юзеры трафика создают нет - в этом минус, но на больших кол-вах юзерах все очень даже ровненько,

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

Изменено пользователем Britney

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извините, а что означает "мажется"?

балансится.

А в чем отличие такого способа от ДНС, кроме большей сложности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извините, а что означает "мажется"?

балансится.

А в чем отличие такого способа от ДНС, кроме большей сложности?

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

 

ps. Да, еще один момент... я не на 100% уверен что в случае потери одного из маршрутов всё перефачится для всех... как бы со стороны циски для людей же делалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В схеме с ДНС плюс только один - в случае сбоя на одном из серверов те кто был приконечен к другим останутся к ним приконечны. Если напрячь мозги, то и в схемах с рутином это решается достаточно просто.

А в чем минусы? Не просто "это плохо", а конкретные минусы такого решения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

ps. Да, еще один момент... я не на 100% уверен что в случае потери одного из маршрутов всё перефачится для всех... как бы со стороны циски для людей же делалось.

да тут вариантов-то несколько:

1. статик с мониторилкой

2. динамика (ibgp, ospf, rip, да что угодно)

3. по-моему, при статике, ну мне так кажется, что при смерти браса, cef исключит маршрут на него из кэша, ибо в Adjacency Table не будет мака этого браса, поэтому отправка фреймов в его сторону невозможна (естественно брас должен отъехать по-настоящему)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я сделал это следующим образом:

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

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

3. На DNS сервере по крону запускается скрипт который также через WGET методом GET обращается к веб-серверу билинга, который выдает результат выбирает из таблички наименее загруженный впн сервер из базы типа готового батника cmd :

echo "@echo off\r\n";

echo "\"d:\\program files\\support tools\\dnscmd.exe\" localhost /recorddelete net unlim A /f\r\n";

echo "\"d:\\program files\\support tools\\dnscmd.exe\" localhost /recordadd net unlim A $srvip\r\n";

echo "::OK\r\n";

Батник запускается на днс сервере и обновляет запись.

Таким образом каждую минуту обновляется ип адрес на днс и по нему всегда будет доступен наиболее свободный впн-сервер. А если какой впн сервер отвалится то он выпадет из базы через минуту или по переменной онлайн.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3. по-моему, при статике, ну мне так кажется, что при смерти браса, cef исключит маршрут на него из кэша, ибо в Adjacency Table не будет мака этого браса, поэтому отправка фреймов в его сторону невозможна (естественно брас должен отъехать по-настоящему)

Так это если всё в одну железяку воткнуто. а PPTP вообще в теории можно с помощью WCCP раскидывать... правда я только tcp им балансил (причем на 3550 самый цимес был), но там вроде бы флажков и прочей хренотени дофига и вроде бы как масочку нужную под PPTPшные пакеты выставить можно... ну и WCCP агента поставить на PPTPшные сервера (ёпенсорцных уже валом)

Изменено пользователем kostich

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Вспоминайте давайте команду :)

я в делал через серверню ферму на 7609 - все прекрасно и без сбоев работало. сессии делилсь поровну между всеми участниками (3vpn сервера freebsd +mpd 4.23 ). также 7609 делал распределение нагрузки на http (уже после pptp настроил).

 

P.S. но это довольно трудоемко для cisco оказалось...

Изменено пользователем dmitr2t

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дык какое решение красивое?

 

днс не предлагать, у всех клиентов ip вбиты

не знаю по каким причинам иногда(редко) днс плохо пашет у клиентов

по этому перешли на ip

 

сейчас уже 3500 сессий(freebsd 7.2 mpd 5.3), надо срочно ставить еще один сервер

щас подключенно все к коммутатору 3627g

Изменено пользователем AntonS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну ставьте, в чём проблема? у вас же 3627g есть, используйте PBR для того, чтобы часть абонентов перекинуть на другой сервер (правда понадобится немного по***гать с фряшкой, чтобы её под PBR прогнуть).

Изменено пользователем terrible

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну ставьте, в чём проблема? у вас же 3627g есть, используйте PBR для того, чтобы часть абонентов перекинуть на другой сервер (правда понадобится немного по***гать с фряшкой, чтобы её под PBR прогнуть).
народ делает еще 2 группы vrrp

ну и в каждую группу включает часть сеток

 

если один сервак пропадает

то с обрывом сессии на другой сервер переходит

 

Вот тут Иван Демин пишет

 

"Если Вы хотите балансировки нагрузки по нескольким равнозначным маршрутам то серия DGS-36XX поддерживает балансировку по 8-ми маршрутам."

 

как работает?

раскидыввает по очереди каждый пакет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дык какое решение красивое?

 

днс не предлагать, у всех клиентов ip вбиты

не знаю по каким причинам иногда(редко) днс плохо пашет у клиентов

по этому перешли на ip

 

сейчас уже 3500 сессий(freebsd 7.2 mpd 5.3), надо срочно ставить еще один сервер

щас подключенно все к коммутатору 3627g

если у вас плохо днс работает - то у вас вообще ничего не работает в результате... может сначала сеть в порядок привести?

А насчет вбиты ип... Наш саппорт две недели стонал, когда переводили всех клиентов на днс имя... И все, все работает. За это время впн сервера пару раз адреса поменяли вообще - никто не заметил.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

DNS+CARP.

 

Т.е. имеем, к примеру, пару серверов 10.0.0.1 и 10.0.0.2

В DNS на имя vpn.x.x прописываем 2 адреса 10.0.0.1 и 10.0.0.2

Потом создаём CARP связку для обоих адресов 10.0.0.1 и 10.0.0.2, только в 1-м случае приоритет 1-му серверу, а во втором - второму.

 

Балансировку обеспечиваем DNS, а отказоустойчивость CARP.

 

Когда-то пробывал такую схему для теста - заработала, но под нагрузкой ещё не запускал.

Использую только балансировку посредством DNS (не идеальна, но очень проста и работоспособна). Если найду немного свободного времени - поробую эту с-му под нагрузкой. А если кто пробывал - напишите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

еще предлагают юзать proxy-arp

сам стаю перед выбором, что юзать

с ospf+mpd есть заморочки

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

используем балансировку по DNS-записям

отказоустойчивость имхо не совсем полезна

ибо при падении одного из серверов клиентские сессии все равно разрываются

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

роутинг между ядром и брасами OSPF, да, заморочки есть.

точнее, заморочка. состоит в том, что не стоит использовать адрес с того интерфейса, где бегает ospf, в качестве адреса сервера в клиентских туннелях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня адрес сервер висит на влане, а для сервера туннелей висит алиас на lo0, ип серый, тк бегают серые и белые адреса

и ospf работает через раз, поднимится на интерфейсе, но роутинг не отдаст, перегрузил его (ospf) и все поехало

ng1 is up

ifindex 5, MTU 1360 bytes, BW 0 Kbit <UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST>

OSPF not enabled on this interface

 

ng2 is up

ifindex 6, MTU 1500 bytes, BW 0 Kbit <UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST>

Internet Address 172.17.0.254/32, Peer 91.х.х.115, Area 0.0.0.0

MTU mismatch detection:enabled

Router ID 91.х.х.231, Network Type BROADCAST, Cost: 10

Transmit Delay is 1 sec, State Waiting, Priority 1

No designated router on this network

No backup designated router on this network

Multicast group memberships: <None>

Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5

No Hellos (Passive interface)

Neighbor Count is 0, Adjacent neighbor count is 0

 

reboot ospf

 

ng2 is up

ifindex 6, MTU 1360 bytes, BW 0 Kbit <UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST>

Internet Address 172.17.0.254/32, Peer 91.х.х.115, Area 0.0.0.0

MTU mismatch detection:enabled

Router ID 91.х.х.231, Network Type POINTOPOINT, Cost: 10

Transmit Delay is 1 sec, State Point-To-Point, Priority 1

No designated router on this network

No backup designated router on this network

Multicast group memberships: <None>

Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5

No Hellos (Passive interface)

Neighbor Count is 0, Adjacent neighbor count is 0

!
interface em0
ip ospf network point-to-point
!
interface lo0
ip ospf network point-to-point
!
interface ng0
ip ospf network point-to-point
ip ospf mtu-ignore
!
interface ng1
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng2
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng3
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng4
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng5
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng6
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng7
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng8
ip ospf network point-to-point
  ip ospf mtu-ignore
!
interface ng9
ip ospf network point-to-point
  ip ospf mtu-ignore
!
!
interface vlan77
!
router ospf
ospf router-id 91.х.х.231
redistribute connected route-map 91ip
passive-interface default
no passive-interface lo0
no passive-interface vlan77
network 91.х.х.0/24 area 0.0.0.0
neighbor 91.х.х.254
!
ip prefix-list 91ip seq 10 permit 91.х.х.0/24
ip prefix-list 91ip seq 100 deny any
!
route-map 91ip permit 10
match ip address prefix-list 91ip
!
line vty

 

можно как-то по умолчанию описать все интерфейсы ng ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.