PDA

Bekijk de volledige versie : Шейпер с приоретизацией по портам



indlg0
02-12-2006, 10:48
Добрый день, Друзья!

Искал на форуме ответ, но положительных результатов это не дало, потому прошу о помощи!

Исходные:
Dev: Wl500g Premium
Firmware Version: 1.9.2.7
Firmware Release: 1.9.2.7-7f

Задача: Порезать входящий трафик из условий: Что бы на каждый LAN уходило 256 КБит минимум, т.е. гарантированно, а максимум 1 МБит, когда другие LAN не используют сеть.

Вот такую задачку поставил сам себе...

Вопрос. КАК это можно сделать?!:confused:

Oleg
02-12-2006, 13:17
С ЛАН портами наверное можно, но тяжеловато. Вот с Ip Адресами - попроще...

indlg0
02-12-2006, 14:21
С ЛАН портами наверное можно, но тяжеловато. Вот с Ip Адресами - попроще...

Спаибо, что откликнулся :)

Я пробовал штатными средствами через Вебфейс... результат непонятен был.

Схема делитантская, если что поправь пожалуйста:
1. настраиваем тригер таким образом, что бы все, что приходит из вне на определенный ИП (в ЛАНе) сваливалось в один порт (взял 80 за основу)
2. Настраиваем ширину канала для заданного ИП мин. и макс. с привязкой на порт 80
3. смотрим результат при скачивании фильма (проверенно быстрый хост)...

Результат не совсем понятен... При указании малых значений ширины канала, закачивание либо слишком медленное, и не сопоставимо с заданными цифрами на самом роутере. И только при более или менее крупных значений, от 10-15 КБит скорость адекватная, но как то, все равно не сопоставимо, но теперь в сторону увеличения, т.е. больше заданного значения.

Логика есть в моих домыслах?

Замер делал на "скорую руку" штатными средстави Вин ХР. (тикер - число байт переданных-принятых в интервале времени)

AlexeyA
30-03-2007, 02:18
Была задача - поделить 128 кбит на 5 пользователей предоставляя каждому как минимум 24 кбита (фактически делить полосу поровну между всеми работающими компьютерами). Кроме того была задача уменьшить потерю пакетов у провайдера.

Решение:

Железо - маршрутизатор asus wl-500g Premium с прошивкой 1.9.2.7-7f (2006-11-06) http://oleg.wl500g.info/

Родной bandwidth management надо отрубить в панели управления.

----------------------------------
Создать /usr/local/sbin
Там создать
-rwxr-xr-x post-firewall
-rwxr-xr-x wshaper

----------------------------------
содержание post-firewall:
#!/bin/sh
/usr/local/sbin/wshaper start vlan0 120 120

----------------------------------
содержание wshaper (оригинальный скрипт лежит в /sbin)
#/bin/sh
# Wonder Shaper
# please read the README before filling out these values
#
# 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=$3
UPLINK=$4
DEV=$2

#echo Please read the documentation in 'README' first
#exit

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:99:
tc qdisc add dev $DEV root handle 1: htb default 99

# root class 1
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.0.254)
tc class add dev $DEV parent 1:1 classid 1:2 htb rate 100mbit
tc qdisc add dev $DEV parent 1:2 handle 2: sfq perturb 10
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
match ip src 192.168.0.254 flowid 1:2

# internet traffic subclass 10
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
ceil ${UPLINK}kbit

# internet traffic subclasses 11, 12, 13,... for each client IP
tc class add dev $DEV parent 1:10 classid 1:11 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:12 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:13 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:14 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:15 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:99 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2

# creating quques for each class
tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
tc qdisc add dev $DEV parent 1:14 handle 14: sfq perturb 10
tc qdisc add dev $DEV parent 1:15 handle 15: sfq perturb 10
tc qdisc add dev $DEV parent 1:99 handle 99: sfq perturb 10

#sending traffic from clinet's IP's to classes
tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.1 flowid 1:11

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.2 flowid 1:12

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.3 flowid 1:13

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.4 flowid 1:14

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.5 flowid 1:15

########## 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 $DEV 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 1k drop flowid :1


----------------------------------
сохранить настройки и перезапустить роутер:
flashfs save
flashfs commit
flashfs enable
reboot

Шейпинг повешен на vlan0 (это локальная сеть) а не на pppoe потому что шейпер может разруливать только исходящий трафик на итнерфейсе. Из за этого пришлось отдельно обозначать локальный трафик чтобы не пропускать его через шейпер. Общая скорость ограничена 120 кбит чтобы уменьшить потери пакетов у провайдера (чтобы у провайдера не скапливалась большая очередь и не дропались пакеты).

Шейпинг исходящего трафика пока что не делал. Приоритеты трафика не задавал. Не было необходимости пока что :). То что сделано - проверено и работает как следует.

Janik
21-09-2007, 13:27
Добрый день!
А можно ли с помощью выше изложенного поделить трафик pppoe на три компа?

комп по проводу 1 - 256к
комп по проводу 2 - 128к
комп по проводу 3 - 128к
ноут по wifi - 128k
КПК по wifi - 128k

комп 1 работает редко.

И ещё, между компами (в сети 192.168.1.1/6) должна быть максимальная скорость!

Вот собственно и всё, жду вашого ответа! :rolleyes:

AlexeyA
21-09-2007, 15:35
Можно, только нужно вешать шейпер на интерфейс br0 чтобы он работал еще и с вайфай. К сожалению я не знаю как сделать неравномерное деление трафика - только каждому поровну. (Правда можно задавать приоритеты. Еще есть идея - можно попробовать делать более ветвистое дерево классов трафика)

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

192.168.1.1/6 это неправильное обозначение подсети судя по всему. 192.168.1.1 - 192.168.1.6 - надо было писать. оно там вроде бы будет ходить без ограничений, во всяком случае у меня так и есть... почемуто... :)

P.s. wifi антенна из консервной банки это мощно... :)

post-firewall:

#!/bin/sh
/usr/local/sbin/wshaper start br0 115
/sbin/wshaper start ppp0 1000 115


wshaper:

#/bin/sh
# Wonder Shaper
# please read the README before filling out these values
#
# 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.

UPLINK=$3
DEV=$2

# Now remove the following two lines :-)

#echo Please read the documentation in 'README' first
#exit

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:99:
tc qdisc add dev $DEV root handle 1: htb default 99

# root class 1
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.0.254)
tc class add dev $DEV parent 1:1 classid 1:2 htb rate 100mbit
tc qdisc add dev $DEV parent 1:2 handle 2: sfq perturb 10
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
match ip src 192.168.0.254 flowid 1:2

# internet traffic subclass 10
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
ceil ${UPLINK}kbit

# internet traffic subclasses 11, 12, 13,... for each client IP
tc class add dev $DEV parent 1:10 classid 1:11 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:12 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:13 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:14 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:15 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:16 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:17 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:18 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2
tc class add dev $DEV parent 1:10 classid 1:19 htb rate 1kbit \
ceil ${UPLINK}kbit prio 2

