Page 2 of 8 FirstFirst 1234 ... LastLast
Results 16 to 30 of 112

Thread: Настройка QoS для чайника (распределение трафика в WL500gP)

  1. #16
    А если жена качает с ftp? 80 порт? А если ещё и скайп трафик жрёт? На все порты не напасёшься правил, да и все порты не предусмотришь. Или не прав?

  2. #17
    Quote Originally Posted by romanchenko View Post
    режу ноуту жены 80 порт до 25кб/с (весь канал 500кб/с, если шейпить до 50кб/с - появляются лаги) - для серфа достаточно и моему пингу не мешает.
    Ээээ.. Такие пропорции - прямая угроза браку.

  3. #18

    Red face

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

  4. #19
    Опать всё встало, ни ответа, ни привета. Что, никто не настраивал, что-ли?

  5. #20
    Quote Originally Posted by Sorin_j View Post
    Опать всё встало, ни ответа, ни привета. Что, никто не настраивал, что-ли?
    Значит не настраивал. Нет, ну я в принципе представляю себе как и что написать, и как работают всякие шейперы тоже знаю (рекомендуемое чтиво на эту тему - linux advanced routing howto, гуглится на ура). Но готового скрипта у меня нет. В принципе там всего и надо-то два класса на CBQ и фильтр отсекающий зажимаемые адреса. Да, шейпить надо, конечно, br0, а не ppp0/vlan1.

  6. #21
    Вот так. Хочешь сделать ограничения трафика- предлагают изучить систему рутинга в линуксе. А дальнейшая часть повествовани (про скрипты и СBQ/vlan) тоже не для чайников писана...

  7. #22
    У меня стоит шейпер на основе предложенного тут. Я не очень понимаю как он работает если его вешают на входящий интерфейс, но я его немного видоизменил, и вешаю на br0. Вроде бы работает. В связи с тем, что он вешается не на внешний интерфейс, а на внутренний, downlink и uplink поменяны местами, т.е. в данном скрипте uplink - это скорость входящего соединения, а downlink - исходящего. Хотя исходящий даже не важен в этом скрипте, у меня он не используется.

    Мой модифицированный вариант
    /opt/bin/myshaper
    Code:
    #!/bin/sh
    
    # Wonder Shaper, last modified by Robert Koch (aka akbor)
    #
    # Set the following values to somewhat less than your actual download
    # and uplink speed. In kilobits. Also set the device that is to be shaped.
    
    DOWNLINK=10000
    UPLINK=475
    DEV=$2
    
    # low priority OUTGOING traffic - you can leave this blank if you want
    # low priority source netmasks
    NOPRIOHOSTSRC="$3"
    
    # low priority destination netmasks
    NOPRIOHOSTDST="$4"
    
    # low priority source ports
    NOPRIOPORTSRC="$5"
    
    # low priority destination ports
    NOPRIOPORTDST="$6"
    
    # high priority destination netmasks
    HIGHPRIOHOSTDST="$7"
    
    # high priority destination netmasks
    HIGHPRIOHOSTSRC="$8"
    
    # high priority source ports
    HIGHPRIOPORTSRC="$9"
    
    # high priority destination ports
    HIGHPRIOPORTDST="$10"
    
    if [ "$1" = "status" ]
    then
        tc -s qdisc ls dev $DEV
        tc -s class ls dev $DEV
        exit
    fi
    
    # clean existing down- and uplink qdiscs, hide errors
    tc qdisc del dev $DEV root    2> /dev/null > /dev/null
    tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
    
    if [ "$1" = "stop" ] 
    then 
        exit
    fi
    
    ########## uplink ##########
    
    # install root HTB, point default traffic to 1:20:
    tc qdisc add dev $DEV root handle 1: htb default 20
    
    # shape everything at $UPLINK speed - this prevents huge queues in your
    # DSL modem which destroy latency:
    tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit \
       ceil ${UPLINK}kbit burst 6k
    
    tc class add dev $DEV parent 1: classid 1:2 htb rate 100mbit \
       ceil 100mbit
    
    
    # high prio class 1:10 - gets 50 to 100% traffic and highest priority:
    tc class add dev $DEV parent 1:1 classid 1:10 htb rate $((5*$UPLINK/10))kbit \
       ceil ${UPLINK}kbit burst 6k prio 1
    
    # bulk & default class 1:20 - gets 40 to 100% traffic and lower priority: 
    tc class add dev $DEV parent 1:1 classid 1:20 htb rate $((4*$UPLINK/10))kbit \
       ceil ${UPLINK}kbit burst 6k prio 2
    
    # lowest priority class 1:30 - gets 10 to 100% traffic and lowest priority:
    tc class add dev $DEV parent 1:1 classid 1:30 htb rate $((1*$UPLINK/10))kbit \
       ceil ${UPLINK}kbit burst 6k prio 3 quantum 1500
    
    # all get Stochastic Fairness:
    tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
    tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
    tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
    
    
    # LAN - UNLIMITED
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
       match ip src 192.168.3.1/32 \
       flowid 1:2
    
    # high priority for VoIP traffic (by TOS)
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
       match ip tos 0x68 0xff \
       match ip protocol 0x11 0xff \
       flowid 1:10
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
       match ip tos 0xb8 0xff \
       match ip protocol 0x11 0xff \
       flowid 1:10
    
    # high priority for VoIP traffic (by source port)
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
       match ip sport 5004 0xffff \
       match ip protocol 0x11 0xff \
       flowid 1:10
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
       match ip sport 5060 0xffff \
       match ip protocol 0x11 0xff \
       flowid 1:10
       
    # TOS Minimum Delay (ssh, NOT scp) in 1:10:
    tc filter add dev $DEV parent 1:0 protocol ip prio 3 u32 \
       match ip tos 0x10 0xff \
       flowid 1:10
        
    # ICMP (ip protocol 1) in the interactive class 1:10 so we 
    # can do measurements & impress our friends:
    tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 \
       match ip protocol 1 0xff \
       flowid 1:10
    
    # To speed up downloads while an upload is going on, put ACK packets in
    # the interactive class:
    #tc filter add dev $DEV parent 1: protocol ip prio 2 u32 \
    #   match ip protocol 6 0xff \
    #   match u8 0x05 0x0f at 0 \
    #   match u16 0x0000 0xffc0 at 2 \
    #   match u8 0x10 0xff at 33 \
    #   flowid 1:10
    
    # more highpriotraffic
    for a in $HIGHPRIOPORTDST
    do
    echo HIGHPRIO DST PORT $a
        tc filter add dev $DEV parent 1: protocol ip prio 3 u32 \
           match ip dport $a 0xffff flowid 1:10
    done
    
    for a in $HIGHPRIOPORTSRC
    do
    echo HIGHPRIO SRC PORT $a
        tc filter add dev $DEV parent 1: protocol ip prio 3 u32 \
           match ip sport $a 0xffff flowid 1:10
    done
    
    for a in $HIGHPRIOHOSTSRC
    do
        tc filter add dev $DEV parent 1: protocol ip prio 3 u32 \
           match ip src $a flowid 1:10
    done
    
    for a in $HIGHPRIOHOSTDST
    do
        tc filter add dev $DEV parent 1: protocol ip prio 3 u32 \
           match ip dst $a flowid 1:10
    done
    
    # some traffic however suffers a worse fate
    for a in $NOPRIOPORTDST
    do
    echo NOPRIO DST PORT $a
        tc filter add dev $DEV parent 1: protocol ip prio 14 u32 \
           match ip dport $a 0xffff flowid 1:30
    done
    
    for a in $NOPRIOPORTSRC
    do
    echo NOPRIO SRC PORT $a
        tc filter add dev $DEV parent 1: protocol ip prio 15 u32 \
           match ip sport $a 0xffff flowid 1:30
    done
    
    for a in $NOPRIOHOSTSRC
    do
    echo NOPRIO HOST SRC $a
        tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \
           match ip src $a flowid 1:30
    done
    
    for a in $NOPRIOHOSTDST
    do
    echo NOPRIO HOST DST $a
        tc filter add dev $DEV parent 1: protocol ip prio 17 u32 \
           match ip dst $a flowid 1:30
    done
    
    # rest is 'non-interactive' ie 'bulk' and ends up in 1:20
    #tc filter add dev $DEV parent 1: protocol ip prio 1 u32 \
    #   match ip dst 0.0.0.0/0 flowid 1:20
    
    ########## downlink ##########
    
    # slow downloads down to somewhat less than the real speed  to prevent 
    # queuing at our ISP. Tune to see how high you can set it.
    # ISPs tend to have *huge* queues to make sure big downloads are fast
    #
    # attach ingress policer:
    #tc qdisc add dev ppp0 handle ffff: ingress
    
    # filter *everything* to it (0.0.0.0/0), drop everything that's
    # coming in too fast:
    #tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
    #   0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
    #tc filter add dev ppp0 parent ffff: protocol ip prio 50 u32 match ip sport \
    #   6882 0xffff police rate 256kbit burst 10k drop flowid :1
    Запускать так
    /opt/bin/myshaper start br0 "внешние_АДРЕСА_с_НИЗКИМ_приоритетом" "внутренние_АДРЕСА_с_НИЗКИМ_приоритетом" "внешние_ПОРТЫ_с_НИЗКИМ_приоритетом" "внутренние_ПОРТЫ_с_НИЗКИМ_приоритетом" "внешние_АДРЕСА_с_ВЫСОКИМ_приоритетом" "внутренние_АДРЕСА_с_ВЫСОКИМ_приоритетом" "внешние_ПОРТЫ_с_ВЫСОКИМ_приоритетом" "внутренние_ПОРТЫ_с_ВЫСОКИМ_приоритетом"

    Я например вызываю из /usr/local/sbin/post-firewall
    /opt/bin/myshaper start br0 "" "" "" "6667" "" "" "22 5190 6112" ""

    Это уменьшает приоритет для входящего трафика на порт 6667 (там у меня висит торрент), а также ставит высокий приоритет для SSH, ICQ, GuildWars

  8. #23
    Quote Originally Posted by dadittoz View Post
    /opt/bin/myshaper start br0 "" "" "" "6667" "" "" "22 5190 6112" ""

    Это уменьшает приоритет для входящего трафика на порт 6667 (там у меня висит торрент), а также ставит высокий приоритет для SSH, ICQ, GuildWars
    Рекомендую добавить DNS.

  9. #24
    dadittoz не мог бы ты обьяснить чайнику как все то что ты написал поставить в маршуртизатор

  10. #25
    Попробую На всякий случай пишу в случае, если у вас нет внешнего диска у рутера.

    1) Зайти на рутер через ssh или telnet как в первом сообщении в этой теме
    Если вы не выполнялии инструкции по первоначальной настройке, запустите это:
    Code:
    mkdir -p /usr/local/sbin/
    echo "#!/bin/sh" >> /usr/local/sbin/post-boot
    cp /usr/local/sbin/post-boot /usr/local/sbin/post-firewall
    cp /usr/local/sbin/post-boot /usr/local/sbin/post-mount
    cp /usr/local/sbin/post-boot /usr/local/sbin/pre-shutdown
    chmod +x /usr/local/sbin/p*
    2) скачать файл скрипта myshaper (я тут его временно выложил)
    Code:
    wget http://www.humanscore.com/tmp/myshaper -O /usr/local/sbin/myshaper
    поставить права на запуск для него
    Code:
    chmod +x /usr/local/sbin/myshaper
    отредактировать
    Code:
    vi /usr/local/sbin/myshaper
    нажать i
    исправить строчки, сделать так чтобы значение DOWNLINK соответсвовало исходящей скорости вашего канала в интернет, а UPLINK входящей в килобитах
    Code:
    DOWNLINK=10000
    UPLINK=475
    после исправления нажать
    Code:
    Esc
    :w
    :q
    файл должен сохраниться, а вы оказаться в коммандной строке
    3) Добавить вызов myshaper в /usr/local/sbin/post-firewall
    Code:
    vi /usr/local/sbin/post-firewall
    Вставить строчку (аналогично пункту 2)
    Это пример для того чтобы уменьшить приоритет для порта 6667, а также увеличить для 22 53 5190. Если нужно что-то другое, смотрите мой предыдущий пост с описанием параметров, или пишите здесь, попробуем придумать для вашего случая.
    Code:
    /usr/local/sbin/myshaper start br0 "" "" "6667" "" "" "" "22 53 5190 6112" ""
    Описание параметров смотрите в предыдущем сообщении. Сохранить, выйти.
    4) Сохранить изменения во флэш.
    Code:
    flashfs save
    flashfs commit
    flashfs enable
    5) Перезагрузить рутер
    Code:
    reboot
    или запустить post-firewall
    Code:
    /usr/local/sbin/post-firewall
    Last edited by dadittoz; 18-04-2008 at 01:16.

  11. #26
    УРА! Приступим.
    1. [admin@WL-001731xxxx41 root]$ wget http://www.humanscore.com/tmp/myshaper -O /usr/local/sbin/myshaper
    wget: /usr/local/sbin/myshaper: No such file or directory

    Хорошо, попробуем так:
    1a. cd ..
    1b. [admin@WL-001731xxxx41 /]$ wget http://www.humanscore.com/tmp/myshaper -O /usr/local/sbin/
    Connecting to www.humanscore.com[66.98.222.101]:80
    sbin 100% |*****************************| 5849 00:00 ETA

    Что-то куда-то загрузилось.
    Дальше-то что?

  12. #27
    Что-то мне кажется, что там несколько папок /sbin, попытался создать файл в одной- пишет, что файловая система read-only...
    И ещё при выводе команды ls названия выводятся разным цветом- синим, голубым, серым (Putty, telnet). Что-бы это значило?

  13. #28
    Видимо вы не выполняли инструкции по первоначальной настройке.

    И не модифицируйте команды пожалуйста на свой вкус Запустив
    Code:
    wget http://www.humanscore.com/tmp/myshaper -O /usr/local/sbin/
    вы создали файл /usr/local/sbin. Теперь его надо удалить, если вы не перезагружали рутер или запускали команды flashfs save и т.д.

    Удаляем файл на всякий случай. Если выдаст ошибку, ничего страшного, значит этого файла нет
    Code:
    rm /usr/local/sbin
    После этого выполните эти команды:
    Code:
    mkdir -p /usr/local/sbin/
    echo "#!/bin/sh" >> /usr/local/sbin/post-boot
    cp /usr/local/sbin/post-boot /usr/local/sbin/post-firewall
    cp /usr/local/sbin/post-boot /usr/local/sbin/post-mount
    cp /usr/local/sbin/post-boot /usr/local/sbin/pre-shutdown
    chmod +x /usr/local/sbin/p*
    По поводу цвета: светло голубым показываются ссылки на файлы, зеленым запускаемые файлы, синим каталоги, серым просто файлы.

    Насчет read-only файловой системы все правильно, у вас не получится создать файлы в каталоге /sbin, /bin и т.д. Только в каталоге /tmp. Да и там файлы при перезагрузке удалятся, если их не сохранить с помощью комманд flashfs. Если вы запустите ls -al /usr, то увидите, что каталог /usr/local по сути является ссылкой на каталог /tmp/local. И поэтому там у вас получится создать файл в /usr/local/sbin, и если вы сохраните его с помощью команд flashfs, то он будет восстанавливаться после перезагрузки.
    Last edited by dadittoz; 18-04-2008 at 01:36.

  14. #29
    Ну конечно, никакие ssh-сервера я не настраивал. Никто не просил.
    Но по указанной ссылке действовать тоже не получается:
    [admin@WL-001731xxxx41 root]$ mkdir -p /usr/local/sbin/
    mkdir: Cannot create directory `/usr/local/sbin/': Not a directory
    Вот так пока...

    P.S. О, чудо! Я допёр! Сначала я попобовал так:
    [admin@WL-001731xxxx41 root]$ mkdir -p /usr/local/sbin
    mkdir: Cannot create directory `/usr/local/sbin': File exists
    Ага! Это тот "sbin", который я создал командой "wget http://www.humanscore.com/tmp/myshaper -O /usr/local/sbin/" . Удаляем его:
    [admin@WL-001731xxxx41 root]$ rm /usr/local/sbin
    Пробуем делать директорию:
    [admin@WL-001731xxxx41 root]$ mkdir -p /usr/local/sbin/
    [admin@WL-001731xxxx41 root]$
    Ура, пока получается. Роем дальше...
    Last edited by Sorin_j; 18-04-2008 at 16:52.

  15. #30
    В общем, всё получилось. Но когда оно всё получилось, я понял: меня опять развели. В первом сообщении писал: "Задача: обладая минимальным опытом работы с Linux, настроить ограничения по скачиванию с WAN для компьютеров внутренней сети (для примера, с IP 192.168.1.3, 192.168.1.72, 192.168.1.115)."
    Тут, заметьте, нет ни слова про порты. Это потому, невозможно выяснять, _по какому порту_ происходят соединения с компьютеров в моей внутренней сети. Нужно ограничить трафик ПО ВСЕМ ПОРТАМ. Не должно быть никакого дела, по каким портам кто сегодня качает инфу. Там могут быть и просмотр видео с youtube, и торрент-клиент, и Skype, и QIP, и FTP, и ещё 65000 портов. И что, все их вносить в myshaper???

Page 2 of 8 FirstFirst 1234 ... LastLast

Similar Threads

  1. httptunnel - http тунелирование на роутере
    By Ujeen in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 52
    Last Post: 08-02-2011, 19:03
  2. Настройка ASUS WL500gP для сети Матрица
    By Messir in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 23
    Last Post: 09-09-2007, 20:38

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •