Ответить
  • Батуров MemberАвтор темы
    офлайн
    Батуров Member Автор темы

    378

    20 лет на сайте
    пользователь #11542

    Профиль
    Написать сообщение

    378
    # 11 апреля 2010 18:41

    Тем не менее договор на сотрудничество с теми кто пишет прошивки они расторгли

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 11 апреля 2010 21:33
    Батуров:

    chmod +x shaper

    Чтобы сделать файл исполняемым.

  • Батуров MemberАвтор темы
    офлайн
    Батуров Member Автор темы

    378

    20 лет на сайте
    пользователь #11542

    Профиль
    Написать сообщение

    378
    # 11 апреля 2010 23:53
    svin0:

    Батуров:

    chmod +x shaper

    Чтобы сделать файл исполняемым.

    Прошу извинения за свои вопросы. Но это мои первые операции над модемом.

    Итак что я понял.

    1. Копирую содержание Вашего скрипта в блокнот.

    2. Сохраняю это в файл с именем shaper.

    3. Заливаю этот файл в папку /rwfs/init.d:

    4. Эти же операции делаю создав и заливая файл ips.txt

    5. Далее непонятки куда конкретно и как вводить команду chmod +x shaper

    6. В настройках модема включаю shaper

    7. перегружаю модем и смотрю результаты.

    Растолкуйте мне пункт 5 или что я не догоняю.

    Ваш покорный ученик.:)

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 12 апреля 2010 10:09

    Зайдите через telnet и выполните

    код выделить все
    chmod +x /rwfs/init.d/shaper
  • Батуров MemberАвтор темы
    офлайн
    Батуров Member Автор темы

    378

    20 лет на сайте
    пользователь #11542

    Профиль
    Написать сообщение

    378
    # 15 апреля 2010 09:03

    Вроде бы получилось. Теперь смотрю, что изменилось.

    Большое спасибо svin0 за терпение и помощь.

  • Herr_Oberst Junior Member
    офлайн
    Herr_Oberst Junior Member

    51

    14 лет на сайте
    пользователь #218907

    Профиль
    Написать сообщение

    51
    # 16 апреля 2010 15:09

    Бальшое, прибальшое СПАСИБО!!!! :)))))

  • andgon Senior Member
    офлайн
    andgon Senior Member

    3082

    22 года на сайте
    пользователь #1670

    Профиль
    Написать сообщение

    3082
    # 19 апреля 2010 00:46

    делал ли кто:

    имеем byfly тариф плюс1 (по траффику). и 4 компа в сети со стат. адресами

    надо прошить 2 соединения в модем, для 3х - доступ в платник и гость - в 1 - только гость.

    можно ли такое и как реализовать.

    версия 2

  • BASHORG Junior Member
    офлайн
    BASHORG Junior Member

    35

    14 лет на сайте
    пользователь #240458

    Профиль
    Написать сообщение

    35
    # 23 апреля 2010 12:48
    код выделить все
    #!/bin/sh

    # Переменные:
    SHAPER_SUPPORT=`flash get SHAPER_ENABLE | cut -f 2- -d =`
    LOG="logger -t init.d"

    # ppp0 - платник, ppp1 - гость.
    OUTIFACE0=ppp0
    OUTIFACE1=ppp1

    # В кбит/с
    # ----------------------------------------------------------------
    # Максимальная скорость входящего платного:
    BDOWN_PL=2048
    # Максимальная суммарная скорость входящего:
    BDOWN=4096
    #tc filter add dev br0 parent 1:0 protocol ip prio 3 u32 match ip dst 192.168.72.251 flowid 1:27 - вроде бы пользователей добавил, как мне кажется даже правильно, только вот как добавить ещё один, класс, у которого приоритет будет ниже, чем у остальных (серв-файлокачалщик)
    # ----------------------------------------------------------------

    start() {
    if [ "$SHAPER_SUPPORT" = "on" ]; then

    $LOG "Start shaper and stop nat fastpath..."
    echo 0 > /proc/FastPath

    LAN_IP_ADDR=`flash get LAN_IP_ADDR | cut -f 2- -d =`
    #LAN_IP_ADDR2=`flash get LAN_IP_ADDR2 | cut -f 2- -d =`

    #-----------------CLEAR-----------------
    tc qdisc del dev br0 root 2> /dev/null
    tc qdisc del dev $OUTIFACE0 root 2> /dev/null
    tc qdisc del dev $OUTIFACE1 root 2> /dev/null
    tc qdisc del dev $OUTIFACE0 ingress 2> /dev/null
    tc qdisc del dev $OUTIFACE1 ingress 2> /dev/null

    #-----------------INCOMING-----------------
    $LOG "All incoming $OUTIFACE0 rate: $BDOWN_PL (kbit/s)"
    $LOG "All incoming $OUTIFACE1 rate: $BDOWN (kbit/s)"

    tc qdisc add dev br0 root handle 1: htb default 0

    tc class add dev br0 parent 1: classid 1:1 htb rate 90mbit quantum 1500 burst 500k

    tc class add dev br0 parent 1:1 classid 1:2 htb rate ${BDOWN}kbit quantum 1500 burst 100k
    tc class add dev br0 parent 1:1 classid 1:3 htb rate 80mbit ceil 90mbit prio 0 quantum 1500 burst 100k

    tc class add dev br0 parent 1:2 classid 1:20 htb rate ${BDOWN_PL}kbit prio 2 quantum 1500
    let "BDOWN_RATE = $BDOWN - $BDOWN_PL"
    tc class add dev br0 parent 1:2 classid 1:30 htb rate ${BDOWN_RATE}kbit ceil ${BDOWN}kbit prio 1 quantum 1500

    let "BDOWN_PL_MIN = $BDOWN_PL / 7"
    tc class add dev br0 parent 1:20 classid 1:21 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 2 quantum 1500
    tc class add dev br0 parent 1:20 classid 1:22 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 2 quantum 1500
    tc class add dev br0 parent 1:20 classid 1:23 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 2 quantum 1500
    tc class add dev br0 parent 1:20 classid 1:24 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 2 quantum 1500
    tc class add dev br0 parent 1:20 classid 1:25 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 2 quantum 1500
    tc class add dev br0 parent 1:20 classid 1:26 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 2 quantum 1500
    tc class add dev br0 parent 1:20 classid 1:27 htb rate ${BDOWN_PL_MIN}kbit ceil ${BDOWN_PL}kbit prio 3 quantum 1500

    let "BDOWN_MIN = $BDOWN_RATE / 7"
    tc class add dev br0 parent 1:30 classid 1:31 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500
    tc class add dev br0 parent 1:30 classid 1:32 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500
    tc class add dev br0 parent 1:30 classid 1:33 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500
    tc class add dev br0 parent 1:30 classid 1:34 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500
    tc class add dev br0 parent 1:30 classid 1:35 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500
    tc class add dev br0 parent 1:30 classid 1:36 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500
    tc class add dev br0 parent 1:30 classid 1:37 htb rate ${BDOWN_MIN}kbit ceil ${BDOWN}kbit prio 1 quantum 1500

    tc qdisc add dev br0 parent 1:3 handle 3: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:21 handle 21: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:22 handle 22: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:23 handle 23: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:24 handle 24: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:24 handle 25: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:24 handle 26: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:24 handle 27: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:31 handle 31: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:32 handle 32: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:33 handle 33: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:34 handle 34: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:35 handle 34: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:36 handle 34: esfq perturb 10 hash dst quantum 1500
    tc qdisc add dev br0 parent 1:37 handle 34: esfq perturb 10 hash dst quantum 1500

    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.72.1 flowid 1:21
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.72.2 flowid 1:22
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.72.3 flowid 1:23
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.72.8 flowid 1:24
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.72.9 flowid 1:25
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.72.10 flowid 1:26
    tc filter add dev br0 parent 1:0 protocol ip prio 3 u32 match ip dst 192.168.72.251 flowid 1:27

    for IPS in `cat /rwfs/init.d/ips.txt`
    do
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.1 flowid 1:31
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.2 flowid 1:32
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.3 flowid 1:33
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.8 flowid 1:34
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.9 flowid 1:35
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.10 flowid 1:36
    tc filter add dev br0 parent 1:0 protocol ip prio 1 u32 match ip src $IPS match ip dst 192.168.72.251 flowid 1:37
    done

    tc filter add dev br0 parent 1:0 protocol ip prio 0 u32 match ip src $LAN_IP_ADDR flowid 1:3

    #-----------------BRIDGE-----------------
    ifconfig br0 txqlen 100

    else
    $LOG "Shaper disabled by user."
    fi
    }

    stop() {
    stop() {
    tc qdisc del dev br0 root 2> /dev/null
    tc qdisc del dev $OUTIFACE0 root 2> /dev/null
    tc qdisc del dev $OUTIFACE1 root 2> /dev/null
    tc qdisc del dev $OUTIFACE0 ingress 2> /dev/null
    tc qdisc del dev $OUTIFACE1 ingress 2> /dev/null
    }

    case "$1" in
    start)
    start
    ;;

    stop)
    stop
    ;;

    restart)
    stop
    start
    ;;

    *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 1
    esac

    пытался отредактировать скрипт под себя, ТП домосед за 150тыс, 6 юзеров с равными приоритетами и серв с более низким приоритетом, не смог вкурить как добавить ещё один класс, с более низким приоритетом, если не сложно, то проверьте, что есть и подскажите, как добавить класс.

  • BASHORG Junior Member
    офлайн
    BASHORG Junior Member

    35

    14 лет на сайте
    пользователь #240458

    Профиль
    Написать сообщение

    35
    # 24 апреля 2010 09:38

    и ещё один глупый вопрос подключаюсь к модему по телнету и попадаю в меню, где можно вводить только цифры для перемещения по этому меню, где или как ввести "chmod +x /rwfs/init.d/shaper"

  • Mr.Smith Senior Member
    офлайн
    Mr.Smith Senior Member

    837

    16 лет на сайте
    пользователь #99530

    Профиль
    Написать сообщение

    837
    # 24 апреля 2010 17:51

    у меня в принципе есть доступ к модему v3, могу при желании забрать

    в чем задача-то конкретно стоит?

    если задача написать шейпер по честному делению канала по ИП адресам и при это впилить его в встроенные скрипты, то нужно:

    1. Выяснить, где ставятся метки.

    2. Выставить метки в правилах iptables.

    3. Раскидать полученный трафик по классам, используя метки.

    4. Задать политики шейпинга трафика.

    Нужны примеры, могу помочь, если что.

    IMHO.
  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 24 апреля 2010 19:30

    Вроде бы в /rwfs/init.d/iptables. Без меток будет достаточно.

  • BASHORG Junior Member
    офлайн
    BASHORG Junior Member

    35

    14 лет на сайте
    пользователь #240458

    Профиль
    Написать сообщение

    35
    # 25 апреля 2010 13:45

    Так, svin0, подскажите как добавить ещё один приоритет?

    Вроде бы в /rwfs/init.d/iptables. Без меток будет достаточно.

    если это мне,то я поясните я не понял).

    Mr.Smith, меня интересует:

    1. Возможность назначения приоритетов для IP адресов и нарезка скорости исходя из этих приоритетов.

    2. Разрешение/запрет определённых ресурсов для IP адресов

    3. Ограничение доступа/скорости по достижению лимита трафика.

    sfstudio

    Не зарегестрирован на онлайнере. Пните там народу что /rwfs/init.d/shaper это симлинк на /rwfs/rc.d/S11shaper и менять нужно последний файл а не символическую ссылку. Если заменить только симлинк будет каша при загрузке.

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 25 апреля 2010 15:09

    Вот оно что. Надеюсь, владельцы модемов заметили симлинк. В Debian наоборот, симлмнки в rc*.d.

    Повторю еще раз, у меня нет этого модема, так что пользуйтесь скриптом осторожно, а лучше допишите под себя :)

    BASHORG, создайте еще одну ветку, присвоив требуемую скорость и начав обработку с этого класса или окончив этим классом в зависимости от потребностей.

  • BASHORG Junior Member
    офлайн
    BASHORG Junior Member

    35

    14 лет на сайте
    пользователь #240458

    Профиль
    Написать сообщение

    35
    # 28 апреля 2010 16:33

    я это и хочу, но не знаю как, объясните, если не сложно

    вот эти строчки

    код выделить все
    tc qdisc add dev br0 root handle 1: htb default 0

    tc class add dev br0 parent 1: classid 1:1 htb rate 90mbit quantum 1500 burst 500k

    tc class add dev br0 parent 1:1 classid 1:2 htb rate ${BDOWN}kbit quantum 1500 burst 100k
    tc class add dev br0 parent 1:1 classid 1:3 htb rate 80mbit ceil 90mbit prio 0 quantum 1500 burst 100k

    tc class add dev br0 parent 1:2 classid 1:20 htb rate ${BDOWN_PL}kbit prio 2 quantum 1500
    let "BDOWN_RATE = $BDOWN - $BDOWN_PL"
    tc class add dev br0 parent 1:2 classid 1:30 htb rate ${BDOWN_RATE}kbit ceil ${BDOWN}kbit prio 1 quantum 1500

    и ещё раз повторюсь "chmod +x /rwfs/init.d/shaper" где прописать.

    Если не сложно, то объясните как для тупого, желание разобраться есть, но всё кажется таким не подъёмным и не понятным.

  • Herr_Oberst Junior Member
    офлайн
    Herr_Oberst Junior Member

    51

    14 лет на сайте
    пользователь #218907

    Профиль
    Написать сообщение

    51
    # 7 мая 2010 22:24

    Тут http://ddixlab.ru/forum/viewtopic.php?t=1464&highlight=w422gv3

    sfstudio, попросил сообщение кидануть(правда уже с опозаднием в месяц получилось) может это кому чего сказало:

    Не зарегестрирован на онлайнере. Пните там народу что /rwfs/init.d/shaper это симлинк на /rwfs/rc.d/S11shaper и менять нужно последний файл а не символическую ссылку. Если заменить только симлинк будет каша при загрузке.

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 7 мая 2010 23:45

    Пару сообщениями ранее обсуждалось.

  • BASHORG Junior Member
    офлайн
    BASHORG Junior Member

    35

    14 лет на сайте
    пользователь #240458

    Профиль
    Написать сообщение

    35
    # 13 мая 2010 10:04

    Ну что всё забросили?

  • Mr.Smith Senior Member
    офлайн
    Mr.Smith Senior Member

    837

    16 лет на сайте
    пользователь #99530

    Профиль
    Написать сообщение

    837
    # 19 мая 2010 13:50

    Ну что всё забросили?

    не дождетесь...

    тут намедни налабал статью в порыве вдохновения, браузер глюкнул и все пропало

    от злости ничего и не писал долго

    вот версия 0.2 :rotate:

    ===========================================================

    Для начала немного теории:

    qdisc - дисциплина (queue discipline) - это алгоритм работы с очередями, в данном случае применяется алгоритм HTB - hierarchical token bucket

    br0 - интерфейс моста (bridge) - это мост между eth0 и ppp0

    class - это класс трафика, просто некая категория, которую лично вы определили для себя, например, http-трафик, p2p-трафик

    filter - это правило, которое определяет, по какому критерию выделять из всего потока данных нужный нам трафик и запихивать его в класс

    иерархия классов - это дерево, у которого есть корень (ваш полный канал), и ветви - это классы скоростей, определенных для классов

    теперь комментарии к строкам:

    tc qdisc add dev br0 root handle 1: htb default 0

    определить корневую (root) дисциплину обработки очереди по алгоритму htb, весь трафик, который не будет обработан явно указанными вами фильтрами, попадет в класс с номером 0 (default 0), лучше не ноль, а что-нить другое, просто номер самого низкоприоритетного класса

    tc class add dev br0 parent 1: classid 1:1 htb rate 90mbit quantum 1500 burst 500k

    задаем первый класс, rate - это полная ширина канала, берется на 5-10% меньше реальной ширины, это нужно для того, чтобы создать очередь пакетов _на нужном нам_ интерфейсе, этот факт нужно понять

    представьте себе плотину на реке, построенную, чтобы управлять потоком воды, тут цель аналогичная

    tc class add dev br0 parent 1:1 classid 1:2 htb rate ${BDOWN}kbit quantum 1500 burst 100k

    tc class add dev br0 parent 1:1 classid 1:3 htb rate 80mbit ceil 90mbit prio 0 quantum 1500 burst 100k

    rate - это максимальная величина скорости потока из класса-родителя, с которой будет "истекать" очередь

    ceil - гарантированная скорость класса-родителя (нарисуйте на бумажке дерево и прочитайте эту фразу еще раз)

    prio - приоритет потока, значение от 0 до 7, то есть всего 8

    tc class add dev br0 parent 1:2 classid 1:20 htb rate ${BDOWN_PL}kbit prio 2 quantum 1500

    let "BDOWN_RATE = $BDOWN - $BDOWN_PL"

    tc class add dev br0 parent 1:2 classid 1:30 htb rate ${BDOWN_RATE}kbit ceil ${BDOWN}kbit prio 1 quantum 1500

    кому что непонятно?

    писать примеры просто лень, если кто отважится разобраться хотя бы в этом и составит конкретный пример на 2-3 класса, я помогу составить скрипт, но с нуля писать не буду :evil:

    признаком того, что кто-то прочитал и понял, буду считать первый самый правильный вопрос, на который я совершенно не дал никакого ответа

    да, вот такой вот я лентяй :D

    ===========================================================

    IMHO.
  • Odyssey_ua Neophyte Poster
    офлайн
    Odyssey_ua Neophyte Poster

    3

    13 лет на сайте
    пользователь #266011

    Профиль
    Написать сообщение

    3
    # 21 мая 2010 17:41

    хотелось бы реализовать вот это

    Равномерное распределение трафика между lan1/lan3/lan4/wi-fi

    Если один или несколько lan (lan1, lan3, lan4) и/или wi-fi не задействованы, то весь трафик для upload и download распределить, как: 100%-lan2(128кбит/с) поровну между задействованными.

    Распределение между соединениями для lan1, lan3, lan4 и wi-fi: torrent (prio9), http/ftp (prio2), email (prio1),Skype (prio0) - по приоритетам, если что-то не задействовано, распределять между остальными. Гарантировано выделить:

    Skype = 256 кбит/с на up и down.

    email = 512 кбит/с на up и down

    http/ftp = 2048 кбит/с на up и на down = 512 кбит/с

    Torrent = вся полоса, если другие не задействованы

    Torrent для lan1, lan3, lan4 и wi-fi используют порты: XXXXX, XXXXX+1, XXXXX+2, соответственно для lan1, lan3, lan4

  • purler Member
    офлайн
    purler Member

    434

    18 лет на сайте
    пользователь #46543

    Профиль
    Написать сообщение

    434
    # 22 мая 2010 10:51

    Odyssey_ua, Можно нескромный вопросик.. Сколько компов в сети?

    4 компа с торрентами пусть даже по 50 сессий и смерть железке будет уже без всяких шейперов. Уж извините, но тут ведь простенькая железка, а по картинке вы целые сетки цепляете и это уже совсем другие требования к железу.