# creating quques for each class
tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
tc qdisc add dev $DEV parent 1:14 handle 14: sfq perturb 10
tc qdisc add dev $DEV parent 1:15 handle 15: sfq perturb 10
tc qdisc add dev $DEV parent 1:16 handle 16: sfq perturb 10
tc qdisc add dev $DEV parent 1:17 handle 17: sfq perturb 10
tc qdisc add dev $DEV parent 1:18 handle 18: sfq perturb 10
tc qdisc add dev $DEV parent 1:19 handle 19: sfq perturb 10

#sending traffic from clinet's IP's to classes
tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.1 flowid 1:11

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.2 flowid 1:12

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.3 flowid 1:13

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.4 flowid 1:14

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.5 flowid 1:15

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.6 flowid 1:16

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.7 flowid 1:17

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.8 flowid 1:18

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.9 flowid 1:19

Janik
23-09-2007, 18:15
Нее, такое не устраивает..:(
А возможно установить доп. соф на wl-500gP что бы он занимался делением трафика по моей схеме?
Кстати Wi-Fi клиенты могут ходить без ограничений(это в идеале можно им порезать скорость). :)


P.s. wifi антенна из консервной банки это мощно...
За то дешево и работает не хуже заводской! ;)

Новая схемка сетки (без Wi-FI клиентов):

AlexeyA
24-09-2007, 01:02
Если надо жестко ограничить максимальную скорость на каждый хост то это делается элементарно задав параметр ceil= rate=max speed для каждого IP в этих скриптах. У меня то задача была в динамическом перераспределении нашего дохлого канала (128) если он свободен на всех желающих. Чтобы при этом если один запустил мега-качалку на 10 потоков у остальных все не умирало.

Janik
24-09-2007, 12:12
Если надо жестко ограничить максимальную скорость на каждый хост то это делается элементарно задав параметр ceil= rate=max speed для каждого IP в этих скриптах. У меня то задача была в динамическом перераспределении нашего дохлого канала (128) если он свободен на всех желающих. Чтобы при этом если один запустил мега-качалку на 10 потоков у остальных все не умирало.

А можно показать это на примере?:confused:

AlexeyA
25-09-2007, 02:39
Ну в вашем случае это будет видимо так :

post-firewall:

#!/bin/sh
/usr/local/sbin/wshaper start br0 512
/sbin/wshaper start ppp0 1000 512


wshaper:

#/bin/sh
# Wonder Shaper
# please read the README before filling out these values
#
# 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.

UPLINK=$3
DEV=$2

# Now remove the following two lines :-)

#echo Please read the documentation in 'README' first
#exit

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:99:
tc qdisc add dev $DEV root handle 1: htb default 99

# root class 1
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.0.1)
tc class add dev $DEV parent 1:1 classid 1:2 htb rate 100mbit
tc qdisc add dev $DEV parent 1:2 handle 2: sfq perturb 10
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
match ip src 192.168.0.1 flowid 1:2

# internet traffic subclass 10
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
ceil ${UPLINK}kbit

# internet traffic subclasses 12, 13,... for each client IP
tc class add dev $DEV parent 1:10 classid 1:12 htb rate 256kbit \
burst 6k prio 2
tc class add dev $DEV parent 1:10 classid 1:13 htb rate 128kbit \
burst 6k prio 2
tc class add dev $DEV parent 1:10 classid 1:14 htb rate 128kbit \
burst 6k prio 2

# creating quques for each class
tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
tc qdisc add dev $DEV parent 1:14 handle 14: sfq perturb 10

#sending traffic from clinet's IP's to classes

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.2 flowid 1:12

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.3 flowid 1:13

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.4 flowid 1:14

Janik
25-09-2007, 18:34
Ну в вашем случае это будет видимо так :

post-firewall:

#!/bin/sh
/usr/local/sbin/wshaper start br0 512
/sbin/wshaper start ppp0 1000 512


wshaper:

#/bin/sh
# Wonder Shaper
# please read the README before filling out these values
#
# 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.

UPLINK=$3
DEV=$2

# Now remove the following two lines :-)

#echo Please read the documentation in 'README' first
#exit

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:99:
tc qdisc add dev $DEV root handle 1: htb default 99

# root class 1
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.0.1)
tc class add dev $DEV parent 1:1 classid 1:2 htb rate 100mbit
tc qdisc add dev $DEV parent 1:2 handle 2: sfq perturb 10
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
match ip src 192.168.0.1 flowid 1:2

# internet traffic subclass 10
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
ceil ${UPLINK}kbit

# internet traffic subclasses 12, 13,... for each client IP
tc class add dev $DEV parent 1:10 classid 1:12 htb rate 256kbit \
burst 6k prio 2
tc class add dev $DEV parent 1:10 classid 1:13 htb rate 128kbit \
burst 6k prio 2
tc class add dev $DEV parent 1:10 classid 1:14 htb rate 128kbit \
burst 6k prio 2

# creating quques for each class
tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
tc qdisc add dev $DEV parent 1:14 handle 14: sfq perturb 10

#sending traffic from clinet's IP's to classes

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.2 flowid 1:12

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.3 flowid 1:13

tc filter add dev $DEV parent 1: protocol ip prio 20 u32 \
match ip dst 192.168.0.4 flowid 1:14

Спасибо большое! Это то что нужно!!!:D
А исходящий трафик можно таким же макаром нарезать?:rolleyes:

AlexeyA
25-09-2007, 21:49
Можно, заместо стандартного /sbin/wshaper start ppp0 1000 512
надо запускать наш переделанный скрипт, но в нем надо поменять правила фильтров - match ip src <-> match ip dst. Также не нужно станет правило для локального трафика. Ну короче подумайте сами :)

Janik
25-09-2007, 22:36
Можно, заместо стандартного /sbin/wshaper start ppp0 1000 512
надо запускать наш переделанный скрипт, но в нем надо поменять правила фильтров - match ip src <-> match ip dst. Также не нужно станет правило для локального трафика. Ну короче подумайте сами :)

Всё понял, спасибо! ;)

superkent
24-10-2007, 02:53
задача. В сети три компьютера. все они ходят в интэрнет через локалку. подключение в WAN обычный TCP/IP. статический айпи. нужно динамически распределять скорость между этими компами. так же есть приоритеты. наивыший приоритет .8, средний .10, наименьший .55
Скорость инета внешнего 2М, скорость локальных ресурсов провайдера 100Мб.
Составил скрипт. но не уверен в правельности его составления. проверьте кто-то.
#/bin/sh
# Wonder Shaper
# please read the README before filling out these values
#
# 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.

