Отлично, вечером проверю.
PS: Я как-то не рискую с работы, через тунель, домашний роутер прошивать. ;-)
Printable View
На r2399
C заменой ipt_IMQ на xt_IMQ:Quote:
[root@Server root]$ nshaper start
Setup shapers
Setup zones
Applying rules
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
nShaper started.
Но затем:Quote:
[root@Server root]$ nshaper start
Setup shapers
Setup zones
Applying rules
nShaper started.
Quote:
[root@Server root]$ nshaper status
nShaper is not running. Sorry...us
to Chehov,
Пожалуйста вывод сл. комманд на r2399 в студию, после поднятого WAN и nshaper start (вывод в теге code ;))
ifconfig
tc -s class ls dev imq0
tc -s class ls dev imq1
Спасибо.
Вот:
PHP Code:Using username "root".
[root@Server root]$ nshaper start
Setup shapers
Setup zones
Applying rules
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
nShaper started.
[root@Server root]$ ifconfig
br0 Link encap:Ethernet HWaddr 48:5B:39:06:3A:35
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5935502 errors:0 dropped:0 overruns:0 frame:0
TX packets:8879946 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2274556539 (2.1 GiB) TX bytes:2074122190 (1.9 GiB)
eth0 Link encap:Ethernet HWaddr 48:5B:39:06:3A:35
inet6 addr: fe80::4a5b:39ff:fe06:3a35/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9501101 errors:0 dropped:0 overruns:0 frame:0
TX packets:7128406 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2090150276 (1.9 GiB) TX bytes:3342577412 (3.1 GiB)
Interrupt:4 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 48:5B:39:06:3A:35
inet6 addr: fe80::4a5b:39ff:fe06:3a35/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5606249 errors:5 dropped:0 overruns:0 frame:2615476
TX packets:8401365 errors:101 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2329161725 (2.1 GiB) TX bytes:1436725218 (1.3 GiB)
Interrupt:3 Base address:0x1000
imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:1400 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:11000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
imq1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:1400 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:11000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:2808 errors:0 dropped:0 overruns:0 frame:0
TX packets:2808 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:436597 (426.3 KiB) TX bytes:436597 (426.3 KiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:95.24.248.85 P-t-P:78.107.1.49 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1400 Metric:1
RX packets:8944862 errors:0 dropped:0 overruns:0 frame:0
TX packets:6620585 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1480020761 (1.3 GiB) TX bytes:2269783428 (2.1 GiB)
vlan1 Link encap:Ethernet HWaddr 48:5B:39:06:3A:35
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:330826 errors:0 dropped:0 overruns:0 frame:0
TX packets:500287 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:26050188 (24.8 MiB) TX bytes:705681322 (672.9 MiB)
vlan2 Link encap:Ethernet HWaddr 48:5B:39:06:3A:35
inet addr:10.163.71.201 Bcast:10.163.71.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9170275 errors:0 dropped:0 overruns:0 frame:0
TX packets:6628113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1893080270 (1.7 GiB) TX bytes:2636895622 (2.4 GiB)
[root@Server root]$ tc -s class ls dev imq0
class htb 1:202 parent 1:20 leaf 202: prio 2 rate 4424Kbit ceil 9954Kbit burst 2152b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 3801 ctokens: 2231
class htb 1:203 parent 1:20 leaf 203: prio 3 rate 1106Kbit ceil 9954Kbit burst 1737b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 12276 ctokens: 2231
class htb 1:1 root rate 12288Kbit ceil 12288Kbit burst 25Kb cburst 2933b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 16275 ctokens: 1866
class htb 1:200 parent 1:20 leaf 200: prio 0 rate 2212Kbit ceil 9954Kbit burst 1875b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6625 ctokens: 2231
class htb 1:20 parent 1:1 rate 11060Kbit ceil 11060Kbit burst 2979b cburst 2979b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 2105 ctokens: 2105
class htb 1:201 parent 1:20 leaf 201: prio 1 rate 2212Kbit ceil 9954Kbit burst 1875b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6625 ctokens: 2231
class htb 1:204 parent 1:20 leaf 204: prio 4 rate 1106Kbit ceil 9954Kbit burst 1737b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 12276 ctokens: 2231
[root@Server root]$ tc -s class ls dev imq1
class htb 2:202 parent 2:20 leaf 202: prio 2 rate 4424Kbit ceil 9954Kbit burst 2152b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 3801 ctokens: 2231
class htb 2:203 parent 2:20 leaf 203: prio 3 rate 1106Kbit ceil 9954Kbit burst 1737b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 12276 ctokens: 2231
class htb 2:1 root rate 12288Kbit ceil 12288Kbit burst 25Kb cburst 2933b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 16275 ctokens: 1866
class htb 2:200 parent 2:20 leaf 200: prio 0 rate 2212Kbit ceil 9954Kbit burst 1875b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6625 ctokens: 2231
class htb 2:20 parent 2:1 rate 11060Kbit ceil 11060Kbit burst 2979b cburst 2979b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 2105 ctokens: 2105
class htb 2:201 parent 2:20 leaf 201: prio 1 rate 2212Kbit ceil 9954Kbit burst 1875b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6625 ctokens: 2231
class htb 2:204 parent 2:20 leaf 204: prio 4 rate 1106Kbit ceil 9954Kbit burst 1737b cburst 2841b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 12276 ctokens: 2231
to Chehov,
Сегодня уже не успеваю, завтра перееду на rt-n ветку - посмотрю...
Переехал :eek:
иТого:
Для тех, кто хочет пользовать nShaper сборка rt-n ветки должна быть не старше (т. е., включительно, до указанной): r2274 - с этой сборкой всё (в nShaper-e) работает, кто хочет может попробовать перебрать остальные ;)
Не знаю, начиная с какой, но уже в r2324 и r2329 сам разбор траффика по классам работает, но не работает статус (nShaper status - пишет, что nShaper не запущен :() и при отключении ppp0 (на странице статуса жмём Disconnect) imq dev сыпет ошибками, если сделать nShaper stop, потом Stopservice kernel вываливает какой-то Exeption :( Толком разобраться времени пока нет...
В r2399 (при внесении правок: вместо ipt_IMQ используя xt_IMQ) IMQ девайсина подимается, но ipt_IMQ use остаётся равен нулю и разбор трафа по классам не происходит :mad:
Поскольку на текущий момент (в текущих сборках rt-n ветки) система управления траффиком мёртвая, то пилить встройенный в прошу Bandwidth Management смысла не имеет, пока не будет восстановлена нормальная работа системы управления траффиком. Я разорваться не могу, раз уж начал некоторый тюнинг nShaper-a - доделаю его, а потом начну, при помощи Энтузиастов, "ловлю" блох в проше :rolleyes:
Так что кому актуален nShaper на rt-n ветке - пользуем r2274 -1.9.2.7-rtn-r2274
Сейчас откатился на 1.9.2.7-rtn-r2291
nshaper вроде работает.
И status в том числе.
Обновил nShaper до V 0.4.4 - теперь он работает с любыми сборками проши от Энтузиастов, в независимости от давности/свежести
сборки (начиная с r644 и до самой последней ;)) и с любой версией линухового ядра (2.4 (-d) или 2.6 (-rtn))
Файл в незаархивированном виде - можно скачать wget-ом прямо на роутер, переименовать по вкусу, сделать исполняемым
(chmod +x nshaper) и пользоваться. Запускать можно как сервис, я рекомендую из post-firewall - nshaper restart
Версия в аттаче: nShaper FD (для Full Duplex канала) - если кому-нибудь очень сильно нужна будет версия HD
(для Half Duplex канала), я и её исправлю, но не хотелось бы по двум причинам:
- во-первых, версии FD и HD не особо отличаются, поэтому я планирую ввести настройку, типа: HD_mode=yes
и в будущем это будет одна версия для обоих типов каналов, а также и некоторые др. дополнительные настройки ;)- во-вторых, опять придётся забросит основную идею и заниматься тупым копированием кода, вместо его исправления и оптимизации :)
Пока это "светлое будущее" не наступило :) выкладываю версию для Half Duplex канала, спасибо SerGri
Пробуйте, комментируйте, критикуйте, высказывайте "хотелки" по добавлению новых ф-ий, по возможности, буду стараться вносить изменения...
V 0.4.4.2:
- теперь полностью корректно работает алгоритм определения версии софта на роутере;
- строки до 230-ой не изменялись (нумерация строк по v 0.4.4.1) и в дальнейшем изменяться не будут!!! (обновляться стало легче ;))
- оператор test заменён на []
! Начиная с версии -rtn-r2837 в проше Энтузиастов работает FastNAT для корректной работы nShaper его необходимо отключить:
Code:nvram set misc_fastnat_x=0
nvram commit && reboot
Iguana
Можете добавить опцию для того чтобы пиринговый трафик шел в обход nshaper?
Тут был вариант как пустить в обход шейпера одну подсеть. Но у моего провайдера пиринговый и интернет трафик идет по одному pppoe соединению. А к пиринговой зоне относятся 5 различных подсетей прописанных в ip_piring.lst.
В результате роутер с работающем шейпером прокачивает ~25Мбит/c в одну сторону, а без него ~45МБит/c.
Не совсем понял KinoMan'а.
У меня тоже одно соединение pppoe.
Список пиринговых сетей (donnet) скачивается с сайта провайдера cron'ом, чтобы при каждом перезапуске nshaper'а список был актуальный.
В итоге, как я понимаю, весь трафик этих пиринговых сетей не шейпится, а попадает в строчку donnet.
Единственный момент. Я ещё не обновился до 4.4, это на версии 4.3 и прошивке rtn-r2291.
Или вы хотите чего-то другого?Code:# ./nshaper status
Loading...
nShaper status Втр Дек 7 10:32:00 MSK 2010
Ctrl-C to exit
-Zones- -Download rate- -Received- -Upload rate- -Sent-
bit/s pps Bytes bit/s pps Bytes
Total 13.8k 12 97.6k 101k 15 1.16M
inet 8.23k 6 57.6k 29.7k 8 205k
Crit 720 1 6.27k 800 1 8.13k
Prio 0 0 0 0 0 0
Web 40 0 638 0 0 875
Other 0 0 0 0 0 0
Lazy 8.42k 5 50.7k 38.4k 7 196k
donnet 7.30k 7 40.0k 99.1k 10 986k
Теперь пожелания:
1. Настройки скоростей каналов и правила распределения трафика по классам вынести в отдельный конфиг. Тогда можно будет настроить свой конфиг, а при обновлении шейпера, обновлять только его файл.
2. Мне хочется, чтобы и трафик "пиринговых зон" можно было пускать по классам. Но пожалуй, такое поведение нужно включать/выключать по флажку/признаку. В идеале, для каждой пиринговой зоны - отдельно.
Почему я взял в кавычки "пиринговых зон". Дело в том, что у моего провадера, нет конкетных p2p-зон, а есть просто "домашняя" (локальная) сеть в которой крутится и торрент, и DC++, радио, и уже online-видео подтягивается и можно создавать любые свои сетевые ресурсы. И я опасаюсь, что торрент возможно будет забивать весь канал и радио/видео будет затыкаться
Не торопитесь :) всё будет ;) но не сразу :D
В ближайших планах:
- обеспечить нормальную работу в 3G сетях (когда заранее не извесна доступная МАХ скорость канала и она постоянно меняется)
- полность отдельный Config файл, со всеми настройками
По пункту 1. - в ближайших планах ;)
По пункту 2. - можно уже и сечас, но если WAN или LAN интерфейсы разные, путём запуска двух копий nShaper (костыль, конечно, зато быстро :D). На будущее - подумаю, но количество начальных правил и установок разрастётся до неимоверных размеров. Взял на заметку...
to KinoMan,
можно запустить траф в обход шейпера, для этого нужно исключить в настройках 3-тье правило (Others), вернее всё то, что не попало в правила не пускать в правило по умолчанию, тогда этот траф пойдёт мимо шейпера и окажется самым приоритетным т. е. "задавит" траф идущий через шейпер... В общем, без деления на полосы и незначительного (до 10-15%) ограничение полосы не обойтись... Можно попробовать через высокоскоростные очереди, но пока они не включены в прошу и, если будут включены, то только в -rtn ветку...
Но при этом на классы он судя по всему не нарезается.
Т.е. как я понимаю, то, что идет в пиринговых зонах проходит мимо правил шейпера.
Правильно?
По поводу "быстрого" пуска трафика в обход своими силами.
Шейпер добавляет такие правила в iptables в таблицу mangle:
Можно попробовать модифицировать скрипт, так, чтобы проверялся не только интерфейс (ppp0), но и ip на НЕ вхождение в Ваши пиринговые сети. Тогда этот трафик будет идти вообще мимо шейпера.Code:-A PREROUTING -i ppp0 -j IMQ --todev 0
-A POSTROUTING -o ppp0 -j IMQ --todev 1