The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
билиинг FreeNIBS, !*! satelit, 24-Апр-06, 05:28  [смотреть все]
Подскажите пожалуйста решение такой задачи, есть биллинг сервер, на нем радиус+мускул+веб со статистикой, проблема в том, что в статистику пишется IP адрес клиента который выдавался ему внутри туннеля VPN, а как-бы сделать что-бы в статистику попадал IP адрес с которого падымается тоннель, т.е. не тот который внутри туннеля, а тот, который используется повседневно для доступа в сеть.
Спасибо.
  • билиинг FreeNIBS, !*! satelit, 13:08 , 25-Апр-06 (1)
    Желательно это сделать редствами радиуса, а не приписывать замысловатые скрипты в ppp-up и ppp-down.
  • билиинг FreeNIBS, !*! Den, 13:37 , 25-Апр-06 (2)
    Плохо читаем документацию:

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

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

  • билиинг FreeNIBS, !*! Павел, 12:30 , 02-Май-06 (5)
    я банально подправил запросы в 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, 13:05 , 02-Май-06 (6)
      >я банально подправил запросы в 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, 13:18 , 02-Май-06 (7)
        >Т.е. ты дописал это в nibs.conf и все?, и никаких патчей?

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

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

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

        • билиинг FreeNIBS, !*! satelit, 16:50 , 02-Май-06 (8)
          У тебя %{Client-IP-Address} дважды в запросе (а у меня 1 раз), это и есть тот самый адрес который мне нужен?, если так, то получается что он уже есть в запросе к базе, но почему-то не отображается в ней, если бы этого поля не существовало, то база бы возвращала ошибку.
        • билиинг FreeNIBS, !*! satelit, 16:56 , 02-Май-06 (9)
          Да, похоже что поспешил с вопросом, Client-IP-Adress это адрес NAS'а, ip - адрес внутри тоннеля, собственно вопрос в  следующем, где у тебя в запросе переменная отвечающая за адрес клиента в сети?
          • билиинг FreeNIBS, !*! Vault_Dweller, 17:20 , 02-Май-06 (10)
            > где у тебя в запросе переменная отвечающая за адрес клиента в сети?

            смотри сам

            # 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, 21:37 , 02-Май-06 (11)
            Я б еще вот, что добавил:
            В самом Нибсе(не установленом) есть папка 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, 05:27 , 03-Май-06 (12)
              %{Framed-IP-Address} это собственно говоря и есть тот адрес который мне нужен, он записывается в поле базы данных call_from, точнее должен записываться, данное поле остается всегда пустым, похоже что Den был прав, просто pptpd не передает данную переменную Радиусу, не подскажет ли кто, новые версии pptpd (1.3.0 в частности) поддерживают такую функцию или всетаки придется патчить версию 1.1.4 ?


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

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

            • билиинг FreeNIBS, !*! Vault_Dweller, 14:56 , 03-Май-06 (15)
              если это мне, то:

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

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

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

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

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

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

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


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

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру