Здравствуйте!
VPN-сервер (пользователи подключаются к нему по протоколу pptp) очень загружен, обратил взор на кластерную технологию.
Опишу что хочу получить в итоге: у всех клиентов единый ip адрес vpn-сервера, vpn-тунели раскидываются между серверами 50 на 50, либо (здорово если так можно) терминировать все тунели будет один логический сервер состоящий из двух физических. Самое главное это - хочу масштабиремость решения, если кластер не справляется - добавить еще один сервер и радоваться жизни.
Я вообще не зациклен на кластере - буду рад выслушать все идеи! Можно ли вообще подойти к решению моей задачи с "кластерной" стороны ? Может у кого есть опыт решения таких задач ? Многие интернет-провайдеры используют такой метод аутентификации своих пользователи по vpn pptp, как они решают такую задачу интересно?Единственное что пока придумал это балансирвока средствами DNS - указать два ip адреса на доменное имя и раскидывать будет DNS, но мне этот вариант не нравится ибо будет складываться дисбаланс мжеду серверами потому как у многих в сети установлен не доменное имя сервера а ip-адрес, и не понятно как быть с сетью реальных адресов, непонятно на какой vpn-сервер пограничному маршрутизатору маршрутизировать реальный блок адресов...
>Здравствуйте!
>VPN-сервер (пользователи подключаются к нему по протоколу pptp) очень загружен, обратил взор
>на кластерную технологию.
Я вообще не зациклен на кластере
ну и правильно что не зациклены
берите нормальный рутер, и на серваке радиус+DB (mysql, postgresql - не суть важно)
если очень нагружен, то советую 72 или 73 серию, если средненько, то и 28 серия пойдет.
>>Здравствуйте!
>>VPN-сервер (пользователи подключаются к нему по протоколу pptp) очень загружен, обратил взор
>>на кластерную технологию.
>
>Я вообще не зациклен на кластере
>ну и правильно что не зациклены
>берите нормальный рутер, и на серваке радиус+DB (mysql, postgresql - не суть
>важно)
>если очень нагружен, то советую 72 или 73 серию, если средненько, то
>и 28 серия пойдет.Не совсем понял идею, у меня HP DL380 G5 2 двухядерных Xeon-а 3 GHz серии 5160, 4 гига фирменной оперативки от HP, на нем уже все поднято и работает. Конкретно на нем поднят mpd, ОС FreeBSD 7.0. Сервер вянет когда количество тунелей переваливает за 1200.
Решить проблему можно купив более мощный сервер, а потом когди он не будет справляться опять более мощный сервер. Мне бы хотелось решить эту задачу поднятие дополнительных серверов... так экономически выгоднее :) подскажите пожалуйста что-нибудь в этом направлении.
Я и подсказываю именно в этом направлении.
Был когда-то П4 2,2 1Г памяти, на нем были подключены порядка 140-150 юзеров(pptp - mschap2) (Linux)
Стал загибаться, решил тож делать кластер - слава Богу, умные люди подсказали в свое время не париться и взять 2811 с крипто модулем. Мискл и радиус оставил на серваке, со временем, поменял её на 7306, сейчас порядка 1000 юзеров +12 туннелей ipsec
всё работает без проблем - зачем изобретать велосипед, когда уже есть ДВС :)
>Я и подсказываю именно в этом направлении.
>Был когда-то П4 2,2 1Г памяти, на нем были подключены порядка 140-150
>юзеров(pptp - mschap2) (Linux)
>Стал загибаться, решил тож делать кластер - слава Богу, умные люди подсказали
>в свое время не париться и взять 2811 с крипто модулем.
>Мискл и радиус оставил на серваке, со временем, поменял её на
>7306, сейчас порядка 1000 юзеров +12 туннелей ipsec
>всё работает без проблем - зачем изобретать велосипед, когда уже есть ДВС
>:)Нашему пограничному маршрутизатору Cisco 7206VXR NPE-G2 и так немного осталось (по вечерам загрузка 70%), перенести на него VPN это подписать ему смертный приговор. Вообще раньше когда пользователей было немного 7206 выполняла функции и VPN-а и NAT, с увеличением числа пользователей пришлось перекинуть на отдельный сервер VPN и NAT, и вот сейчас опять же из-за увеличения числа пользователей необходимо как-то решить проблему с повышенной загрузкой сервера терминирующего VPN, денег купить супермощный сервер сейчас нет, но купить сервер такой же по мощности как существующий возможность есть... есть ли все-таки варианты с распредлением нагрузки между двумя серверами работающими под одним ip
>[оверквотинг удален]
>
>Нашему пограничному маршрутизатору Cisco 7206VXR NPE-G2 и так немного осталось (по вечерам
>загрузка 70%), перенести на него VPN это подписать ему смертный приговор.
>Вообще раньше когда пользователей было немного 7206 выполняла функции и VPN-а
>и NAT, с увеличением числа пользователей пришлось перекинуть на отдельный сервер
>VPN и NAT, и вот сейчас опять же из-за увеличения числа
>пользователей необходимо как-то решить проблему с повышенной загрузкой сервера терминирующего VPN,
>денег купить супермощный сервер сейчас нет, но купить сервер такой же
>по мощности как существующий возможность есть... есть ли все-таки варианты с
>распредлением нагрузки между двумя серверами работающими под одним ipМне кажется, Вы правильно шли в нужном направлении. Вам нужно N внешних IP и несколько A-записей в DNS. Если нужно будет распределить нагрузку не поровну м/у серверами... Скажем Вам нехватает чуть-чуть мощности, вы покупаете сервер в 2-е менее производительный, чем основной. Далее средствами ipfw разруливаете входящие VPN-соединения с необходимой вероятностью м/у VPN-серверами (50|35|15). Для оптимизации производительности БД юзеров и RADIUS лучше вынести на выделенный сервер.
>[оверквотинг удален]
>>денег купить супермощный сервер сейчас нет, но купить сервер такой же
>>по мощности как существующий возможность есть... есть ли все-таки варианты с
>>распредлением нагрузки между двумя серверами работающими под одним ip
>
>Мне кажется, Вы правильно шли в нужном направлении. Вам нужно N внешних
>IP и несколько A-записей в DNS. Если нужно будет распределить нагрузку
>не поровну м/у серверами... Скажем Вам нехватает чуть-чуть мощности, вы покупаете
>сервер в 2-е менее производительный, чем основной. Далее средствами ipfw разруливаете
>входящие VPN-соединения с необходимой вероятностью м/у VPN-серверами (50|35|15). Для оптимизации производительности
>БД юзеров и RADIUS лучше вынести на выделенный сервер.ух ты, с помощью ipfw можно перенапрвить установку vpn-соединения на сервер с другим ip ? даже не знал что так можно, а можете примерчик примерный показать ?
>[оверквотинг удален]
>>Мне кажется, Вы правильно шли в нужном направлении. Вам нужно N внешних
>>IP и несколько A-записей в DNS. Если нужно будет распределить нагрузку
>>не поровну м/у серверами... Скажем Вам нехватает чуть-чуть мощности, вы покупаете
>>сервер в 2-е менее производительный, чем основной. Далее средствами ipfw разруливаете
>>входящие VPN-соединения с необходимой вероятностью м/у VPN-серверами (50|35|15). Для оптимизации производительности
>>БД юзеров и RADIUS лучше вынести на выделенный сервер.
>
>ух ты, с помощью ipfw можно перенапрвить установку vpn-соединения на сервер с
>другим ip ? даже не знал что так можно, а можете
>примерчик примерный показать ?Refresh не томите :) расскажите как перенаправить установку соединения с другим VPN-сервером с помощью ipfw
>[оверквотинг удален]
>>>сервер в 2-е менее производительный, чем основной. Далее средствами ipfw разруливаете
>>>входящие VPN-соединения с необходимой вероятностью м/у VPN-серверами (50|35|15). Для оптимизации производительности
>>>БД юзеров и RADIUS лучше вынести на выделенный сервер.
>>
>>ух ты, с помощью ipfw можно перенапрвить установку vpn-соединения на сервер с
>>другим ip ? даже не знал что так можно, а можете
>>примерчик примерный показать ?
>
>Refresh не томите :) расскажите как перенаправить установку соединения с другим VPN-сервером
>с помощью ipfwhttp://www.opennet.me/base/net/ipfw_balance.txt.html
Я бы попробовал вот отсюда кусок:
В ipfw тоже есть возможность реализовать нечто подобное, но на другом
принципе. Здесь в правило можно включить опцию prob N, где N - число
от 0 до 1, указывающее вероятность, с которой правило будет
применяться к пакетам, подходящим по остальным критериям. В паре с
действием skipto можно попробовать реализовать нечто подобное:ipfw add 500 check-state
ipfw add 1000 prob 0.4 skipto 2000 ip from any to any in via ed0
ipfw add 1500 fwd 10.0.1.1 ip from 192.168.0.0/24 to any out keep-state
ipfw add 2000 fwd 10.1.1.1 ip from 192.168.0.0/24 to any out keep-state
Правило 1000, имея в своём составе опцию prob 0.4, будет выполняться
для всех исходящих пакетов (с точки зрения пользователей; для
FreeBSD-шлюза это будут входящие пакеты на внутреннем интерфейсе, что
и отражается опциями in via ed0) с вероятностью 40%. Эти 40%
"счастливчиков" будут перебрасываться на правило 2000, которым будут
отправляться в шлюз интерфейса rl1 (хотя, поскольку это шлюз по
умолчанию, можно было бы ограничиться действием allow). Оставшиеся 60%
пакетов продолжат свой путь и правилом 1500 будут переброшены на шлюз
интерфейса rl0. Важной особенностью здесь является наличие опций
keep-state - благодаря им под "пробу" будет попадать только первый
пакет устанавливаемого соединения, а все остальные пакеты подпадут под
действие правила check-state, которое должно быть указано до правила
skipto, чтобы избежать "разрыва" уже установленной сессии. Поскольку
динамические правила сохраняют первоначальное действие (в данном
случае forward), то все пакеты соединения будут отправляться через
указанный шлюз.
>[оверквотинг удален]
>add 500 check-state
> ipfw
>add 1000 prob 0.4 skipto 2000 ip from any to any
>in via ed0
> ipfw
> add 1500 fwd 10.0.1.1 ip
>from 192.168.0.0/24 to any out keep-state
> ipfw
> add 2000 fwd 10.1.1.1 ip
>from 192.168.0.0/24 to any out keep-stateВ качестве 10.0.1.1 и 10.1.1.1 вы рассматриваете IP-адреса VPN-серверов. Если так, то так не молочится, имхо. Ибо тут должны рассматриваться адреса маршрутизаторов или иже с ними.
К каком адресу должен по вашему клиент подключаться?
>[оверквотинг удален]
>> add 1500 fwd 10.0.1.1 ip
>>from 192.168.0.0/24 to any out keep-state
>> ipfw
>> add 2000 fwd 10.1.1.1 ip
>>from 192.168.0.0/24 to any out keep-state
>
>В качестве 10.0.1.1 и 10.1.1.1 вы рассматриваете IP-адреса VPN-серверов. Если так, то
>так не молочится, имхо. Ибо тут должны рассматриваться адреса маршрутизаторов или
>иже с ними.
>К каком адресу должен по вашему клиент подключаться?То где это делается - назовем интернет-сервер.. На нем fwd может перенаправить ЛЮБЫЕ подключения, в том числе и внешние, на ЛЮБОЙ интерфейс, в том числе и на внутренний (при настроенном NAT-е). Если мне не изменяет память fwd тупо перезаписывает заголовок пакета в цепочке.. Поэтому разместив данную конструкцию выше NAT, Вы сможете разрулировать с вероятностью prob ЛЮБЫЕ пакеты м/у любыми внутренними серверами. Если я ошибаюсь, поправьте меня.
pptp нормально можно раскидывать только slb
у циски есть ширпотребные железки для этого, а есть специализированные модули для 6k
но будет не дешево.