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

Исходное сообщение
"Как загнать в delay pools исходящий траффик?"

Отправлено Shuttle , 06-Ноя-03 11:43 
Суть проблемы: есть асимметричный (128/32), вечно перегруженный канал в И-нет. Есть туча юзеров использующих web-mail. Когда эти юзеры начинают отправлять почту с большими аттачами забивается исходящий канал и у всех начинаются сильные тормоза. Как эту ситуацию разрулить в сквиде? И возможно ли это?

Содержание

Сообщения в этом обсуждении
"Как загнать в delay pools исходящий траффик?"
Отправлено denn , 06-Ноя-03 12:24 
http://opennet.ru/base/net/squid_speed.txt.html

"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 06-Ноя-03 15:32 
>http://opennet.ru/base/net/squid_speed.txt.html

Ты хоть вопрос внимательно прочитал? :-\
Как рулить входящим траффиком я знаю гораздо глубже, чем написано по твоей ссылке. Вопрос про исходящий. Да, я могу написать acl для метода POST и направить его в delay pools. Но что из этого получится? Будет ли оно работать вообще, а если будет, то как? Будет ограничивать траффик между сквидом и клиентом, а во внешний канал отдавать на полной скорости или наружу скорость тоже ограничится?
Кто-нибудь такое делал?
Каковы результаты?


"Как загнать в delay pools исходящий траффик?"
Отправлено denn , 06-Ноя-03 17:07 
dummynet

"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 06-Ноя-03 17:29 
>dummynet

А я спрашивал:
>Как эту ситуацию разрулить в сквиде? И возможно ли это?

Мне надо притормозить отправку web-почты, не трогая остальной исходящий http. dummynet что, будет анализировать заголовки http-пакетов?


"Как загнать в delay pools исходящий траффик?"
Отправлено denn , 06-Ноя-03 17:39 
адрес у вебмаил есть или ты практикуешь неограниченый доступ к вебпочте?
есть же базы вебпочтовиков.

"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 10-Ноя-03 12:19 
>адрес у вебмаил есть или ты практикуешь неограниченый доступ к вебпочте?
>есть же базы вебпочтовиков.

Именно неограниченный. Если в сети 10-15 компов, можно делать списки, что-то обьяснять юзерам и т.п. У меня их больше 400. И юзеры ездят по разным странам и заводят себе почту на всяких экзотических серверах. Поэтому твой способ не катит.


"Как загнать в delay pools исходящий траффик?"
Отправлено junior , 07-Ноя-03 19:51 
>>Как эту ситуацию разрулить в сквиде? И возможно ли это?

А почему именно в SQUID-е? Гораздо проще резать фильтром пакетов и никакой головной боли.
Но если уж так приспичило SQUID-ом, то просто создай бан-лист с адресами публичных почтовых серверов, которые пользуют твои сослуживцы, создай на его базе acl bed_post например и зарезай ему трафик по самое нехочу. Эффект тот же, зато нагрузка больше на сервер. чем в случае с фильтром пакетов. Ещё вариант - обяжи всех работать через SMTP-POP порты, настрой или расскажи как настроить кленты, объясни преимущества, грози карами и т.д. Накрути шефа в плане получения вирусов и ущербу фирме от вэб-почты.
Фантазируй.
Удачного дня.


"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 10-Ноя-03 12:32 
>А почему именно в SQUID-е? Гораздо проще резать фильтром пакетов и никакой
>головной боли.
См. мой предидущий ответ.


>Но если уж так приспичило SQUID-ом, то просто создай бан-лист с адресами
>публичных почтовых серверов, которые пользуют твои сослуживцы, создай на его базе
>acl bed_post например и зарезай ему трафик по самое нехочу. Эффект
>тот же, зато нагрузка больше на сервер. чем в случае с
>фильтром пакетов.

Так будет траффик резаться для метода POST? Ты сам пробовал?

Ещё вариант - обяжи всех работать через SMTP-POP порты,
>настрой или расскажи как настроить кленты, объясни преимущества, грози карами и
>т.д. Накрути шефа в плане получения вирусов и ущербу фирме от
>вэб-почты.

1. Не все сервера позволяют работать через SMTP/POP3.  
2. У меня слишком много юзеров и они часто меняются. Специфика организации не позволяет их прижимать так как хочется Ж)
3. Весь http и ftp траффик проверяется на вирусы.



"Как загнать в delay pools исходящий траффик?"
Отправлено junior , 11-Ноя-03 10:26 
>Так будет траффик резаться для метода POST? Ты сам пробовал?
Без разница какой метод, когда срабатывает правило.

