[ rajco @ 03.09.2012. 08:37 ] @
Ovo je jedno od najčešćih pitanja korisnika RouterOS-a, ali je jedno od težih za podešavanje ukoliko želimo ozbiljniju kontrolu i prioritetizaciju. Za osnovnu kontrolu protoka mogu se koristiti Simple Queues ali zbog jednostavnog podešavanja i postojanja dosta uputstava oni neće biti tema teksta. Takođe ako koristimo prioritete zasebno za svakog klijenta imaćemo problem sa uređajem koji će moći procesorski da obradi sva pravila u slučaju velikog broja istih (da bi došao do poslednjeg pravila mora da proveri sve prethodne).

Da bi mogli bilo šta da radimo u vezi sa QoS i prioretitazijom saobraćaja od esencijalne važnosti je poznavanje Packet Flow Diagram-a. Tu ćemo videti koja se radnja kada obavlja i znati gde možemo da markiramo saobraćaj, a zatim i gde da ga ograničimo. Nije neophodno a ni praktično znati napamet dijagram jer je komplikovan a sa novim verzjima RouterOS se može promeniti. Koristićemo dve slike dijagrama, jedna za Bridging (Layer 2, MAC) gde je deo o rutiranju uprošćen i jednu za Routing (Layer 3, IP), gde je deo o bridgingu uprošćen.

Pročitajte ceo članak.
[ rajco @ 05.09.2012. 14:14 ] @
Bilo bi odlično ukoliko se neko uključi u diskusiju o QoS, pa da napravimo jednu kvalitetnu temu. Siguran sam da je dosta ljudi sa foruma već na neki način implementirala QoS na RouterOS-u pa da razmenimo iskustva.
[ rajco @ 07.09.2012. 07:50 ] @
Stvari za diskutovanje ima dosta, npr: koji queue tip koristete za šta, čak i RED za koji većina ne zna šta bi radila sa njim može da se iskoristi, na kom mestu ograničavate saobraćaj, kako markirate saobraćaj...
[ anon115774 @ 07.09.2012. 11:32 ] @
Evo ja nisam implementirao nista obzirom da su korisnici manje-vise sasvim ok i da sami ogranicavaju torrente i ne koriste ih preterano nego samo po nekad itd itd itd.

Ono sto bih voleo da vidim kako da se uradi je da napravim segmentaciju prvo po vrsti saobracaja (dns i vpn da idu po visokom prioritetu bez obzira na sve) a onda sav ostali saobracaj da segmentiram i po korisnicima. Da neki korisnici imaju prioritet u odnosu na druge.

Da li za to koristiti simple queues ili tree? Voleo bih kada bi mi neko dao neke osnovne smernice jer ono sto pise u dokumentaciji za RouterOS je cista teorija a ovde bih vise voleo da cujem best-practice misljenja ili iskustva...
[ rajco @ 07.09.2012. 13:31 ] @
Ukoliko pročitaš članak koji sam napisao skoro sve će ti se pojasniti. Nakon toga pitaj za konkretan problem pa ćemo pomoći. Naravno nikako ne koristi simple queues. Još jedna stvar koju ćeš uvideti pre ili kasnije je da nikad, ali baš nikad ne možeš računati da će korisnici uraditi tvoj deo posla.
[ Aleksandar Đokić @ 07.09.2012. 18:55 ] @
moze da koristi queue-tree i queue-simple zajedno bez ikakvnog problema, queue-simple ce ogranicavati brzinu a queue-tree "rasporedjivati" saobracaj u okviru te brzine...

Citat:
Ono sto bih voleo da vidim kako da se uradi je da napravim segmentaciju prvo po vrsti saobracaja (dns i vpn da idu po visokom prioritetu bez obzira na sve) a onda sav ostali saobracaj da segmentiram i po korisnicima.


manglujes dns i vpn i postavis na najvisi prioritet, manglujes saobracaj korisnika i postavis nizi prioritet, naravno mozes da koristis PCQ za rasporedjivanje medju korisnicima, da odredjenim dajes visi prioritet itd.

