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

Аттрибуты freeradius для mpd4 (ng_car)

Настроил связку mpd4 freeradius mysql

mpd4 шлются аттрибуты

 

Framed-IP-Address = 192.168.100.11

Framed-IP-Netmask = 255.255.255.255

Framed-Protocol = PPP

 

очень хочется на интерфейс вешать ng_car

Вкуриваю который день в страницу

http://mpd.sourceforge.net/doc/mpd62.html#62

Там параметры типа

mpd-limit += "in#2=flt2 shape 64000 4000 pass",

mpd-limit += "in#3=all deny",

mpd-limit += "out#1=flt2 pass",

mpd-limit += "out#2=all rate-limit 1024000 150000 300000",

mpd-limit += "out#3=all pass",

Пробовал разные комбинации аттрибутов, шейпер не вешается %(

Что за in#2 out#2 .........

 

Какую строку точно должен дать radius, чтоб заработал шейпер ?

Заранее спасибо за помощь.

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


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

Какую строку точно должен дать radius, чтоб заработал шейпер ?
mysql> select * from radgroupreply;

| id | GroupName | Attribute     | op | Value                        | prio |

| 127 | pppoe_192 | mpd-limit | += | in#1=all shape 192000 24000  |    0 | 
| 128 | pppoe_192 | mpd-limit | += | out#1=all shape 192000 24000 |    0 |

Это шейпер без фильтров, просто шейпит все что проходит через интерфейс.

Фильтры нужны будут если, к примеру, в интернет дать 64к а к локалке 1мб.

 

в MPD говоришь log +radius2

и в логе, при подключении клиента, должно появиться подобные строчки

Jan 22 13:29:43 r01 mpd: [pppoe61] RADIUS: RadiusGetParams: RAD_MPD_LIMIT: in#1=all shape 1920000 24000
Jan 22 13:29:43 r01 mpd: [pppoe61] RADIUS: RadiusGetParams: RAD_MPD_LIMIT: out#1=all shape 192000 24000

и в netgraph`е можно посмотреть текущие параметры

для входящего шейпа

ngctl msg ng61:inet.0-0-m getconf
Rec'd response "getconf" (4) from "[52f23]:":
Args:   { upstream={ cbs=24000 ebs=48000 cir=192000 greenAction=1 yellowAction=1 redAction=2 mode=3 } downstream={ cbs=24000 ebs=48000 cir=192000 greenAction=1 yellowAction=1 redAction=2 mode=3 } }

для исходящего

ngctl msg ng61:inet.1-0-m getconf
Rec'd response "getconf" (4) from "[52f24]:":
Args:   { upstream={ cbs=24000 ebs=48000 cir=192000 greenAction=1 yellowAction=1 redAction=2 mode=3 } downstream={ cbs=24000 ebs=48000 cir=192000 greenAction=1 yellowAction=1 redAction=2 mode=3 } }

посмотреть статистику

ngctl msg ng61:inet.0-0-m getstats

ngctl msg ng61:inet.1-0-m getstats

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

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


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

Большое спасибо!!! Пашет.

Дальше буду думать, чем рулить sql базой

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


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

А как можно разделить этими отребутами трафик платный и неплатный??? Сейчас mpd и radius работают через ipfw и он считает весь трафик прошедший через интерфейс ng а хотелось бы из определенной подсетки трафик не считать...

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


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

mysql> select * from radgroupreply;

| id | GroupName | Attribute     | op | Value                        | prio |

| 127 | pppoe_192 | mpd-limit | += | in#1=all shape 192000 24000  |    0 | 
| 128 | pppoe_192 | mpd-limit | += | out#1=all shape 192000 24000 |    0 |

А из каких соображений у вас второй параметр (бурст) в 8 раз меньше, а не в 16, как в примере?

И вообще - как его правильно рассчитать?

 

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


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

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


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

А как можно разделить этими отребутами трафик платный и неплатный??? Сейчас mpd и radius работают через ipfw и он считает весь трафик прошедший через интерфейс ng а хотелось бы из определенной подсетки трафик не считать...

Посмотрите на соурсфоржевском форуме mpd были примеры.

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


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

mysql> select * from radgroupreply;

| id | GroupName | Attribute     | op | Value                        | prio |

| 127 | pppoe_192 | mpd-limit | += | in#1=all shape 192000 24000  |    0 | 
| 128 | pppoe_192 | mpd-limit | += | out#1=all shape 192000 24000 |    0 |

Это шейпер без фильтров, просто шейпит все что проходит через интерфейс.

Фильтры нужны будут если, к примеру, в интернет дать 64к а к локалке 1мб.

А как вы SQL запросом передаете это в mpd?

У меня сейчас authorize_reply_query передает Framed-IP-Address и еще кой-чего. Но в конце запроса стоит LIMIT 1. При этом мне нужно передать несколько mpd-filter и mpd-limit. Не подскажите как лучше организовать?

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

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


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

Join the conversation

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

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

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

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

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

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

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