if [ "$1" = "status" ]
then
echo "[qdisc br0]"
/usr/sbin/tc -s qdisc show dev br0
echo "[qdisc vlan1]"
/usr/sbin/tc -s qdisc show dev vlan1
echo "[class br0]"
/usr/sbin/tc -s class show dev br0
echo "[class vlan1]"
/usr/sbin/tc -s class show dev vlan1
echo "[filter br0]"
/usr/sbin/tc -s filter show dev br0
echo "[filter vlan1]"
/usr/sbin/tc -s filter show dev vlan1
exit
fi

# clean existing down- and uplink qdiscs, hide errors
/usr/sbin/tc qdisc del dev br0 root 2> /dev/null > /dev/null
/usr/sbin/tc qdisc del dev br0 ingress 2> /dev/null > /dev/null
/usr/sbin/tc qdisc del dev vlan1 root 2> /dev/null > /dev/null
/usr/sbin/tc qdisc del dev vlan1 ingress 2> /dev/null > /dev/null

if [ "$1" = "stop" ]
then
exit
fi


if [ "$1" = "start" ]
then
# install root HTB, point default traffic to 1:99
/usr/sbin/tc qdisc add dev br0 root handle 1:0 htb default 99

# root class 1
/usr/sbin/tc class add dev br0 parent 1:0 classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.15.1)
/usr/sbin/tc class add dev br0 parent 1:1 classid 1:2 htb rate 100mbit ceil 100mbit
/usr/sbin/tc qdisc add dev br0 parent 1:2 handle 2: sfq perturb 2
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.1 flowid 1:2

# internet traffic subclass 10
/usr/sbin/tc class add dev br0 parent 1:1 classid 1:10 htb rate 100mbit ceil 100mbit

# internet traffic subclasses 12, 13,... for each client IP
/usr/sbin/tc class add dev br0 parent 1:10 classid 1:12 htb rate 512kbit ceil 100mbit burst 6k prio 10
/usr/sbin/tc class add dev br0 parent 1:10 classid 1:13 htb rate 128kbit ceil 100mbit burst 6k prio 20
/usr/sbin/tc class add dev br0 parent 1:10 classid 1:14 htb rate 128kbit ceil 100mbit burst 6k prio 30

# creating quques for each class
/usr/sbin/tc qdisc add dev br0 parent 1:12 handle 12: sfq perturb 2
/usr/sbin/tc qdisc add dev br0 parent 1:13 handle 13: sfq perturb 2
/usr/sbin/tc qdisc add dev br0 parent 1:14 handle 14: sfq perturb 2

#sending traffic from clinet's IP's to classes
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.8 flowid 1:12
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.10 flowid 1:13
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.55 flowid 1:14

# install root HTB, point default traffic to 1:99
/usr/sbin/tc qdisc add dev vlan1 root handle 1:0 htb default 99

# root class 1
/usr/sbin/tc class add dev vlan1 parent 1:0 classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.15.1)
/usr/sbin/tc class add dev vlan1 parent 1:1 classid 1:2 htb rate 100mbit ceil 100mbit
/usr/sbin/tc qdisc add dev vlan1 parent 1:2 handle 2: sfq perturb 2
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.1 flowid 1:2

# internet traffic subclass 10
/usr/sbin/tc class add dev vlan1 parent 1:1 classid 1:10 htb rate 100mbit ceil 100mbit

# internet traffic subclasses 12, 13,... for each client IP
/usr/sbin/tc class add dev vlan1 parent 1:10 classid 1:12 htb rate 512kbit ceil 100mbit burst 6k prio 10
/usr/sbin/tc class add dev vlan1 parent 1:10 classid 1:13 htb rate 128kbit ceil 100mbit burst 6k prio 20
/usr/sbin/tc class add dev vlan1 parent 1:10 classid 1:14 htb rate 128kbit ceil 100mbit burst 6k prio 30

# creating quques for each class
/usr/sbin/tc qdisc add dev vlan1 parent 1:12 handle 12: sfq perturb 2
/usr/sbin/tc qdisc add dev vlan1 parent 1:13 handle 13: sfq perturb 2
/usr/sbin/tc qdisc add dev vlan1 parent 1:14 handle 14: sfq perturb 2

# sending traffic from clinet's IP's to classes
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.8 flowid 1:12
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.10 flowid 1:13
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.55 flowid 1:14
fi

YAG
08-12-2007, 12:41
Всё понял, спасибо! ;)

А я вот что-то не соображу никак. Не нарезается исходящий траф и все... Входящий без проблем нарезается. Help!!! :confused:

Zhe1ezyaka
17-12-2007, 16:48
Пользуюсь µTorrent, если в нём не ставить ограничения на скорость, то странички в инете открываются очень медленно, закачки с HTTP умирают. Пытаюсь решить эту проблему шейпером, сделать приоритеты по виду трафика.

Нашёл скрипт (http://forum.linux.by/viewtopic.php?t=9239), который должен делать такое. Немного подправил (как смог), работает. Торрент определённо стал душить закачки с HTTP меньше. Странички стали открываться несколько быстрее, но далеко не так быстро как при отключенном торренте.
Заметил, что шейпер «душит» исходящий трафик у торрента, как в моём скрипте исключить влияние на исходящий трафик? Как отключить шейпер для определённых IP? Можно ли ещё ускорить HTTP, при наличии закачки торрентом?
Помогите довести шейпер до ума, на сколько это возможно.



#!/bin/sh

IPTABLES=/sbin/iptables
TC=/usr/sbin/tc
DEV_IN=br0

# входящая скорость из инета 512 кбит/с
# устанавливаем чуть меньше
RATE_IN=480

# задаём гарантированную полосу
RATE_IN1=10

# задаём максимальный обьём данных который может быть пропущен без переключения на другие классы
# высокопиоритетный троафик
BURST0=25600
# низкоприоритетный трафик
BURST1=256

case "$1" in
start)
########################## IN #############################
$TC qdisc add dev $DEV_IN root handle 1:0 htb default 99


echo "Корневой класс 1:1"
$TC class add dev $DEV_IN parent 1:0 classid 1:1 htb rate ${RATE_IN}kbit ceil ${RATE_IN}kbit


echo "0"
$TC class add dev $DEV_IN parent 1:1 classid 1:10 htb rate 50kbit ceil ${RATE_IN}kbit prio 0 burst ${BURST0}
echo "1"
$TC class add dev $DEV_IN parent 1:1 classid 1:25 htb rate 400kbit ceil ${RATE_IN}kbit prio 1 burst ${BURST0}
echo "2"
$TC class add dev $DEV_IN parent 1:1 classid 1:50 htb rate ${RATE_IN1}kbit ceil ${RATE_IN}kbit prio 2 burst ${BURST1}
echo "3"
$TC class add dev $DEV_IN parent 1:1 classid 1:75 htb rate ${RATE_IN1}kbit ceil ${RATE_IN}kbit prio 3 burst ${BURST1}
echo "4"
$TC class add dev $DEV_IN parent 1:1 classid 1:99 htb rate ${RATE_IN1}kbit ceil ${RATE_IN}kbit prio 4 burst ${BURST1}