Citat:
koji queue tip koristete za šta, čak i RED za koji većina ne zna šta bi radila sa njim može da se iskoristi, na kom mestu ograničavate saobraćaj, kako markirate saobraćaj...


ti to pricas o ciscu, mada je generalno prihvatljivo, ja trenutno radim neki diplomski sa temom "QoS na Cisco IOSu" i prilicno je interesantna tema, trenutno se bakcem sa testiranjem ICPIF i MOS vrednosti pod razlicitim uslovima, a koriscenjem razlicitih QoS tehnika

[ Kolins Balaban @ 25.09.2012. 11:06 ] @
Pozdrav radni narode. Ovaj tutorial je odlican, i vezano za njega imam pitanje. Kompletan tutorial se odnosi na situaciju kad imamo samo jednu LAN karticu, i jednu WAN karticu (pppoe vezu). Ja imam 4 LAN kartice (4 razlicita opsega, 10.10.5.0/25, 10.10.5.129/26, 10.10.5.192/26 i 10.10.9.0/27) i jednu WAN (pppoe clineta ka ISP-u). Kako bi bilo najbolje da odredim samo PCQ ovdje? Jer koliko sam upratio, u ovom malom tutorialu, se ne spominje LAN kao ulazni ili izlazni interfejs kod markiranja paketa, a niti se spominje LAN subnet.... Znaci, hocu da ogranicim Upl i Down, podjednako za sve IP-ove iz pojedinih subneta. Na ovo prvo pitanje bih nadovezao jos jedno podpitanje. Meni ne trebaju prioriteti, samo limitiranje down i upl. Da li je ovo bolje raditi sa markiranjem konekcija? Ako sam dobro upratio, markiranje paketa je vise procesorski zahtjevno (sto meni ne odgovara), jer se svaki paket markira ponaosob i ispituju uslovi (npr. da li je dst port taj i taj, da li je to tcp... itd itd), dok se kod markiranja konekcije ovi uslovi ispitaju s prvim paketom u toj konekciji, a vec na sljedecem i ostalim paketima se ne ispituju svi uslovi, pa je stoga manje zahtjevno.
[ Aleksandar Đokić @ 27.09.2012. 11:09 ] @
mislim da nije bitno sta je source, 1 ili 4 eth kartice...

Citat:
hocu da ogranicim Upl i Down


nisam siguran da ti tu pcq moze pomoci

Citat:
samo limitiranje down i upl


zar ti tu nije dovoljan simple queue?
[ Kolins Balaban @ 27.09.2012. 14:04 ] @
pa imam na jednoj kartici 10tak compova, na drugoj kartici isto tako 10tak, na trecoj 20tak, i na cetvrtoj se mijenja broj i nije nije isti, posto su to AP-ovi postavljeni na 2 sprata u jednoj skoli, pa nekd ima 5 laptopa/mobitela nakacenih, a nekad ima 25.. ne pada mi napamet da tu kreiram queue pravila za svaki IP :D i ako hocu izmjeniti Down/Upl speed, hajde zadji i svako queue pravilo mijenjaj.

Wiki kaze ovako:

Code:
Per Connection Queue (PCQ) is a queuing discipline that can be used to dynamically equalize or shape traffic for
multiple users, using little administration. It is possible to divide PCQ scenarios into three major groups: equal bandwidth
for a number of users, certain bandwidth equal distribution between users, unknown bandwidth equal distribution between
users.


mene zanima bas ovo: equal bandwidth for a number of users, jer mi SVI PC-ovi na jednom subnetu (lan kartici) imaju isti down/upl speed. Za one kojima treba drugaciji speed, za njih cu da kreiram Simple Queue

pokusao sam da primjenim ovo ovdje:

http://wiki.mikrotik.com/wiki/Manual:Queues_-_PCQ_Examples

ali sam odmah zapeo, jer nisam mogao ovo da kreiram:

