[ Mile-Lile @ 04.04.2013. 21:04 ] @
Pretražujući ES forum vidim da postoji puno interesovanja za QoS ali ne i uputstava kako podesiti kućne rutere da koriste ovu
korisnu funkciju. Najčešća pitanja su "kako da ograničim protok za određenu IP (PC)", "da li mogu da ograničim protok za jedan PC
ali, kad on nije na mreži da imam pun protok", "kako da dam prioritet određenoj MAC adresi u onosu na druge" i još puno sličnih pitanja
koja se stalno vrte u krug i ponavljaju. Kako ima već puno odgovora na ova pitanja i tutorijala na tu temu (za MT itd.) ovaj post pišem za one koji
nemaju mogućnost da kupe Cisco, Mikrotik, dd-wrt itd. koji nemaju želje da se bave internet provajdingom (pilićarskim) već da od rutera
koje su dobili od ADSL provajdera pokušaju da iskoriste QoS koji je već u njih implementiran. Pre nego počnem, hajde da odgovorim na par tih najčešćih
pitanja kako se ne bi ponavljala i kako bi neko ko čita ovaj post odmah video da li se tema tiče njegovog problema. Ako ne, nek
produži dalje:)

============
QoS uopšteno
============

Uvod
-----

1.
Q. Kako da ograničim protok za određeni kompjuter (IP adresu)?
A. Sa SOHO ruterima koji se dobijaju od provajdera - NIKAKO. Proguglaj pojam "Bandwidth Limiting". Jeftiniji ruteri kao što su
Mikrotik, dd-wrt to mogu.

2.
Q. Da li mogu da ograničim protok za jedan PC ali da kad on nije na mreži imam pun protok?
A. Sa SOHO ruterima koji se dobijaju od provajdera - NIKAKO. Proguglaj pojam "Bandwidth Limiting". Jeftiniji ruteri kao što su
Mikrotik, dd-wrt to mogu.

3.
Q. Kako da dam prioritet određenoj MAC adresi u onosu na druge?
A. Moguće sa nekim ruterima koji se dobijaju od provajdera ali opet samo za određene servise i protokole tj. isti servis može da
za jednu IP adresu ima srednji a za drugu viši prioritet. Proguglaj pojam Netmask and MAC Priority. Kod ddwrt-a ovo baš lepo radi.
Npr. Dva WLANA, jedan vaš i drugi Guest koji će koristiti gosti (prvi Exemp a drugi Bulk). Huawei-jev HG530 QoS ima nešto slično
ali o tome više drugi put.

4.
Q. Imam "packet loss" kad pingujem www.google.com dok rade torenti. Kako da ovo rešim?
A. Ograničavanjem broja konekcija P2P protokola i prioritizacijom data saobraćaja (QoS). Moguće je na samom torent klijentu izvšiti ograničenja (uTorrent, Vuze itd.)
ali i na nekim ruterima. Mikrotik, DDWRT, Tomato, Gargoyle imaju takvu kontrolu broja koncija jer je to uglavnom glavni uzrok gubitka paketa.
Proguglaj pojmove "TCP congestion control, hybla, vegas"(ddwrt, Tomato), ACC - Active Congestion Controller (Gargoyle)




Šta je QoS i po kom principu funkcioniše?
-----------------------------------------

