ng + pf nat + transparent squid + billing
Добавлено: 2008-10-07 21:38:51
Задача: нужно организовать подсчет трафика и проброску 80-го порта через transparent squid для фильтрации и логирования урлов.
Проблема: после того как форварднули из фаера запрос в сквид, он уже от своего имени отправит этот запрос на настоящий сервер, так вот откуда ng (да и что угодно, кроме самого сквида) будет знать, что обратный ответ будет предназначен для какого-то конкретного внутреннего юзера ?
А хочется ведь обойтись одним сборщиком...
Пробовал поддержку pf, ipf, ipfw nat в сквидах 2.х и 3.х - какая-то баклажанная и неработающая фича, всё равно в ип получателя пишет ип серва...
...прочитал море статей по сквиду и тому подобному...но красивого решения не нашел...
Пока что решил этот вопрос хитрожопым велосипедом: сквид пишет в мускул в одну таблицу свои записи, сборщик статистики по остальным портам (перловый скрипт, разбирающий лог netflow) пишет во вторую и плюсует туда же селект sum() трафика из таблицы сквида для каждого ипа каждые 15 мин... (работает быстро, стабильно, но - велопипед)...
Просто иначе, пихая весь этот хлам в одну таблицу (по 500000 записей в сутки), потом хер будет нормально (адекватно быстро) работать веб-гуя подсчета трафика за нужный мне период ...десяток миллионов записей перелопатить за пару сек, думаю, врят ли сможет даже оч быстрый серв А хотелось бы одним сборщиком собирать... из одной таблицы и более-менее адекватную подробную статистику (а-ля траф хотя бы за каждые 15 мин) и быстрый обсчет за глобальные промежутки времени + из второй таблицы получаем максимальную детализацию посещения веб-сайтов по каждому дятлу за любой нужный начальству промежуток времени...
Может кто решал такую проблему (как обучить ядерные модули\фаеры правильно понимать обратные ответы сквиду) ? Или может сквид может как-то вернуть пакет в фаер перед отправкой его клиенту, но ток подписавшись сервером ? ))
Проблема: после того как форварднули из фаера запрос в сквид, он уже от своего имени отправит этот запрос на настоящий сервер, так вот откуда ng (да и что угодно, кроме самого сквида) будет знать, что обратный ответ будет предназначен для какого-то конкретного внутреннего юзера ?
А хочется ведь обойтись одним сборщиком...
Пробовал поддержку pf, ipf, ipfw nat в сквидах 2.х и 3.х - какая-то баклажанная и неработающая фича, всё равно в ип получателя пишет ип серва...
...прочитал море статей по сквиду и тому подобному...но красивого решения не нашел...
Пока что решил этот вопрос хитрожопым велосипедом: сквид пишет в мускул в одну таблицу свои записи, сборщик статистики по остальным портам (перловый скрипт, разбирающий лог netflow) пишет во вторую и плюсует туда же селект sum() трафика из таблицы сквида для каждого ипа каждые 15 мин... (работает быстро, стабильно, но - велопипед)...
Просто иначе, пихая весь этот хлам в одну таблицу (по 500000 записей в сутки), потом хер будет нормально (адекватно быстро) работать веб-гуя подсчета трафика за нужный мне период ...десяток миллионов записей перелопатить за пару сек, думаю, врят ли сможет даже оч быстрый серв А хотелось бы одним сборщиком собирать... из одной таблицы и более-менее адекватную подробную статистику (а-ля траф хотя бы за каждые 15 мин) и быстрый обсчет за глобальные промежутки времени + из второй таблицы получаем максимальную детализацию посещения веб-сайтов по каждому дятлу за любой нужный начальству промежуток времени...
Может кто решал такую проблему (как обучить ядерные модули\фаеры правильно понимать обратные ответы сквиду) ? Или может сквид может как-то вернуть пакет в фаер перед отправкой его клиенту, но ток подписавшись сервером ? ))