echo "qdisc"
$TC qdisc add dev $DEV_IN parent 1:10 handle 10: pfifo limit 5
$TC qdisc add dev $DEV_IN parent 1:25 handle 25: sfq perturb 10
$TC qdisc add dev $DEV_IN parent 1:50 handle 50: sfq perturb 10
$TC qdisc add dev $DEV_IN parent 1:75 handle 75: sfq perturb 10
$TC qdisc add dev $DEV_IN parent 1:99 handle 99: sfq perturb 10


#### Маркировка пакетов
echo "Маркировка"
# добавить цепочку MYSHAPER-IN в таблицу mangle - сейчас мы настроим таблицу,которую будем
# использовать для фильтрациии установки fwmark
iptables -t mangle -N MYSHAPER-IN
iptables -t mangle -I POSTROUTING -o $DEV_IN -j MYSHAPER-IN

# маркируем пакеты с помощью fwmark - устанавливаем значения 10-99 в зависимости от
# нужного класса. Высший приоритет - 10.

# Низкоприоритетный трафик
echo "Низкоприоритетный трафик"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 0:1024 -j MARK --set-mark 99
iptables -t mangle -A MYSHAPER-IN -p tcp --dport 0:1024 -j MARK --set-mark 99

# порт ftp-data, низкий приоритет
echo "FTP"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 20 -j MARK --set-mark 50

# WebMoney Keeper
echo "WM"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 2802 -j MARK --set-mark 75

# интернет-пейджер aol
echo "Аська"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 5190 -j MARK --set-mark 50

# приёмка почты
echo "Почта POP3"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 110 -j MARK --set-mark 75

# IRC
echo "IRC"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 6667 -j MARK --set-mark 75
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 9944 -j MARK --set-mark 75

#pptp
echo "PPTP"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 1723 -j MARK --set-mark 75
iptables -t mangle -A MYSHAPER-IN -p gre -j MARK --set-mark 75

# ICMP (ping) - высокий приоритет,
# будем удивлять друзей
echo "Пинги"
iptables -t mangle -A MYSHAPER-IN -p icmp -j MARK --set-mark 10

# распознавание имен DNS (маленькие пакеты)
echo "DNS"
iptables -t mangle -A MYSHAPER-IN -p udp -j MARK --set-mark 25

# WWW
echo "HTTP и HTTPS трафик"
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 80 -j MARK --set-mark 25
# iptables -t mangle -A MYSHAPER-IN -p tcp --dport 80 -j MARK --set-mark 25
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 443 -j MARK --set-mark 25
# iptables -t mangle -A MYSHAPER-IN -p tcp --dport 443 -j MARK --set-mark 25

# secure shell
echo "SSH"
iptables -t mangle -A MYSHAPER-IN -p tcp --dport 22 -j MARK --set-mark 10
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 22 -j MARK --set-mark 10

# telnet (ew...)
echo "Telnet"
iptables -t mangle -A MYSHAPER-IN -p tcp --dport 23 -j MARK --set-mark 10
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 23 -j MARK --set-mark 10

# маленькие пакеты, скорее всего ACK-пакеты
# echo "Маленькие пакеты"
# iptables -t mangle -A MYSHAPER-IN -p tcp -m length --length :64 -j MARK --set-mark 25


echo "Shaper on $DEV_IN started ($RATE_IN kbit/s)"
;;
stop)
tc qdisc del dev $DEV_IN root 2> /dev/null > /dev/null
tc qdisc del dev $DEV_OUT root 2> /dev/null > /dev/null
iptables -t mangle -D POSTROUTING -o $DEV_OUT -j MYSHAPER-OUT 2> /dev/null > /dev/null
iptables -t mangle -F MYSHAPER-OUT 2> /dev/null > /dev/null
iptables -t mangle -X MYSHAPER-OUT 2> /dev/null > /dev/null
iptables -t mangle -D POSTROUTING -o $DEV_IN -j MYSHAPER-IN 2> /dev/null > /dev/null
iptables -t mangle -F MYSHAPER-IN 2> /dev/null > /dev/null
iptables -t mangle -X MYSHAPER-IN 2> /dev/null > /dev/null

echo "Shaper removed"
;;
restart)
$0 stop
$0 start
;;
status)

echo "[qdisc IN]"
$TC -s qdisc show dev $DEV_IN
echo "[class IN]"
$TC -s class show dev $DEV_IN
echo "[filter IN]"
$TC -s filter show dev $DEV_IN
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac

exit 0

almuerto
17-12-2007, 17:15
Подобный скрипт уже есть в прошивке, /sbin/wshaper

Можно его переписать куда нибудь, например в /usr/local/sbin и подправить.

Zhe1ezyaka
17-12-2007, 18:13
Подобный скрипт уже есть в прошивке, /sbin/wshaper

Можно его переписать куда нибудь, например в /usr/local/sbin и подправить.

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

jmur
13-01-2008, 20:13
Какой шейпер можно подцепить на 500gp для подссчета трафика и ограничения скорости wifi соединений
интересуют мнения людей кто себе уже реализовал данные пакеты
прошивка без разнизы какая, важна стабильность
подробно схемка сети
есть сеть x провайдера, в ней по статическому айпи раздаеться инет и внутренние ресурсы
есть asus 500gp, который подключен к етой сети (только одно проводное подключение к wan порту)
есть dlink 2100ap(не важн0 какая, главное режим либо точка-клиент, либо мост)
вторая точка включена в сеть y, в которой имеються несколько компов со статическими айпи, которым предоставляеться инет и ресурсы сети x
возможно ли резать скорость и подсчитывать трафик при таком подключении на 500gp, если да то как?
ЗЫ поиск ничего не дал путного.

Starling
20-01-2008, 23:41
Ситуация такая: роутер качает/отдает торренты, полностью забивая канала на upload(500kbit/s). К нему же подключен терминал VoIP, разговаривать по телефону становится туго...
Как я понимаю такие вещи должен разруливать wondershaper.
Никто не поделится работающим скриптом для него? Мне собсно только приоритет VoIP повысить, больше ничего не надо.
Спасибо!

piezomotor
21-01-2008, 14:42
Ситуация такая: роутер качает/отдает торренты, полностью забивая канала на upload(500kbit/s). К нему же подключен терминал VoIP, разговаривать по телефону становится туго...
Как я понимаю такие вещи должен разруливать wondershaper.
Никто не поделится работающим скриптом для него? Мне собсно только приоритет VoIP повысить, больше ничего не надо.
Спасибо!

У меня была таже проблема и теперь VOIP заработал! http://www.wl500g.info/showthread.php?t=752&highlight=Wshaper

Там и скрипт...