QoS (Quality of service) je softwerski mehanizam rutera koji obezbeđuje raspodelu ograničenog linka prema unapred utvrđenim prioritetima.
U teoriji je zamišljeno da isti link (koji je ograničen) mogu deliti torenti a da pritom VOIP ili online gameing ne trpe (da ne dođe do gubitka paketa
ili velike latencije i "jitter "-inga). Dakle, pustite neki torent koji zauzme ceo link. Da nema QoS-a youtube bi seckao ili se uopšte nebi učitavao.
Pošto je QoS uključen i ispravno podešen, torent klijent čeka u redu a youtube dobije prioritet nad njim i radi kao da nije uljučen
torent klijent. Zatim drugarica koja je došla kod vas, na androidu učita facebook (http), on se učita bez odlaganja, a torent i youtube čekaju
na svoj red. Tom prilkom vam zazvoni Skype telefon i vi pričate a da pritom nemate smetnje. Ovo je moguće jer ste unapred postavili prioritete i klase.
Primer u stvarnom životu je putnici koji ulaze u avion. Prednost imaju putnici biznis klase a onda ekonomske. Ekonomska klasa čeka dok uđu putnici
biznis klase ali ako nema putnika biznis klase mi (ekonom. klasa) ulazi bez čekanja:)
Dakle, da bi QoS funcionisao mora znati koje su klase na kom mestu prioriteta i kako da prepozna koji data paket kojoj klasi pripada.
DD-wrt ima 5, Mikrotik 8 (čini mi se) a Tomato 10 klasa. Klase zavise od zahteva korisnika. Nije svakom isti saobraćaj prioritetan.
Nekom je to VOIP, nekom igranje igrica online a nekom P2P. Uopšteno govoreći klase se mogu podeliti na sledeći način:
1. Servisi (DNS, DHCP, NTP, RPC, ICMP) najviši prioritet - npr. Class 1 (Exempt)
2. Remote (telnet, SSH, RDP, Remote Router AccSSes, pptp, VPN) Class 2 (Premium)
3. VOIP/Game (STUN, SIP, H323, Skype, Quake) Class 2 (Premium)
4. Http do 512kb (www) Class 3 (Expess)
5. Http preko 512kb, Mail (http youtube, redtube, slutload, SMTP, NNTP, POP3) Class 4 (Standard)
6. P2P, ftp (bittorrent, eMule) Class 5 (Bulk)
Nazivi klasa se različito nazivaju kod različitih sistema QoS-a.
Ovako je kod mene podeljeno na ddwrt-u ali videćemo kasnije naši Havajci i Tp linkovi nemaju sve ove servise pa ćemo morati da
pretpostavimo da sve što nije standard, Medium, High, Highest spada u saobraćaj sa najnižim prioritetom (Low).
Kao što smo rekli ruter mora da zna da prepozna paket da bi znao u koju klasu da ga svrsta. Ovo je teži deo jer je saobraćaj nekad
i enkriptovan. Postoji više načina kako ruter prepoznaje pakete.

Uparivanje po broju porta:
Npr. ako znamo da je dst port 53 rezervisan za DNS, ruter će ga svrstati u Class 1 tj. u najvišu klasu. Niže će biti napisano
koje aplikacije koji port koriste.

Uparivanje po veličini paketa:
Ovo ćemo zaobići jer Huawei i Tp-link nema tu opciju.

Uparivanje paketa po vrsti protokola:
Protokoli u LAN-u mogu biti ICMP, TCP ili UDP. Online igre i VOIP koriste uglavnom UDP protokol tako da na P2P klijentima
treba "disable-ovati" (onemogućiti) ovu vrstu protokola (ako nemate tu opciju na ruteru što je uglavnom slučaj).
Preporučuje se korišćenje TCP protokola i za Incoming i za Outgoing P2P konekcije.
Kasnije će biti reči kako podesiti bittorrent klijente (DHT, UDP, broj maksimalnih konekcija)

L7 uparivanje:
QoS prepoznaje o kojoj je aplikaciji(programu) reč (na osnovu podataka koji se šalju - NE headera) i svrstava je u određenu klasu.

Koji su portovi i protokoli rezervisani za određene aplikacije:
DNS tcp/udp dst port 53
NTP tcp/udp dst port 123
RPC tcp/udp dst port 135, 2101, 2103, 2105
Telnet tcp dst port 23
SSH tcp/udp dst port 22
VPN tcp/udp dst port 1723
SMTP tcp/udp dst port 25, 587
POP3 tcp/udp dst port 110, 995
NNTP tcp/udp dst port 119, 563
SIP, STUN tcp/udp dst port 3478, 3479, 5060-5063
Skype uparuje se na L7 nivou jer se portovi mogu menjati u samoj aplikaciji, najbolje koristiti UPnP
HTTP, HTTPS tcp/udp dst port 80, 443, 8080
ftp tcp dst port 20, 21, 989, 990
P2P tcp dst port 60000-61000 raspon se podešava na samom klijentu uz omoguæen UPnP
Huawei HG530 u svom QoS-u ima mogućnost za upis 16 pravila (Rule) a ovde imamo pobrojano 14 protokola. Što više pravila definišete
bolje je jer ruter neće morati da "sklanja u stranu" pakete koje ne može da prepozna. Ovim ćete izbeći pogrešno identifikovane pakete,
packet loss, povećanje latencije, jittering itd. Pošto nemamo svi iste prioritete moraćete da se sami potrudite da odredite svoje
jer to ne može niko umesto vas. Portove određenih online igrica, XBOX-a itd možete potražiti na ovoj adresi http://portforward.com/cports.htm
Ovo vam je jako bitno da bi dali svojoj igrici prioritet (na osnovu uparivanja porta) i izbegli povećanje latencije.


=========================
Podešavanje QoS na HG530
=========================

