URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 65854
[ Назад ]

Исходное сообщение
"билиинг FreeNIBS"

Отправлено satelit , 24-Апр-06 05:28 
Подскажите пожалуйста решение такой задачи, есть биллинг сервер, на нем радиус+мускул+веб со статистикой, проблема в том, что в статистику пишется IP адрес клиента который выдавался ему внутри туннеля VPN, а как-бы сделать что-бы в статистику попадал IP адрес с которого падымается тоннель, т.е. не тот который внутри туннеля, а тот, который используется повседневно для доступа в сеть.
Спасибо.

Содержание

Сообщения в этом обсуждении
"билиинг FreeNIBS"
Отправлено satelit , 25-Апр-06 13:08 
Желательно это сделать редствами радиуса, а не приписывать замысловатые скрипты в ppp-up и ppp-down.

"билиинг FreeNIBS"
Отправлено Den , 25-Апр-06 13:37 
Плохо читаем документацию:

http://www.nibs.net.ua/src/pptpd/src/pptpd-1.1.4-export-cli....

После патча, pptpd передавет радиусу ip с которого подымается тоннель


"билиинг FreeNIBS"
Отправлено satelit , 25-Апр-06 17:13 
>Плохо читаем документацию:
>
>http://www.nibs.net.ua/src/pptpd/src/pptpd-1.1.4-export-cli....
>
>После патча, pptpd передавет радиусу ip с которого подымается тоннель

А этот патч на любую версию pptpd (я так понял, что именно он и патчится, правильно?) ляжет, или только на 1.1.4?


"билиинг FreeNIBS"
Отправлено satelit , 26-Апр-06 05:46 
>Плохо читаем документацию:
>
>http://www.nibs.net.ua/src/pptpd/src/pptpd-1.1.4-export-cli....
>
>После патча, pptpd передавет радиусу ip с которого подымается тоннель

Еще попутный вопросик, что надо изменит в самом радиусе (хотя бы примерно в каком месте и что изменить), чтобы этот параметр отдавался базе?


"билиинг FreeNIBS"
Отправлено Павел , 02-Май-06 12:30 
я банально подправил запросы в nibs.conf и все пишется как Вам и надо ;)

accounting_start_query = "INSERT INTO ${acct_table} (gid, id, unique_id, user, server, port, client_ip, protocol, ip, call_to, call_from, terminate_cause,
connect_info, start_time, last_change, before_billing) VALUES (%%d, '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{NAS-IP-Address}
', %{NAS-Port}, '%{Client-IP-Address}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Client-IP-Address}', '%{Tunnel-Client-Endpoint}', 'Online', '%{Connec
t-Info}', '%S', %l, %%8.6f)"
accounting_start_query_alt = "INSERT INTO ${acct_table} (gid, id, unique_id, user, server, port, client_ip, protocol, ip, call_to, call_from, terminate_ca
use, connect_info, start_time, last_change, before_billing) VALUES (%%d, '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{NAS-IP-Addr
ess}', %{NAS-Port}, '%{Client-IP-Address}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Client-IP-Address}', '%{Tunnel-Client-Endpoint}', 'Online', '%{Co
nnect-Info}', from_unixtime(%l - %%d), %l, %%8.6f)"

З.Ы. юзаю кошкароутер, как для других делать - ХЗ


"билиинг FreeNIBS"
Отправлено satelit , 02-Май-06 13:05 
>я банально подправил запросы в nibs.conf и все пишется как Вам и
>надо ;)
>
>accounting_start_query = "INSERT INTO ${acct_table} (gid, id, unique_id, user, server, port, client_ip,
>protocol, ip, call_to, call_from, terminate_cause,
> connect_info, start_time, last_change, before_billing) VALUES (%%d, '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{NAS-IP-Address}
>', %{NAS-Port}, '%{Client-IP-Address}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Client-IP-Address}', '%{Tunnel-Client-Endpoint}', 'Online', '%{Connec
>t-Info}', '%S', %l, %%8.6f)"
>accounting_start_query_alt = "INSERT INTO ${acct_table} (gid, id, unique_id, user, server, port, client_ip,
>protocol, ip, call_to, call_from, terminate_ca
>use, connect_info, start_time, last_change, before_billing) VALUES (%%d, '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{NAS-IP-Addr
>ess}', %{NAS-Port}, '%{Client-IP-Address}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Client-IP-Address}', '%{Tunnel-Client-Endpoint}', 'Online', '%{Co
>nnect-Info}', from_unixtime(%l - %%d), %l, %%8.6f)"
>
>З.Ы. юзаю кошкароутер, как для других делать - ХЗ

Т.е. ты дописал это в nibs.conf и все?, и никаких патчей?
Кошкарутер это я так понял cisco, поправь если не прав.


"билиинг FreeNIBS"
Отправлено Vault_Dweller , 02-Май-06 13:18 
>Т.е. ты дописал это в nibs.conf и все?, и никаких патчей?