Starling
21-01-2008, 15:33
Спасибо, посмотрю.

greenst
03-02-2008, 18:34
Пересмотрел много инфы (в т.ч. англоязычной) о том, как повысить приоритет VoIP. Но во всех рекомендациях предлагается ограничить скорость приложений (устройств) не требовательных к постоянству ширины канала. Один из таких примеров - wshaper eth1 1024 512.

Но это решение имеет ряд минусов.
1. В моменты, когда нет VoIP трафика, качалки не используют максимальный потенциал канала.
2. Если VoIP соединений будет больше, чем запланировано при расчете верхней границы низкоприоритетного трафика, то от потерь качества застрахованы не будем.
3. Резко сократится скорость скачивания из локальной сети провайдера (сейчас доступ к внутренним ресурсам 100 Мбит, внешним - 2 Мбит).

Кто-нибудь может, хотя бы не рассказать, а дать ссылку на документацию, в которой описано именно расставление приоритетов? Т.е. когда есть VoIP соединения, то им может быть выделено до 100% канала. Когда их нет, все остальные пакеты используют канал полностью.

В моем случае VoIP соединения могут идти с софттелефона (Sip, Skype) и с железки Linksys SPA3102.

Serge_K
03-02-2008, 19:05
Пересмотрел много инфы (в т.ч. англоязычной) о том, как повысить приоритет VoIP. Но во всех рекомендациях предлагается ограничить скорость приложений (устройств) не требовательных к постоянству ширины канала. Один из таких примеров - wshaper eth1 1024 512.

А зачем wshaper вешать на eth1? Через post-firewall его надо запускать
wshaper start "$1" ... ...
И он сам таким образом повесится куда надо - например, на ppp0.

greenst
03-02-2008, 20:50
А зачем wshaper вешать на eth1? Через post-firewall его надо запускать
wshaper start "$1" ... ...
И он сам таким образом повесится куда надо - например, на ppp0.

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

Serge_K
03-02-2008, 20:51
Но ведь, все равно, нужно будет указывать ограничение в абсолютных единицах, выше которых, даже при отсутствии VoIP соединений, скорость скачивания не поднимется.
Это почему же? Что Вы имеете в виду под ограничениями?

greenst
03-02-2008, 21:05
Это почему же? Что Вы имеете в виду под ограничениями?

Мой провайдер Корбина. Скорость подключения к провайдеру и его ресурсам 100 мбит/с. По моему тарифу скорость подключения во внешний Инет - 2,2 мбит/с. Предполагаем, что для одного VoIP соединения 64 кбит/с будет более чем достаточно, а 0,1 мбит/с тем более. Для этого случая подходит такая строка в post-firewall:
wshaper start "$1" 2100 2100

Какая максимальная скорость у меня будет при работе со внутренними ресурсами провайдера? Сколько максимально VoIP соединений мне будет доступно? В случае, если не будет ни одного VoIP соединения, какая максимальная скорость будет при скачивании?

Serge_K
03-02-2008, 21:17
Мой провайдер Корбина. Скорость подключения к провайдеру и его ресурсам 100 мбит/с. По моему тарифу скорость подключения во внешний Инет - 2,2 мбит/с. Предполагаем, что для одного VoIP соединения 64 кбит/с будет более чем достаточно, а 0,1 мбит/с тем более. Для этого случая подходит такая строка в post-firewall:
wshaper start "$1" 2100 2100

Какая максимальная скорость у меня будет при работе со внутренними ресурсами провайдера? Сколько максимально VoIP соединений мне будет доступно? В случае, если не будет ни одного VoIP соединения, какая максимальная скорость будет при скачивании?
Насколько я понимаю, Вашей локалки это каснуться не должно. Ну а насчет кличества VoIP-соединений - считайте сами, исходя из используемых кодеков. G.711 требует что-то около сотни, по-моему.

Zyxmon
03-02-2008, 22:39
Требуемая полоса для разных кодеков
http://i048.radikal.ru/0802/4b/7ed19f9b0bc1t.jpg (http://radikal.ru/F/i048.radikal.ru/0802/4b/7ed19f9b0bc1.jpg.html)

greenst
04-02-2008, 08:43
Насколько я понимаю, Вашей локалки это каснуться не должно. Ну а насчет кличества VoIP-соединений - считайте сами, исходя из используемых кодеков. G.711 требует что-то около сотни, по-моему.

Но считать все равно надо... А сделать так, чтобы автоматом ограничивался канал для качалок, в зависимости от загрузки VoIP соединениями, возможно? Чтобы, например, в остуствие телефонных соединений или во время молчания на той стороне провода (когда входящий VoIP трафик равен нулю), скорость скачивания могла подняться до полной ширины канала.

al37919
04-02-2008, 08:58
Не совсем Ваш случай, но все же любопытная идея. Здесь: http://www.voip-info.org/wiki/view/QoS+with+Linux+using+PRIO+and+HTB автор утверждает, что он отслеживает на своей сипуре начало разговора и резко уменьшает траффик качалкам буде такой начнется и восстанавливает обратно по окончании. К сожалению, без конкретики

Zyxmon
04-02-2008, 09:38
Мысль интересная.
Состояние Linksis/Sipura (да и многих других производителей) без проблем отслеживается простым http запросом. Вот пример вывода
http://i019.radikal.ru/0802/53/b5bfb9372306t.jpg (http://radikal.ru/F/i019.radikal.ru/0802/53/b5bfb9372306.jpg.html)

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

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

masters
19-04-2008, 10:59
Вот с помощью добрых людей наваял такой скриптик для ASUS WL-500gP.

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

Вот что получил:


#!/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 странно работает, вроде забирает полосу, но больше, чем надо ...

