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

mpd5 статический NG

Есть идея выдавать статический NG-интерфейс при подключению к MPD5. Например логин 0001 - выдавать не только framed-ip и rules, но и номер интерфейса, например ng1. Если ли такая возможность? никто не реализовывал?

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


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

Какую цель преследуете?

например, снятие нагрузки с интерфейсов) это так ) не сказать цель. Так поиграть. На скока выростит нагрузка при 800 туннелей? У меня такое предположение , что бушку серверу сорвет. Тут еще другая тема. У меня 14 серверов) Если в подьездах стояло бы умное железо, то с порта снимал бы. А кто нить вообще практикует снятие нагрузки с ng-x ?? и например в rrdtool пихая в личный кабинет? Так Freedom делает в Воронеже. у них VPN

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


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

Если Вам нужно получить "на входе" номер ng интерфейса конкретного юзера, то как вариант можно отпарсить (по IP или логину) вывод команды "show summary", подключившись telnet-ом к mpd конкретного NAS-а.

Вывод show summary такой

[] show summary
Current daemon status summary
Iface   Bund            Link    LCP     Device          User            From
                       SB      Initial pptp    DOWN                    UNSPEC
                       PPPoE   Initial pppoe   DOWN                    00:00:00:00:00:00
                       ppp_1   Initial pppoe   DOWN                    00:00:00:00:00:00
       B       Down
       P       Down
ng0     B-2     Up      SB-4    Opened  pptp    UP      USER1           10.0.196.109
ng1     B-3     Up      SB-5    Opened  pptp    UP      USER2           10.0.198.28
ng2     B-4     Up      SB-6    Opened  pptp    UP      USER3           10.0.194.4

Подключаться telnet-ом к NAS-у можно например через nc

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

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


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

Если Вам нужно получить "на входе" номер ng интерфейса конкретного юзера, то как вариант можно отпарсить (по IP или логину) вывод команды "show summary", подключившись telnet-ом к mpd конкретного NAS-а.

Вывод show summary такой

[] show summary
Current daemon status summary
Iface   Bund            Link    LCP     Device          User            From
                       SB      Initial pptp    DOWN                    UNSPEC
                       PPPoE   Initial pppoe   DOWN                    00:00:00:00:00:00
                       ppp_1   Initial pppoe   DOWN                    00:00:00:00:00:00
       B       Down
       P       Down
ng0     B-2     Up      SB-4    Opened  pptp    UP      USER1           10.0.196.109
ng1     B-3     Up      SB-5    Opened  pptp    UP      USER2           10.0.198.28
ng2     B-4     Up      SB-6    Opened  pptp    UP      USER3           10.0.194.4

Подключаться telnet-ом к NAS-у можно например через nc

дело в том , что в ловлю пакеты радиуса и знаю на каком Nas подключен абонент и с каким интерфейсом. Можно ли за ранее в отдавать данные с базы, к какой интерфейс поднимать?

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


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

ловлю пакеты радиуса и знаю на каком Nas подключен абонент и с каким интерфейсом.

Можно ли за ранее в отдавать данные с базы, к какой интерфейс поднимать?

Вроде бы нет. Но можно оперативно сохранять в базе информацию "логин-шлюз-интерфейс" с помощью up-script:

set iface up-script script

set iface down-script script

 

Mpd can optionally run a user program every time one of network protocols (IPCP/IPv6CP)

at the interface is brought up or down. The up-script is called like this:

 

script interface proto local-ip remote-ip authname [ dns1 server-ip ] [ dns2 server-ip ] peer-address

 

If up-script exit status is not 0, mpd will kill respective protocol.

http://mpd.sourceforge.net/doc5/mpd28.html

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


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

можно попытаться приcваивать им имя через радиус.

 

N   Name                       	   Access	 Accounting
                	Req	Resp	Req	Resp
...
20  mpd-iface-name		-	+	-	-

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

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


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

можно попытаться приcваивать им имя через радиус.

 

N   Name                       	   Access	 Accounting
                	Req	Resp	Req	Resp
...
20  mpd-iface-name		-	+	-	-

Каким образом?

 

