The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Нюансы Ограничения кол-ва сесий в ipfw"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от HEDG_SS email(ok) on 21-Ноя-08, 18:53 
Была поставлена задача ограничивать пользователей по количеству сесий и по скорости. Ограничения должны не мешать нормальному веб-серфингу даже по "тяжелым" сайтам (например таких как vkontakte.ru), пользования аськой, возможно что то поставить на закачку. Должна быть исключена возможность субпровайдинга и торентов.

Попытка реализации:
На шлюзе стоит FreeBSD 7.0-RELEASE, для ограничения выбран ipfw из-за достаточно простого применения.
Набор правил которые используются в ipfw
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 30
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
В таблицу 10 заносятся все пользователи на которых действуют эти ограничения.

Решено резать только исходящие потоки, чтоб исключать такие моменты: как Пользователь открыл пару страниц, от него запросы ушли. Он потом решил, что его не интерисует больше данная страница и закрывает ее, пытаясь открыть другую. Ответы от ненужно страницы будут уже не нужными, но будут мешать открытию нужной страницы, внося задержки.

Для тестов на пользовательских компах использовалась ОС Windows XP Prof SP3 с последними обновлениями.
Что получено - нарезка трафика выполняется правильно, ограничение сесий действует, все как бы хорошо, но есть одно большое НО...

Собственно проблема:
Проблем нет при использовании Opera (8.x-9.x) или Mozila Firefox (2.x-3.x) (даже при ограничении конектов на 15), она появляется когда пользователь использует  IE7 или браузер использующий его ядро (например  Maxton). Некоторые картинки не подгружаются, а вместо них появляются красные крестики, в эти же моменты часто выбивает icq и putty.

Что пытался делать:
1. Пробовал с разных компов, ситуация не меняется.
2. Увеличивал колличство конектов до 100 , проблема остается. При увеличении до 150 иногда картинки все же вываливаются.
3. Отключал антифишинг и воообще все модули запуском из командной строки iexplore -extoff
4. По умолчанию количество одновременных сесий равно 10, пробовал уменьшать даже до 1. Не помогло.
5. В настройке пайпов пробовал ставить  queue 1024Kbit/s
6. Пробовал через пайпы пропускать без ограничений только tcp сесии с флагом  established. А Ограничения налаживать правилом, стоящим раньше "ipfw -q add 400 allow ip from any to table(10) limit src-addr 30 out setup"

Все вышеописанное не помогло :(, подскажите в чем может быть такая трабла.
Чем так сильно отличается работа IE от Mozila и Opera?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от Pahanivo email(ok) on 21-Ноя-08, 19:06 
скорей всего трабла в limit src-addr
не надо ограничивать сорцы для локальных клиентов
в htmp который читает браузер может быть дохера ссылок на разные саты - соответственно открытие одной странички может забить это правило


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от HEDG_SS email(ok) on 21-Ноя-08, 19:33 
>скорей всего трабла в limit src-addr
>не надо ограничивать сорцы для локальных клиентов
>в htmp который читает браузер может быть дохера ссылок на разные саты
>- соответственно открытие одной странички может забить это правило

Не думаю, что именно в этом. Да действительно при большом колчестве ссылок выполняется много запросов, но насколько я понимаю эти запросы полсылаются не все сразу, а "партиями" в опере например общее число подключений по умолчанию - 20. У IE -10.
Если не прав, буду рад уточнениям.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от Pahanivo email(ok) on 24-Ноя-08, 07:57 
>>скорей всего трабла в limit src-addr
>>не надо ограничивать сорцы для локальных клиентов
>>в htmp который читает браузер может быть дохера ссылок на разные саты
>>- соответственно открытие одной странички может забить это правило
>
>Не думаю, что именно в этом. Да действительно при большом колчестве ссылок
>выполняется много запросов, но насколько я понимаю эти запросы полсылаются не
>все сразу, а "партиями" в опере например общее число подключений по
>умолчанию - 20. У IE -10.
>Если не прав, буду рад уточнениям.

может стоит проверить?
как и что запрашивается браузером - это уже к девелоперам

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от HEDG_SS email(ok) on 25-Ноя-08, 19:58 
Просмотрел работу IE и Opera . Привести точные цифры затрудняюсь т.к. Все системы мониторинга выводят данные за короткий промежуток времени, а соединения создаются значительно быстрее и быстро исчезают. Так по субъективным наблюдениям порядок такой - IE открывает примерно в 5-7 раз больше соединений чем Опера, при этом Опера загружает страницы быстрее.
Дело в том что ставить ограничение на вход не имеет особого смысла, т.к требуется пресечь субпровайдинг, поэтому приходится ограничивать сорцы для локальных клиентов. При ограничении на 200 соединений IE тоже работает нормально. Но ограничение в 200 поток я считаю очень большим, т.к. в опере вполне комфортно серфить при ограничении в 30 потоков, при этом сидеть в аське и качать что-то в один два потока.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от Pahanivo email(ok) on 26-Ноя-08, 07:48 
>[оверквотинг удален]
>системы мониторинга выводят данные за короткий промежуток времени, а соединения создаются
>значительно быстрее и быстро исчезают. Так по субъективным наблюдениям порядок такой
>- IE открывает примерно в 5-7 раз больше соединений чем Опера,
>при этом Опера загружает страницы быстрее.
>Дело в том что ставить ограничение на вход не имеет особого смысла,
>т.к требуется пресечь субпровайдинг, поэтому приходится ограничивать сорцы для локальных клиентов.
>При ограничении на 200 соединений IE тоже работает нормально. Но ограничение
>в 200 поток я считаю очень большим, т.к. в опере вполне
>комфортно серфить при ограничении в 30 потоков, при этом сидеть в
>аське и качать что-то в один два потока.

ммм всеравно зарезание сессий может гденибудь всплыть неприятным образом
от субпровайдеринга это както думаю слабо спасет )
мона попробовать - поставить прокси на шлюзе с принудительным заворачиванием всех на него - при этом попытатся отлавливать имя агента который конектится на прокси - пропускаять браузеры и давить внутренние прокси - это для случая внутренних проксей

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от HEDG_SS email(ok) on 26-Ноя-08, 11:52 
>ммм всеравно зарезание сессий может гденибудь всплыть неприятным образом
>от субпровайдеринга это както думаю слабо спасет )
>мона попробовать - поставить прокси на шлюзе с принудительным заворачиванием всех на
>него - при этом попытатся отлавливать имя агента который конектится на
>прокси - пропускаять браузеры и давить внутренние прокси - это для
>случая внутренних проксей