ABATAPA
19-04-2008, 12:39
Вроде все работает, но с приоритетами по траффику какая-то проблема :(
При закачке пинги выростают до нескольких тысяч, хотя у них приоритет выше. DNS тоже отвечает долго. И HTTP странно работает, вроде забирает полосу, но больше, чем надо ...

Рекомендую на роутере посмотреть dmesg.

dadittoz
19-04-2008, 13:32
Посмотрите правильно ли пакеты классифицируются с помощью
tc -s class ls dev br0

(удалил замечания, т.к. не актуально)

masters
19-04-2008, 16:28
Посмотрите правильно ли пакеты классифицируются с помощью
tc -s class ls dev br0


Вот.


$ 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 и Пингах - пусто :(

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

dadittoz
19-04-2008, 19:53
Вообще судя по статистике, вроде бы все правильно.

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

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

А еще попробуйте уменьшить скорость DOWNLINK. Возможно она слишком высока, и пакеты задерживаются у провайдера, а не на вашем шейпере.

masters
20-04-2008, 08:44
Вообще судя по статистике, вроде бы все правильно.

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


Пардон, с ДНС - это я затупил :(
Я же использую ДНС роутера, надо эту строку вообще убить!

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

После добавления в фильтры по приоритетам IP-адреса (по Вашему совету), что-то появилось в ICMP - очереди.
Но всеравно при скачивании с HTTP - пинги около 1000 :(

dadittoz
20-04-2008, 13:19
Попробуйте все-таки уменьшить значение DOWNLINK. Возможно реальная скорость вашего провайдера ниже, чем та, что у вас стоит в DOWNLINK. Тогда пакеты будут скапливаться у провайдера, а не на вашем рутере, это лишает вас возможности управлять их приоритетами. Поэкспериментируйте с этим значением. У меня например скорость канала 512, но я шейпер ставлю на 480.

raum01
28-05-2008, 11:34
условия:
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
делится и исходяший и входящий трафик
подскажите плизз как это сделать
заранее спасибо...

YAG
28-05-2008, 12:49
Вот здесь (http://wl500g.info/showpost.php?p=92975&postcount=303) решена Ваша задачка только для mlDonkey. Вам нужно оттуда взять идею. И переделать управление с mlDonkey на rTorrent. И будет Вам счастье. :)

Novik
28-05-2008, 12:59
И будет Вам счастье. :)
1) Я сильно не уверен, что в планировщик rTorrent-а можно запихнуть проверку наличия файла. Я лично не знаю как. Возможно, кто-нибудь подскажет?
2) cron каждую минуту - это, IMHO, нехорошо. По крайней мере у меня такие фишки приводили к неприятностям с диском и к излишней загрузке роутера.
3) Проще не мучиться, а выставить у rTorrent ограничение на скорость днем, и снимать его ночью. Эффект практически тот же, решается двумя дополнительными строками в планировщике.

YAG
28-05-2008, 16:12
1) Я сильно не уверен, что в планировщик rTorrent-а можно запихнуть проверку наличия файла. Я лично не знаю как. Возможно, кто-нибудь подскажет?
Не понял при чем тут планировщик рторрента...

2) cron каждую минуту - это, IMHO, нехорошо. По крайней мере у меня такие фишки приводили к неприятностям с диском и к излишней загрузке роутера.
Согласен. :)

3) Проще не мучиться, а выставить у rTorrent ограничение на скорость днем, и снимать его ночью. Эффект практически тот же, решается двумя дополнительными строками в планировщике.
Снова согласен. :)
Сам ограничений не выставляю. Использую шейпер. По крайней мере радио играет, инет шуршит хорошо. Он-лайн игры не тормозят.

TerAn
12-06-2008, 15:55
Привет!

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

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

TrueAlex
26-06-2008, 22:25
Можно ли как-то сделать, чтобы не приходилось прописывать ip всех пользователей в скрипте? Чтобы просто каждому ip адресу часть канала?

TerAn
03-07-2008, 09:15
Неужели никто не знает?! Может где-то что-то подобное описано, но мне не удалось найти. Буду рад, если кто-то подбросит ссылку на соответствующий раздел.

D_dmitry
03-07-2008, 09:27
юзайте QoS
http://wl500g.info/showthread.php?p=89323#post89323

BaRYaN
10-07-2008, 22:38
Возникла необходимость в ограничении скорости трафика отдельным локальным клиентам. Почитал про это дело в инете и как я понял, идальный вариант это rshaper. Но возможно ли его на етот асус 500gp поставить? Если нет, то, что можете посоветов
ать? limit в iptables не очень подходит.... как-то криво он режит скорость.

Заранее очень признателен.

Да и еще где расположенно ядро? А то никак его немогу найта его :(

vectorm
11-07-2008, 10:39
Возникла необходимость в ограничении скорости трафика отдельным локальным клиентам. Почитал про это дело в инете и как я понял, идальный вариант это rshaper. Но возможно ли его на етот асус 500gp поставить? Если нет, то, что можете посоветов
ать? limit в iptables не очень подходит.... как-то криво он режит скорость.

Заранее очень признателен.

Да и еще где расположенно ядро? А то никак его немогу найта его :(
А поиск по QoS и shaper в форуме ничего полезного не выдал разве? ;)
Например можно ткнуть предпоследнюю ссылку у меня в подписи.

Divl
06-08-2008, 21:16
Как будет выглядеть скрипт если нужно разделить трафик поровну между 1 пользователем подключенным по Lan и одним подключенным по wi-fi
Ну если кто то не использует интернет то скорость на другом должна быть максимальна...
Всего скорость 256 килобит, поделить надо на 128 и 128 =)

dr.Johanson
17-05-2009, 18:47
Собственно такой случай.
Есть безлимитный канал и-нета. Имеется 3 компа. Хочу разделить инет на 3 части или по %-м от ширины канала. Но чтобы, когда какой-то комп простаивает или не включен, канал делился на 2-х, или когда 2 отключено - на одного весь канал.
Попробовал в Bandwidth Management - но там на все 65000 портов не придумаешь ограничения, а если ничего не ставить в поле для порта - то рубится все, и даже по сетке ничего скинуть с компа на комп не получается.
Ограничить порт 80 можно канеш поровну, но а торренты а ФТП а почта и т д.
У кого есть хотябы приблизительное решение? :)

grigly
18-05-2009, 10:18
И у меня схожий вопрос. Как ограничить пользователям все порты например на 512 кбит... А чтобы подсеть 10.0.0.0 работала без ограничений?

Serge_K
18-05-2009, 10:30
Собственно такой случай.
Есть безлимитный канал и-нета. Имеется 3 компа. Хочу разделить инет на 3 части или по %-м от ширины канала. Но чтобы, когда какой-то комп простаивает или не включен, канал делился на 2-х, или когда 2 отключено - на одного весь канал.
Попробовал в Bandwidth Management - но там на все 65000 портов не придумаешь ограничения, а если ничего не ставить в поле для порта - то рубится все, и даже по сетке ничего скинуть с компа на комп не получается.
Ограничить порт 80 можно канеш поровну, но а торренты а ФТП а почта и т д.
У кого есть хотябы приблизительное решение? :)

Ну здесь посмотрите:
http://wl500g.info/showthread.php?t=8796&highlight=%28%F0%E5%F8%E5%ED%E8%E5%29
И еще темы есть...

dr.Johanson
22-05-2009, 08:51
Может авторы скриптов данных подскажут чего. Сделал я так как в примере, одному компу 256, а 2-м остальным по 128. Однако, запускаю на каком-то торрент, и все - торрент подбирает все....может я чего-то не правильно написал в скрипте?

dimokrat
22-05-2009, 10:17
Чтобы не создавать новую тему, напишу здесь..

Подскажите, а решение на базе "планировщика пакетов HTB, который входит в ядро linux начиная с версии 2.4.20" нам никак не реализовать? Или wshaper работает также?

http://habrahabr.ru/blogs/linux/60095/