Code:
/ip firewall mangle add chain=prerouting action=mark-packet \
   in-interface=ether2-WAN new-packet-mark=client_download


u mom slucaju je in-interface=pppoe_client, i s tim ovo pravilo ne prolazi....

[Ovu poruku je menjao Kolins Balaban dana 27.09.2012. u 15:15 GMT+1]
[ rajco @ 27.09.2012. 14:34 ] @
Naravno da možeš samo da ograničiš protok sa queue tree-om i to lakše nego sa simple queues-om i ono što sam video da te interesuje sa manjim uticajem na performanse procesora. Takođe možeš prvo da markiraš paket, a onda da markiraš konekcije i time smanjiš CPU usage. Da li hoćeš ceo protok da podeliš na četiri jednaka dela, a onda da klijentima na pojedinačnim segmentima deliš taj protok na jednake delove?
[ Aleksandar Đokić @ 29.09.2012. 10:17 ] @
Citat:
ne pada mi napamet da tu kreiram queue pravila za svaki IP :D i ako hocu izmjeniti Down/Upl speed, hajde zadji i svako queue pravilo mijenjaj


lose si ti to razumeo, zato postoje profili pa se simple queue auto doda pri konektovanju
[ bmarkovic06 @ 29.09.2012. 12:03 ] @
Citat:
guslac: lose si ti to razumeo, zato postoje profili pa se simple queue auto doda pri konektovanju


Koristis neku skriptu ili user managment?
[ Kolins Balaban @ 02.10.2012. 11:34 ] @
Citat:
guslac:
Citat:
ne pada mi napamet da tu kreiram queue pravila za svaki IP :D i ako hocu izmjeniti Down/Upl speed, hajde zadji i svako queue pravilo mijenjaj


lose si ti to razumeo, zato postoje profili pa se simple queue auto doda pri konektovanju

a pri kakvom konektovanju? niti koristim RADIUS, niti koristim PPPOE server, niti koristim HotSpot. Korisnicima dijelim net preko gateway-a. u pitanju je skola...
[ Aleksandar Đokić @ 02.10.2012. 14:12 ] @
Citat:
Koristis neku skriptu ili user managment?


pri kreiranju pppoe secret-a odaberes profil i pri konektovanju tog pppoe-a ukoliko si u profilu podesio "limit" opciju simple queue se auto doda

Citat:
a pri kakvom konektovanju? niti koristim RADIUS, niti koristim PPPOE server, niti koristim HotSpot. Korisnicima dijelim net preko gateway-a. u pitanju je skola...


ne znam odakle meni da koristis pppoe...

[ anon115774 @ 11.12.2012. 21:04 ] @
Jel bi mogao neko da pomogne oko postavljanja gore pomenute konfiguracije?

Ideja je sledeca:

- napraviti queue tree koji ce da deli vrstu saobracaja po prioritetu
- napraviti simple queue koji ce da ogranicava brzinu po korisniku (u mom slucaju korisnik=VLAN).

Najveci izazov ovde mi je kako oznaciti pakete? Za simple queues mi je dovoljno da uhvatim samo one pakete koji idu ka Internetu i sve ih isto oznacim. Ali to mi onda pravi problem ako hocu u queue tree da pravim kategorizaciju po vrsti saobracaja. I obrnuto. Ima li neko ideju?
[ Aleksandar Đokić @ 12.12.2012. 05:48 ] @
Kako da oznacis pakete? Pa mangle-om, na razumem te.
[ anon115774 @ 15.12.2012. 14:51 ] @
Probacu da pojasnim. Idemo korak po korak.

Prvo oznacim pakete:

Code:
 7   ;;; Internet - DNS UDP
     chain=prerouting action=mark-packet new-packet-mark=DNS_in passthrough=no protocol=udp in-interface=pppoe-out1 src-port=53 

 8   chain=postrouting action=mark-packet new-packet-mark=dns_out passthrough=no protocol=udp out-interface=pppoe-out1 dst-port=53 

 9   ;;; Internet - DNS TCP
     chain=prerouting action=mark-packet new-packet-mark=DNS_in passthrough=no protocol=tcp in-interface=pppoe-out1 src-port=53 

