The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Создание системы предоставления интернет услуг для большой с..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Создание системы предоставления интернет услуг для большой с..."  
Сообщение от xkw email on 26-Фев-07, 13:25 
Всем привет!
Задача: Создать систему предоставляющую интернет большому колличетсву пользователей большой закрытой сети.

Вариант решения:
Закрытая сеть -> GetWay (FreeBSD, dhcp, bind, mpd4+radius+mysql) -> Internet;

Недостатки:
  - сильно нагружает сервер, потому при большом траффике у пользователей "слабеет" соединение, начинаються жалобы, постоянные звонки... - Лечится но не сильно - отключением шифрований.
  - Есть ограничение числа создаваемых ptp интерфейсов, гдже-то 400, где-то 900, как повезет. Соответственно в сети на 3000 пользователей начинаются проблемы.

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

Более оптимизированное решение:

define VPN {FreeBSD, mpd4+radius+mysql}
Закрытая сеть -> GetWay (dhcp, bind) -> VPN1, VPN2, VPN3, ...

Пользователи такой сети подключаються не к ип адресу сервера vpn а к его имени.
Например есть имя: vpngw.network.net;
На сервере GetWay есть база данных в которую пишется сколько пользователей обрабатывает в данный момент каждый из серверов VPN распредиляя новых пользователей между ними равномерно например следующим образом:

По имеющимся данным getway по базе находит список самых разгруженных на данный момент серверов VPN, выбирает случайным образом какой либо сервер из этого списка и в системе bind переписывает запись vpngw.network.net присваевая ей новый ip(выбранного vpn сервера).
Такая операция происходит каждые N минут (например раз в 5 или 10 минут, в зависимости от размаха пользовательской сети);

Такая система реально работает и я сам реализовывал её на практике.
Я столкнулся с трудностью кеширования - многие windows машины кешировали у себя запись о имени сервера и не сверяясь с сервером подкючались сами по себе к когда то запомненной машине.
Лечиться ipconfig /flushdns -ом, или правкой конфигов на клиенте.. но неприятно.

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

Вопрос состоит в следующем:
  Прошу вас предложить Альтернотивные варианты создлания такой системы, либо методом модернизации этой(но не стоит зацикливаться) либо совершенно иным методом. Может быть появились какие-то новые технологии или идеи?

Методы типа "открыть интернет себе через web страницу, по конкретному своему ip адресу и контролировать доступ по связке ip+mac пингуя клиента чтобы понять когда он отключился и когда ему требуетьсяч закрыть интернет" не предлогать, так как они не удовлетворяют требованиям.
Тоесть - пользователь не должен знать ip адреса машины на которой он седит, должен уметь войти с любой машины в сети по своему логину и паролю и тарифицироваться в соответствии с ними, Пользователь должен уметь заходить в основном из под винды, но очень желательно возможность захода его под другими системами типа FreeBSD, PCBSD, linux*, macOS, others...

regards, procool@

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Создание системы предоставления интернет услуг для большой с..."  
Сообщение от xkw email on 26-Фев-07, 22:46 
может я не в то место вопрос кинул? или не так как -то задал его?
неужели никто не сталкивался? поверить не могу...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Создание системы предоставления интернет услуг для большой с..."  
Сообщение от pavel_simple (ok) on 26-Фев-07, 23:00 
если проблема с нагрузкой то можно легко использовать pppoe -- только вот я не знаю, подойдёт ли в данном случае (ethernet), хотя клиентов можно нарезать по всякому, с FreeBSD знаком плохо, но функционал ipfw ведь почти такойже как и iptables
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Создание системы предоставления интернет услуг для большой с..."  
Сообщение от weldpua2008 email(ok) on 27-Фев-07, 02:14 
Размышления...
3000- малова-то как-то :)

Сделать что-то по типу Highly Available кластера...
http://sky-zebra.net/carp.html
http://www.opennet.ru/prog/info/2356.shtml
и т.д.

Итак все исходя из того сколько "Внешних каналов", территории покрытия сети и др. параметров...


Итак:
Влияние соеденений между серверами и пользователями не учитываются - считаем что удаовлетворяют всем параметрам - если нет - увиличиваем количество серверов, делим трафик - пока качество не будет удовлетворять...пользователя...

1.компактная сетка: большой % пользователей на /метр кв.
несколько серверов:~>=3 2-а vpn доступ, один под Дб... - все рядом
На mpd-сервере можно поднять до 999 одновременных соеденений,дальше Я не пробывал... ( http://www.opennet.ru/base/net/freenibs_mpd_tips.txt.html
2vpn-сервера=1600-1998 одновременно работающих сервера
Intel(R) Pentium(R) 4 CPU 3.00GHz
memory  = 1031356K bytes
деpжит 800 интеpфейсов (40-60% cpu)

2.сеть физически по скорости делится на части:
Для каждого района ставим свой сервер...
Опять таки кластер...
Соеденение между серверами отдельно/вмести с сетью...
Используем динамическую маршрутизацию...а как без неё в большой сети :)?
Строим кластер из vpn-серверов, db-серверов - замечу что днс записи до этого не переписывались - зачем? Имеем 1-н ИП (за которым дохрена серверов)


Можно еще посмотреть(если не смотреть на НА-кластера) просто на ПО типа zebra...
С помошью динамической маршрутизации переписывать роутинги на основе какого-то демона, который следит за всеми хостами твоего кластера-велосипеда...

Зачем выносить ДБ из ВПН-серверов?
Да просто что бы Мы имели всегда доступ к единому хранилищу информации...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру