The OpenNET Project / Index page

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

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

"Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 02-Мрт-09, 09:07 
вообщем имеется debian с 2-мя сетевыми интерфейсами,один получает интернет eth0,другой раздает на несколько компьтеров eth1,стоит dhcp сервер,интренет раздается простым способом
#############################
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
###############################
понадобилось  урезать исходящую и входящую скорость каждому компьютеру в 1024 кбит,
нашел скрипт
###############################
#!/bin/sh
#
# Simple init.d shell script that can to modified to fit your favorite distro
#
# All Rates are in Kbits, so in order to gets Bytes divide by 8
# e.g. 25Kbps == 3.125KB/s
#
TC=/sbin/tc
DNLD=1024Kbit   # DOWNLOAD Limit
DWEIGHT=1024Kbit # DOWNLOAD Weight Factor ~ 1/10 of DOWNLOAD Limit
UPLD=1024KBit    # UPLOAD Limit
UWEIGHT=1024Kbit  # UPLOAD Weight Factor

tc_start() {
    $TC qdisc add dev eth1 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
    $TC class add dev eth1 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
    $TC filter add dev eth1 parent 11:0 protocol ip handle 4 fw flowid 11:1

    $TC qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000 mpu 64
    $TC class add dev eth0 parent 10:0 classid 10:1 cbq rate $UPLD weight $UWEIGHT allot 1514 prio 1 avpkt 1000 bounded
    $TC filter add dev eth0 parent 10:0 protocol ip handle 3 fw flowid 10:1
}

tc_stop() {
    $TC qdisc del dev eth1 root
    $TC qdisc del dev eth0 root
}

tc_restart() {
    tc_stop
    sleep 1
    tc_start
}

tc_show() {
    echo ""
    echo "eth0:"
    $TC qdisc show dev eth0
    $TC class show dev eth0
    $TC filter show dev eth0
    echo ""

    echo "eth1:"
    $TC qdisc show dev eth1
    $TC class show dev eth1
    $TC filter show dev eth1
    echo ""
}

case "$1" in
    start)
        echo -n "Starting bandwidth shaping: "
        tc_start
        echo "done"
        ;;

    stop)
        echo -n "Stopping bandwidth shaping: "
        tc_stop
        echo "done"
        ;;

    restart)
        echo -n "Restarting bandwidth shaping: "
        tc_restart
        echo "done"
        ;;

    show)
        tc_show
        ;;

    *)
        echo "Usage: /etc/init.d/tc.sh {start|stop|restart|show}"
        ;;
esac

exit 0
###########################
маркировка пакетов
###########################
iptables -t mangle -A FORWARD -s 192.168.1.0/24 -j MARK --set-mark 3
iptables -t mangle -A FORWARD -s ! 192.168.1.0/24 -d 192.168.1.0/24 -j MARK --set-mark 4
###########################
в итоге получилось что это 1024 кбит делятся между всеми компьтерами,а нужно  чтоб у каждого было 1024 кбита,помогите пожалуйста это реализовать

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

 Оглавление

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


1. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 02-Мрт-09, 21:14 
А сколько dhcp клиентов? Если не много то может быть легче попробывать реализовать это с помощью cbq?
скачайте вот от сюда https://sourceforge.net/projects/cbqinit
кидаем скрипт в /etc/init.d/
далее в /etc/sysconfig создаём (если её там нет) директорию cbq
туда кидаем файлики c именами типа cbq-1001.user1DOWN
в нем
DEVICE=eth1,100Mbit,10Mbit
RATE=1024Kbit
WEIGHT=128Kbit
PRIO=5
RULE=192.168.0.1/32

далее если нужно ограничить и исходящий трафик то можно маркировать все пакеты через iptables в цепочке mangle вот так

iptables -t mangle -A FORWARD -s 192.168.0.1 -j MARK --set-mark 1001

и также создать еще один файл в /etc/sysconfig/cbq  cbq-1002.user1UP следующего содержания

DEVICE=eth0,100Mbit,10Mbit
RATE=1024Kbit
WEIGHT=128Kbit
BOUNDED=yes
PRIO=5
MARK=1001

далее делаем
/etc/init.d/cbq.init compile
/etc/init.d/cbq.init start
вставляем это в автозагрузку.
В данном примере eth1 локалка eth0 интерфейс каторый смотри в инет.
И так для каждого клиента.Возможно и есть вариант указать в конфиге чтоб он сразу на всю сеть одним правилом ограничел для каждого компа но я такого варианта незнаю(пусть подправят меня гуру).Если ваш диапазон ip адресов выдаваемых dhcp сервисом не очень большой то попробуйте данную схему.

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

2. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 03-Мрт-09, 09:12 
диапазон не большой,спасибо,сейчас попробую
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 03-Мрт-09, 09:41 
попробывал,все сделал как вы написали,опять при проверке 1024 кбит делится на 2(проверял на 2 машинах )результат тот же,в чем может быть ошибка?

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

4. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 03-Мрт-09, 11:01 
>попробывал,все сделал как вы написали,опять при проверке 1024 кбит делится на 2(проверял
>на 2 машинах )результат тот же,в чем может быть ошибка?

а сколько у вас входящий канал? и проверьте конфиги номер правил должны быть разные вот пример имен
cbq-1001.user1DOWN
cbq-1002.user1UP
cbq-1003.user2DOWN
cbq-1004.user2UP
cbq-1005.user3DOWN
cbq-1006.user3UP
и т.д
эта связка 100% рабочая посмотрите что выдает после /etc/init.d/cbq.init compiler и restart ???

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

5. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 03-Мрт-09, 11:34 
видимо потому что я назвал файлы неправильно
cbq-1001.user1DOWN
cbq-1001.user1UP
cbq-1001.user2DOWN
cbq-1001.user2UP
cbq-1001.user3DOWN
cbq-1001.user3UP

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

6. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 03-Мрт-09, 12:00 
>видимо потому что я назвал файлы неправильно
>cbq-1001.user1DOWN
>cbq-1001.user1UP
>cbq-1001.user2DOWN
>cbq-1001.user2UP
>cbq-1001.user3DOWN
>cbq-1001.user3UP

исправили заработало?

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

7. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 03-Мрт-09, 14:54 
>исправили заработало?

да заработало,большое спасибо


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

8. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 03-Мрт-09, 14:54 
а можно выставить разную скорость на разные ресурсы?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 03-Мрт-09, 18:42 
>а можно выставить разную скорость на разные ресурсы?

конечно можно вот лучше сразу прочитайте ато обьяснять у меня хуже получаеться чем делать) http://www.opennet.ru/base/net/cbq_rus.txt.html
там много что еще можно рад был памочь.

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

10. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 04-Мрт-09, 07:27 
посмотрите на правильном ли я пути,допустим весь интернет нужно ограничить 1024 кб а определенный диапазон к примеру(91.151.254.0/26)10 мбит,я создаю правила
####################
cbq-1001.user1(1Mbit)DOWN
####################
DEVICE=eth1,100Mbit,10Mbit
RATE=1024Kbit
WEIGHT=128Kbit
PRIO=5
RULE=192.168.1.50/32
####################
cbq-1002.user1(10Mbit)DOWN
DEVICE=eth1,100Mbit,10Mbit
RATE=10Mbit
WEIGHT=1Mbit
PRIO=5
RULE=192.168.1.50/32,91.151.254.0/26
#####################
получится так или нет?


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

11. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 04-Мрт-09, 12:09 
>[оверквотинг удален]
>RULE=192.168.1.50/32
>####################
>cbq-1002.user1(10Mbit)DOWN
>DEVICE=eth1,100Mbit,10Mbit
>RATE=10Mbit
>WEIGHT=1Mbit
>PRIO=5
>RULE=192.168.1.50/32,91.151.254.0/26
>#####################
>получится так или нет?

вроде все правильно но лучше поменяйте правила местами тот что был 1001 сделайте 1002 и наоборот 1002 в 1001 кароче сначала обрежте на 10метров а вторым правилом на 1м.

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

12. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 04-Мрт-09, 13:02 
а не получится что обрезанием на 1м,обрежется все


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

13. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 04-Мрт-09, 14:17 
>а не получится что обрезанием на 1м,обрежется все

проверил так и получилось,попробывал наоборот результат тот же,обрезается все 1м...

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

14. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 04-Мрт-09, 19:37 
>>а не получится что обрезанием на 1м,обрежется все
>
>проверил так и получилось,попробывал наоборот результат тот же,обрезается все 1м...

проведитн краш тест будет видно = ) но по идеи недолжно

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

15. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 04-Мрт-09, 20:29 
>>>а не получится что обрезанием на 1м,обрежется все
>>
>>проверил так и получилось,попробывал наоборот результат тот же,обрезается все 1м...
>
>проведитн краш тест будет видно = ) но по идеи недолжно

я попробывал оба варианта,сначало резать 10 потом 1 и наоборот,все равно все 1 ограничивается ((....

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

16. "Помогите разобраться с шейпером"  +/
Сообщение от sonkilla (ok) on 05-Мрт-09, 10:04 
>>>>а не получится что обрезанием на 1м,обрежется все
>>>
>>>проверил так и получилось,попробывал наоборот результат тот же,обрезается все 1м...
>>
>>проведитн краш тест будет видно = ) но по идеи недолжно
>
>я попробывал оба варианта,сначало резать 10 потом 1 и наоборот,все равно все
>1 ограничивается ((....

попробуйте для того айпи каторому нужно дать 10 метров создать отдельное правила на исходящем интерфейсе

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

17. "Помогите разобраться с шейпером"  +/
Сообщение от lemm email(ok) on 05-Мрт-09, 13:08 
>попробуйте для того айпи каторому нужно дать 10 метров создать отдельное правила
>на исходящем интерфейсе

возможно мы друг друга не понимаем,мне нужно к определенным сетям ограничить скорость в 10 метров а ко всем остальным в 1м

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

18. "Помогите разобраться с шейпером"  +/
Сообщение от Mr_Dee (??) on 11-Мрт-09, 19:05 
не проще было бы просто всё через tc написать ?
(а то этот огород городить жуть) .
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

19. "Помогите разобраться с шейпером"  +/
Сообщение от lemm (ok) on 23-Мрт-09, 15:39 
>не проще было бы просто всё через tc написать ?
>(а то этот огород городить жуть) .

подскажите  пожалуйста как это реализовать на примере

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

20. "Помогите разобраться с шейпером"  +/
Сообщение от lemm (ok) on 23-Май-09, 21:10 
кто нибудь может помоч?

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

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

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




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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