kostyk Posted September 13, 2004 Posted September 13, 2004 Народ в сети начал качать FlashGet'ом и прочим, так что Интернет-канал забивается совсем. По страничкам даже полазить невозможно. Вроде как, все эти FlashGet'ы, в основном, идут пакетами по 1500 байт (посмотрел iptraf'ом). Я все эти пакеты хотел в отдельную очередь шейпера засунуть с помощью: iptables -A FORWARD -t mangle -i eth1 -p tcp -m length --length 1499: -j MARK --set-mark 16 tc filter add dev eth1 parent 1: protocol ip prio 6 handle 16 fw classid 1:16 Но обнаружилось, что Iptables пакеты маркирует, но в полосу не шлёт. Причём не только в этом случае (просто по 80 порту ничего не происходит). Вот и вопрос: а почему так? И что можно сделать, чтобы всё-таки эти пакеты отмаркировать и засунуть в нужную полосу? ЗЫ И ещё обнаружился глюк с классами HTB. Типа класс с приоритетом больше 7 всё равно имеет приоритет 7. Значит можно делать не больше 7 приоритетов? :( Вставить ник Quote
avial Posted September 13, 2004 Posted September 13, 2004 попробуй -j MARK --set-mark 0x16 И не проще ли pfifo на sfq или esfq заменить? Вставить ник Quote
kostyk Posted September 14, 2004 Author Posted September 14, 2004 А в tc filter тогда handle также писать, 0х16? Спасибо, сегодня вечером попробую. Про pfifo я ничего не говорил. У меня очередь HTB, и каждый класс как очередь SFQ идёт. Хм... А где можно про esfq почитать, в первый раз о таком слышу? Вставить ник Quote
avial Posted September 14, 2004 Posted September 14, 2004 Не помню, вроде просто 16. А канал забивают множеством потоков? Тогда esfq поможет с хэшем по адресу источника. Но ей патч нужен. А посмотреть в твоей же ссылке http://gazette.linux.ru.net/rus/articles/t...aleLinuxTC.html :) Вставить ник Quote
kostyk Posted September 14, 2004 Author Posted September 14, 2004 Мне кажется, что 0х16 - это в шестнадцатиричном, а 16 - в десятичных числах. Ну всё равно вечером и то, и то попробую. А про ESFQ спасибо большое! Особенно за ссылку! :) (Думал умный, внимательно не читал.) Канал, мне кажется не потоками забивают. Просто программа такая, что часто-часто пакеты шлёт. Но ESFQ всё равно пригодиться. А про патч, может подскажешь, где брать его? Вставить ник Quote
avial Posted September 14, 2004 Posted September 14, 2004 Там как раз все дело в шестнадцатиричных и десятичных. Я с роутингом столкнулся, если меньше 10 - все работает, если больше - пока 0х не поставишь - не работает. Хотя может случайно получилось :) Я в свое время хотел esfq использовать, но необходимость патчить неизвестно чем меня отпугнуло. http://www.ssi.bg/~alex/esfq/ http://fatooh.org/esfq-2.6/ Вставить ник Quote
kostyk Posted September 14, 2004 Author Posted September 14, 2004 Чё-то не идёт всё равно. :( Нашёл про маркинг, что используется какой-то модуль DSCP. Придётся рыть в этом направлении. Или же фильтровать самим tc. А с ESFQ - там ядро надо дифф'ом патчить. А я так не умею. :( Вставить ник Quote
Guest Posted September 17, 2004 Posted September 17, 2004 А если пробывать метить в POSTROUTING? И еще про пометку длинных сессий можно использовать патч к iptables - connbytes. Для пометки пиринговых сетей патч p2p. Вставить ник Quote
kostyk Posted September 20, 2004 Author Posted September 20, 2004 Mahadeva_604, огромное спасибо! Но теперь я осознал свою ошибку (перепутал размер пакета (MTU) и размер дейтаграммы). А по MTU iptables не маркирует. Надо рыться, узнавать размер дейтаграмм этих FlashGet'ov. Или ставить ESFQ и патч connbytes. PS Вот бы ещё почитать где-нибудь, почему так пошло, а через FOWARD - нет. И про патчи спасибо! р2р уже использую, правда всё из-за тех же глюков только, как рубильник всяким ДЦ++. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.