10   chain=postrouting action=mark-packet new-packet-mark=dns_out passthrough=no protocol=tcp out-interface=pppoe-out1 dst-port=53 

11   ;;; Internet - ICMP
     chain=prerouting action=mark-packet new-packet-mark=icmp_in passthrough=no protocol=icmp in-interface=pppoe-out1 

12   chain=postrouting action=mark-packet new-packet-mark=icmp_out passthrough=no protocol=icmp out-interface=pppoe-out1 

13   ;;; Internet - sav ostali odlazni saobracaj
     chain=postrouting action=mark-packet new-packet-mark=Other-Traffic-Out passthrough=no out-interface=pppoe-out1 

14   ;;; Internet - sav ostali dolazni saobracaj
     chain=prerouting action=mark-packet new-packet-mark=Other-Traffic-In passthrough=no in-interface=pppoe-out1


Jel to ok?

Onda napravim queue tree:

Code:
 0   name="total_adsl_down" parent=global-in packet-mark="" limit-at=4M priority=8 max-limit=4M burst-limit=0 burst-threshold=0 burst-time=0s 

 1   name="total_adsl_up" parent=global-out packet-mark="" limit-at=512k priority=8 max-limit=512k burst-limit=0 burst-threshold=0 burst-time=0s 

 2   name="other_down" parent=total_adsl_down packet-mark=Other-Traffic-In limit-at=32k queue=PCQ_download priority=8 max-limit=4M burst-limit=0 
     burst-threshold=0 burst-time=0s 

 3   name="other_up" parent=total_adsl_up packet-mark=Other-Traffic-Out limit-at=16k queue=PCQ_upload priority=8 max-limit=512k burst-limit=0 burst-threshold=0 
     burst-time=0s 

 4   name="dns_down" parent=total_adsl_down packet-mark=DNS_in limit-at=0 queue=PCQ_download priority=2 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

 5   name="icmp_in" parent=total_adsl_down packet-mark=icmp_in limit-at=0 queue=PCQ_download priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

 6   name="dns_up" parent=total_adsl_up packet-mark=dns_out limit-at=0 queue=PCQ_upload priority=2 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

 7   name="icmp_up" parent=total_adsl_up packet-mark=icmp_out limit-at=0 queue=PCQ_upload priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s


Ovo funkcionise.

E sad...

Dolazim do simple queue. Kako da napravim jedan simple queue koji ce uhvati sav saobracaj sa odredjenog VLAN-a i ide ka Internetu i njega ogranicim?

Pokusao sam ovako:

Code:
 6    name="VLAN 1 ka Internetu" target-addresses="" interface=vlan1 parent=none packet-marks="" direction=both priority=8 queue=PCQ_upload/PCQ_download 
      limit-at=0/0 max-limit=64k/64k burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s total-queue=default-small 


Medjutim to mi hvata sav saobracaj na tom vlan-u a ne samo Internet. Imas li ideju kako to da resim?
[ Aleksandar Đokić @ 15.12.2012. 18:19 ] @
Pa moras "ograniciti" queue pravilo, ja ne vidim da si taj queue podesio da hvata bilo sta, pa zato hvata sve.

Ili mangluj saobracaj koji hoces da hvata pa stavi u packet-mark ili stavi opseg adresa. U simple queue takodje imas packet-mark.

Vidim da si koristio i preroute/postroute lanac sto je ok, samo pazi da u queue tree stavis pod Global Total, inace simple queue nece hvatati ili down ili up zavisnosti dal je global_in ili global_out.
[ anon115774 @ 16.12.2012. 09:57 ] @
Citat:
Aleksandar Đokić: Pa moras "ograniciti" queue pravilo, ja ne vidim da si taj queue podesio da hvata bilo sta, pa zato hvata sve.