>
> Ещё вариант - обяжи всех работать через SMTP-POP порты,
>>настрой или расскажи как настроить кленты, объясни преимущества, грози карами и
>>т.д. Накрути шефа в плане получения вирусов и ущербу фирме от
>>вэб-почты.
>
>1. Не все сервера позволяют работать через SMTP/POP3.
>2. У меня слишком много юзеров и они часто меняются.
Значит меняются и ящики, меняются сервера почты. Или они по наследству передаются? :)
> Специфика организации
>не позволяет их прижимать так как хочется Ж)
Не понимаю тогда специфику.
Если ты можешь (читай "имеешь право") закрыть вэб-почту, то что тебе мешает это сделать? Тут понять разницу между ПК и БК. Персональный Компьютер - остался дома, на работе - Бизнес Компьютер. Работа на БК подчиняется своим правилам. Эти правила определяются компанией и спецификой работы. Если использование каких-то серверов для публичной почты идёт во вред работе компании (занимает трафик и мешает остальным), то такие сервера просто исключаются. Если они по каким-то причинам необходимы, то можно завести аккаунты например на mail.ru (прекрасно работает по SMTP/POP3 и сделать на них получение почты с ТЕХ, неправильных серверов, которые не раюотают по SMTP/POP. А пользователям просто прийдётся получать почту с mail.ru обычным методом, вот тут ты и сможешь контролировать трафик как захочешь.

>3. Весь http и ftp траффик проверяется на вирусы.
Как? В процессе "на лету"? Это какая же колоссальная нагрузка на сервер идёт!
Я сначала хотел поставить себе плагин от DrWeb для проверки, но отказался из-за нагрузки и задержек в работе. Или ты используешь другой метод? Поделись или дай ссылку.
Удачного дня.


"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 11-Ноя-03 11:45 
>Не понимаю тогда специфику.
Университет гуманитарного направления.

>Если ты можешь (читай "имеешь право") закрыть вэб-почту, то что тебе мешает это сделать?
Не имею я такого права. У нас 4к студентов и 0,5к преподавателей. И почти все имеют web-ящики, а многие и не один. И довольно интенсивно их используют.

>Как? В процессе "на лету"? Это какая же колоссальная нагрузка на сервер
>идёт!
>Я сначала хотел поставить себе плагин от DrWeb для проверки, но отказался
>из-за нагрузки и задержек в работе. Или ты используешь другой метод?
>Поделись или дай ссылку.
Между сквидом и локалкой стоит Kerio Winroute Firewall + integrated McAfee antivirus. Настроен так, что прооверяется ВЕСЬ траффик без исключений. При потоке 192к загрузка P-IV 1.5GHz не превышает 10%. При этом на нём ещё включены фильтры контента.


"Как загнать в delay pools исходящий траффик?"
Отправлено junior , 11-Ноя-03 14:51 
>>Если ты можешь (читай "имеешь право") закрыть вэб-почту, то что тебе мешает это сделать?
>Не имею я такого права. У нас 4к студентов и 0,5к преподавателей.
>И почти все имеют web-ящики, а многие и не один. И
>довольно интенсивно их используют.
Я вижу только один способ, но это не значит, что их не может быть ещё :))
Собрать статистику вэб-почтовиков, написать правила фильтрации на эти адреса с ограничением трафика, а в SQUID-е создать acl на перечень таких вэб-почтовиков и загнать их в пул с низкой скоростью. Это конечно повысит нагрузку на сервер, но реальная возможность контролировать трафик.
Может и кривой метод, но то что сразу пришло в голову :)
Если нужны детали - разрешаю написать письмо, уточним нюансы.

>Между сквидом и локалкой стоит Kerio Winroute Firewall + integrated McAfee antivirus.
>Настроен так, что прооверяется ВЕСЬ траффик без исключений. При потоке 192к
>загрузка P-IV 1.5GHz не превышает 10%. При этом на нём ещё
>включены фильтры контента.

Мда.. Нет, это не мой способ, я не решусь поставить Win на вход в сеть. А городить Linux-Windows-Linux-локалка .. нет. Жаль, я думал ещё способ нашёлся.
Удачного дня.


"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 11-Ноя-03 19:35 
>Я вижу только один способ, но это не значит, что их не
>может быть ещё :))
>Собрать статистику вэб-почтовиков, написать правила фильтрации на эти адреса с ограничением трафика,
>а в SQUID-е создать acl на перечень таких вэб-почтовиков и загнать
>их в пул с низкой скоростью. Это конечно повысит нагрузку на
>сервер, но реальная возможность контролировать трафик.
>Может и кривой метод, но то что сразу пришло в голову :)

Зачем такие сложности? :)
acl mail url_regex -i (mail|inbox|message|compose|attach|sendmsg)
перекрывает 95-98% web-почты.
И пулы используются. Ты просто не на том уровне воспринял вопрос. Меня интересовали возможности и подробности прогона исходящего траффика сквида через пул. Сам к сожалению не могу подцепиться для анализа пакетов за сквидом - там оптика.


