Jump to content
Калькуляторы

"Умный" QoS ? Как ограничить download от конкретного ресурса в конкретную подсеть?

Дано:

1. сервер на Linux (Fedora 6) на котором крутится некоторое кол-во сервисов (http, icq, ftp, teamspeak)

2. подсеть пользователей, находящихся за роутером, не умеющим QoS.

Задача:

1. Ограничить "общую" полосу от всех сервисов, находящихся на серевере, только в подсеть пользователей (например, 30Мбит из 100)

2. главная цель: ограничить полосу от (download) конкретного сервиса (файлообменник, работающий по http) только в подсеть пользователей, причем дать этому сервису самый низкий приоритет перед всеми работающими на сервере.

3. весь "оставшийся" трафик (в др. подсети и т.п.) пропускать "поверх" выделенной полосы с максимальным приоритетом.

 

Предполагаю, что это реализуемо на htb с "раскраской" трафика в iptables, но что-то никак не могу построить хотя-бы "концепцию" решения.. :( Самое непонятное - как выделить конкретный сервис из нескольких http, работающих на одном сервере??

 

Share this post


Link to post
Share on other sites

Дополнительный IP на лупбэк + виртуал-хост на этот IP на hpptd - после этого все что будет сходить с этого ресурса, будет иметь src IP то который указан в виртуал-хосте. Ну а тут уже "крась" как хочеш...

Share this post


Link to post
Share on other sites
Дополнительный IP на лупбэк + виртуал-хост на этот IP на hpptd - после этого все что будет сходить с этого ресурса, будет иметь src IP то который указан в виртуал-хосте. Ну а тут уже "крась" как хочеш...
Гм.. А почему на лупбэк, чем плох езер?? И вообще, хорошо ли это? Может лучше алиас на езер? И будет ли работать tc с лупбэк-фейсом??

И второе - если на этом IP будет один виртуал-хост, то для чего тогда "красить" траф?

Что-то я еще больше запутался... :(

Может примерчиком ткнете, или ссылкой на похожее?

Share this post


Link to post
Share on other sites
Дополнительный IP на лупбэк + виртуал-хост на этот IP на hpptd - после этого все что будет сходить с этого ресурса, будет иметь src IP то который указан в виртуал-хосте. Ну а тут уже "крась" как хочеш...
Гм.. А почему на лупбэк, чем плох езер?? И вообще, хорошо ли это? Может лучше алиас на езер?
Потому что экономика должны быть экономной... - Если Вы будете вешать алиас на эзернет, то Вам это обойдется в 4 IP, т.е. в /30. Ну а если на лупбэк, то можно обойтись одним, т.е. /32.

 

И будет ли работать tc с лупбэк-фейсом??
Ээээ... Товарищ не понимает... - Поясняю:

Адрес нужен только для того что бы настроить апача в режим виртуалхоста не только по имени но и по адресу, что бы можно было этот трафик обработать фильтрами tc.

Т.е. сделали вы, допустим, медийный сервер с именем media.domain.com, на нем CMS-а какая нибудь и т.д... А непосредственно контент лежит на том же хосте, но отдается с сайта content.media.domain.com, который имеет IP отличный от IP media.domain.com.

При этом трафик в направлении пользователей сходит с интерфейса eth1.

 

Ну и что при этом произойдет? - Пришел Вася на вебморду media.domain.com, нарыл себе файлик с новым немецким порнофильмом и нажал на кнопочку "скачать". Фильм начинает скачиваться с виртуального вб сервера content.media.domain.com. Т.е. идет обмен между IP content.media.domain.com и IP Васиного ПК.

 

Ну и где же здесь "лупбэк", спросите Вы? - да на своем месте.

А TC где? - Ну конечно же на eth1... Т.е. где пользователи, там и TC.

 

И второе - если на этом IP будет один виртуал-хост, то для чего тогда "красить" траф?
Да... На этом адресе будет только один виртуал-хост - все верно. При этом, "красить" трафик (фвмарками) совершенно не обязательно.

Можно воспользоваться конструкцией:

tc filter add dev eth1 parent [идентификатор родительского класса] protocol ip u32 match ip src [iP виртуал-хоста] match ip dst [сеть IP адресов пользователей] flowid [идентификатор результирующего класса]

 

Что-то я еще больше запутался... :(
Нууу.... Это всего лишь один из вариантов...

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

 

Может примерчиком ткнете, или ссылкой на похожее?
Ну честно говоря мне подобные изыски никогда нужны не были, посему рабочих конфигураций у меня нет.

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

Share this post


Link to post
Share on other sites
Потому что экономика должны быть экономной... - Если Вы будете вешать алиас на эзернет, то Вам это обойдется в 4 IP, т.е. в /30. Ну а если на лупбэк, то можно обойтись одним, т.е. /32.
ip addr add 192.168.1.77/32 dev eth0

или

ifconfig eth0:0 192.168.1.77/32

 

 

По сути вопроса - iptables здесь не нужен. Нужен iproute2.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this