Nallien Posted December 5, 2005 Posted December 5, 2005 Давно страдаю несколькими мыслями, которые никак не могу воплотить в реальность. Так что прошу помощи у народа. есть небольшая локалка, шлюз на линухе (FC_4), биллинг, нат... да много чего побочного еще... линк наружу - ppp0 внутрь - eth0 и резервный в автобалансе (подумываю о транке) eth1 общий канал наружу - 128 Кбит, в связи с чем - абоненты используют некоторый дискомфорт при работе в интерактиве (если кто-то усердно качает - сквид его ставит в очередь, однако некоторые - любят поиграт ь в он-лайн, или просто полазиьт п осайтикам очень энергично, ввиду чего те которые играют в популярную нынче "линейку" (Lineage2) порт 7777 испытывают серьезное нервное расстройство от увеличения латентности соединения (читай - время отклика) ака пинг, тоже самое с SSH и всяческими общалками), причем довольно ощутимый - вплоть до таймаута. ну собственно вопрос старый - использую HTB.init - не сильно помогает ;((( я чего-то в нем недоонимаю - это факт. и так и сяк и эдак - все равно где-то что-то не так. создал правила и на ppp0 и на eth0 (eth1 - ждет сбоя eth0 - и только потом подымается, "заменяя" его)... скорость вроде как шейпит, хотя шейпинга (условного, понимаю) входящих потоков - так и не вижу %( а вот приоретизации - не вижу никак вообще отнюдь... может кто-то выложить пример или ткнуть носом в хороший ман с меткой пакетов файрволом ??? любая помощь приветствуется. спасибо за внимание. Вставить ник Quote
Guest Posted December 5, 2005 Posted December 5, 2005 лНАХКЭМШИ mp3 лЕКНДХХ mp3 Nokia mp3 Mp3 free аПЮР mp3 Flash mp3 Download mp3 Mp3 ЛСГШЙЮ Mp3 ПЕЦХЯРПЮЖХЪ рЮРС mp3 кЧАНБЭ mp3 аЕЯОКЮРМН mp3 ЯЙЮВЮРЭ Mp3 ГБНМЙХ гБЕПХ mp3 яЙЮВЮРЭ ОЕЯМЧ mp3 Mp3 АЕГ яЙЮВЮРЭ mp3 ОЕЯМХ оЕЯМЪ mp3 Mp3 ЯЮИРШ Mp3 ОЕЯМХ 2 mp3 Wav mp3 Mp3 ЯНРНБШИ Mp3 ru цКЮГЮ mp3 Siemens mp3 аЕЯОКЮРМШЕ mp3 Mp3 ЙНМБЕПРНП Mp3 Mp3 ЙНМБЕПРЕП Cd mp3 Mp3 player Mp3 АЕГ ПЕЦХЯРПЮЖХХ Mp3 АЕЯОКЮРМН Mp3 РЕКЕТНМ Love mp3 оПНЦПЮЛЛШ mp3 яЙЮВЮРЭ mp3 Mp3 dj Up mp3 Mp3 ОКЕЕП Mp3 ЮПУХБШ Mp3 mmf Mp3 ЛСГШЙЮ АЕЯОКЮРМН Mp3 ЛЕКНДХХ ЯЙЮВЮРЭ Wma mp3 яЙЮВЮРЭ ЛСГШЙС mp3 Mp3 ЦПСОО тНПЛЮР mp3 Mp3 ОПХЙНКШ дНЛНТНМ сЯРЮМНБЙЮ ДНЛНТНМЮ йНД ДНЛНТНМЮ бГКНЛ ДНЛНТНМЮ дНЛНТНМШ БХГХР дНЛНТНМ ЯУЕЛЮ йКЧВ ДНЛНТНМЮ дНЛНТНМШ vizit Cyfral ДНЛНТНМ дНЛНТНМ eltis дНЛНТНМ ОЕРЕПАСПЦ бХДЕН ДНЛНТНМШ дНЛНТНМ ЯЕПБХЯ лЕРЮЙНЛ ДНЛНТНМ дНЛНТНМШ ТЮЙРНПХЮК дНЛНТНМ ЯЮМЙР нРЙПШРЭ ДНЛНТНМ дНЛНТНМШ ЯЮМЙР ОЕРЕПАСПЦ дНЛНТНМ ЖХТПЮК лМНЦНЙБЮПРХПМШИ ДНЛНТНМ пЕЛНМР ДНЛНТНМНБ оНДЙКЧВЕМХЕ ДНЛНТНМНБ дНЛНТНМ РПСАЙЮ бГКНЛЮРЭ ДНЛНТНМ дНЛНТНМНБ НАЯКСФХБЮМХЕ дНЛНТНМ ЛНЯЙБЮ дНЛНТНМШ ХМЯРПСЙЖХЪ дНЛНТНМ commax оПНДЮФЮ ДНЛНТНМЮ дНЛНТНМШ ЯОА тХПЛШ ДНЛНТНМШ оПНЦПЮЛЛХПНБЮМХЕ ДНЛНТНМЮ дНЛНТНМШ ЩКРХЯ сЯРПНИЯРБН ДНЛНТНМЮ дНЛНТНМШ ДБЕПХ лНМРЮФЮ ДНЛНТНМЮ сЯРЮМНБЙЮ ДНЛНТНМЮ ОЕРЕПАСПЦ мНБНЯХАХПЯЙ ДНЛНТНМ яУЕЛЮ ОНДЙКЧВЕМХЪ ДНЛНТНМЮ оНДЗЕГДМШЕ ДНЛНТНМШ нНН ДНЛНТНМШ дНЛНТНМ ЙСОХРЭ дНЛНТНМ ТНПСЛ сЯРЮМНБЙЮ ДНЛНТНМЮ ЯЮМЙР ОЕРЕПАСПЦ сМХБЕПЯЮКЭМШИ ДНЛНТНМ сЯРЮМЮБКХБЮК ДНЛНТНМ дНЛНТНМ ОЮМЕКЭ дНЛНТНМ cyfral ЙНД дНЛНТНМШ ЖЕМШ нРЙПШРХЪ ДНЛНТНМНБ Вставить ник Quote
Nallien Posted December 7, 2005 Author Posted December 7, 2005 кхм.... нда... что-то больно тихо....... Вставить ник Quote
KoloBok Posted December 9, 2005 Posted December 9, 2005 Ну а что тут писать? www.opennet.ru через 1 минуту будешь иметь штук 10 примеров. Вставить ник Quote
Nallien Posted December 9, 2005 Author Posted December 9, 2005 дядька - я там тож активный участник, помойму я не правильно конкретизировал вопрос. итсправляюсь ядро пробовал и со встроенными всеми фичками относительно HTB CBQ и QoS... и т.д. и с модульным исполнением - разницы никакой. все правила прописаны, класы и приоритеты розданы... но не работаит :( выложу примеры как тоько доберусь до машины... я где-то допустил ошибку в RULE HTBшном... вот и прошу РАБОЧИЕ примеры, не примитивные как на опеннете, а кусочек реальности - желательно без маркировок пакетов... хотя насколько я понимаю - с маркировкой все намного гибче ???? Вставить ник Quote
true Posted December 9, 2005 Posted December 9, 2005 Nallien, для этих целей использую cbq + iptables. Маркирую пакеты iptables, затем шейпю их по меткам. В вашем случае скорее всего подойдет использование приоритета. Вот мой пример (ограничение по скорости): DEVICE=eth0,10Mbit,1Mbit RATE=512Kbit PEAK=1Mbit WEIGHT=52Kbit PRIO=5 MARK=3 iptables -t mangle -A POSTROUTING -d xxx.xxx.xxx.xxx -j MARK --set-mark 3 Ограничение по приоритету: DEVICE=eth0,10Mbit,1Mbit RATE=512Kbit PEAK=1Mbit WEIGHT=52Kbit PRIO=3 MARK=4 iptables -t mangle -A POSTROUTING -p tcp --sport 7777 -j MARK --set-mark 4 Чем меньше число PRIO (от 1 до 8), тем больший приоритет имеют пакеты Вставить ник Quote
Guest Posted December 10, 2005 Posted December 10, 2005 по-моему этот приоритет совершенно другое подразумевает.... приоритет этот не для пакетов а для правил....... т.е. если есть правило для айпишник 1.1.1.1 и появится ещё одно правило для айпишника 1.1.1.1 посылающего пакеты на 2.2.2.2 , то чтоб какое-то из правил имело приоритет(исполнялось первым...) приоретизация пакетов в очереди параметром PRIO не регулируется Вставить ник Quote
Nallien Posted December 10, 2005 Author Posted December 10, 2005 true - аригато :) есть теперь с чего разбираться начинать-то хоть... хм...... если гость прав - то я знаю в чем моя ошибка.... но стоп.... а чем же тогда приоритет пакеов В очереди регулировать ??? помойму как раз PRIO ??? ну всюду пишут так... но как регулироватьшейпитьприоретизировать НЕ TCP протоколы ??? тот же пинг например...., да .. и я совсем запутался с правилами, что есьт исходящий... а что входящий трафик... RULE=*:80, RULE=*:80 какое из правил какой трафик ограничивать будет ??? относительно кого он исходящий, и относительно чего входящий ??? и есть ли какой-то более разумный способ ограничивать траф по айпи адресам (или групам беспорядочных адресов - ака клиентам), чем прописывать каждого к класу ? как я это вижу сечас: 32Кбита________64Кбита________128Кбит (класы) |...............................|..............................| |...............................|..............................| __________дочерние____класы___________ а в каждом из нихы - правила для разных скоростей.... Вставить ник Quote
true Posted December 10, 2005 Posted December 10, 2005 Гость, PRIO - регулятор очереди :) (CBQ - Class Based Queue) но как регулироватьшейпитьприоретизировать НЕ TCP протоколы ??? тот же пинг например.... А что мешает помечать ICMP пакеты, скажем? iptables -t mangle -A INPUT -p icmp -j MARK --set-mark 4 # входящие пакеты С UDP пакетами то же самое (им можно максимальный приоритет выставить). да .. и я совсем запутался с правилами, что есьт исходящий... а что входящий трафик... Зависит от того, какой хотите трафик шейпить: проходящий (NAT, masqarade & etc.) или входящий/выходящий? Пример, что я привел выше - для NAT. 1-й - ограничить входящую скорость для клиента с IP xxx.xxx.xxx.xxx до 512Кбит, 2-ой - установить приоритет 3 для пакетов, приходящих с порта 7777 Вообще, есть хороший мануал для начинающих: http://linuxportal.ru/print.php/87_0_3_0_M/ Вставить ник Quote
Nallien Posted December 10, 2005 Author Posted December 10, 2005 спасибо... но уже использую HTB очень долго думал что же все-таки лучше - и выбрал... на свою голову :) основной фактор - CBQ не работает с ppp интерфейсами. и меня интересует способы управления без участия iptables (если таковые есть в поноценном состоянии)... а маркировкой скорее всего все и кончится... Вставить ник Quote
true Posted December 10, 2005 Posted December 10, 2005 Nallien, а что смущает в использовании маркировки? Вставить ник Quote
Nallien Posted December 10, 2005 Author Posted December 10, 2005 моя некомпетентность :) скрипт придется писать на живом сервере... так что хотелось бы минимальным вмешательством (понимаю что маркировка - ничего плохого сделать не может %))) но ве равно как-то не по себе)... но вот как раз сейчас приступаю к маркировке...может кто поделиться готовыми шаблонами ? 1. я так понимаю все меньше 64 Б - без очереди... аки по идее... где-то читал что-то похожее...... ну пинг туда же .... ссш... телнет... 2. игры, аська, голосовые чаты... 3. www, почта pop и smtp.... 4.... таааккк.... ну фтп... 5... ослики и все остальное... вроде так.... осталось реализовать. Вставить ник Quote
Say Posted December 10, 2005 Posted December 10, 2005 Не знаю поможет ли, посмотрите в сторону tcng, может понравится: http://tcng.sourceforge.net/ http://gazette.lrn.ru/rus/articles/Traffic...-HTB-HOWTO.html Вставить ник Quote
Nallien Posted December 11, 2005 Author Posted December 11, 2005 страшная штука :) вот это возможности... нда... можно сделать модульный скрипт... который будет выдирать из билинга необхо... а тьфу, я все равно на такое не способен :) эх.... нет. маркировка - доходней в разы. Вставить ник Quote
Nallien Posted December 11, 2005 Author Posted December 11, 2005 Такс...... вот как я это делаю.... но терзают меня смутные сомнения... да и вроде как ходит не все и не туда.... eth0 eth0-2:10.www eth0-2:20.smtp eth0-2:25.lprio eth0-2:30.local eth0-2.root ppp0 ppp0-2:10.hprio ppp0-2:20.www ppp0-2:30.default ppp0-2.root содержимое следующего характера (2:20 к примеру) одинаково и на eth0 и на ppp0 RATE=30Kbit CEIL=96Kbit LEAF=sfq PRIO=2 MARK=20 правила табличек: #!/bin/bash IPTABLES=/sbin/iptables #Flush MANGLE tables $IPTABLES -t mangle -F #__________Высокий приоритет #______SSH $IPTABLES -t mangle -A PREROUTING -p tcp --dport 23 -j MARK --set-mark 10 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 23 -j MARK --set-mark 10 #______Lineage2 $IPTABLES -t mangle -A PREROUTING -p tcp --dport 7777 -j MARK --set-mark 10 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 7777 -j MARK --set-mark 10 #______ICQ $IPTABLES -t mangle -A PREROUTING -p tcp --dport 5190 -j MARK --set-mark 10 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 5190 -j MARK --set-mark 10 #______DNS $IPTABLES -t mangle -A PREROUTING -p tcp --dport 53 -j MARK --set-mark 10 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 53 -j MARK --set-mark 10 $IPTABLES -t mangle -A PREROUTING -p udp --dport 53 -j MARK --set-mark 10 $IPTABLES -t mangle -A PREROUTING -p udp --sport 53 -j MARK --set-mark 10 #______Ping $IPTABLES -t mangle -A PREROUTING -p icmp -j MARK --set-mark 10 #$IPTABLES -t mangle -A PREROUTING -p tcp --sport 7 -j MARK --set-mark 10 #$IPTABLES -t mangle -A PREROUTING -p tcp --sport 7 -j MARK --set-mark 10 #$IPTABLES -t mangle -A PREROUTING -p tcp --sport 7 -j MARK --set-mark 10 #_________________________Средний приоритет #_______________________WWW_ $IPTABLES -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 20 $IPTABLES -t mangle -A PREROUTING -p tcp --dport 8080 -j MARK --set-mark 20 $IPTABLES -t mangle -A PREROUTING -p tcp --dport 3128 -j MARK --set-mark 20 #_______________________FTP #_______________________FTP #_____________________________________________Низкий приоритет #______________________ALL #$IPTABLES -t mangle -A POSTROUTING -o ppp0 -j MARK --set-mark 30 #$IPTABLES -t mangle -A PREROUTING -i ppp0 -j MARK --set-mark 30 #_______________________FTP $IPTABLES -t mangle -A PREROUTING -p tcp --dport 20 -j MARK --set-mark 30 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 21 -j MARK --set-mark 30 $IPTABLES -t mangle -A PREROUTING -p tcp --dport 20 -j MARK --set-mark 30 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 21 -j MARK --set-mark 30 #______________________POP $IPTABLES -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 30 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 25 -j MARK --set-mark 30 #______________________SMTP $IPTABLES -t mangle -A PREROUTING -p tcp --dport 110 -j MARK --set-mark 30 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 110 -j MARK --set-mark 30 но получается так.. что в "20" ничего не попадает... в чем моя ошибка ? или я не правильно понимаю вывод скрипта ??? как вообще можно проверить работоспособность ? 14:35:11 up 8 days, 19:35, 1 user, load average: 0.00, 0.04, 0.03 Interval Cumulated Total Dev Classid Tokens Ctokens Rate Speed Send Send ------------------------------------------------------------------------- eth0 1:10 36085 35501 1.95KB 2.24KB/s 73.22KB 1.63MB eth0 1:2 13973 1162 135.22KB 135.96KB/s 4.80MB 170.22MB eth0 1:20 437725 137556 0B 0B/s 0B 0B eth0 1:25 795648 133462 1B 0B/s 3.88KB 15.50KB eth0 1:30 2282 1181 132.91KB 133.72KB/s 4.72MB 168.57MB 14:54:11 up 8 days, 19:54, 1 user, load average: 0.29, 0.19, 0.10 Interval Cumulated Total Dev Classid Tokens Ctokens Rate Speed Send Send ------------------------------------------------------------------------- ppp0 1:10 256573 134144 411B 260B/s 11.82KB 300.40KB ppp0 1:2 83968 134144 979B 576B/s 31.09KB 658.39KB ppp0 1:20 437725 137556 0B 0B/s 0B 0B ppp0 1:30 787458 132096 553B 316B/s 19.27KB 357.99KB судя по всему ввв - идет в обход ВСЕХ правил....... арррррррр... застрелюсь скоро :( Вставить ник Quote
true Posted December 11, 2005 Posted December 11, 2005 Nallien, $IPTABLES -t mangle -A PREROUTING -p tcp --sport 80 -j MARK --set-mark 20 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 8080 -j MARK --set-mark 20 $IPTABLES -t mangle -A PREROUTING -p tcp --sport 3128 -j MARK --set-mark 20 ;) Вставить ник Quote
Nallien Posted December 11, 2005 Author Posted December 11, 2005 dport !!!!!!!!!!!! ну я уже поставил - результат тот же :{З. :(((((((((( арррррррр... где же я туплю ? как мне пометить ВСЕ пакеты ??? если я помечу все идущее на ppp0, правила для предыдущих (приоретизированных) - будут действовать ??? в часности должен быть у "общего" номер больше их... так ? спустя долгие часы - все по прежнему.... пустая очередь 20 и усе :( Вставить ник Quote
desperado Posted December 12, 2005 Posted December 12, 2005 основной фактор - CBQ не работает с ppp интерфейсами. кто сказал???? я на них его в основном и юзаю, разруливая правила в ip-up/down. А вообще - лучше юзать на IMQ. И без марок обойтись не сложно. Вставить ник Quote
Nallien Posted December 12, 2005 Author Posted December 12, 2005 хм.... читал на оффе что CBQ не работает с PPP... может что-то тсарое читал ? значь работает ??? но HTB - точнее и чеснее... марки - уже сипользую... а вот IMQ .... хм.... ядро у меня 2.6.x - то такого модуля там нету... и при сборе - тоже нет, ну или я не нашел :) сейчас вот пытаюс прикрутить патч на более свежее ядро... пока безрезультатно. IMQ - действительно даст полноценно управлять и ВХОДЯЩИМ трафиком ? Вставить ник Quote
Nallien Posted December 21, 2005 Author Posted December 21, 2005 арррррр ;( све по- прежнему..... вторая очередь пустует !? я так понимаю - что ошибка в таблицах но где же !? Вставить ник Quote
Nallien Posted February 17, 2006 Author Posted February 17, 2006 все бесполезно %( жизнь не удалась. толку никакого. сколько не мечу, как ни стреляю - все равно. я уже всерьез задумываюсь о том, правильные ли данные выводит monitor_tc_top.pl... но скрипт вроде использую многие... ПОДСКАЖИТЕ хоть что нить :( неужели никто не занимается приоретизацией ??? ну шейпинг-то так или иначе через пулы ? Вставить ник Quote
repa Posted February 17, 2006 Posted February 17, 2006 А на основе чего делаете выводы что не работает приоритизация? P.S. Я не ас в приоритизации на linux, но я пытаюсь перевести разговор в русло решения вопроса, поиска причины траблов. Вставить ник Quote
Nallien Posted February 17, 2006 Author Posted February 17, 2006 ну - в проверке на практике, и скрипт есть, который мониторит очереди HTB и количесвто прошедшего сквозь них... чем порекомендуете ? логирование пакетов ??? К слову - я толком не вьду как читает марки конфигурационный скрипт HTB.init decimal пишут.... тоесть если я ставлю марк... брррр.... запутался :( дясятичные или шеснадцатеричные значения-то !? пойду еще хов-ту по табличкам почитаю. Вставить ник Quote
sirmax Posted February 19, 2006 Posted February 19, 2006 Nallien CBQ великолепно работает на любых интерфейсах, как и НТВ. Единственная проблема - в том что б интерфейс был уже поднят наа момент выставления шейперов. Как тут уже говорили - использовать скрипты ip-up. У меня скрипт выбирает из БД значение полосы на основе логина пользователя, т.е. некое подобие интеграции в биллинг - ИМХО ничего сложного. Если же хотите сделать приоритезацию - то все намного интереснее, и простыми скриптами не обойтись. Вставить ник Quote
Nallien Posted February 19, 2006 Author Posted February 19, 2006 имеено приоретизацию. честно говоря - начиналось все с шейпинга, но (к слову) -тоже ничем удачным не кончилось, поскольку нужно было каждые потоки шейпить (по портам) раздельно... а потом само собою возник вопрос о приоретизации. ну чтобы онлайн-геймеры бегали, 1С не так глюкавило ссш по божески на просаженом канале... в общем вы поняли :) честно говоря, мне кажеться что я неправильно понял принцып маркировки пакетов -j MARK 20 - какое значение дает ? тоесть, что писать в рулсах ? не 20 же ? decimal значение ? только не давно заметил, что по сути - у меня все идет в дефолтовый поток... из чего и сделал вывод о полностью неправильном построении правил маркирования. эххх... буду благодарен за кусочек работающей связки iptables -j MARK и рулсво под HTB или CBQ, на примере которых можно было бы рассмотреть принцып маркировки... Вставить ник 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.