P.S.

Кстати, радиус-атрибут mpd-iface-name есть только в недавно вышедшей mpd 5.6 (у меня 5.5) и как с ним работать ничего не нагуглить пока не удалось. :(

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

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


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

наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно...

 

вот, на виртуалке, добавил в мпд.конф

set iface name blabla

получил:

Feb 14 12:52:46 f8-2 mpd: [b-1] IPCP: LayerUp
Feb 14 12:52:46 f8-2 mpd: [b-1]   10.0.0.1 -> 10.0.1.2
Feb 14 12:52:46 f8-2 mpd: [b-1] IFACE: Up event
Feb 14 12:52:46 f8-2 mpd: [b-1] IFACE: Rename interface ng0 to blabla1

 

blabla1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1466
inet 10.0.0.1 --> 10.0.1.2 netmask 0xffffffff 

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


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

наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно...

 

вот, на виртуалке, добавил в мпд.конф

set iface name blabla

получил:

Feb 14 12:52:46 f8-2 mpd: [b-1] IPCP: LayerUp
Feb 14 12:52:46 f8-2 mpd: [b-1]   10.0.0.1 -> 10.0.1.2
Feb 14 12:52:46 f8-2 mpd: [b-1] IFACE: Up event
Feb 14 12:52:46 f8-2 mpd: [b-1] IFACE: Rename interface ng0 to blabla1

blabla1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1466
inet 10.0.0.1 --> 10.0.1.2 netmask 0xffffffff 

И? Ну получим мы при подключении вместо ng0 ... ng3000 - blabla0 ... blabla3000 и что дальше? Где жёсткая "привязка" к Login1 интерфейса blabla1 и к Login3000 интерфейса blabla3000?

Всё остаётся на своих местах - mpd будет по-прежнему назначать Login1 случайный (свободный) "номер" из blabla "серии"..

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


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

наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно...

 

вот, на виртуалке, добавил в мпд.конф

set iface name blabla

получил:

Feb 14 12:52:46 f8-2 mpd: [b-1] IPCP: LayerUp
Feb 14 12:52:46 f8-2 mpd: [b-1]   10.0.0.1 -> 10.0.1.2
Feb 14 12:52:46 f8-2 mpd: [b-1] IFACE: Up event
Feb 14 12:52:46 f8-2 mpd: [b-1] IFACE: Rename interface ng0 to blabla1

 

blabla1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1466
inet 10.0.0.1 --> 10.0.1.2 netmask 0xffffffff 

забавно) завтра попробую привзять логины к интерфейсу) Спасибо!

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


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

забавно) завтра попробую привзять логины к интерфейсу) Спасибо!

Действительно забавно! У Вас чтО, всего 5 логинов? Это я к тому, что

вот, на виртуалке, добавил в мпд.конф

set iface name blabla

И еще забавно будет ребутать mpd при каждом добавлении нового юзера (ведь надо же будет редактировать mpd.conf для каждого нового "блабла").

Ну а если их (юзеров) у вас тыщ 5-10, то mpd.conf будет выглядеть вообще наипрезабавнейше! ;)

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

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


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

наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно...

 

 

у меня стенда под радиус сейчас нет, поетому проделал со статикой, roysbike вот проверит на радиусе :)

 

INSERT INTO `radreply` SET UserName='vasia', Attribute='mpd-iface-name',op='=',Value='vasia';
INSERT INTO `radreply` SET UserName='petya', Attribute='mpd-iface-name',op='=',Value='petya';

 

п.с. вторую часть предложения придется разобрать самому ...

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

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


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

наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно...

 

 

у меня стенда под радиус сейчас нет, поетому проделал со статикой, roysbike вот проверит на радиусе :)

 

INSERT INTO `radreply` SET UserName='vasia', Attribute='mpd-iface-name',op='=',Value='vasia';
INSERT INTO `radreply` SET UserName='petya', Attribute='mpd-iface-name',op='=',Value='petya';

 

 

п.с. вторую часть предложения придется разобрать самому ...

