roysbike Posted February 10, 2012 Posted February 10, 2012 Есть идея выдавать статический NG-интерфейс при подключению к MPD5. Например логин 0001 - выдавать не только framed-ip и rules, но и номер интерфейса, например ng1. Если ли такая возможность? никто не реализовывал? Вставить ник Quote
terrible Posted February 10, 2012 Posted February 10, 2012 Какую цель преследуете? Вставить ник Quote
roysbike Posted February 10, 2012 Author Posted February 10, 2012 Какую цель преследуете? например, снятие нагрузки с интерфейсов) это так ) не сказать цель. Так поиграть. На скока выростит нагрузка при 800 туннелей? У меня такое предположение , что бушку серверу сорвет. Тут еще другая тема. У меня 14 серверов) Если в подьездах стояло бы умное железо, то с порта снимал бы. А кто нить вообще практикует снятие нагрузки с ng-x ?? и например в rrdtool пихая в личный кабинет? Так Freedom делает в Воронеже. у них VPN Вставить ник Quote
AlKov Posted February 11, 2012 Posted February 11, 2012 (edited) Если Вам нужно получить "на входе" номер 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 Edited February 11, 2012 by AlKov Вставить ник Quote
roysbike Posted February 11, 2012 Author Posted February 11, 2012 Если Вам нужно получить "на входе" номер 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 подключен абонент и с каким интерфейсом. Можно ли за ранее в отдавать данные с базы, к какой интерфейс поднимать? Вставить ник Quote
Ilya Evseev Posted February 11, 2012 Posted February 11, 2012 ловлю пакеты радиуса и знаю на каком Nas подключен абонент и с каким интерфейсом. Можно ли за ранее в отдавать данные с базы, к какой интерфейс поднимать? Вроде бы нет. Но можно оперативно сохранять в базе информацию "логин-шлюз-интерфейс" с помощью up-script: set iface up-script scriptset 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 Вставить ник Quote
andriko Posted February 13, 2012 Posted February 13, 2012 (edited) можно попытаться приcваивать им имя через радиус. N Name Access Accounting Req Resp Req Resp ... 20 mpd-iface-name - + - - Edited February 13, 2012 by andriko Вставить ник Quote
AlKov Posted February 13, 2012 Posted February 13, 2012 (edited) можно попытаться приcваивать им имя через радиус. N Name Access Accounting Req Resp Req Resp ... 20 mpd-iface-name - + - - Каким образом? P.S. Кстати, радиус-атрибут mpd-iface-name есть только в недавно вышедшей mpd 5.6 (у меня 5.5) и как с ним работать ничего не нагуглить пока не удалось. :( Edited February 13, 2012 by AlKov Вставить ник Quote
andriko Posted February 14, 2012 Posted February 14, 2012 наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно... вот, на виртуалке, добавил в мпд.конф 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 Вставить ник Quote
AlKov Posted February 14, 2012 Posted February 14, 2012 наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно... вот, на виртуалке, добавил в мпд.конф 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 "серии".. Вставить ник Quote
roysbike Posted February 14, 2012 Author Posted February 14, 2012 наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно... вот, на виртуалке, добавил в мпд.конф 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 забавно) завтра попробую привзять логины к интерфейсу) Спасибо! Вставить ник Quote
AlKov Posted February 14, 2012 Posted February 14, 2012 (edited) забавно) завтра попробую привзять логины к интерфейсу) Спасибо! Действительно забавно! У Вас чтО, всего 5 логинов? Это я к тому, что вот, на виртуалке, добавил в мпд.конф set iface name blabla И еще забавно будет ребутать mpd при каждом добавлении нового юзера (ведь надо же будет редактировать mpd.conf для каждого нового "блабла"). Ну а если их (юзеров) у вас тыщ 5-10, то mpd.conf будет выглядеть вообще наипрезабавнейше! ;) Edited February 14, 2012 by AlKov Вставить ник Quote
andriko Posted February 15, 2012 Posted February 15, 2012 (edited) наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно... у меня стенда под радиус сейчас нет, поетому проделал со статикой, 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'; п.с. вторую часть предложения придется разобрать самому ... Edited February 15, 2012 by andriko Вставить ник Quote
roysbike Posted February 16, 2012 Author Posted February 16, 2012 (edited) наверно добавить в радрепли новый атрибут, ну и разрешить его где нужно... у меня стенда под радиус сейчас нет, поетому проделал со статикой, 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 Edited February 16, 2012 by roysbike Вставить ник Quote
roysbike Posted February 16, 2012 Author Posted February 16, 2012 Теперь другая проблема) 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, заорался просто Вставить ник Quote
AlKov Posted February 17, 2012 Posted February 17, 2012 (edited) Теперь другая проблема) 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 с этой экзотикой? Edited February 17, 2012 by AlKov Вставить ник Quote
andriko Posted February 17, 2012 Posted February 17, 2012 странно, что оно вообще с "чисто цифровыми" именами работает :) лог пишется тут /usr/src/sys/net/if.c: unmodified: line 2282 log(LOG_INFO, "%s: changing name to '%s'\n", ifp->if_xname, new_name); Вставить ник Quote
AlKov Posted February 17, 2012 Posted February 17, 2012 лог пишется тут /usr/src/sys/net/if.c: unmodified: line 2282 Ну зачем же так издеваться над ОС? :) Вставить ник Quote
AlKov Posted February 19, 2012 Posted February 19, 2012 Установил mpd 5.6 и проверил новую "игрушку". Обнаружилась интересная особенность (правда не относящаяся к mpd) - если длина имени переименованного интерфейса превышает 6 символов, перестаёт работать динамический роутинг(у меня rip). ifconfig отображает полное имя, а вот RIP почему-то "обрезает" всё что более 6 символов и при этом не анонсирует маршрут роутеру. Вот такая интересная "картина маслом".. :) Вставить ник Quote
lagman Posted February 21, 2012 Posted February 21, 2012 Установил mpd 5.6 и проверил новую "игрушку". Обнаружилась интересная особенность (правда не относящаяся к mpd) - если длина имени переименованного интерфейса превышает 6 символов, перестаёт работать динамический роутинг(у меня rip). ifconfig отображает полное имя, а вот RIP почему-то "обрезает" всё что более 6 символов и при этом не анонсирует маршрут роутеру. Вот такая интересная "картина маслом".. :) RIP R.I.P. Вставить ник Quote
AlKov Posted February 21, 2012 Posted February 21, 2012 RIP R.I.P. А по делу что-нибудь есть сообщить? Вставить ник Quote
terrible Posted February 24, 2012 Posted February 24, 2012 А rip сам в лог что-нибудь пишет по этому поводу? Вставить ник Quote
andriko Posted February 28, 2012 Posted February 28, 2012 не только рип - посмотрел с опенбгпд - таж петрушка похоже на исторический 640Кб 6 символов на имя девайса хотя роут монитор показывает полные имена. возможно, при компиляции использутся какие нить "копетибл" структуры Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.