>>Между сквидом и локалкой стоит Kerio Winroute Firewall + integrated McAfee antivirus.
>
>Мда.. Нет, это не мой способ, я не решусь поставить Win на
>вход в сеть. А городить Linux-Windows-Linux-локалка .. нет. Жаль, я думал
>ещё способ нашёлся.
Это я так для упрощения восприятия написал что локалка-win-linux. На самом деле Kerio в сквиде прописан как парент, а в Kerio парентом прописан сквид. И сквиду сказано, что клиент Kerio всегда ходит direct-ом. И приняты меры чтобы не было петли. В результате и из локалки, и из И-нета виден только сквид, а Kerio как бы сбоку :)



"Как загнать в delay pools исходящий траффик?"
Отправлено junior , 12-Ноя-03 08:13 
>Зачем такие сложности? :)
>acl mail url_regex -i (mail|inbox|message|compose|attach|sendmsg)
>перекрывает 95-98% web-почты.
>И пулы используются. Ты просто не на том уровне воспринял вопрос. Меня
>интересовали возможности и подробности прогона исходящего траффика сквида через пул. Сам
>к сожалению не могу подцепиться для анализа пакетов за сквидом -
>там оптика.
>
Предлагаю такой метод, но решается он не на базе SQUID-a:)
Пересобираешь ядро и добавляешь поддержку модулей string, limit, connbyte, connlimit.
Создаёшь правила типа:
iptables -N BAD_MAIL
iptables -A BAD_MAIL -p tcp -m limit --limit 10/min -j RETURN

iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m connbytes --conbytes 307200 -j BAD_MAIL
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m string --string "mail" -j BAD_MAIL
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m string --string "attach" -j BAD_MAIL
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m string --string "inbox" -j BAD_MAIL
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m string --string "compose" -j BAD_MAIL
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m string --string "sendmsg" -j BAD_MAIL
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m string --string "message" -j BAD_MAIL

Вот что-то типа такого.
Значится создаём отстойную цепочку, задаём на неё ограничение по пропусканию 10 пакетов в минуту (там уже сам решай сколько), а потом смотрим по входящему трафику на твой прокси, если величина сессии (то бишь аттача) составляет более 300Кб - в отстойную цепочку, если в пакете есть указанные тобой параметры (mail,inbox... etc.) тоже в отстой.
В принципе, если весь трафик по почте загонять в отстой, тогда можно и не писать правило по ограничению --connbytes, но вдруг кто-то так приаттачит? :)))
Удачного дня.


"Как загнать в delay pools исходящий траффик?"
Отправлено junior , 12-Ноя-03 08:31 
>iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m connbytes --conbytes 307200 -j BAD_MAIL
Читать как:
iptables -A INPUT -p tcp -d you_proxy_ip --dport 3128 -m connbytes --conbytes 307200: -j BAD_MAIL
Т.е. не забыть двоеточие, что значит "больше, чем 300Кб"

"Как загнать в delay pools исходящий траффик?"
Отправлено Shuttle , 12-Ноя-03 13:01 
Вот за это - спасибо. Способ интересный. Надо хорошенько обдумать.
А string анализирует весь текст в пакете или только адрес? Если первое, то как с нагрузкой на процессор?

А отправка в пул метода POST работает. Посмотрел у прова графики MRTG до и после включения пула. После кривая исходящего стала более гладкой без больших пиков.


"Как загнать в delay pools исходящий траффик?"
Отправлено junior , 12-Ноя-03 13:29 
>Вот за это - спасибо. Способ интересный. Надо хорошенько обдумать.
>А string анализирует весь текст в пакете или только адрес? Если первое,
>то как с нагрузкой на процессор?

Нагрузка в любом случае будет ГОРАЗДО меньше, чем через SQUID - проверено.
Я сторонник того, что прокси должен кэшировать и доступ к кэшу контролировать, а остальное работа других программ и утилит.
В результате нагрузка упала на железо, а производительность выросла.
Но опять же - это мой метод и моя точка зрения. Каждый для себя всё решает сам. Просто при создании очередного правила SQUID при каждом запросе пересматривает их ВСЕ!! И так всегда. Жуть. Колоссальная нагрузка с пулами, даже в небольших сетях.

>А отправка в пул метода POST работает. Посмотрел у прова графики MRTG
>до и после включения пула. После кривая исходящего стала более гладкой
>без больших пиков.
Да, несомненно будет работать, ведь срабатывает acl, а ему всё равно что загонять в пул - адрес, метод, перечень в заголовке и т.д.

Удачного дня.