IP Config - DHCP Server
Enable Manual Assignment? Yes
Manually Assigned IP List
...
...
IP Config - DHCP Server
Enable Manual Assignment? Yes
Manually Assigned IP List
...
...
Intel 2200BG (v.9.0.4.39) + Asus WL500g Premium (1.9.2.7-10.7) + ONLIME / [Corbina L2TP] / [MGTS + ZTE 831AII]
Intel 2200BG (v.9.0.4.39) + Asus WL500g Premium (1.9.2.7-10.7) + ONLIME / [Corbina L2TP] / [MGTS + ZTE 831AII]
присоединяюсь к вопросу
это какие то проблемы в настройках трафик-шейпера
после чего они появились? как запускаете wshaper? или какие данные вводили в раздел Bandwidth Management вебморды?
вот, точно я настройки шейпера делал:
из стандартного веб интерфейса (Олега прошивка)
собтсвенно и туда и обратно прописал порт с одиноковыми ширинами каналов
150-450 kbit/s
ip указал единственного компа в "сети" ( на него фиксированный адрес DHCP по макадресу выставлен )
Наведите на правильную мысль.
К wl-500w подключен компьютер и xbox (и куча всего по фай-вай), но интересует ограничение скорости по порту ethernet. Ставлю на закачку через сервис Live Xbox демо версии игр для племяша, так он забивает мой не быстрый 500кбитный канал под 100%.
Прошивка Олега.
Какой софт использовать для ограничения скорости на встроенном хабе на определенном порте Ethernet? Спасибо.
http://info.iet.unipi.it/~luigi/dummynet/#bin
Набрел на такое. Может интересно кому будет. Там же есть собранные бинарники под роутер.
Вдохновленный решением от nil из этого поста и, так и не сумев скомпилировать утилиту xmlrpc, подсмотрел решение здесь.
Вот что получилось:
rtshaper
XML файлы имеют следующее содержание:Code:#!/bin/sh PATH=/opt/bin:/opt/sbin:/usr/bin:/sbin:/bin:/usr/sbin last= rate= while true; do fwd=`iptables -t filter -L FORWARD -v -x -n | tail -n 5 | head -n 1 | awk '{print($2)}'` if [ "$fwd" == "$last" ]; then if [ ! -z "$rate" ]; then rate= wget -q --no-check-certificate --post-file=/opt/etc/shaper/down_up -O - http://127.0.0.1:8081/RPC2 wget -q --no-check-certificate --post-file=/opt/etc/shaper/upl_up -O - http://127.0.0.1:8081/RPC2 fi sleep 2 else last="$fwd" if [ -z "$rate" ]; then rate=1 wget -q --no-check-certificate --post-file=/opt/etc/shaper/down_dn -O - http://127.0.0.1:8081/RPC2 wget -q --no-check-certificate --post-file=/opt/etc/shaper/upl_dn -O - http://127.0.0.1:8081/RPC2 fi sleep 8 fi done
down_dn
down_upCode:<?xml version="1.0" encoding="UTF-8"?> <methodCall> <methodName>set_download_rate</methodName> <params> <param> <value> <string>10k</string> </value> </param> </params> </methodCall>
upl_dnCode:<?xml version="1.0" encoding="UTF-8"?> <methodCall> <methodName>set_download_rate</methodName> <params> <param> <value> <string>0</string> </value> </param> </params> </methodCall>
upl_upCode:<?xml version="1.0" encoding="UTF-8"?> <methodCall> <methodName>set_upload_rate</methodName> <params> <param> <value> <string>10k</string> </value> </param> </params> </methodCall>
Запускается как в источнике вдохновения:Code:<?xml version="1.0" encoding="UTF-8"?> <methodCall> <methodName>set_upload_rate</methodName> <params> <param> <value> <string>0</string> </value> </param> </params> </methodCall>
rtshaper </dev/null >/dev/null 2>&1 &
Теперь хотелось бы сделать из этого скрипта демона с возможностью запуска-останова из rc.unslung при рестарте и выключении роутера...
Last edited by Siddha; 04-08-2009 at 14:10.
Вдохновленный идеями от nil и Siddha, описаными ими в этой теме здесь и здесь. Я решил развить эту идею.
Моя идея состоит в том, что скорость rTorrent'а будет ограничиваться не только фактом наличия форвардного трафика, но и регулироваться в заданом диапазоне в зависимости от количества форвардного трафика. Кроме того, скрипт не будет постоянно крутиться в бескончном цикле, а будет запускаться самим rTorrent'ом с заданной периодичностью.
Ниже, я опишу, как я настраивал свой роутер, чтобы работал мой скрипт rt-shaper.sh. По аналогии и скорее всего с незначительными изменениями вы сможите сделать тоже самое.
Значит так. Предполагается, что роутер (ASUS wl-500gP или совместимый) уже прошит олеговской прошивкой и проведена начальная настройка до rTorrent. Кроме того, должны стоять следующие утилиты: tail, head, awk, wget. Если чего из этого нет, то отправляемся ищем темы по начальной настройке и настраиваем все, что нужно. Кроме того, понадобится утилита sudo, для того, чтобы скрипт смог работать под пользователем p2p, от имени которого стартует rTorrent.
Sudo
У меня rTorrent работает от имени пользователя p2p. Поскольку этот пользователь бесправный, то он не сможет запускать этот скрипт. Точнее скрипт он запустит, а вот обратиться к iptables - не сможет. Для того чтобы обойти эту неприятность и ставится sudo. Ставим:
После установки, находим конфиг sudo (/opt/etc/sudoers) и правим его. Самый ПРАВИЛЬНЫЙ способ править конфиг sudo - это использовать утилиту visudo. Дело в том, что перед записью исправленного конфига visudo в начале проверяет его на корректность и если все нормально, то сохраняет его. А если находит ошибки - то не сохраняет. Итак, набираем в консоле:Code:ipkg install sudo
Вот мой конфиг sudo. Строки которые я исправлял, отмечены красным:Code:[admin@IGORROUTER root]$ visudo
Пользователя root я закомментарил, и добавил пользователя admin, аналогичного root.Code:# sudoers file. # # This file MUST be edited with the 'visudo' command as root. # Failure to use 'visudo' may result in syntax or file permission errors # that prevent sudo from running. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # Defaults specification # Runas alias specification # User privilege specification # root ALL=(ALL) ALL admin ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now p2p IGORROUTER = (admin) NOPASSWD: /usr/sbin/iptables Defaults:p2p runas_default = admin Defaults:admin runas_default = admin
Указал, что пользователь p2p может запускать на моем роутере (IGORROUTER) утилиту iptables без пароля.
Пользователем по умолчанию для p2p назначен admin. Также и для пользователя admin, назначен пользователь admin, иначе sudo пытается использовать пользователя root, которого нет. Узнать имя роутера можно при помощи hostname. Набираем в консоле:
и видим имя своего роутера. Заменяем IGORROUTER на имя своего роутера.Code:[admin@IGORROUTER root]$ hostname IGORROUTER
Кратко, команды, которые я использовал при правке конфига в visudo:
- клавиша <Insert> - перейти в режим редактирования;
- клавиша <Ecs> - выйти из режима редактирования;
- ":w" - сохранить конфиг;
- ":q" - выйти из visudo;
- ":wq" - сохранить конфиг и выйти из visudo.
Сам скрипт и описание как он работает в следующем сообщении.
Last edited by igor77777; 16-09-2009 at 19:44.
[ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];
продолжение этого сообщения.
Скрипт rt-shaper.sh
Скрипт rt-shaper.sh предназначен для автоматической регилировки скачки/отдачи bittorrent-клиентом rTorrent в зависимости от наличия и количества трафика проходящего через роутер. Другими словами, если форвардного(проходящего через роутер на клиентов в вашей сети) трафика через роутер нет, то rTorrent, установленный на роутер, не ограничивается. Если же форвардный трафик есть, то скорость скачки/отдачи ограничивается. Более того, и скорость скачки, и скорость отдачи изменяется в заданном интервале в зависимости от количества форвардного трафика.
Я рекомендую скрипт ставить в отдельный каталог. У меня он стоит в /opt/etc/rt-shaper
На данный каталог нужно дать права пользователю p2p. У меня в качестве группы для каталога указана p2p и группе даны права на чтение(r), запись(w) и выполнение(x).
Далее, нужно место, где будут храниться значения, которые должны сохраняться между запусками скрипта. Поскольку, при каждом запуске скрипта, туда что-то пишется, лучше это место завести не на флешке, а на винте. У меня винт смонтирован в /home, а на нём я создал подкаталог var и ещё подкаталог rtorrent. Таким образом, каталог с временными файлами имеет такой вид: /home/var/rtorrent
На него тоже нужно дать права на запись пользователю p2p. У меня права на этот каталог совпадают с правами на /home/var/rtorrent
Скрипт /opt/etc/rt-shaper/rt-shaper.sh я приложил к сообщению.
Переменные скрипта, которые возможно прийдется поменять под себя:
RTSHAPER= - каталог, в котором лежит сам скрипт
VARCAT= - каталог временных файлов
LOGFILE= - логфайл
В каталог /opt/etc/rt-shaper можно положить файл с настройками, которые будут использоваться в работе скрипта. Файл rt-shaper.conf
Можно конфиг и не ложить, а задать все необходимые значения прямо в скрипте.Code:min_uprate=50; # минимальный upload rate rTorrent в килобайтах. Скорость будет уменьшаться до него, но не ниже min_dlrate=10; # минимальный download rate rTorrent в килобайтах. Скорость будет уменьшаться до него, но не ниже step_rate=10; # шаг изменения rate в килобайтах max_uprate=70; # максимальный upload rate rTorrent в килобайтах. При появлении форвардного трафика будет выставлен именно он. При дальнейшем росте форвардного трафика rate будет уменьшаться вплоть для min_uprate max_dlrate=50; # максимальный download rate rTorrent в килобайтах. При появлении форвардного трафика будет выставлен именно он. При дальнейшем росте форвардного трафика rate будет уменьшаться вплоть для min_dlrate max_count_change_rate=5; # максимально количество пропущенных изменений rate. После этого количества rate будет изменен по любому interval_rate=7; # частота точнее интервал, в секундах, с которой дергается скрипт. Должен совпадать с тем, что указано в конфиге rTorrent enable_log=0; # признак ведения лога 0-не вести лог. 1-вести лог, 2-вести подробный лог, 3-лог с промежуточными переменными
Параметры: min_uprate, min_dlrate, max_uprate, max_dlrate, step_rate - задаются в килобайтах и зависят от скорости вашего интернета (У меня сейчас скорость такая: download = 777 килобит, upload = 824 килобит). Т.е. сейчас, при наличии форвардного трафика скорость скачки будет гулять в интервале между 10 килобайтами и 50 килобайтами, а скорость отдачи между 50 килобайтами и 70 килобайтами с шагом в 10 килобайтами.
Параметр: interval_rate - должен совпадать с тем значением, которое будет указано для шедулера rTorrent, который будет запускать скрипт.
Подключение скрипта к rTorrent
Для подключения скрипта к rTorrent, нужно добавить одну строчку в конфиг rTorrent.
У меня конфиг rTorrent лежит в /opt/etc/rtorrent.conf
Добавляем туда строку:
Здесь: 15 - задержка, в секундах, после которой rTorrent начнет запускать скрипт на выполнение. 7 - интервал, в секундах, с которым rTorrent будет запускать скрипт, должен совпадать с параметром interval_rate из rt-shaper.conf.Code:schedule = rtshaper,15,7,execute=/opt/etc/rt-shaper/rt-shaper.sh
Вот собственно и все. Надеюсь, что я ни чего не пропустил.
Last edited by igor77777; 16-09-2009 at 19:43.
[ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];
К роутеру через fiwi подключены два компьютера.
но такая проблема. если один из них начинает качать что-то к примеру из торрена. то весь траффик берет на себя и скорость у другого падает.
Как сделать так чтобы если канал свободен можно было его по максимуму нагружать.
но если к примеру я в это время что то тоже хочу сделать.
а другой качает по максимуму, то скорость распределилось между двумя компьютерами
Посмотрите в поиске по слову QoS например.
Было: WL500gP (fw 1.9.2.7-10-USB-1.71) + Toshiba TravelStar 250Gb 2.5" inside router.
(ADOS + rTorrent WebUI+rtorrent + samba + rrdtool + XMail + QuiXplorer + ClamAV)
> Мои инструкции < Для новичков и ленивых > Wiki переехало сюда < "Ночные" сборки >