forum.bitel.ru http://forum.bitel.ru/ |
|
Шейпер http://forum.bitel.ru/viewtopic.php?f=5&t=57 |
Страница 1 из 1 |
Автор: | ЛИС [ 23 янв 2007, 07:42 ] |
Заголовок сообщения: | Шейпер |
Цитата: "Начиная с 4.0 версии в тарифных планах возможна установка группы RADIUS атрибутов, передаваемых в AUTH ACCEPT пакете. Например, это можнет использоваться для заужения канала клиента в зависимости от потребленного им трафика в течении месяца. Пример подобного тарифа приведен ниже." А можно подробнее эту актуальную тему развить: 1. Как собственно на разных тарифных планах разную скорость давать? 2. На каких НАСах это работает и насколько корректно - вх и исх скорость режет? |
Автор: | Администратор [ 23 янв 2007, 11:42 ] |
Заголовок сообщения: | |
1. Просто в каждый тариф устанавливается своя группа атрибутов. 2. Работает точно на CISCO, собственно работает на любом NAS е которому можно передать скорость через атрибут RADIUS. |
Автор: | mister999 [ 25 янв 2007, 00:03 ] |
Заголовок сообщения: | |
Интересует возможность ограничения скорости порта на NAS PPPD. Кто знает рабочие атрибуты для PPPD или как реализовать эту задачу. Сейчас ограничиваю через Ip-up, но хочется через атрибуты. |
Автор: | Администратор [ 25 янв 2007, 10:33 ] |
Заголовок сообщения: | |
http://www.die.net/doc/linux/man/man8/p ... ttr.8.html По-моему возможно в ip-up брать атрибуты переданные биллингом. |
Автор: | mister999 [ 25 янв 2007, 12:15 ] |
Заголовок сообщения: | |
Я реализовал это так - может кому пригодится: linux pppd + radattr.so Здесь рассказывается как использовать атрибуты, передаваемые радиусом NAS’у на основе linux pppd. Это нужно для того, чтобы ограничивать пользователям скорость и выставлять фильтры. Последние версии pppd имеют в своем составе плагины для работы с radius-сервером. Чтобы воспользоваться этой возможностью нужно добавить две строчки в файл options.pptpd : plugin radius.so plugin radattr.so radius.so предназначен для аутентификации и аккаунтинга через радиус, а radattr.so принимает от радиуса дополнительные атрибуты и помещает их в файл /var/run/radattr.pppX , где pppX - имя интерфейса. Выглядит он примерно так: MS-CHAP2-Success \207S=F17E6A6B06CD4B0C38F6....F35CD130BD7EBE MS-MPPE-Recv-Key \302\177\360\305\202I\362O....65\26\216#\336 MS-MPPE-Send-Key \317Ab4\353\275R\24\331O\3....\236gr*\274$\233 MS-MPPE-Encryption-Policy MS-MPPE-Encryption-Types Framed-IP-Address 192.168.144.226 Filter-Id test_filter PPPD-Downstream-Speed-Limit 128 PPPD-Upstream-Speed-Limit 128 Octets-Direction Sum Session-Octets-Limit 106954752 Framed-IP-Netmask 255.255.255.255 MS-CHAP-MPPE-Keys p3\314wm\333B7@S/\024\370E\....\241'e\371K\303 Acct-Interim-Interval 60 Session-Timeout 29293 Этот файл удобно обрабатывать в скрипте /etc/ppp/ip-up, для этого добавляем в него следующие строки : if [ -f /var/run/radattr.$1 ] then DOWNSPEED=`/usr/bin/awk '/PPPD-Downstream-Speed-Limit/ {print $2}' /var/run/radattr.$1` UPSPEED=`/usr/bin/awk '/PPPD-Upstream-Speed-Limit/ {print $2}' /var/run/radattr.$1` FILTERS=`/usr/bin/awk '/Filter-Id/ {print $2}' /var/run/radattr.$1` #echo $DOWNSPEED #echo $UPSPEED #echo $FILTERS /sbin/tc qdisc del dev $1 root > /dev/null /sbin/tc qdisc del dev $1 ingress > /dev/null ##### speed server->client if [ "$UPSPEED" != "0" ] ; then /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1 /sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 4k /sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 4k prio 1 /sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 4k prio 2 /sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500 /sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500 /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10 /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10 /sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10 fi ##### speed client->server if [ "$DOWNSPEED" != "0" ] ; then /sbin/tc qdisc add dev $1 handle ffff: ingress /sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 12k drop flowid :1 fi fi Для того, чтобы нужные атрибуты распознавались радиусом и радиусклиентом нужно добавить их в соответствующие словари (/etc/radiusclient/dictionary и /usr/local/BGRadiusDialup/dictionary.xml) ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer Скорость можно выставлять индивидуально для каждого пользователя. При этом можно установить разные upspeed и downspeed. Скорость выставляется в Kbit/s Так же можно привязать определенные значения атрибутов PPPD-Upstream-Speed-Limit и PPPD-Downstream-Speed-Limit к определенному тарифу. Т.е. чтобы не прописывать у каждого юзера, а сразу задавать скорость для тарифов. |
Автор: | Администратор [ 25 янв 2007, 13:30 ] |
Заголовок сообщения: | |
Можно добавить в документацию? |
Автор: | mister999 [ 25 янв 2007, 20:02 ] |
Заголовок сообщения: | |
Администратор писал(а): Можно добавить в документацию?
Да конечно. Стараемся для Вас:) |
Автор: | ЛИС [ 27 янв 2007, 17:48 ] |
Заголовок сообщения: | |
Спасибо mister999!!! Вопрос на засыпку - а как сделать, что бы скорость в/из внешних сетей ограничивалась, а внутренних - нет??? |
Автор: | First [ 20 авг 2007, 03:15 ] |
Заголовок сообщения: | |
А вот у меня проблемка в том что в файлике radattr.ppp* Всего две строчки Service-Type Framed-User Framed-Protocol PPP Собственно где вся остальная информация? ![]() хотя судя по логам радиуса её много ![]() |
Автор: | Администратор [ 21 авг 2007, 11:05 ] |
Заголовок сообщения: | |
Цитата: Для того, чтобы нужные атрибуты распознавались радиусом и радиусклиентом нужно добавить их в соответствующие словари (/etc/radiusclient/dictionary и /usr/local/BGRadiusDialup/dictionary.xml)
Скорее всего их нет в словаре радиусклиента |
Автор: | ЛИС [ 23 авг 2007, 13:34 ] |
Заголовок сообщения: | |
ЛИС писал(а): Спасибо mister999!!!
Вопрос на засыпку - а как сделать, что бы скорость в/из внешних сетей ограничивалась, а внутренних - нет??? я это сделал, по инструкции выше!!! На линухе точно работает))) Причем одновременно на pptp и pppoe!!!! Если не разберешся, напиши мне, я на выходных гляну - отпишусь)))) ЗЫ я хитрее сделал - локалку ограничил в 95 мбит))) Шо бы для инета дырочка всегда была)))) |
Автор: | PELMEN [ 05 мар 2009, 15:15 ] |
Заголовок сообщения: | |
не получается настроить шейпер по данному методу. плагин зацепляется, а вот аттрибуты не передаются в файлах radattr.pppX нету PPPD-Downstream-Speed-Limit или PPPD-Upstream-Speed-Limit словари проверил. аттрибуты есть в обоих. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |