❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Shaping a QOS v domácnostech

Příspěvky, které nespadají do žádného z vytvořených fór.
dubrma
Příspěvky: 415
Registrován: 14 years ago

Shaping a QOS v domácnostech

Příspěvekod dubrma » 10 years ago

Zdravím,
v tomto tématu bych chtěl projednat rozdělení šířky pásma přímo v domácnostech. Stále častěji si klienti stěžují na špatné připojení, kde po prošetření zjistím, že je v domácnosti spuštěn torrent. Bohužel v poslední době to nemusí být jen stahování filmů, ale stále častěji je to aktualizace některé hry, která je také většinou stahována torrent protokolem. Už se mi dokonce stalo, že tento torrent klient ve hře byl na tabletu. Další počítače v síti mají velmi pomalé připojení a vysokou odezvu, protože je linka plně využita velkým počtem spojení. Lidé nejsou schopni tento problém najít a přisuzují to špatným službám.
Znáte někdo způsob vyhnout se tomuto problému?

Uvažuji o několika variantách:
1. QOS: Možnost omezení těchto agresivních služeb pomocí QOS na celou domácnost jsem neshledal nikdy jako funkční. Dokonce tato technika není používána ani u velkých hráčů (zatím jsem se nesetkal).
2: shaping u klienta: Rozdělení pásma pomocí shapingu domácího routeru není jednoduché, protože se jedná o agregovanou linku a rychlost je proměnlivá. Tato technika by byla realizovatelná na ADSL, kde modem zná přesnou rychlost linky.
3. klientský pc přes celou síť: Další možností by bylo rozdělování rychlostí v domácnosti na našem hlavním shaperu. Myslím že zatížení shaperu by razantně stouplo a managment takovéto sítě by byl špatný.

Nejlepší by bylo implementovat řešení do domácích zařízení, například Klientská anténa Ubiquiti, router Mikrotik, nebo routery Netis.
0 x

Uživatelský avatar
info@adambalko.cz
Příspěvky: 94
Registrován: 14 years ago
Kontaktovat uživatele:

Příspěvekod info@adambalko.cz » 10 years ago

Nejlepší by bylo implementovat řešení do domácích zařízení, například Klientská anténa Ubiquiti, router Mikrotik, nebo routery Netis.


Takhle nějak si to představuju taky. Používáme UBNT CPE a jako router dávat RB. Teď testuju ty hAP čtyřportové miniroutery, kde chci právě řešit QoS už u klienta.
Podle mě je to správná cesta, jak zabezpečit spokojenost klienta ;)
0 x
internetkyjov.cz

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 10 years ago

jo tak hodně štěstí. Z principu to takto nelze. Pokud postavíš nějaký QoS tak se aktivuje až se někde začne plnit buffer a plnit buffer se začne až se v tom místě omezí datovej tok a ten se omezuje na hlavním routeru a tam se tedy QoS řeší. U klienta doma by si musel řešit shaping což opět nelze protože nemáš garantovanou linku.

Zkus raději změnit frontu queue na shapovací mašině na jinej typ. Třeba SFQ a přepni to na 1 sekundu. Typicky tam bude asi bfifo.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

dubrma
Příspěvky: 415
Registrován: 14 years ago

Příspěvekod dubrma » 10 years ago

To info@adambalko.cz: Jestli budu mít zítra čas, zkusím něco udělat na RB. Uvidím jak se to bude chovat.

To Hapi: Díky za přání. Princip chápeš stejně jako já. Typ fronty toto nevyřeší, řeší to jen částečně (vyřeší odezvu, ale ne rychlost, navíc vzroste ztrátovost).
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 10 years ago

jistě že vzroste ztrátovost když je to princip řezání userů. Kolik vůbec takovej user u tebe dostává rychlost?
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

dubrma
Příspěvky: 415
Registrován: 14 years ago

Příspěvekod dubrma » 10 years ago

Vraťme se k tématu.
0 x

dubrma
Příspěvky: 415
Registrován: 14 years ago

Příspěvekod dubrma » 10 years ago

Jak jsem slíbil vytvořil jsem nějaké homemade řešení. Běhá mi to na 751U-HnD. Konfig v příloze.

Zvolil jsem metodu 2. z mého prvního příspěvku. Ve skriptu je pokus odhadnout aktuální rychlost agregované linky. Podle toho je nastaven trafic shaping PCQ. Skript se jmenuje shaping_domacnosti a není nastaven aby se spouštěl po spuštění.

Testoval jsem pouze letmo pomocí torrentu a odezvy. Testoval jsem to na výchozím HTB shapingu, nezkoušel jsem SFQ, ani FIFO metody na hlavním shaperu.
Náznak rovnoměrného rozdělení klientů, snížení latence a zamezení ztrátovosti tam je, ale:
1. procesor to nedává a při změnách rychlosti se objevuje ztrátovost
2. nevyužije to plně agregovanou linku, protože se to pořád drží pod maximální rychlostí
3. pomalu to reaguje kvůli procesoru

Je to před před vydání ničeho co je provozu schopné. Takže nemusíte psát že to má chyby a že je to na hovno, o syntaxi a formátování textu ani nemluvím (Hapi si tuto větu přečte 2x).

Pokud máte nějaké náměty, jak skript zlepšit, tak sem s tím. Zatím budu testovat v jen doma.

Kód: Vybrat vše

:global rychlost 30000; # kb/s
:global rychlostMax 30000; #kb/s
:global IPzatez "www.nix.cz"; # IP adresa na které se projeví packet lost, nebo vyšší zpoždění při přetížení linky

:global getRychlostAktualni do={
:local zacatek [/interface get ether1-gateway rx-byte]
:delay 2
:local konec  [/interface get ether1-gateway rx-byte]
:local delta ($konec - $zacatek)
:local vysledek ($delta *8 / 1000 /2)
:return $vysledek
}

:global setRychlost do={
:local cisloDown 0;
:local cisloUp 1;
:set $rychlostUp ( $1 / 3 )
:set $rychlostTemp ( $1 . "k")
/queue tree set max-limit=$rychlostTemp numbers=$cisloDown
:set $rychlostTemp ( $rychlostUp . "k")
/queue tree set max-limit=$rychlostTemp numbers=$cisloUp
:put "rychlost upravena"
}

$setRychlost $rychlostMax

:global getOdezva do={
:return [/ping $1 count=1 interval=40ms]
}

:global setZpomal do={
:set $rychlost ($1 - 1500)
if ($rychlost < 1000) do={
:set $rychlost 1000 }
$setRychlost $rychlost
:return $rychlost
}

#:put [$getRychlostAktualni]


#:put [$getOdezva $IPzatez]


:local kvalita 100;
:do {
if ( [$getOdezva $IPzatez] = 1 ) do={
if ($kvalita < 100) do={
set $kvalita ($kvalita +1)
}
} else={
if ($kvalita > 92) do={
set $kvalita ($kvalita -1)
}
}


if ($kvalita < 93) do={
:set $rychlost [$setZpomal [$getRychlostAktualni]]
}
if ($kvalita < 95) do={
if ($rychlost > 1000) do={
:set $rychlost ($rychlost-50)
$setRychlost $rychlost
}
}
if ($kvalita = 100) do={
if ($rychlost < $rychlostMax) do={
:set $rychlost ($rychlost+50)
$setRychlost $rychlost
}
}
:put ("kvalita je: ".$kvalita)
:delay 1
 } while=( true)
Přílohy
Backup1.rar
(7.88 KiB) Staženo 140 x
0 x