ну да, я просто тупо откопировал и закоментил оригинальные, а эти подправил с оглядкой на detail файлы... собсно все :) загляни в detail, посмотри что тебе приходит, а потом просто подправишь запросы под себя и все...

>Кошкарутер это я так понял cisco, поправь если не прав.

угу... именно она и есть... не очень дорого, но жутко сердито :)


"билиинг FreeNIBS"
Отправлено satelit , 02-Май-06 16:50 
У тебя %{Client-IP-Address} дважды в запросе (а у меня 1 раз), это и есть тот самый адрес который мне нужен?, если так, то получается что он уже есть в запросе к базе, но почему-то не отображается в ней, если бы этого поля не существовало, то база бы возвращала ошибку.

"билиинг FreeNIBS"
Отправлено satelit , 02-Май-06 16:56 
Да, похоже что поспешил с вопросом, Client-IP-Adress это адрес NAS'а, ip - адрес внутри тоннеля, собственно вопрос в  следующем, где у тебя в запросе переменная отвечающая за адрес клиента в сети?

"билиинг FreeNIBS"
Отправлено Vault_Dweller , 02-Май-06 17:20 
> где у тебя в запросе переменная отвечающая за адрес клиента в сети?

смотри сам

# less detail-20060401
Sat Apr  1 00:02:01 2006
        NAS-IP-Address = x.y.z.246
        NAS-Port = 13
        NAS-Port-Type = Virtual
        User-Name = "vpn054"
        Acct-Status-Type = Start
        Acct-Authentic = RADIUS
        Service-Type = Framed-User
        Acct-Session-Id = "00004DA0"
        Framed-Protocol = PPP
        Tunnel-Client-Endpoint:0 = "172.16.0.237"
        Framed-IP-Address = x.y.z.92
        Acct-Delay-Time = 0
        Client-IP-Address = x.y.z.246
        Acct-Unique-Session-Id = "bb45d1c5e4a91196"
        Timestamp = 1143835321

значит переменная '%{Tunnel-Client-Endpoint}' и есть IP адрес коннектящегося юзера... я тока реальные адреса я заменил на x.y.z ;) а в целом это мой обычный Start пакет... вот глядя на такие я и правил запросы...


"билиинг FreeNIBS"
Отправлено weldpua2008 , 02-Май-06 21:37 
Я б еще вот, что добавил:
В самом Нибсе(не установленом) есть папка doc, дык там есть файлики с описанием функций, ответы на вопросы...
Так вот там же есть описание всех переменых!!!
Вот так-с...

>>У тебя %{Client-IP-Address} дважды в запросе (а у меня 1 раз), это и есть тот самый адрес который мне нужен?, если так, то получается что он уже есть в запросе к базе, но почему-то не отображается в ней, если бы этого поля не существовало, то база бы возвращала ошибку.

Еще надо посмотреть Тебе на структуру ДБ, что бы Ты знал, куда записывается ИП:
INSERT INTO ${acct_table} (... client_ip, protocol, ip, call_to, call_from...)
Дык вот: %{Client-IP-Address} два раза в client_ip и call_from записывается, в Базе посмотри - по идеи это и есть твой ИП клиента, а %{Framed-IP-Address} в ip - Его выделеный ИП.
Надо будет и Себе поиграться с этими параметрами


"билиинг FreeNIBS"
Отправлено satelit , 03-Май-06 05:27 
%{Framed-IP-Address} это собственно говоря и есть тот адрес который мне нужен, он записывается в поле базы данных call_from, точнее должен записываться, данное поле остается всегда пустым, похоже что Den был прав, просто pptpd не передает данную переменную Радиусу, не подскажет ли кто, новые версии pptpd (1.3.0 в частности) поддерживают такую функцию или всетаки придется патчить версию 1.1.4 ?



"билиинг FreeNIBS"
Отправлено Den , 03-Май-06 11:32 
>%{Framed-IP-Address} это собственно говоря и есть тот адрес который мне нужен, он
>записывается в поле базы данных call_from, точнее должен записываться, данное поле
>остается всегда пустым, похоже что Den был прав, просто pptpd не
>передает данную переменную Радиусу, не подскажет ли кто, новые версии pptpd
>(1.3.0 в частности) поддерживают такую функцию или всетаки придется патчить версию
>1.1.4 ?

патч надо накладывать руками, в одной консонли окрываем исходники, а в другой сам патч и смотрим что куда добавить. По другому не станет.


"билиинг FreeNIBS"
Отправлено satelit , 03-Май-06 11:34 
А новые версии poptop этого не умеют?

"билиинг FreeNIBS"
Отправлено Vault_Dweller , 03-Май-06 14:56 
если это мне, то:

>Я б еще вот, что добавил:
>В самом Нибсе(не установленом) есть папка doc, дык там есть файлики с
>описанием функций, ответы на вопросы...
>Так вот там же есть описание всех переменых!!!
>Вот так-с...

