Page 3 of 5 FirstFirst 12345 LastLast
Results 31 to 45 of 66

Thread: Шейпер с приоретизацией по портам

  1. #31
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Не совсем Ваш случай, но все же любопытная идея. Здесь: http://www.voip-info.org/wiki/view/Q...g+PRIO+and+HTB автор утверждает, что он отслеживает на своей сипуре начало разговора и резко уменьшает траффик качалкам буде такой начнется и восстанавливает обратно по окончании. К сожалению, без конкретики

  2. #32
    Мысль интересная.
    Состояние Linksis/Sipura (да и многих других производителей) без проблем отслеживается простым http запросом. Вот пример вывода

  3. #33

    ASUS WL-500Gp и траффик-шейпер

    Добрый всем день.
    Купил сегодня данный девайс, но не могу найти в нем траффик-шейпера (именно резать вх/исх скорость по IP). Хотя на скринах видел в инете

    Видимо прошивку надо поменять? Есть ли какая-то, которая умеет это делать, и с Web-интерфейсом ?

  4. #34

    Траффик-шейпер с приоритетами, не работают приоритеты...

    Вот с помощью добрых людей наваял такой скриптик для ASUS WL-500gP.

    Задача:
    резать канал интернета (по PPPoE) на 3 машины (0.2 - 400Кбит/с, 0.4,0.5-128Кбит/с на обоих) с условием, что если вторые не работают, то первая забирает всю полосу. При этом, чтобы скорость доступа к модему (LAN) не резалась.
    Еще - на машине 0.2 установить приоритеты траффика от высшего к низшему: DNS, ICMP, HTTP, Other...

    Вот что получил:
    Code:
    #!/bin/sh
    
    DOWNLINK=520
    DOWN1=400
    DOWN2=110
    COMP2=192.168.0.2
    COMP3=192.168.0.4
    COMP4=192.168.0.5
    
    LANMASK=`nvram get lan_ipaddr`/24
    DEV=br0
    DEV1=ppp0
    
    # cleanup
    tc qdisc del dev $DEV root > /dev/null 2>&1
    tc qdisc del dev $DEV ingress > /dev/null 2>&1
    
    # root qdisc
    tc qdisc add dev $DEV root handle 1: htb default 1
    
    # 100 mbit default from asus
    tc class add dev $DEV parent 1: classid 1:100 htb rate 100mbit prio 1
    
    # 512kbit internet
    tc class add dev $DEV parent 1: classid 1:1 htb rate ${DOWNLINK}kbit burst 6k
    
    # default filters
    tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src $LANMASK flowid 1:100
    tc filter add dev $DEV parent 1: protocol ip prio 2 u32 match ip src 0.0.0.0/0 flowid 1:1
    
    # Classes for limit bandwidth
    tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${DOWN2}kbit ceil $(($DOWN2+30))kbit burst 6k prio 1
    tc class add dev $DEV parent 1:1 classid 1:20 htb rate ${DOWN1}kbit ceil ${DOWNLINK}kbit burst 6k prio 2
    
    # all get Stochastic Fairness:
    tc qdisc add dev $DEV parent 1:100 handle 100: sfq perturb 10
    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
    
    # Shape traffic by dst IP
    tc filter add dev $DEV parent 1:1 protocol ip prio 1 u32 match ip dst $COMP2 flowid 1:20
    tc filter add dev $DEV parent 1:1 protocol ip prio 1 u32 match ip dst $COMP3 flowid 1:10
    tc filter add dev $DEV parent 1:1 protocol ip prio 1 u32 match ip dst $COMP4 flowid 1:10
    
    # Traffic priority, prio by speed to 1:20
    tc class add dev $DEV parent 1:20 classid 1:21 htb rate $(($DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 1
    tc class add dev $DEV parent 1:20 classid 1:22 htb rate $(($DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 2
    tc class add dev $DEV parent 1:20 classid 1:23 htb rate $(($DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 3
    tc class add dev $DEV parent 1:20 classid 1:24 htb rate $(($DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 4
    
    # Fairnes to priority
    tc qdisc add dev $DEV parent 1:21 handle 21: sfq perturb 10
    tc qdisc add dev $DEV parent 1:22 handle 22: sfq perturb 10
    tc qdisc add dev $DEV parent 1:23 handle 23: sfq perturb 10
    tc qdisc add dev $DEV parent 1:24 handle 24: sfq perturb 10
    
    # Priority by port/protocol
    # DNS requests
    tc filter add dev $DEV parent 1:20 protocol ip prio 1 u32 match ip sport 53 0xffff match ip protocol 0x06 0xff flowid 1:21
    tc filter add dev $DEV parent 1:20 protocol ip prio 1 u32 match ip sport 53 0xffff match ip protocol 0x11 0xff flowid 1:21
    # ICMP
    tc filter add dev $DEV parent 1:20 protocol ip prio 1 u32 match ip protocol 0x01 0xff flowid 1:22
    # HTTP
    tc filter add dev $DEV parent 1:20 protocol ip prio 1 u32 match ip sport 80 0xffff match ip protocol 0x06 0xff flowid 1:23
    # Other traffic
    tc filter add dev $DEV parent 1:20 protocol ip prio 1 u32 match ip protocol 0 0 flowid 1:24
    
    #-------------------
    
    #Output channel
    
    # cleanup
    tc qdisc del dev $DEV1 root > /dev/null 2>&1
    tc qdisc del dev $DEV1 ingress > /dev/null 2>&1
    
    # root qdisc
    tc qdisc add dev $DEV1 root handle 1: htb default 1
    
    # 512kbit internet
    tc class add dev $DEV1 parent 1: classid 1:1 htb rate ${DOWNLINK}kbit burst 6k
    
    # default filters
    tc filter add dev $DEV1 parent 1: protocol ip prio 2 u32 match ip src 0.0.0.0/0 flowid 1:1
    
    tc class add dev $DEV1 parent 1:1 classid 1:10 htb rate ${DOWN2}kbit ceil $((DOWN2+30))kbit burst 6k prio 1
    tc class add dev $DEV1 parent 1:1 classid 1:20 htb rate ${DOWN1}kbit ceil ${DOWNLINK}kbit burst 6k prio 2
    
    # all get Stochastic Fairness:
    tc qdisc add dev $DEV1 parent 1:10 handle 10: sfq perturb 10
    #tc qdisc add dev $DEV1 parent 1:20 handle 20: sfq perturb 10
    
    # Mark packets to pass throw NAT
    iptables -t mangle -A PREROUTING -s $COMP2 -j MARK --set-mark 2
    iptables -t mangle -A PREROUTING -s $COMP3 -j MARK --set-mark 3
    iptables -t mangle -A PREROUTING -s $COMP4 -j MARK --set-mark 3
    
    # Shape traffic by MARK
    tc filter add dev $DEV1 parent 1:1 protocol ip prio 1 handle 2 fw flowid 1:20
    tc filter add dev $DEV1 parent 1:1 protocol ip prio 1 handle 3 fw flowid 1:10
    
    # Traffic priority, prio by speed to 1:20
    tc class add dev $DEV1 parent 1:20 classid 1:21 htb rate $((DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 1
    tc class add dev $DEV1 parent 1:20 classid 1:22 htb rate $((DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 2
    tc class add dev $DEV1 parent 1:20 classid 1:23 htb rate $((DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 3
    tc class add dev $DEV1 parent 1:20 classid 1:24 htb rate $((DOWN1/4))kbit ceil ${DOWNLINK}kbit burst 6k prio 4
    
    # Fairnes to priority
    tc qdisc add dev $DEV1 parent 1:21 handle 21: sfq perturb 10
    tc qdisc add dev $DEV1 parent 1:22 handle 22: sfq perturb 10
    tc qdisc add dev $DEV1 parent 1:23 handle 23: sfq perturb 10
    tc qdisc add dev $DEV1 parent 1:24 handle 24: sfq perturb 10
    
    # Priority by port/protocol
    # DNS requests
    tc filter add dev $DEV1 parent 1:20 protocol ip prio 1 u32 match ip dport 53 0xffff match ip protocol 0x06 0xff flowid 1:21
    tc filter add dev $DEV1 parent 1:20 protocol ip prio 1 u32 match ip dport 53 0xffff match ip protocol 0x11 0xff flowid 1:21
    # ICMP
    tc filter add dev $DEV1 parent 1:20 protocol ip prio 1 u32 match ip protocol 0x01 0xff flowid 1:22
    # HTTP
    tc filter add dev $DEV1 parent 1:20 protocol ip prio 1 u32 match ip dport 80 0xffff match ip protocol 0x06 0xff flowid 1:23
    # Other traffic
    tc filter add dev $DEV1 parent 1:20 protocol ip prio 1 u32 match ip protocol 0 0 flowid 1:24
    Вроде все работает, но с приоритетами по траффику какая-то проблема
    При закачке пинги выростают до нескольких тысяч, хотя у них приоритет выше. DNS тоже отвечает долго. И HTTP странно работает, вроде забирает полосу, но больше, чем надо ...

  5. #35
    Quote Originally Posted by masters View Post
    Вроде все работает, но с приоритетами по траффику какая-то проблема
    При закачке пинги выростают до нескольких тысяч, хотя у них приоритет выше. DNS тоже отвечает долго. И HTTP странно работает, вроде забирает полосу, но больше, чем надо ...
    Рекомендую на роутере посмотреть dmesg.

  6. #36
    Посмотрите правильно ли пакеты классифицируются с помощью
    Code:
    tc -s class ls dev br0
    (удалил замечания, т.к. не актуально)
    Last edited by dadittoz; 19-04-2008 at 19:39.

  7. #37
    Quote Originally Posted by dadittoz View Post
    Посмотрите правильно ли пакеты классифицируются с помощью
    Code:
    tc -s class ls dev br0
    Вот.
    Code:
    $ tc -s class ls dev br0
    class htb 1:22 parent 1:20 leaf 22: prio 2 rate 100Kbit ceil 510Kbit burst 6Kb cburst 2251b
     Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
     lended: 0 borrowed: 0 giants: 0
     tokens: 393216 ctokens: 28259
    
    class htb 1:100 root leaf 100: prio 1 rate 100Mbit ceil 100Mbit burst 132644b cburst 132644b
     Sent 54089 bytes 278 pkts (dropped 0, overlimits 0)
     rate 48bps
     lended: 278 borrowed: 0 giants: 0
     tokens: 8288 ctokens: 8288
    
    class htb 1:1 root rate 510Kbit ceil 510Kbit burst 6Kb cburst 2251b
     Sent 329523785 bytes 303442 pkts (dropped 0, overlimits 0)
     rate 18023bps 15pps
     lended: 63925 borrowed: 0 giants: 0
     tokens: 59432 ctokens: 10591
    
    class htb 1:10 parent 1:1 leaf 10: prio 1 rate 110Kbit ceil 140Kbit burst 6Kb cburst 1778b
     Sent 329260744 bytes 303089 pkts (dropped 1059, overlimits 0)
     rate 17985bps 15pps backlog 68p
     lended: 239096 borrowed: 63925 giants: 0
     tokens: -23909 ctokens: -60061
    
    class htb 1:23 parent 1:20 leaf 23: prio 3 rate 100Kbit ceil 510Kbit burst 6Kb cburst 2251b
     Sent 165914 bytes 259 pkts (dropped 0, overlimits 0)
     rate 30bps
     lended: 223 borrowed: 36 giants: 0
     tokens: 390144 ctokens: 27657
    
    class htb 1:20 parent 1:1 rate 400Kbit ceil 510Kbit burst 6Kb cburst 2251b
     Sent 236311 bytes 421 pkts (dropped 0, overlimits 0)
     rate 34bps
     lended: 40 borrowed: 0 giants: 0
     tokens: 95873 ctokens: 26352
    
    class htb 1:21 parent 1:20 leaf 21: prio 1 rate 100Kbit ceil 510Kbit burst 6Kb cburst 2251b
     Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
     lended: 0 borrowed: 0 giants: 0
     tokens: 393216 ctokens: 28259
    
    class htb 1:24 parent 1:20 leaf 24: prio 4 rate 100Kbit ceil 510Kbit burst 6Kb cburst 2251b
     Sent 70397 bytes 162 pkts (dropped 0, overlimits 0)
     rate 10bps
     lended: 158 borrowed: 4 giants: 0
     tokens: 383488 ctokens: 26352
    В DNS и Пингах - пусто

    Вечером попробую переделать скрипт, учтя все замечания...
    Last edited by masters; 19-04-2008 at 15:31.

  8. #38
    Вообще судя по статистике, вроде бы все правильно.

    Насчет ДНС я даже не знаю, может быть запросов вообще не было, а возможно 1:24 забирает себе их, надо проверить экспериментально.

    А насчет того, что хттп работает быстрее чем надо, это быстрее скольки работает? Быстрее 510кб/с? Если нет, то все правильно, rate 100Kbit ceil 510Kbit - означает, что минимальная скорость 100 кбит, а максимальная 510. Т.е. если другие классы не будут использовать скорость, то этот класс заберет неиспользумую скорость у других дочерних классов своего родителя.

    А еще попробуйте уменьшить скорость DOWNLINK. Возможно она слишком высока, и пакеты задерживаются у провайдера, а не на вашем шейпере.
    Last edited by dadittoz; 19-04-2008 at 19:09.

  9. #39
    Quote Originally Posted by dadittoz View Post
    Вообще судя по статистике, вроде бы все правильно.

    Насчет ДНС я даже не знаю, может быть запросов вообще не было, а возможно 1:24 забирает себе их, надо проверить экспериментально.
    Пардон, с ДНС - это я затупил
    Я же использую ДНС роутера, надо эту строку вообще убить!

    А вот почему в пингах пусто??? Специально все пинговал!!!

    После добавления в фильтры по приоритетам IP-адреса (по Вашему совету), что-то появилось в ICMP - очереди.
    Но всеравно при скачивании с HTTP - пинги около 1000
    Last edited by Omega; 25-12-2011 at 20:00.

  10. #40
    Попробуйте все-таки уменьшить значение DOWNLINK. Возможно реальная скорость вашего провайдера ниже, чем та, что у вас стоит в DOWNLINK. Тогда пакеты будут скапливаться у провайдера, а не на вашем рутере, это лишает вас возможности управлять их приоритетами. Поэкспериментируйте с этим значением. У меня например скорость канала 512, но я шейпер ставлю на 480.

  11. #41

    хелп

    условия:
    wl500g premium + rtorrent (192.168.0.179)
    comp1 192.168.0.101
    comp2 192.168.0.50
    по WAN подключен модем, 1 мбит скорость приема
    512 скорость отдачи
    задача:
    торент должен постоянно занимать полосу
    в случае подключения обоих компов - 1/3
    в случае подключения одного - 2/3
    когда не работает никто - 3/3
    делится и исходяший и входящий трафик
    подскажите плизз как это сделать
    заранее спасибо...

  12. #42
    Join Date
    Dec 2007
    Location
    Санкт-Петербург
    Posts
    125
    Вот здесь решена Ваша задачка только для mlDonkey. Вам нужно оттуда взять идею. И переделать управление с mlDonkey на rTorrent. И будет Вам счастье.
    Катящиеся камни не обрастают мхом...

  13. #43
    Quote Originally Posted by YAG View Post
    И будет Вам счастье.
    1) Я сильно не уверен, что в планировщик rTorrent-а можно запихнуть проверку наличия файла. Я лично не знаю как. Возможно, кто-нибудь подскажет?
    2) cron каждую минуту - это, IMHO, нехорошо. По крайней мере у меня такие фишки приводили к неприятностям с диском и к излишней загрузке роутера.
    3) Проще не мучиться, а выставить у rTorrent ограничение на скорость днем, и снимать его ночью. Эффект практически тот же, решается двумя дополнительными строками в планировщике.

  14. #44
    Join Date
    Dec 2007
    Location
    Санкт-Петербург
    Posts
    125
    Quote Originally Posted by Novik View Post
    1) Я сильно не уверен, что в планировщик rTorrent-а можно запихнуть проверку наличия файла. Я лично не знаю как. Возможно, кто-нибудь подскажет?
    Не понял при чем тут планировщик рторрента...
    Quote Originally Posted by Novik View Post
    2) cron каждую минуту - это, IMHO, нехорошо. По крайней мере у меня такие фишки приводили к неприятностям с диском и к излишней загрузке роутера.
    Согласен.
    Quote Originally Posted by Novik View Post
    3) Проще не мучиться, а выставить у rTorrent ограничение на скорость днем, и снимать его ночью. Эффект практически тот же, решается двумя дополнительными строками в планировщике.
    Снова согласен.
    Сам ограничений не выставляю. Использую шейпер. По крайней мере радио играет, инет шуршит хорошо. Он-лайн игры не тормозят.
    Катящиеся камни не обрастают мхом...

  15. #45

    Настройка портов

    Привет!

    Есть желание сделать так, чтобы пользователи с определенными IP адресами выходили в интернет через определенный порт. А этот порт был ограничен по ширине канала. Подскажите, как это можно сделать?
    И вообще, как закрыть все порты, кроме определенных все для тех же определенных IP?

    Заранее спасибо!

Page 3 of 5 FirstFirst 12345 LastLast

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
  •