Želimo da isprobamo da li ce sledeći zamišljeni scenario biti uspešan. Da pustimo torente i kada postignu punu brzinu pustimo youtube koji će,
raditi "bez kočenja" a zatim uraditi pingtest (www.pingtest.net) gde nece biti izgubljenih paketa (packet loss). Naravno bilo bi poželjno da se sve ovo isproba i kada
nije uključen QoS kako bi se videla razlika.
Pre nego pristupite samom podešavanju QoS-a omogućite UPnP funkciju rutera kako bi ruter sam izabrao najbolje portove za odrđene aplikacije. Neko će reći da je UPnP
sigurnosni rizik ali po toj logici i Port Forwarding je sigurnosni rizik. UPnP ima široku primenu. Lično, nisam imao nikada problema sa sigurnošću i ako mi je UPnP
uključen po defaultu.


Zatim dodajemo pravilo za ping u QOS. Rule index 1 u kome cemo dati najviši prioritet pingu. Ping ne koristi ni jedan poseban port već protokol ICMP. Popuniti polja
Prema sledećoj slici:
QoS - Activated
Rule Index 1
Avtive: Activated
Physical port: Enet 1 i 4 (ovo se odnosi na fizicki port na kome se radi QoS, kod mene su 2 i 3 rezervisani za IPTV)
Nema opcije za wlan ali pretpostavimo da je bridžovan sa e1 i e4 i da ce se Rule Index 1 primeniti i na njega)
Destination Port Range 1-65535 (dakle svi portovi)
Protocol: ICMP
VLAN ID 2 (pogledati Advanced/port mapping
Štiklirati IPP/TOS
IP Precedence Range: 7 koji je najviši

Dalje podesiti Rule 2 (davanje odrdenog prioriteta http-youtube)

I na kraju P2P cemo svrstati u najnižu klasu data saobracaja

Pogledajmo kako izgleda summary:

Na vrhu lanca hijerarhije je ping, zatim youtube i na kraju torenti. Ovo je najprostija podela a da bi sve funkcionisalo,
treba uzeti sve aplikacije koje koristimo. Ja sam ovo uprostio da bi se video šablon.
Ostaje još nekoliko stvari pre testiranja.
Prvo ubiti teredo konekcije na PC-u, jer u LAN-u je IPv6 nepotreban. Njegove konekcije zajedno sa ostalim mogu dovesti do saturacije (zasicenosti) CPU
rutera. Ako imate W7 ili Vistu uradite na sledeci nacin: Iz konzole command prompt sa admin pristupom kucajte sledece komande:
netsh
interface
teredo
set state disabled

Dalje, moramo podesiti torent klijent da koristi raspon portova koje smo uneli
u QoS rule index 3 (60000-61000) za kje smo naveli da kroz njih prolazi saobracaj koji je najmanje bitan. Kako ja koristim
Vuze podesicu ga na sledeci nacin. Ukljucicu UPnP, raspon porta 60000-61000, necu preferirati korišcenje UDP protokola jer ga koriste
online igre, VOIP itd. Smanjicu broj konekcija da rasteretim ruter itd. Slike govore više od reci:





Torent klijentu ce trebati više vremena da postigne "punu brzinu" ali budite strpljivi. Za 5 min. ce vuci punom brzinom
a vi nemorate brinuti, ako izadete od kuce da se prošetate, da li ce vaši ukucani poludeti zbog sporog interneta. Vaš QoS
ce brinuti o tome:)))





[ buksnatata @ 04.04.2013. 22:09 ] @
ovo treba u sticky sjajan opis.
[ djricky @ 04.04.2013. 22:53 ] @
mozda i ode u TOP teme, ali mora autor da promeni upload politiku... 10 kbajta je malo...

[ Slobodan Milivojevic @ 04.04.2013. 23:09 ] @
Samo bi dodao još jedan problem koji dobar deo rutera tih SOHO jeftinih rešenja ne umeju da reše:

Vrlo površno i "plastično" ću pokušati da objasnim u ćemu je "problem" s ADSL-om i "nesrećnom" implementacijom istog od strane Telekoma Srbije.

Prvo svaki podatak koji se prenosi putem interneta se deli u pakete maksimalne veličine 1500B (1.5 kilobajta). Na taj način se postiže efikasno iskorišćenje dostupnog propusnog opsega od strane više korisnika ili programa.

Da objasnim u osnovnim crtama da TCP (transport control protocol) u osnovi za svaki primljen paket šalje potvrdu nazad računaru koji je poslao paket da je isti primljen, i da potvrđuje da nema greške kako bi druga strana slala pakete dalje.

U novije vreme se koristi Selective ACKnowledgement, gde se potvrda ne šalje za svaki primljeni TCP paket, već za dva uzastopna se šalje jedna potvrda (samo ako su isti stigli u kratkom vremenskom razmaku).

Sam ACK paket za potvrdu je prazan, ali sadrži informacije u vidu:
TCP zaglavlje - 20b
IP zaglavlje - 20b
(ovo je osnovno) a na ovo se u slučaju Telekomove realizacije ADSL-a dodaju sledeća zaglavlja:
PPP - 2b
PPPoE - 6b
Ethernet - 18b

Ovo u zbiru kaže da je za svaki paket koji potvrđuje da je vaš računar primio podatak treba poslati nazad tačno 66 bajtova.

Ako uzmemo selektivnu potvrdu kao čest slučaj, znači da na svakih 3000 primljenih bajtova putem TCP protokola nazad bude vraćeno 66 bajtova kao potvrda da je informacija stigla. Što je odnos 1 : 45, tj 45 puta se manje podataka pošalje kao potvrda da su podaci stigli na vaš računar. Ovo je ok, ali sada dolazimo do načina funkcionisanja ADSL-a:

ADSL sve podatke prenosi kroz uvek fiksne ATM okvire, koji sadrže uvek 48 bajtova podataka i 5b zaglavlja. Znači, poslali vi 1b ili 48b kroz vašu ADSL liniju će biti preneto 53b. Sve što ne može da stane u okvir 48b šalje se kroz više ATM okvira (svaki prenese tačno 53 bajtova).

Ako uzmemo da je ACK 66 bajtova velik (pri slanju kroz Telekom Srbija realizaciju ADSL servisa), dolazimo do toga da ACK mora biti poslat kroz dva ATM okvira, tj umesto da ACK zauzme 66b prenosi se celih 106 bajtova kroz ADSL liniju, što je ~31.25 puta manje poslatih od primljenih podataka.

Znači za svaki megabit primljenih podataka koristi se 32kbps uploada za potvrdu, tj za 10Mbit 320kbps uploada trošite samo za potvrdu primljenih podataka na ADSL-u. Iako vaš ruter koji ne računa ATM okvire misli da za ACK ide oko 220kbps. Razlika je celih 100kbps u tome što vaš ruter misli da se šalje i onoga što stvarno prolazi kroz upload kanal na vašoj ADSL liniji.

Ukoliko u celu priču dospe još neki upload (seed recimo ili slanje mail-a ili nešto slično), može lako da se zaguši upload kanal na ADSL liniji, što će rezultovati u tome da će internet baš loše raditi.
[ Cunami @ 06.04.2013. 17:01 ] @
Hvala Mile-Lile, ovo uputsvo mi je odavno trebalo. Trazio sam pomoc u drugoj temi ali niko nije znao da mi pomogne.
Da li bi neko mogao da napise kako podesiti U-Toreent posto u njegovim podesavanjima nema stavke "Port Range"?
[ Mile-Lile @ 07.04.2013. 19:36 ] @
Dovoljno je da Incoming i Outgoing port u uTorrentu bude u rasponu koji si odredio u "pravilu" u QoS rutera da bi ga QoS prepoznao i svrstao u određenu klasu. Ja sam u primeru postavio 60000-61000 jer te visoke portove ne koriste bitni servisi, time QoS-u olakšavaš posao... Tu bi bio problem ako je u mreži nekoliko PC-a pa svi podesite iste portove na uTorrentima... Zato uključiš UPnP...


Evo, možda će ovo nekom koristiti:


[Ovu poruku je menjao Mile-Lile dana 08.04.2013. u 10:44 GMT+1]
[ Mile-Lile @ 24.07.2013. 20:14 ] @
Tema možda nije dugo bila komentarisana ali svakako nije zastarela:)
Pošto puno ljudi zanima limitiranje po korisniku (bandwidth shaping) kao deo QoS, evo jednog predloga koji je potpuno besplatan za one koji nemaju para da kupe npr. Mikrotik ili Cisco i sve im izgleda komplikovano...
Naime, izašao je novi "build" DD-wrta u kome je Linux kernel 3.5 (uskoro se ide i na rc3.10). Ovaj build KONAČNO podržava limitiranje po korisniku / po MAC / po subnetu ....
Kako ddwrt podržavan VLAN-ove moguće je napraviti VAP za goste koji će imati niži prioritet od vašeg AP-a tako da nikada nećete imati problema što delite komšijama internet za dž. Kada ste vi na mreži vi ćete imati ukupan link ukoliko je ot potrebno (naravno ovo se preporučuje samo za one koji imaju flat rate paket). Ko voli hard core limitiranj, sada je i to moguće...
ddwrt je preveden i srpski jezik.. evo i par slika... mogu će ga je preuzeti sa ove adrese ali "upucavanje" u vaš ruter ne preporučujem ko prvo ne pročita how to





[ nkv1 @ 26.01.2016. 15:39 ] @
Samo da dodam ovu sliku celoj prici
DSCP je noviji sistem za QOS
DSCP = klasa saobracaja(CoS)+ verovatnoca odbacivanja pakete (Drop probability)