я читал все это и даже бОльше =) я даже чуток изменил дистриб для себя чтоб оно ставилось куда и как мне надо...

>Еще надо посмотреть Тебе на структуру ДБ, что бы Ты знал, куда записывается ИП:

я знаю, иначе как бы я веб морду для юзеров с нуля писал? до админки руки никак не дойдут :(

>Дык вот: %{Client-IP-Address} два раза в client_ip и call_from записывается

я преследовал строго определенную цель - знать IP адрес клиента, я ее добился, остального буду добиваться по мере постановки задач ;)


"билиинг FreeNIBS"
Отправлено satelit , 03-Май-06 18:06 
Понимаешь, у тебя VPN делает кошкарутер, очень может быть что она умеет передавать радиусу параметр клиентского IP адреса, а у меня VPN'ом занимается pptpd версии 1.1.4 , вот он то как раз и неумеет передавать адрес клиента радиусу (именно поэтому поле для этого параметра в базе данных остается пустым), что бы он мог его передавать, его надо патчить, а вопрос в том что умеет ли это делать новые версии pptpd, если да, то зачем возиться со старьем, соберу и поставлю новую, если нет, то придется патчить :-(

"билиинг FreeNIBS"
Отправлено Vault_Dweller , 03-Май-06 18:23 
>Понимаешь, у тебя VPN делает кошкарутер, очень может быть что она умеет
>передавать радиусу параметр клиентского IP адреса,
умеет, я же это на примере показал...
>а у меня VPN'ом занимается pptpd версии 1.1.4 , вот он то как раз и неумеет передавать адрес клиента радиусу (именно поэтому поле для этого параметра в базе данных остается пустым),
>что бы он мог его передавать, его надо патчить, а вопрос в том что умеет ли это делать новые версии pptpd, если да, то зачем возиться со старьем, соберу и поставлю новую, если нет, то придется патчить :-(
можно хороший совет? раз речь идет о софтварном решении - перепробуй ВСЕ возможные варианты и остановись на том который понравится/устроит больше всего... для начала лучше сразу начать тесты с exppp, т.к он может многое (например разделять траффик на локальный и интернетовский) и вдруг тебе он подойдет сразу... просто у меня сразу была кошка под руками и именно поэтому я не стал заморачиваться с софтварными решениями, но если бы жисть заставила, то пошел бы по пути "перепробуй все и выбери лучшее", честное слово ;)



"билиинг FreeNIBS"
Отправлено satelit , 03-Май-06 19:27 
А не подкинешь документашку на этот самый exppp.

"билиинг FreeNIBS"
Отправлено Vault_Dweller , 03-Май-06 19:54 
>А не подкинешь документашку на этот самый exppp.
пока офф. сайт мертв :( кое чего найдешь на http://abills.asmodeus.com.ua/wiki/doku.php?id=abills:docs:e... ... автор abills чего то там правит в нем, я честно не в курсе что именно...

"билиинг FreeNIBS"
Отправлено satelit , 03-Май-06 20:03 
>>А не подкинешь документашку на этот самый exppp.
>пока офф. сайт мертв :( кое чего найдешь на http://abills.asmodeus.com.ua/wiki/doku.php?id=abills:docs:e... ... автор
>abills чего то там правит в нем, я честно не в
>курсе что именно...

ОК, Спасибо, поковыряюсь на досуге.


"билиинг FreeNIBS"
Отправлено satelit , 10-Май-06 07:38 
>для
>начала лучше сразу начать тесты с exppp, т.к он может многое
>(например разделять траффик на локальный и интернетовский) и вдруг тебе он
>подойдет сразу... просто у меня сразу была кошка под руками и
>именно поэтому я не стал заморачиваться с софтварными решениями, но если
>бы жисть заставила, то пошел бы по пути "перепробуй все и
>выбери лучшее", честное слово ;)

Помсмотрел я этот exppp, только вот непонял, причем тут он, если он только PPP делает, а шифрованием и всем остальным все равно занимается pptpd.


"билиинг FreeNIBS"
Отправлено Vault_Dweller , 10-Май-06 09:53 
>Помсмотрел я этот exppp, только вот непонял, причем тут он, если он
>только PPP делает, а шифрованием и всем остальным все равно занимается
>pptpd.

я помню что Вы просили решение о записи локального адреса, но вот отдает его exppp или не отдает я просто не знаю, чесслово, уж простите... я считаю, что неважно что именно обеспечивает процесс РРР терминирования будь то ppp/exppp/mpd/etc., важно чтобы это позволяло Вам учитывать раздельно локальный и глобальный траффики... именно потому что Вы только начинаете строительство своего узла доступа я и посоветовал exppp (как софтварное решение), дабы у Вас в наличии сразу был инструмент подобного учета, а в том что перед Вами рано или поздно встанет эта проблема я почему то даже не сомневаюсь ;) например передо мной она уже встала...