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

    378

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

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

    378
    # 8 апреля 2010 21:32

    svin0, purler, Отлично. Спасибо за помощь. Я постараюсь четко изложить одну типовую задачу. Пятница - суббота.

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

    378

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

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

    378
    # 9 апреля 2010 09:33

    Есть неплохая программа Acorp монитор.

    Программа визуально показывает трафик по каждому IP подключенному к модему

    Но эта программа с данной версией модема не работает. И это плохо.

    Я модем acorp я выбрал лишь по одной причине, это возможность включения шейпера. Но как оказалось на практике настроить шейпер для человека на уровне продвинутого пользователя оказалось сложной задачей. Все решается закачкой соответствующего скрипта. Может можно написать программу с хорошим интерфейсом, доступным для понимания большинства пользователей, которая бы формировала и закачивала ответствующий скрипт в модем.

    А потом действия этого скрипта можно было бы наблюдать с помощью этой же программы. Это была бы суперпрограмма.

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

    51

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

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

    51
    # 9 апреля 2010 09:51

    to purler, svin0:

    сейчас канал на ByFly, разрешено расширять лишь имея тариф "СуперДомосед"(up/down - 512/2048), так что если Батуров не расширил его ранее - у нас должен быть канал одинаковый (512/2048). Остается различие лишь в тарифных планах: у меня - «Домосед XXL»(512/1024), у Батурова - «Домосед плюс»(512/512).

    Количество действующих компов ~4.

    Существующий шейпер - имеет в своей основе глобальное деление, и зачастую, это проверенно на практике, его работу можно охаректиризовать, как очень сомнительная. Проще говоря, если кто либо, что нибудь начинает качать, остальные, практически, сасут палец...

    Модем держит два соединения: Гость, платник. В итоге, если использовать на оба соединения одну настройку шейпера, гость зачастую начинает перекрывать платник. Хотелось бы каждое из соединений шейпить отдельно.

    ----------------------------------------------------------------------------------------------------------------------

    Чтобы стало более понятно приведу пример:

    по моей ситуации

    число компов: ~4

    общий канал: 512/2048

    платник: 512/1024

    значит для платника уже имеем:

    Maximum download rate: ~1024

    Limit download rate: ~256

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

    2048-1024=1024, отсюда для гостя получаем

    Maximum download rate: ~1024

    Limit download rate: ~256

    ----------------------------------------------------------------------------------------------------------------------

    Для батурова, получается следующее:

    (количество действующих компов он не указал, поэтому приведу также цифру 4)

    общий канал: 512/2048

    платник: 512/512

    платник:

    Maximum download rate: ~512

    Limit download rate: ~128

    гость:

    Maximum download rate: ~1536

    Limit download rate: ~384

    ----------------------------------------------------------------------------------------------------------------------

    Получается такая задача:

    1. разделить общий канал download rate на два соединения(Maximum download rate) I. платник=платник, II. гость=общий канал - платник

    2. шейпить каждое соединение со своими настройками(Limit download rate)

    3. так как Upstream Speed не поднимается как для канала, так и для любого тарифа выше 512 - шейпить Upstream Speed для всех соединений и компов поровну

    И будет всем счастье....:jump:

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

    378

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

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

    378
    # 9 апреля 2010 10:02

    Постановка задачи N1

    Существующая ситуация.

    Есть некое количество компьютеров подключенных к модему. Учитывая, что при серфинге сайтов торможение инета практически незаметно, а торможение возникает лишь при закачке файлов, было принято выделить один компьютер для коллективного использования его для закачки. Доступ к этому компьютеру для управления закачками осуществляется с помощью таких распространенных программ как Radmin.

    Надо.

    Необходимо при отсутствии пользователей в сети этому компьютеру выделялся весь канал. При появлении активности кого-либо пользователя этот компьютер бы получал 30% от всей пропускной способности канала. 70% шла бы проявившему активность компьютеру. При появлении двух компьютеров 30% качающему компьютеру и 35% этим двум компьютерам и так далее.

    Исходные данные

    К – количество компьютеров в сети

    T – процентное соотношение выделения трафика для качающего компьютера в нашем примере 30%

    Постановка задачи N2

    Существующая ситуация.

    Все компьютеры в сети пользуются инетом. Но один активно, другой не очень, третий слабо. Каждую неделю снимается статистика с модема по потребленному трафику.

    Надо.

    После анализа потребленного трафика распределить загрузку канала.

    T1 первого компьютера

    T2 для второго и т.д.

    Например. Пять компьютеров сети При равном распределении каждый должен получить 20% трафика. После анализа трафика трафик можно распределить так 30%-25%-20%-15%-10%. И конечно при отсутствии кого-либо в сети весь трафик в этой пропорции делился на остальных.

    Постановка задачи N3

    Инет раздается всем одинаково, но модем блокирует закачки с 23-00 до 9-00

    Это верно как для платника, так и для гостя.

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

    3378

    15 лет на сайте
    пользователь #139193

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

    3378
    # 9 апреля 2010 11:09

    внутренний ресур качается на 8 мБитах, остальной инет - 1 мБит согласно договора... Надобности в чем-то сильно отличающемся от стандартного я не вижу

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

    вопрос прост- если у меня 2 мегабита гостя+ 2 мегабита инэта, то при прописывании в вэбе 4мегабит и делении его на всех не учитывается направление траффика и я могу занять скачкой( если вдвоем например сидим) 2 мегабита платки, а второй комп получит "чесно" только 2 мегабита гостя, вместо отобрания 1 мегабита инэта у меня. а гость вообще может и простаивать. его мне например шейпить не обязательно- он на радио в основном идет.

    кому еще не понятно что надо??

    ну и может еще статическую величину раздаваемого канала по ип сделать... а самый лучший вариант выбора кому статический, кому динамический...:D

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

    3378

    15 лет на сайте
    пользователь #139193

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

    3378
    # 9 апреля 2010 11:11

    так как Upstream Speed не поднимается как для канала, так и для любого тарифа выше 512 - шейпить Upstream Speed для всех соединений и компов поровну

    у меня мегабит...:jump:

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

    6763

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

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

    6763
    # 9 апреля 2010 12:59

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

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

    Для начала покажите вывод команды

    код выделить все
    ifconfig && ls /bin && ls /sbin

    Текста будет много, пользуйтесь сервисом pastebin.

    Все скорости и адреса будут задаваться переменными в начале скрипта, в вебе останется только включение/отключение. Исходящий будем считать 512Кбит/с для всех юзеров и всех интерфейсов, под платник или гость отводится либо часть, либо всё.

    А пока проверьте работу этого скрипта.

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

    35

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

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

    35
    # 9 апреля 2010 14:35

    а возможно ли сделать лимит для определённого мак/ип адреса по трафику, т.е. при достижении N кол-ва гигов у него критично урезается скорость или вообще отключается инет.

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

    51

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

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

    51
    # 9 апреля 2010 14:42

    to svin0,

    результат выполнения команды:

    ifconfig && ls /bin && ls /sbin

    http://pastebin.com/download.php?i=XXBGND5Z

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

    51

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

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

    51
    # 9 апреля 2010 15:14

    по поводу скрипта от svin0, кто-нибудь займитесь...., а то мне уже на смену собираться надо

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

    6763

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

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

    6763
    # 9 апреля 2010 19:17

    Herr_Oberst, спасибо.

    BASHORG:

    а возможно ли сделать лимит для определённого мак/ип адреса по трафику, т.е. при достижении N кол-ва гигов у него критично урезается скорость или вообще отключается инет.

    Можно создать коллектор трафика при помощи iptables и нескольких скриптов. При достижении определенного значения обнулять счетчик и применять требуемые правила. В интернете много вариантов.

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

    6763

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

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

    6763
    # 9 апреля 2010 21:04

    Новый скрипт целиком:

    код выделить все

    #!/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=256
    # Максимальная суммарная скорость входящего:
    BDOWN=2048
    # ----------------------------------------------------------------

    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 / 4"
    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

    let "BDOWN_MIN = $BDOWN_RATE / 4"
    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 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: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 filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.1.2 flowid 1:21
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.1.3 flowid 1:22
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.1.4 flowid 1:23
    tc filter add dev br0 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.1.5 flowid 1:24

    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.1.2 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.1.3 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.1.4 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.1.5 flowid 1:34
    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

    Остальные локальные адреса должны быть заблокированы, т.к. трафик будет идти на максимальной скорости.

    Еще надо создать файл ips.txt в /rwfs/init.d:

    код выделить все

    86.57.151.0/27
    86.57.253.1/32
    193.232.248.79/32
    193.232.248.80/32
    82.209.245.151/32
    194.158.206.240/32
    194.158.206.241/32
    194.158.206.246/32
    194.158.202.59/32
    82.209.195.15/32
    86.57.250.0/23
    86.57.246.0/24
    93.84.112.0/21
    178.124.128.0/22
    91.149.189.0/25
    91.149.189.128/26
    93.125.53.0/24
    91.149.157.0/25
    91.149.157.192/26
    194.158.199.177/32

    Писал скрипт с учетом шейпинга исходящего, но так и не дописал. Слишком много тонкостей при делении скорости на тарифах с x/256. Частное решение может быть, универсальное с переменными - слишком объемное, с проверками результата. Не составит труда настроить исходящий по аналогии, но с разделением между OUTIFACE0 и OUTIFACE1.

    Думаю, примеров хватает. Теперь можете настроить шейпинг под себя :)

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

    378

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

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

    378
    # 10 апреля 2010 19:14

    Уважаемый svin0 позвольте по задавать наиглупейшие вопросы.

    Итак, исходный данные

    Вчера переключились на Домосед XXL

    Это исходящий 512 и входящий 1024

    Появилось пять компьютеров сети. со статическими адресами 192.168.127.2 – 6

    Модем имеет адрес 192.168.127.1

    Задача максимально упрощенная хотелось чтобы весь трафик делился динамически на все 5 компьютеров.

    Распишите пожалуйста по шагам.

    1.Какие настройки для этого примера сделать в web настройках модема.

    Вкладки QoS Classification и QoS Simple shaper

    2. Каким образом заливать код скрипта в модем.

    3. Как предусмотреть возврат к прежнему состоянию, если что не так.

    Потом постараюсь все аккуратно проделать.

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

    6763

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

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

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

    1.Какие настройки для этого примера сделать в web настройках модема.

    2. Каким образом заливать код скрипта в модем.

    3. Как предусмотреть возврат к прежнему состоянию, если что не так.

    QoS Classification скорее всего не понадобится. В QoS Simple shaper для скрипта нужно включить шейпер. 2 и 3 - WinSCP.

    Так как адресов больше, то придется править скрипт.

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

    378

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

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

    378
    # 11 апреля 2010 10:35

    svin0,

    Продолжение вопросов. Как я понял WinSCR обычный клиент для закачки файлов в модем.

    Можно ли воспользоваться для этой цели Total Commanderom

    Приведенный скрипт надо загнать в файл. И поместить его в папку

    /rwfs/init.d:

    Вопрос. Какое имя файла и расширение должно быть.

    В эту же папку забрасывается и файл ips.txt

    После заброски файлов как активировать команду скрипта?

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

    6763

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

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

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

    Можно ли воспользоваться для этой цели Total Commanderom

    Если через ftp/smb либо с соответствующим плагином, то да.

    Батуров:

    Вопрос. Какое имя файла и расширение должно быть.

    Имя shaper.

    код выделить все
    chmod +x shaper

    Батуров:

    После заброски файлов как активировать команду скрипта?

    Через веб и перезагрузить.

  • otievy Member
    офлайн
    otievy Member

    320

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

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

    320
    # 11 апреля 2010 14:55
    svin0:

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

    ...

    :-?во-во...поэтому производитель никогда не будет заморачиваться этим

    ...это чтобы иллюзий не было, что производитель озаботится раздачей слонов писюкам в сети за модемом, да еще в динамике...динамика была и останется для ограничения трафика по типу и на atm-уровне в любых xDSL-модемах согласно QoS

    ...ну исходя из этого остается либо юзать прокси (разбираться придется самим...саночки возить:)) или куплять недорогой управляемый свитч (типа DLINK) c возможностью резки на ethernet портах и менеджмент интерфейсом понятным для обезьяны...и все это в статике будет.

    p.s. последнее пользуют в soho и не дурят себе голову:super:...да и свитч не шумит и энергии мало жрет:super:

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

    378

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

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

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


    Код: chmod +x shaper

    Через веб и перезагрузить.

    Как я понял в командной строке модемного терминала после загрузки скрипта ввести эту команду chmod +x shaper Потом черех веб интерфейс включить шейпер и перегрузить модем.

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

    378

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

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

    378
    # 11 апреля 2010 15:14
    otievy:

    svin0 :

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

    ...

    во-во...поэтому производитель никогда не будет заморачиваться этим

    Глупый и недалекий производитель, отдаст рынок другим. Которые или математику для модема напишут толковую и тех поддержку организует.

    А acorp.ru судя по сайту мрачная контора. Там нет даже описания новых модемов, да и информация очень сильно устарела.

    DLinkи и Asus Скоро вытяснят их с этого рынка.

  • otievy Member
    офлайн
    otievy Member

    320

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

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

    320
    # 11 апреля 2010 15:27
    Батуров:

    ...Глупый и недалекий производитель, отдаст рынок другим. Которые или математику для модема напишут толковую и тех поддержку организует...

    :Dкитайские товарищи неглупые и ненедалекие и рынком модемным владеют, выпуская простые и дешевые хардварные решения с недософтом, зная что кому надо будет доводить до ума сам, тратя свое время и бесплатно (мизерное %число), большинство съест и так, а кто то найдет гибридное решение, докупив недостающее, помогая тем же товарищам захватывать рынок дешевым хардваром...:super: