atomlab Posted August 16, 2012 (edited) Здравствуйте. Поделитесь опытом пожалуйста. Стоит задача. Из всего http/https трафика ограничить доступ к определенным url. Для этого весь http/https трафик будет перенаправляться с циски на прокси. Политика прокси: пропускать все,кроме определенных url. Прокси будет настроен как прозрачный. Кеширования не будет. Пока я ориентируюсь на использование SQUID как самого популярного. Сейчас у нас идет 11000 запросов/секунту HTTP трафика и 1000 запросов/сек HTTPS трафика. Вопрос вот в чем. Выдерживает ли squid такое количество запросов? Есть примеры у кого-нибудь использования squid под подобными нагрузками? Если вопрос исключительно в ресурсах сервера,то как можно расчитать необходимые ресурсы для такой нагрузки? Планируется для этих нужд купить какой-нить блейд-сервер и добавлять в него лезвия по мере необходимости. Спасибо. Edited August 16, 2012 by atomlab Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
2ihi Posted August 16, 2012 а почему бы не порезать доступ на циске? Много записей в блэклист попадет? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 16, 2012 а почему бы не порезать доступ на циске? Много записей в блэклист попадет? Нет. На нашей циске просто нет возможности глубокого анализа пакетов. Поэтому через проксю гнать трафик будем. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Am1G0 Posted August 16, 2012 крайне не советую использовать для http squid. лучше взять nginx чисто под http и написать perl handler, который будет реализовывать возможности белых листов и не париться за железо вообще. сквид дико прожорливый в сравнении с nginx, хотя Сысоев и не рекомендует использовать nginx как forward-proxy, но с этим нет никаких проблем. другое дело, что https трафик придётся всё-равно на squid рулить, т.к. nginx не поддерживает https. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 16, 2012 крайне не советую использовать для http squid. лучше взять nginx чисто под http и написать perl handler, который будет реализовывать возможности белых листов и не париться за железо вообще. сквид дико прожорливый в сравнении с nginx, хотя Сысоев и не рекомендует использовать nginx как forward-proxy, но с этим нет никаких проблем. другое дело, что https трафик придётся всё-равно на squid рулить, т.к. nginx не поддерживает https. А в чем прожорливость сквида? При каких нагрузках ничинаются проблемы и в чем выражаются? Железо будет тоже не слабое. Просто интересно, как работотает сквид под большими нагрузками. Или squid оринтирован только на небольшие корпоративные сети? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Am1G0 Posted August 16, 2012 крайне не советую использовать для http squid. лучше взять nginx чисто под http и написать perl handler, который будет реализовывать возможности белых листов и не париться за железо вообще. сквид дико прожорливый в сравнении с nginx, хотя Сысоев и не рекомендует использовать nginx как forward-proxy, но с этим нет никаких проблем. другое дело, что https трафик придётся всё-равно на squid рулить, т.к. nginx не поддерживает https. А в чем прожорливость сквида? При каких нагрузках ничинаются проблемы и в чем выражаются? Железо будет тоже не слабое. Просто интересно, как работотает сквид под большими нагрузками. Или squid оринтирован только на небольшие корпоративные сети? от 2к на core2quad начинаются проблемы. дико тормозит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted August 16, 2012 У меня сквид сильно жрал проц при отключении дискового кеша. Может мне просто "повезло". Я бы тоже смотрел в сторону фильтрации на nginx. Про https лучше забыть. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 16, 2012 крайне не советую использовать для http squid. лучше взять nginx чисто под http и написать perl handler, который будет реализовывать возможности белых листов и не париться за железо вообще. сквид дико прожорливый в сравнении с nginx, хотя Сысоев и не рекомендует использовать nginx как forward-proxy, но с этим нет никаких проблем. другое дело, что https трафик придётся всё-равно на squid рулить, т.к. nginx не поддерживает https. А в чем прожорливость сквида? При каких нагрузках ничинаются проблемы и в чем выражаются? Железо будет тоже не слабое. Просто интересно, как работотает сквид под большими нагрузками. Или squid оринтирован только на небольшие корпоративные сети? от 2к на core2quad начинаются проблемы. дико тормозит. Что именно тормозит? Процесс squid потребляет 100% процессорного времени или память всю сжирает? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 16, 2012 Я вообще на данный момент тестировал squid 2.7. У вас тоже squid 2.х крутится везде? А что по поводу Squid3? Squid 3 переписан почти полностью с нуля на C++. Случаем никто не юзал? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted August 16, 2012 Толку то с этих плюсов, лучше бы хттп 1.1 зарелизили окончательно. У меня сквид 3х (последний с портов), про него и писал. Крутится дома и у некоторых клиентов, кеширует по мелочи и режет рекламу и всякую хрень по спискам. Назгрузка на него никакая. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Am1G0 Posted August 16, 2012 У меня сквид сильно жрал проц при отключении дискового кеша. Может мне просто "повезло". именно! дисковый кэш был отключен, со включенным не тестировал. Что именно тормозит? Процесс squid потребляет 100% процессорного времени или память всю сжирает? 100% отжирал. смысла его параллелить нет никакого, а мультипоточность он не поддерживает. У вас тоже squid 2.х крутится везде? 2.6 использовал. Про https лучше забыть. нет, достаточно с помощью того же iptables редиректить https трафик на сквид, а http на nginx. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted August 16, 2012 нет, достаточно с помощью того же iptables редиректить https трафик на сквид, а http на nginx. вот только на сертификаты будет ругаться. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
orlik Posted August 17, 2012 может лучше DPI купить небольшой, тем более корпоратив ... Ну или если зочется развлечений и нет денег, то можно поставить сервак со snort и попробовать резать там. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
agr Posted August 17, 2012 Здравствуйте. Поделитесь опытом пожалуйста. Стоит задача. Из всего http/https трафика ограничить доступ к определенным url. Для этого весь http/https трафик будет перенаправляться с циски на прокси. Политика прокси: пропускать все,кроме определенных url. Прокси будет настроен как прозрачный. Кеширования не будет. Пока я ориентируюсь на использование SQUID как самого популярного. Сейчас у нас идет 11000 запросов/секунту HTTP трафика и 1000 запросов/сек HTTPS трафика. Вопрос вот в чем. Выдерживает ли squid такое количество запросов? Есть примеры у кого-нибудь использования squid под подобными нагрузками? Если вопрос исключительно в ресурсах сервера,то как можно расчитать необходимые ресурсы для такой нагрузки? Планируется для этих нужд купить какой-нить блейд-сервер и добавлять в него лезвия по мере необходимости. Спасибо. https трафик нельзя проксировать прозрачно. Для http можете посмотреть на haproxy, он позиционируется как прокси для высоконагруженных систем. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 17, 2012 может лучше DPI купить небольшой, тем более корпоратив ... Ну или если зочется развлечений и нет денег, то можно поставить сервак со snort и попробовать резать там. Да нам предлагали готове DPI решение. Цена вопроса 18млн. Многова-то что просто заблокировать несколько сайтов. Поэтому ищем что-нибуль попроще. Здравствуйте. Поделитесь опытом пожалуйста. Стоит задача. Из всего http/https трафика ограничить доступ к определенным url. Для этого весь http/https трафик будет перенаправляться с циски на прокси. Политика прокси: пропускать все,кроме определенных url. Прокси будет настроен как прозрачный. Кеширования не будет. Пока я ориентируюсь на использование SQUID как самого популярного. Сейчас у нас идет 11000 запросов/секунту HTTP трафика и 1000 запросов/сек HTTPS трафика. Вопрос вот в чем. Выдерживает ли squid такое количество запросов? Есть примеры у кого-нибудь использования squid под подобными нагрузками? Если вопрос исключительно в ресурсах сервера,то как можно расчитать необходимые ресурсы для такой нагрузки? Планируется для этих нужд купить какой-нить блейд-сервер и добавлять в него лезвия по мере необходимости. Спасибо. https трафик нельзя проксировать прозрачно. Для http можете посмотреть на haproxy, он позиционируется как прокси для высоконагруженных систем. спасибо за нваодку. Почитаю что это за haproxy. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted August 19, 2012 Эээ.. а несколько сайтов сильно скачуть по IP, что обязательно валить ВСЕ на сквид, а не только искомые IP ? или вы гугль фильтруете ? А так некеширующий сквид параллелится путем запуска нескольких сквидов (по числу ядер - 1) на разных портах и заворачиванию туда round-robinом.. Сквид 3.1. В 3.2 обещали многопоточность, но тестировать надо.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 20, 2012 Эээ.. а несколько сайтов сильно скачуть по IP, что обязательно валить ВСЕ на сквид, а не только искомые IP ? или вы гугль фильтруете ? А так некеширующий сквид параллелится путем запуска нескольких сквидов (по числу ядер - 1) на разных портах и заворачиванию туда round-robinом.. Сквид 3.1. В 3.2 обещали многопоточность, но тестировать надо.. Сайт может просто сменить ip и все. Каждый раз ловить смену ip не айс. Во вторых требуется возможность блочить просто странички,т.е конкретный url. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted August 20, 2012 ну да, есть недостатки. Но заворачивать в сквид только IP, урлы которых есть в списке на много-много порядков дешевле чем весь интернет. Да, список IP надо постоянно мониторить. Естественно если надо фильтровать pupkin.ru/vsjakaka/hren.html то заворачивать надо 195.177.204.16 и этот pupkin.ru мониторить на предмет смены IP. Ну а некоторый временной лаг, проверяйте раз в минуту. А так сайт может сменить не только IP но и имя. И опа. Я так думаю что есть куча кучастая фильтрующих проксей, режущих вконтакте ру и не знающих про то что он давно вк.ком. Мониторить надо по любому. Ну или да, создавать пром решение с кучей ядер-памяти (возможно и кучей физических машин, смотря по нагрузке) и гнать туда все. Может оказаться что готовое решение за озвученную сумму не так уж и дорого.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted August 20, 2012 Не пугайте человека :) Для оценки нагрузки можно просто посмотреть на жручесть nginx, и прикинуть что это примерно будет как отдача статики, может в два раза более по нагрузке. Подтюнить буфера и таймауты, и оно будет вполне себе работать. Самое сложное списки прикрутить, перл уже советовали, можно поискать в модулях или написать самому. Если не умеете - за деньги на фрилансе сделают. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted August 20, 2012 Да.. и каждый запрос кормить перлу... :( нгинкс сам по себе конечно хорош, но каждый запрос через перл... Боюсь упадет не взлетев. Если фильтров, как сказано в начале, мало, то проще там средствами нгинкса почекать и порезать лишнее. Подстроку проверить он и без перла может. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted August 20, 2012 Перл там не внешний, так что оно шустро будет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted August 20, 2012 насчет перла мое имхо, тестами не подкрепленное.. Cтало интересно, попытаюсь у себя настроить в камне на нгинксе-перле функционал с текущего сквида - погонять :) Может оно тоже ниче получится. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 21, 2012 Для теста настроил nginx как http forward. Nginx используется же на высоконагруженных web ресурсах. Может и выдержит. Тестить надо. Единственное Сысоев предупреждает,что использование nginx в качестве http forward возможно,но могут быть неожиданности:) Еще ковыряю вариант iptables + модуль string. Он тупо грепает пакеты на наличие совпадений. Пока грепаю на наличие запросов GET конкретного ресурса. Типа искать в пакете GET /<uri> HTTP/ Host: <domain> Незнаю как поведет себя iptables при большом потоке пакетов. Какждый же нужно грепать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted August 21, 2012 Для обхода такого мач фильтра можно посылать гет кусками. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
atomlab Posted August 22, 2012 Для обхода такого мач фильтра можно посылать гет кусками. Это как? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...