sawtooth
21-06-2009, 20:41
Ап
Следующий вопрос.
Анлим провайдера (600kbps) висит на ppp0, локалка провайдера - на vlan1 (IP 10.160.103.123).
Имеется 2 компьютера в сети vlan0 (169.254.77.200 и 169.254.77.201). Требуется шейпить канал по 300kbps каждому клиенту, исключая трафик с локалки.
С надеждой что всё получится переписал скрипт "под себя".

#!/bin/sh
tc qdisc del dev vlan0 root 2> /dev/null > /dev/null
tc qdisc del dev vlan0 ingress 2> /dev/null > /dev/null

if [ "$1" = "stop" ]
then
exit
fi

tc qdisc add dev vlan0 root handle 1: htb default 99

tc class add dev vlan0 parent 1: classid 1:1 htb rate 100mbit

tc class add dev vlan0 parent 1:1 classid 1:2 htb rate 100mbit
tc qdisc add dev vlan0 parent 1:2 handle 2: sfq perturb 10
tc filter add dev vlan0 parent 1: protocol ip prio 10 u32 \
match ip src 10.160.103.123 flowid 1:2

tc class add dev vlan0 parent 1:1 classid 1:10 htb rate 600kbit \
ceil 600kbit

tc class add dev vlan0 parent 1:10 classid 1:12 htb rate 300kbit \
burst 6k prio 2
tc class add dev vlan0 parent 1:10 classid 1:13 htb rate 300kbit \
burst 6k prio 2

tc qdisc add dev vlan0 parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev vlan0 parent 1:13 handle 13: sfq perturb 10

tc filter add dev vlan0 parent 1: protocol ip prio 20 u32 \
match ip dst 169.254.77.201 flowid 1:12
tc filter add dev vlan0 parent 1: protocol ip prio 20 u32 \
match ip dst 169.254.77.200 flowid 1:13
Однако, шейпится весь трафик, в т.ч. и локал провайдера. Не могу понять в чем причина, где я ошибся. Помогите дилетанту, пожалуйста)

osya
27-10-2009, 12:00
Здравствуйте я новичок перешил свой dir-320 этой прошивкой WL500gpv2-1.9.2.7-10.7.trx в asus. Теперь стоит задача настроить на 10 человек раздачу 4 мБ интернета. Не могу который день разобраться как это сделать..

al37919
28-10-2009, 18:38
но можно поставить http://wl500g.info/showthread.php?t=13609, только прошивку придется поменять на посвежее

osya
29-10-2009, 23:42
Postavil vot etu proshyvku WL500gpv2-1.9.2.7-d-r655.trx.
Ne podskagete kak ustanovit' shape novachku?

Vladimir14
04-11-2009, 20:21
Мануал, начиная с 9-й главы

"Linux Advanced Routing & Traffic Control HOWTO"
http://gazette.linux.ru.net/rus/articles/lartc/index.html

Почитав мануалы, решил узнать мнения гуру линукса

"Деление канала интернета пополам через tc class, qdisc, filter"
http://www.linux.org.ru/view-message.jsp?msgid=4202185&lastmod=1257359431016

Городская локальная сеть 10.0.0.0/8, домашняя локальная сеть 192.168.1.0/24.
Задача: делить пополам между 192.168.1.2 и 192.168.1.3 входящий и исходящий трафик ppp0 и vlan1.

Особенно интересно, откуда взялись мнения, что tc на устройстве br0 обрабатывает только исходящие пакеты, не затрагивая входящие? Ведь условия фильтрации позволяют направлять в нужные классы, как входящие, так и исходящие пакеты. Например, условия фильтрации пакетов:

для входящих LAN к 192.168.1.2: prio 15 u32 match ip src 10.0.0.0/8 u32 match ip dst 192.168.1.2
для входящих LAN к 192.168.1.3: prio 15 u32 match ip src 10.0.0.0/8 u32 match ip dst 192.168.1.3
для исходящих LAN от 192.168.1.2: prio 15 u32 match ip src 192.168.1.2 u32 match ip dst 10.0.0.0/8
для исходящих LAN от 192.168.1.3: prio 15 u32 match ip src 192.168.1.3 u32 match ip dst 10.0.0.0/8

для входящих WAN к 192.168.1.2: prio 20 u32 match ip dst 192.168.1.2
для входящих WAN к 192.168.1.3: prio 20 u32 match ip dst 192.168.1.3
для исходящих WAN от 192.168.1.2: prio 20 u32 match ip src 192.168.1.2
для исходящих WAN от 192.168.1.3: prio 20 u32 match ip src 192.168.1.3

ceramic
04-11-2009, 20:36
Особенно интересно, откуда взялись мнения, что tc на устройстве br0 обрабатывает только исходящие пакеты, не затрагивая входящие? Ведь условия фильтрации позволяют направлять в нужные классы, как входящие, так и исходящие пакеты.
Ну это не совсем мнение, просто отфильтровывание пришедших не приоритетных пакетов не ускоряет получение приоритетных. С отправкой проще: приоритетные вперед, остальные в очередь.

Vladimir14
09-11-2009, 21:05
Через

tc -s class show dev $DEV

где $DEV - имя устройста, убедился, что tc filter обрабатывает только исходящие пакеты с устройства, а входящие по нулям, если дополнительно не использовать iptable.

"Новая прошивка Олега 1.9.2.7-d от энтузиастов"
http://wl500g.info/showthread.php?t=17136
http://code.google.com/p/wl500g

в которой по sfq реально доступна esfq, при использовании которой можно более правильно делить канал пополам. Написал для новой прошивки деление входящего и исходящего каналов соединения ppp0 пополам между 192.168.1.2 и 192.168.1.3:

Скрипт запуска start:


#/bin/sh

WAN_CEIL_DOWNLOAD=256
WAN_RATE_DOWNLOAD=128

WAN_CEIL_UPLOAD=256
WAN_RATE_UPLOAD=128

DEV_WAN=ppp0
DEV_IN=imq0
DEV_OUT=imq1


# включение IMQ
insmod ipt_IMQ > /dev/null 2>&1
insmod imq behaviour=ab numdevs=2 > /dev/null 2>&1