Как и обещал. Вообщем. Добавили атрибут в базу mpd-iface-name += имя_итерфейса. При авторизации, сервер с mpd создает интерфейс с заданным именем. Мы привезали логин к интерфейсу) Вообщем, может кому пригодится.

12985: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
inet 172.18.0.123 --> 172.16.59.31 netmask 0xffffffff 
9766: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
inet 172.18.0.123 --> 172.16.40.105 netmask 0xffffffff 
10537: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
inet 172.18.0.123 --> 172.16.43.126 netmask 0xffffffff 
7304: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
inet 172.18.0.123 --> 172.16.30.145 netmask 0xffffffff 
16710: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
inet 172.18.0.123 --> 172.16.74.4 netmask 0xffffffff 
15954: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1480
inet 172.16.1.2 --> 172.16.70.248 netmask 0xffffffff 


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

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


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

Теперь другая проблема)

Feb 17 01:50:22 vpn122 kernel: ng36: changing name to '19368'

Feb 17 01:50:34 vpn122 kernel: 13331: changing name to 'ng28'

Feb 17 01:52:51 vpn122 kernel: ng28: changing name to '16501'

Feb 17 01:53:22 vpn122 kernel: 14106: changing name to 'ng33'

. Вообщем при создании бандла он резервирует ng интерфейс и просто его переменовывает в логин. При отключении, он менят на ng. Как отлкючить логирование в messages о смене имени интерфайса?) у меня логи парсит nagios, заорался просто

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


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

Теперь другая проблема)

Feb 17 01:50:22 vpn122 kernel: ng36: changing name to '19368'

Feb 17 01:50:34 vpn122 kernel: 13331: changing name to 'ng28'

Feb 17 01:52:51 vpn122 kernel: ng28: changing name to '16501'

Feb 17 01:53:22 vpn122 kernel: 14106: changing name to 'ng33'

. Вообщем при создании бандла он резервирует ng интерфейс и просто его переменовывает в логин. При отключении, он менят на ng. Как отлкючить логирование в messages о смене имени интерфайса?) у меня логи парсит nagios, заорался просто

Настроить в syslog.conf оправку этих сообщений в отдельный файл, или в /dev/null.

 

P.S. И встречный вопрос - как отреагировал радиус на такие "экзотические имена" интерфейсов? Статистика (input/output) нормально снимается? И работает ли CoA с mpd с этой экзотикой?

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

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


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

странно, что оно вообще с "чисто цифровыми" именами работает :)

 

лог пишется тут /usr/src/sys/net/if.c: unmodified: line 2282

                log(LOG_INFO, "%s: changing name to '%s'\n",
                   ifp->if_xname, new_name);

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


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

лог пишется тут /usr/src/sys/net/if.c: unmodified: line 2282

Ну зачем же так издеваться над ОС? :)

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


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

Установил mpd 5.6 и проверил новую "игрушку". Обнаружилась интересная особенность (правда не относящаяся к mpd) - если длина имени переименованного интерфейса превышает 6 символов, перестаёт работать динамический роутинг(у меня rip). ifconfig отображает полное имя, а вот RIP почему-то "обрезает" всё что более 6 символов и при этом не анонсирует маршрут роутеру.

Вот такая интересная "картина маслом".. :)

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


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

Установил mpd 5.6 и проверил новую "игрушку". Обнаружилась интересная особенность (правда не относящаяся к mpd) - если длина имени переименованного интерфейса превышает 6 символов, перестаёт работать динамический роутинг(у меня rip). ifconfig отображает полное имя, а вот RIP почему-то "обрезает" всё что более 6 символов и при этом не анонсирует маршрут роутеру.

Вот такая интересная "картина маслом".. :)

RIP R.I.P.

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


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

RIP R.I.P.

А по делу что-нибудь есть сообщить?

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


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

А rip сам в лог что-нибудь пишет по этому поводу?

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


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

не только рип - посмотрел с опенбгпд - таж петрушка

похоже на исторический 640Кб 6 символов на имя девайса

хотя роут монитор показывает полные имена.

возможно, при компиляции использутся какие нить "копетибл" структуры

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


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

Join the conversation

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

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

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

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

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

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

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