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

serulya, ты уж определись через chap-secrets хочешь или через радиус

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


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

xeb

а как будет проще для авторизации без биллинга около сотни абонентов? Я так понимаю, что через chap без радиуса. Тогда что писать в раздел Shaper? если можно, то по подробнее. Заранее спасибо.

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


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

xeb

а как будет проще для авторизации без биллинга около сотни абонентов? Я так понимаю, что через chap без радиуса. Тогда что писать в раздел Shaper? если можно, то по подробнее. Заранее спасибо.

 

Около сотни можно и phpmyadmin вместо веб-морды, а все остальное генерировать в chap-secret и shaper поднимать из ip-up / ip-down с вызовом процедуры аналогичной встроенной.

 

Т.е. tbf + ingress qdisk в отдельный скрипт и поднимать из ip-up.

 

Логически это приводит к тому, что надо немного perl изучить. На нем будет проще всего реализовать подобные три скрипта.

 

Скрипт, выдергивающий из mysql логины и пароли и генерирующий chap по крону в общем виде такой:

 

open (CHAP, ">$Settings{'CHAP'}");
$query="select vpnlogin, vpnip, vpnpass from clients order by vpnlogin";

$sth = $dbh->prepare("$query");
$sth->execute();
while ($ref = $sth->fetchrow_hashref()) {
   $vpnip = $ref->{'vpnip'};
   $vpnlogin = $ref->{'vpnlogin'};
   $vpnpass = $ref->{'vpnpass'};
       print "$login\t$server\t$pass\t$vpnip\n";

if ($vpnlogin && $vpnip && $vpnpass) {
   print CHAP "$vpnlogin\t$server\t\"$vpnpass\"\t$vpnip\n";
}
}
close (CHAP);

 

Есс-но CHAP - это ваш chap-secret. И не нужно никакого радиуса для такой простой конфигурации.

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


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

serulya,

Возьмите какой-нибудь Cake billing - он прост как два пальца.

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


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

Завтра попробую обкатанный мною pppoe-server в kernel-mode, сравню.

Отписываю результаты экспериментов:

1. Ядерный pppoe-server работает исправно на этих vlan-ах;

2. Попробовал без vlan-ов, на чистом eth0 - данная проблема отсутствует!

 

Предварительные выводы: либо некорректно обрабатывается декримент счётчика ссылок на интерфейсы (в интернетах чаще всего упоминаются какой то счётчик интерфейсов в структурах ядра) в ядерном модуле pppoe, либо проблемы в работе подсистемы pppoe в самом accel-ppp, что маловероятно.

 

Знающие админы/программисты, помогите, где собака порылась, как этот баг отловить. Со своей стороны могу оказать активное содействие в поисках решения проблемы. Самое главное, повторится ли эта проблема у кого-нибудь ещё?

 

UPD:

Неповезло мне: https://bugzilla.kernel.org/show_bug.cgi?id=16611

у меня повторяется, но наверное уже не актуально.

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


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

replicant