Pa znam ali kako? :)

Citat:
Ili mangluj saobracaj koji hoces da hvata pa stavi u packet-mark ili stavi opseg adresa. U simple queue takodje imas packet-mark.


Kako da ga manglujem kad je vec manglovan u prvom koraku? Jel moze paket da ima dve oznake? Ili da u simple queue pravilu uhvatim sve one pakete koje sam manglovao? To je malo komplikovano zbog administracije. Lakse bi bilo kad bi svi ti paketi mogli da imaju isti packet-mark ali to pada u vodu zbog prvog koraka.

Citat:
Vidim da si koristio i preroute/postroute lanac sto je ok, samo pazi da u queue tree stavis pod Global Total, inace simple queue nece hvatati ili down ili up zavisnosti dal je global_in ili global_out.


Nisam bas najbolje razumeo ovo. Jel bi mogao da pojasnis?
[ Aleksandar Đokić @ 16.12.2012. 11:17 ] @
Nemam nesto vremena sada, najlakse ti je da podesis interface kod simple queue pravila. Kod mikrotika interfejs je svaki ppp, vlan,...

Ili posto su ti vlan-ovi verovatno u razlicitim opsezima stavi da simple queue hvata ceo opseg, npr 192.168.1.0/24, to je moguce.

Citat:
Nisam bas najbolje razumeo ovo. Jel bi mogao da pojasnis?


Pa zbog "traffic flow-a" kroz ruter. Stavi da parent bude global_total u queue tree i nemas problema.
[ anon115774 @ 16.12.2012. 11:38 ] @
Citat:
Aleksandar Đokić: Nemam nesto vremena sada, najlakse ti je da podesis interface kod simple queue pravila. Kod mikrotika interfejs je svaki ppp, vlan,...


Da ali taj interfejs o kom ti govoris je interfejs cije se ponasanje posmatra i ogranicava. Ovde je potrebno oznaciti izlazni interfejs (dst) sto nije moguce.

Osim... ako instaliras v6 :) U v6 postoji opcija da se za dst definise interfejs dok u ranijim verzijama ovde moze samo IP da se upise.

Hvala na pomoci. Evo sta sve ima v6 kada je queue u pitanju:

Code:
What's new in 6.0rc5 (2012-Dec-05 15:22):

*) fix simple queue config upgrade;

What's new in 6.0rc3 (2012-Nov-09 12:59):

*) /queue tree entries with parent=global are performed separately from /queue simple and before /queue simple;

What's new in 6.0beta3 (2012-Aug-22 12:12):

*) fixed queue bit rate reporting;

What's new in 6.0beta2 (2012-Apr-24 10:57):

*) fix dynamic simple queues;
*) fix queue byte and rate statistics;

What's new in 6.0beta1 (2012-Apr-13 15:26):

*) improved queue management (/queue simple and /queue tree) - easily handles tens
   of thousands of queues;
*) improved overall router performance when simple queues are used -
   at least double the performance of v5, even bigger improvements on multicore systems;
*) very small overhead for packets that miss simple queues,
   but simple queues are present in the system;
*) pcq queue is NAT aware (just like "/queue simple" and "/ip traffic-flow";
*) in "/ip firewall mangle" can specify "new-priority=from-dscp-high-3-bits";
*) new default queue types: pcq-download-default and pcq-upload-default;
*) simple queues have separate priority setting for download/upload/total;
*) global-in, global-out, global-total parent in /queue tree is
   replaced with global that is equivalent to global-total in v5;
*) simple queues happen in different place - at the very end of
   postrouting and local-in chains;
*) simple queues target-addresses and interface parameters are joined into one 
   target parameter, now supports multiple interfaces match for one queue;
*) simple queues dst-address parameter is changed to dst and now supports
   destination interface matching;


[Ovu poruku je menjao Informer dana 16.12.2012. u 14:28 GMT+1]

[Ovu poruku je menjao Informer dana 16.12.2012. u 16:28 GMT+1]