Стоит у нас 4 терминатора pptp: Gentoo / Core2Quad / 1gb.
До недавнего времени пптпд был стандартный, но позавчера я набрёл на замечательнийшую штуку - accel-pptp, переписанный демон, по сути - из userlevel pptp переносится в kernel-level.
Результат налицо сразу: при 800 сессиях по 80% каждого проца свободно, и скорость выдаёт приличную, как без нагрузки вообще - больше 50 мбит.Проблема № раз.
Один проц почти полностью сжирает fprobe-ulog. При зашкаливании его за 99% - процесс 'events/0' начинает жрать все ресурсы ;(
Сколько не гуглил, внятного описания треда events, за что он отвечает и что делает, не нашел. Догадка - при перегрузке (фпробом) одного проца он как-то зацикливается и чем дальше, тем хуже, и всё из-за фпроба... Подскажите, верно ли догадываюсь и что этот events всё-таки делает =)Проблема № два.
Если всё-таки виноват fprobe, то имеет огромный смысл вынести счетчик трафика за ВПН. По идее, судя по загрузке не занятых им процессоров, без него NAS выдержит ещё тысячи две сессий. Да и даже если не он виноват, разделить функционал все равно стОит. Поставить перед несколькими NAS'ами один комп, считающий трафик и натящий юзеров.
Но в этом случае я никак не могу понять, как маршрутизировать затуннеленых юзеров, а именно - реальные ip? С серыми ip всё просто: между насом и счетчиком трафика серая сетка, на насе счетчик прописывается default gw, и серые ip идут через него. А что делать с внешними? Сейчас при подключении и серых и внешних default gw у всех - гв внешней сетки (серые натятся на ВПНах)...Прошу прощения, если сумбурно описал, кто понял что я хочу сказать - большая просьба поделиться опытом =)
на сумбурный вопрос - дам сумбурный ответ.
1. от того, какой default gw выдается по pptp не зависит ровным счетом ничего. Можно выдать реальный айпи 88.80.200.300 ;-) и шлюзом отдать 10.10.10.1. Будет работать. Кроме клиента этот серый шлюзовой айпи не увидит никто, в отличие от сетки между серверами раздачи и сервером биллинга/ната.2. Чтобы было правильно, между сервером который считает и серверами, которые раздают туннели - надо чтобы была сетка реальных адресов. Не думаю, что выделить 8 адресов из пары сотен является большой проблемой.
==== не обязательная часть === ;-)3. Ядерное pptp есть в FreeBSD, программа называется mpd.
4. В FreeBSD также есть ядерный NAT
5. Не понятно, в каком виде снимается у вас статистика, но зачастую есть всякие ядерные модули и для этого.
я попробую высказать мнение на 2-ой заданный вопрос. Как именно маршрутизировать клиентов с реальными IP-между несколькими NAS.Для этого нужно поднимать между NAS и вашим пограничным маршрутизатором динамическую маршрутизацию.
Поясню на пальцах:
Т.е. когда юзер с реальным IP коннектится к NAS1 например то NAS1 должен объявить пограничному роутеру что этот IP доступен именно через NAS1. А объявить автоматически он сможет только через протокол динмаической маршрутизации.
Как-то так.