что-то попытка изучить perl провалилась - давно я учил паскаль и то что помнил о программировании уже давно позабывал, увы :(

Abram

попробовал cake billing - не поучилось его нормально настроить, т.к. во время настройки PostgreSQL не полчилось ни в какую выполнить 1 пункт.

Будут ещё варинаты? Может помжно просто в Shaper прописать 1 скорость (50 Мбит, допустим) и всё? А логин-пароль в chap-secrets. Просто как таковой биллинг не нужен, главное порезать скорость и всем разные логин и пароль.

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


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

serulya,

Придумал.

Запишите скорости в файл и вешайте на интерфейс шейпер через if-up. Железно.

Можно вроде даже в chap-secrets дописать, оно лишние поля должно игнорировать.

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


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

Abram

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

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


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

serulya, готовый шейпер для вас вот. Обычный tbf и полисер. Множители и коэф-ты подобраны и успешно будут работать в диапазоне 10-100 Мбит/с.

 

start(){
/sbin/tc qdisc del dev $interface root
/sbin/tc qdisc add dev $interface root tbf rate ${upload}kbit burst $[1500+$upload*10] latency 50

/sbin/tc qdisc del dev $interface ingress handle ffff:
/sbin/tc qdisc add dev $interface ingress handle ffff:
/sbin/tc filter add dev $interface parent ffff: protocol ip prio 10 u32 match ip src 0.0.0.0/0 police rate ${download}kbit buffer $[7000+$download*40] drop flowid :1

Осталось только самому найти в инете подходящие ip-up ip-down и вызов шейпера из них сделать.

 

Передаваемые параметры из ip-up в шейпер такие. Могут быть и другими в зависимости от кода ip-up.

interface=$2
download=$5
upload=$4

Соответственно $1 - это ключ на старт, а $3 туннельный ip, который выдается при подключении.

 

В самом ip-up вызов ip_forward bash скрипта, в котором поднимается iptables FORWARD на клиентский туннельный ip и затем отсыл к шейперу с передачей параметров

system("$PATH/ip_forward $ARGV[4]");
system("$PATH/$SHAPER start $ARGV[0] $ARGV[4] $download $upload");

Изучайте передаваемые в pptp параметры и их передачу и проблема будет решена. Более детально объяснить не могу. Это уже проще сделать всю работу за вас.

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

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


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

replicant

прошу прощения, не подкинете мануал по настройке скриптов ip-up и ip-down? А то поиск даёт в основном или на англиской, или применительно к vpn-клиенту на linux.

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


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

replicant

прошу прощения, не подкинете мануал по настройке скриптов ip-up и ip-down? А то поиск даёт в основном или на англиской, или применительно к vpn-клиенту на linux.

Это просто скрипт, который выполняется при поднятии интерфейса.

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


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

replicant

прошу прощения, не подкинете мануал по настройке скриптов ip-up и ip-down? А то поиск даёт в основном или на англиской, или применительно к vpn-клиенту на linux.

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

 

В общих чертах как минимум открытие дырки в фаерволе и навешивание правил шейпирования.

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


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

Какая последняя версия на данный момент ? на sourceforge accel-pptp-0.8.5 ?

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


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

на sourceforge accel-pptp-0.8.5 ?

Он нынче accel-ppp . И версия 1.7.3:

http://sourceforge.net/projects/accel-ppp/

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


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

replicant

можно ли в ip-up не писать об открытии дырки в фаерволе? Она ж вроде всегда открыта.

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


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

replicant

можно ли в ip-up не писать об открытии дырки в фаерволе? Она ж вроде всегда открыта.

Это уже зависит от личного предпочтения админа и набора правил, которые он реализует. У меня, например, открыто не всегда и не для всех.

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


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

Заметил вот такую вот проблему: тестировал L2TP и PPTP серверы на accelсоедиения на Windows 7 и заметил, что хотя общая скорость нормальная (тест торрентами без шейпера), пинг нормальный, но многие сайты очень медленно открываются (например, vk.com и podrobnosti.ua). Грежным делом подумал, что это проблемы этих сайтов, однако попробовал переподключиться ко второму vpn-серверу (поднят на роутере asus n56u) - всё работает очень быстро, как без vpn. Попробовал выйти в инет, указав в качестве шлюза адрес accel-ppp - всё работает так же быстро, т.е. проблемы не с самой машиной, а именно с accel-ppp или его некорректной работой. В чём дело и куда копать? Заранее большое спасибо.

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


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

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


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

kayot

добавил правило, но не помогло - также "некомфортный сёрфинг"

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


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

проблемы не с самой машиной, а именно с accel-ppp или его некорректной работой. В чём дело и куда копать? Заранее большое спасибо.

Что-то вы его не так готовите. Там же все предельно просто. Установил. Запустил. Работает. Как говорится "из коробки".

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


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

replicant

ну дык опытным путём установлено - без pptp или l2tp (т.е. сервер юзаю как обычный шлюз) всё гуд, только выхожу в инет через vpn - сразу инет "глючит", простите за юзерский сленг. Следовательно проблема или в самом accel или в настройках iptables. Иного, мне кажется, не дано.

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


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

replicant

ну дык опытным путём установлено - без pptp или l2tp (т.е. сервер юзаю как обычный шлюз) всё гуд, только выхожу в инет через vpn - сразу инет "глючит", простите за юзерский сленг. Следовательно проблема или в самом accel или в настройках iptables. Иного, мне кажется, не дано.

 

А покажи-ка общественности ethtool -k для тех сетевок на сервере, через которые трафик абонентский бежит.

 

Типа так ethtool -k eth0

 

tcp-segmentation-offload: off

udp-fragmentation-offload: off

generic-segmentation-offload: off

generic-receive-offload: off

large-receive-offload: off

 

И интересующие параметры должны быть установлены в off вот каким-то таким образом (можно и без того, что курсивом выделено).

 

ethtool -K eth0 tso off gso off gro off lro off ufo off

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


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

Следовательно проблема или в самом accel или в настройках iptables.
в самом accel в данном случае проблем быть не может, его задача поднять тунель, дальше уже не его проблемы
Изменено пользователем xeb

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


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

xeb, это не мои слова, а почему в цитате я автором получился?

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

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


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

это типичная проблема мту

если не помогает pmtu-discovery (возможно пров косячит или все icmp зарезаны), то можно ограничить mss жёстко:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN  -j TCPMSS --set-mss 1300

 

да, и попробовать без шейпера, если навешивается

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

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


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

Join the conversation

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

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

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

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

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

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

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