tmp=`ip link show $DEV_WAN`
tmp=${tmp#*mtu }
MTU=${tmp%% *}

ip link set dev imq0 up
ip link set dev imq1 up
ip link set dev imq0 mtu $MTU
ip link set dev imq1 mtu $MTU


# очистка
iptables -t mangle -D PREROUTING -i $DEV_WAN -j IMQ --todev 0
iptables -t mangle -D POSTROUTING -o $DEV_WAN -j IMQ --todev 1

tc qdisc del dev $DEV_IN root 2> /dev/null > /dev/null
tc qdisc del dev $DEV_IN ingress 2> /dev/null > /dev/null

tc qdisc del dev $DEV_OUT root 2> /dev/null > /dev/null
tc qdisc del dev $DEV_OUT ingress 2> /dev/null > /dev/null


# входящий

# корень дерева 1:0, пакеты не удовлетворяющие всем условиям фильтров идут в очередь класса 1:9
tc qdisc add dev $DEV_IN root handle 1:0 htb default 9
tc class add dev $DEV_IN parent 1:0 classid 1:1 htb rate ${WAN_CEIL_DOWNLOAD}kbit


# класс для 192.168.1.2
tc class add dev $DEV_IN parent 1:1 classid 1:11 htb rate ${WAN_RATE_DOWNLOAD}kbit ceil ${WAN_CEIL_DOWNLOAD}kbit

# класс для 192.168.1.3
tc class add dev $DEV_IN parent 1:1 classid 1:12 htb rate ${WAN_RATE_DOWNLOAD}kbit ceil ${WAN_CEIL_DOWNLOAD}kbit


# очередь для 192.168.1.2
tc qdisc add dev $DEV_IN parent 1:11 handle 11:0 sfq hash dst

# очередь для 192.168.1.3
tc qdisc add dev $DEV_IN parent 1:12 handle 12:0 sfq hash dst


# направление пакетов из корня 1:0 в очередь класса 1:11
tc filter add dev $DEV_IN parent 1:0 protocol ip prio 20 u32 match ip dst 192.168.1.2 flowid 1:11

# направление пакетов из корня 1:0 в очередь класса 1:12
tc filter add dev $DEV_IN parent 1:0 protocol ip prio 20 u32 match ip dst 192.168.1.3 flowid 1:12


# неограниченный или неклассифицированный
tc class add dev $DEV_IN parent 1:0 classid 1:9 htb rate 100mbit
tc qdisc add dev $DEV_IN parent 1:9 handle 19:0 sfq perturb 10


# исходящий

# корень дерева 1:0, пакеты не удовлетворяющие всем условиям фильтров идут в очередь класса 1:9
tc qdisc add dev $DEV_OUT root handle 1:0 htb default 9
tc class add dev $DEV_OUT parent 1:0 classid 1:1 htb rate ${WAN_CEIL_UPLOAD}kbit


# класс для 192.168.1.2
tc class add dev $DEV_OUT parent 1:1 classid 1:11 htb rate ${WAN_RATE_UPLOAD}kbit ceil ${WAN_CEIL_UPLOAD}kbit

# класс для 192.168.1.3
tc class add dev $DEV_OUT parent 1:1 classid 1:12 htb rate ${WAN_RATE_UPLOAD}kbit ceil ${WAN_CEIL_UPLOAD}kbit


# очередь для 192.168.1.2
tc qdisc add dev $DEV_OUT parent 1:11 handle 11:0 sfq hash dst

# очередь для 192.168.1.3
tc qdisc add dev $DEV_OUT parent 1:12 handle 12:0 sfq hash dst


# направление пакетов из корня 1:0 в очередь класса 1:11
tc filter add dev $DEV_OUT parent 1:0 protocol ip prio 20 u32 match ip src 192.168.1.2 flowid 1:11

# направление пакетов из корня 1:0 в очередь класса 1:12
tc filter add dev $DEV_OUT parent 1:0 protocol ip prio 20 u32 match ip src 192.168.1.3 flowid 1:12


# неограниченный или неклассифицированный
tc class add dev $DEV_OUT parent 1:0 classid 1:9 htb rate 100mbit
tc qdisc add dev $DEV_OUT parent 1:9 handle 19:0 sfq perturb 10


# перенаправление пакетов на imq0, imq1
iptables -t mangle -I PREROUTING -i $DEV_WAN -j IMQ --todev 0
iptables -t mangle -A POSTROUTING -o $DEV_WAN -j IMQ --todev 1

Скрипт останова stop:


#/bin/sh

DEV_WAN=ppp0
DEV_IN=imq0
DEV_OUT=imq1

iptables -t mangle -D PREROUTING -i $DEV_WAN -j IMQ --todev 0
iptables -t mangle -D POSTROUTING -o $DEV_WAN -j IMQ --todev 1

tc qdisc del dev $DEV_IN root 2> /dev/null > /dev/null
tc qdisc del dev $DEV_IN ingress 2> /dev/null > /dev/null

tc qdisc del dev $DEV_OUT root 2> /dev/null > /dev/null
tc qdisc del dev $DEV_OUT ingress 2> /dev/null > /dev/null

Скрипт вывода статистики status:


#/bin/sh

tc -s class show dev imq0
tc -s class show dev imq1

Профи, всё ли правильно, на Ваш взгляд? Большое спасибо.

UxN
14-01-2010, 22:14
Здравствуйте господа. Купил роутер Dir-320, поставил прошивку от Олега.
Я новичок в Линуксе, причем неплохо разбираюсь в ФриБСД.
Помогите мне пожалуйста разобратся:
1. Роутер подключен к сети WAN-192.168.11.0/24 через которую идет инет.
Также есть локалка 172.16.10.0/24 - моя. На роутере стоит шейпер, но проблема вот в чем, если роутер режет скорость по определенному mac то - он режет все, А можно ли настроить так чтоб роутер не резал локалку 192.168.11.0/24, а только резал инет. Или как мне работать с шейпером?
2. Я поднял ssh сервер но т.к. у меня статический ІР то есть много попыток брута, хотя мне нужно удаленно заходить. Под ФриБСД я решал проблему поднятием ssh с 22 на 1234 порт. Как ето можно реализовать или же как мне работать с ssh (нету конфигурационного файла /etc/ssh/sshd_config).

checat
14-01-2010, 22:30
Здравствуйте господа. Купил роутер Dir-320, поставил прошивку от Олега.
Я новичок в Линуксе, причем неплохо разбираюсь в ФриБСД.
Помогите мне пожалуйста разобратся:
1. Роутер подключен к сети WAN-192.168.11.0/24 через которую идет инет.
Также есть локалка 172.16.10.0/24 - моя. На роутере стоит шейпер, но проблема вот в чем, если роутер режет скорость по определенному mac то - он режет все, А можно ли настроить так чтоб роутер не резал локалку 192.168.11.0/24, а только резал инет. Или как мне работать с шейпером?
2. Я поднял ssh сервер но т.к. у меня статический ІР то есть много попыток брута, хотя мне нужно удаленно заходить. Под ФриБСД я решал проблему поднятием ssh с 22 на 1234 порт. Как ето можно реализовать или же как мне работать с ssh (нету конфигурационного файла /etc/ssh/sshd_config).

1. Курить тему http://wl500g.info/showthread.php?t=13609

2. Курить тему http://wl500g.info/showthread.php?t=12833

Обе темы, что характерно, даже без поиска обнаруживаются на 1й странице форума

UxN
18-01-2010, 12:35
2. Делаеться так
dropbear -p 1234 > /dev/null 2>&1
кстати я уже поставил openssh ((((( і снес dropbear