The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проверка заголовка перед выдачей и подсчет трафика после, !*! Николай, 20-Мрт-08, 16:29  [смотреть все]
Уважаемые знатоки!


очень срочно (готов отплатить пивом :) ) нужно сделать такое:
FreeBSD 7. Есть VPN-соединение. Пользователи обращаются к нашему прокси-серверу в поисках интернета. В заголовках запроса присутствует дополнительная строчка - счет клиента.
Подскажите, пожалуйста, есть ли какая-либо возможность запускать скрипт, который смотрит заголовок, проверяет номер (ищет в своей БД), возвращает "добро" или "зло". Злом в этом случае будет страничка с напоминанием об оплате.
Кроме того, после выдачи нужно опять обращаться к скрипту, чтобы он этот трафик пересчитал и в базе вычел денежку у этого пользователя.

Если не squid - то может быть кто-то еще может это делать?
Говорят, через Апачи можно что-то сделать. Но запросов будет более 100 в секунду - вряд ли он выдержит, тем более с дополнительными запусками программ. Веб-сервер всё равно какой-то будет (склоняюсь к lighttpd), так что его тоже можно использовать.

В сквиде (2.6) есть url_rewrite_program, но заголовки туда не передаются, а значит параметр для меня бесполезен...


Спасибо большое,
с уважением,
Николай

  • Проверка заголовка перед, !*! Andrey Mitrofanov, 18:45 , 20-Мрт-08 (1)
    >очень срочно (готов отплатить пивом :) ) нужно сделать такое:
    >FreeBSD 7. Есть VPN-соединение. Пользователи обращаются к нашему прокси-серверу в поисках интернета.
    >В заголовках запроса присутствует дополнительная строчка - счет клиента.

    А зачем? Во-первых, подделывается на раз, в во-вторых, не проще ли на VPN-е по логину раздавать каждому свой ip и по нему "рулить" в сквиде, при исчерпании счёта, например, выдавать другой ip, которому показывать только статистику....

    >Подскажите, пожалуйста, есть ли какая-либо возможность запускать скрипт, который смотрит заголовок, проверяет
    >номер (ищет в своей БД), возвращает "добро" или "зло".

    Если штатные методы auth не устраивают, то при такой постановке задачи
    external_acl_type + соотв.скрипт клепать...

    > Злом в этом случае будет страничка с напоминанием об оплате.

    ...ну, сообщение об ошибке с редиректом, может быть.

    >Кроме того, после выдачи нужно опять обращаться к скрипту, чтобы он этот
    >трафик пересчитал и в базе вычел денежку у этого пользователя.

    это уже билинг какой-то = не сквид.

    >Если не squid - то может быть кто-то еще может это делать?
    >
    >Говорят, через Апачи можно что-то сделать. Но запросов будет более 100 в
    >секунду - вряд ли он выдержит, тем более с дополнительными запусками

    В сквиде запросы к auth-хелперам кешируются, насколько я понимаю. То есть
    дёргать скрипт сквид будет не на каждое обращение... если повезёт...

    >В сквиде (2.6) есть url_rewrite_program, но заголовки туда не передаются, а значит
    >параметр для меня бесполезен...

    Значит так: берёшь /usr/share/doc/squid/examples/squid.conf (или где оно у вас "там") и смотришь на external_acl_type, радуешься, идёшь на google.ru = задаёшь вопросы (squid external_acl_type site:opennet.ru)...

    • +об external_acl_type, !*! Andrey Mitrofanov, 19:09 , 20-Мрт-08 (2)
      >external_acl_type + соотв.скрипт клепать...
      >
      >В сквиде запросы к auth-хелперам кешируются, насколько я понимаю. То есть
      >дёргать скрипт сквид будет не на каждое обращение... если повезёт...
      >
      >на external_acl_type, радуешься, идёшь на google.ru = задаёшь вопросы (squid external_acl_type
      >site:opennet.ru)...

      Вот тут как это выглядит примерно: http://opennet.ru/tips/info/1378.shtml
      (без редиректов, статистики, со скриптом и обсуждением кеширования ответов).

      • +об external_acl_type, !*! Николай, 12:29 , 21-Мрт-08 (3)
        >>external_acl_type + соотв.скрипт клепать...
        >>
        >>В сквиде запросы к auth-хелперам кешируются, насколько я понимаю. То есть
        >>дёргать скрипт сквид будет не на каждое обращение... если повезёт...
        >>
        >>на external_acl_type, радуешься, идёшь на google.ru = задаёшь вопросы (squid external_acl_type
        >>site:opennet.ru)...
        >
        >Вот тут как это выглядит примерно: http://opennet.ru/tips/info/1378.shtml
        >(без редиректов, статистики, со скриптом и обсуждением кеширования ответов).

        Спасибо за ответы!

        У меня возникли проблемы с external_acl_type - squid пишет, что дети хелпера быстро убиваются. Уже ставил children=50 - то же самое. Сейчас сделал заглушку, возвращающую (пока эта ошибка не возникает) OK сразу (ну и в логи пишет обращения).
        Однако есть еще одна проблема. Придется подробнее описать, зачем мне это нужно (сначала не хотел грузить вас подробностями).
        Итак, есть ВПН с мобильными клиентами. У клиентов динамические IP. Мой сервер выступает для доступа в интернет. Клиентов по IP разграничить невозможно, нужно из заголовков запроса вытаскивать MSISDN, искать его в базе клиентов, определять, есть ли доступ, потом отдавать ему трафик или посылать на страницу с оплатой. Клиентов, которых вообще нет в базе - вообще посылать куда-то в третье место :)
        Итак, проблема - кеширование мешает разумно считать трафик, так как нам всё равно, сколько наш сервер берет из интернета, а вот сколько клиентам отдается - важно.
        Смотрел несколько биллинговых систем - не видел ни одной, чтобы позволяла на основании хидеров пользователей разграничивать - только по IP максимум по маку.
        Как вариант - использование mod_rewrite + mod_proxy Apache, но, боюсь, при большом количестве клиентов такое решение рухнет.
        Любые идеи приветствуются!!
        Количество серваков для системы - 2 шт

        Пожалуйста, помогите - в долгу не останусь, обещаю. Любая работа оплачивается, консультационная конечно тоже, если поможет.

        Спасибо еще раз!

        • +об external_acl_type, !*! idle, 16:36 , 21-Мрт-08 (4)
          >[оверквотинг удален]
          >(сначала не хотел грузить вас подробностями).
          >Итак, есть ВПН с мобильными клиентами. У клиентов динамические IP. Мой сервер
          >выступает для доступа в интернет. Клиентов по IP разграничить невозможно, нужно
          >из заголовков запроса вытаскивать MSISDN, искать его в базе клиентов, определять,
          >есть ли доступ, потом отдавать ему трафик или посылать на страницу
          >с оплатой. Клиентов, которых вообще нет в базе - вообще посылать
          >куда-то в третье место :)
          >Итак, проблема - кеширование мешает разумно считать трафик, так как нам всё
          >равно, сколько наш сервер берет из интернета, а вот сколько клиентам
          >отдается - важно.

          Из логов сквида можно всё посчитать и кэшируемый, и общий.
          >Смотрел несколько биллинговых систем - не видел ни одной, чтобы позволяла на
          >основании хидеров пользователей разграничивать - только по IP максимум по маку.

          Не совсем понятно при чём здесь биллинговые системы, но говоря о сквиде - он может разграничивать клиентов, как угодно, и по хидерам тоже.




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

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