Согласен, какие то моменты могут всплыть, но в договорах с абонентами будет указываться количество сесий, так что особых притензий не должно быть (Эти моменты можно объяснить, но вот IE хотелось бы чтоб отрабатывал нормально, т.к. достаточно много пользователей используют "это чудо"). А от субпровайдинга должно спасти т.к. ни один нормальный человек не будет платить за лагающий инет от субпровайдера, если он может взять за те же деньги интернет от провайдера и пользоваться им в свое удовольствие. Ограничение в 30-50 сесий можно раздать максимум на 2-3 чел.
Прокси конечно выход, но насколько я знаю прокся отрабатывает намного дольше чем нат. При потоке в 10Мбайт прокся просто не будет успевать отрабатывать:( .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от PavelR (??) on 26-Ноя-08, 15:16 
>>ммм всеравно зарезание сессий может гденибудь всплыть неприятным образом
>>от субпровайдеринга это както думаю слабо спасет )
>>мона попробовать - поставить прокси на шлюзе с принудительным заворачиванием всех на
>>него - при этом попытатся отлавливать имя агента который конектится на
>>прокси - пропускаять браузеры и давить внутренние прокси - это для
>>случая внутренних проксей
>
>Согласен, какие то моменты могут всплыть, но в договорах с абонентами будет
>указываться количество сесий, так что особых притензий не должно быть (Эти

Ну и нах вы такие красивые нужны, число сессий будете резать..  

  А торренты - тоже лесом ?

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


>моменты можно объяснить, но вот IE хотелось бы чтоб отрабатывал нормально,
>т.к. достаточно много пользователей используют "это чудо"). А от субпровайдинга должно
>спасти т.к. ни один нормальный человек не будет платить за лагающий
>инет от субпровайдера, если он может взять за те же деньги
>интернет от провайдера и пользоваться им в свое удовольствие. Ограничение в
>30-50 сесий можно раздать максимум на 2-3 чел.

и поставлю я 5 закачек по 10 потоков, и п-ц, не имею прав на большее ?

> Прокси конечно выход, но насколько я знаю прокся отрабатывает намного дольше
>чем нат. При потоке в 10Мбайт прокся просто не будет успевать
>отрабатывать:( .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от HEDG_SS email(ok) on 01-Дек-08, 14:05 
>Ну и нах вы такие красивые нужны, число сессий будете резать..  
>  А торренты - тоже лесом ?

По очень хорошей цене большая скорость даже очень привлекательна!
ДА, Торенты лесом.

####################
Пробовал такую конструкцию.
ipfw -q add 400 allow tcp from table(10) to any out setup limit src-addr 200
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 30
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out

IE работает без проблем. появилося другой момент. При обычном серфинге большая часть tcp соединений проходит мимо пайпа, соответственно тем же торентом можно раскочегарить пакет на большую скорость, что совсем не приемлимо. Пробовал запихать это правило тоже в пайп
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 550 pipe 500 tcp from table(10) to any out setup limit src-addr 200
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 30
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Нюансы Ограничения кол-ва сесий в ipfw"  
Сообщение от HEDG_SS email(ok) on 06-Дек-08, 12:09 
В общем после бесчисленного колличества эксперементов пришел к такой конструкции

ipfw -q add 400 allow tcp from table(10) to any out setup
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 20
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out

Лимит из 400 правила убрал, т.к. образуется динамическое правило через которое могло проходить много трафика (например при помощи того же торента). Т.е. разрешается посылка неограниченного количества tcp пакетов c флагом syn (первая стадия тройного рукопожатия), эти пакеты имеют маленький размер. В результате через 1-е правило проходит примерно 0,5-0,6 % трафика клиента, что является приемлемым. При этом IE работает нормально.

Примечание: направление в котором надо двигаться подсказал lissyara, за что я ему очень благодарен!! Кстати его сайт с большим колличеством хороших статей пригодится многим -http://www.lissyara.su/.

Если, кто-то сможет подсказать более красивое решение, буду очень рад :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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