LINUX.ORG.RU
ФорумAdmin

срочна нужна помошь


0

0

У меня Linux Mandriva 2005

как настроить чтобы локальные машины могли по трафику пользоватсья интернетом.. я смогу например на определенные IP адреса задать так чтобы у них было скорость выше а у других ниже как это сделать?


конечно squid просто но имхо и cbq не сложен. прикладываю не большой фак по начальной (простой) его настройке


#defakto! |
__________


tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 100mbit

avpkt - Усредненный размер одного пакета. Совместно с величиной maxburst (которая измеряется в пакетах) используется для вычисления значения maxidle.

bandwidth - Физическая пропускная способность устройства. Необходима для вычисления времени простоя.


________________________________________________________________________________
_________________________
#defakto! |
__________

export DEV=eth0

tc class add dev $DEV parent 1: classid 1:1 cbq rate 2048kbit allot 1500 prio 5 bounded isolated defmap 10

tc class add dev $DEV parent 1: classid 1:2 cbq rate 1024kbit allot 1500 prio 5 bounded isolated defmap 10

tc class add dev $DEV parent 1: classid 1:3 cbq rate 512kbit allot 1500 prio 5 bounded isolated defmap 10

tc class add dev $DEV parent 1: classid 1:4 cbq rate 256kbit allot 1500 prio 5 bounded isolated defmap 10

tc class add dev $DEV parent 1: classid 1:5 cbq rate 128kbit allot 1500 prio 5 bounded isolated defmap 10

tc class add dev $DEV parent 1: classid 1:6 cbq rate 48kbit allot 1500 prio 5 bounded isolated defmap 10

________________________________________________________________________________
_________________

rate - Желаемая величина пропускной способности. Для данной дисциплины -- это "педаль газа"! 

allot - Когда производится выбор пакета для передачи, CBQ начинает опрашивать свои подклассы в соответствии с их приоритетами. Когда классу предоставляется возможность передачи, выбирается определенный объем данных. Базовая единица этого объема определяется параметром allot. 

prio - Приоритет. Дисциплина CBQ может присваивать классам приоритеты. Чем меньше значение -- тем выше приоритет. Пока не будет обработан трафик с высшим приоритетом, трафик с меньшим приоритетом не обрабатывается

Isolated/sharing -  У класса, созданного с параметром isolated, нельзя занимать полосу пропускания. То есть другие классы, настроенные на заем доступной полосы пропускания никогда не смогут занять полосу этого класса, даже если она будет свободной.  Наоборот, класс созданный с параметром sharing будет предоставлять неиспользуемую часть своей пропускной способности другим классам. 

bounded/borrow - Эти два параметра определяют, может ли класс занимать пропускающую способность других классов. Параметр bounded запрещает, а borrow разрешает занимать неиспользуемую часть полосы пропускания классов, сконфигурированных с параметром sharing. 

defmap - возможно не нужен так как это приоритеты для classid
________________________________________________________________________________
_______________________________


________________________________________________________________________________
____________________________
#variables |
____________


_________________________________________________________________________
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s $IP -o eth0 #add  |
/sbin/iptables -t nat -D POSTROUTING -j MASQUERADE -s $IP -o eth0 #del  |
_________________________________________________________________________




tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst $IP flowid 1:$ID

$IP - адрес пользователя
$ID - номер classid (например 1:1 скорость будет в машем случае 2048 килобита в секунду)
________________________________________________________________________________
_________________________

PUZO
()
Ответ на: комментарий от PUZO

да и вот еще. просто так реализовать это не получится, ядро должно знать про cbq, а tc входит в пакет iproute2. Так что думаю на squid проще всего, хотя имхо криво и не удобно для пользователя.

PUZO
()
Ответ на: комментарий от PUZO

2 PUZO
respect за описание !
хотя всетаки на lartc.org сходить тоже надо .
но, для начала , когда надо быстро сделать , самое то.

может кто в фак добавит ?

j262 ★★
()
Ответ на: комментарий от Schreibikus

Извини пажалуюста у меня через Squid не получаетсья может я не правильно делаю ты сможеш все расписать как делать?

RomaXX
() автор топика
Ответ на: комментарий от j262

>2 PUZO

>respect за описание !

>хотя всетаки на lartc.org сходить тоже надо .

>но, для начала , когда надо быстро сделать , самое то.

>может кто в фак добавит ?

я только за. так как когда сам столкнулся, ничего готового а именно правильного не нашел. Допустим не понял как Удалять фильты, если как и добавить только del то он грохает всю цепочку, в общем с cbq у меня предстаят новые мучения. НО стоит у меня для теста этого шейпа машинка п3 1000 x 2, 2gb ram ecc, 36 scsi. и 600 абонетов одновременно тянет просто на ура, проц максимум нагружается на 10% с учетом того что на машине не только cbq но и iptables который натит. а вот cbq чуть интересней сделан, но имхо не красиво, для каждого пользователя создан отдельный класс. Делать один клас и пихать всех в него можно было только когда были у меня eth0, а с переходои на влан резать стал хрен поймешь как. вместо 256 билобайт дает только 4.5, и это я смог побороть только добавкой новых классов для каждого. Кстати тоже может пригодится в фак так как мало где об этом сказано.

PUZO
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.