Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Problem z podziałem uploadu po usługach.
http://forum.freesco.pl/viewtopic.php?f=22&t=17104
Strona 1 z 1

Autor:  Diwi [ niedziela, 3 sierpnia 2008, 19:32 ]
Tytuł:  Problem z podziałem uploadu po usługach.

Witajcie,

Siedzę sobie od 2 dni nad QoS dla mojej sieci (Neostrada 6mbit/512kbps). Postanowiłem podzielić łącze na dwa sposoby:
- dla downloadu dzielę według użytkowników, każdemu userowi daje max. 600kB/s do wykorzystania w zależności od potrzeb
- dla uploadu dzielę według usług, mam 3 kolejki:
rzeczy priorytetowe: http, smtp, pop3, skype, icmp, itd. , na to daję 10kB/s
p2p: wiadomo, 20kB/s
reszta: wszystko to co nie wpadło do powyższych kolejek 20kB/s

i teraz wychodzi mi pewien problem gdyż ściągając cokolwiek przez http za pomocą firefoxa (np. 500mb plik z noc.gts.pl) nie jestem w stanie wyciągnąć pełnego downloadu (600kB/s) gdyż zapycha mi się upload na rzeczy priorytetowe (dochodzi do 10kB/s) zaś download dochodzi do jakiś 300kB/s .

Sprawdziłem co się stanie gdy wyłącze kolejkowanie i zauwazyłem że gdy ściągam 700kB/s to jednocześnie wysyłam na port 80 25kB/s , wydaje mi się że są to pakiety kontrolne, ale dlaczego aż 25kB/s ?

Czy jest jakiś sposób aby zmniejszyć rozmiar tych pakietów, lub jakieś inne rozwiązanie aby przy takim kolejkowaniu uploadu jakie wypisałem dało się spokojnie ściągać 600kB/s ?

Autor:  -MW- [ niedziela, 3 sierpnia 2008, 22:47 ]
Tytuł: 

nie ma
i tak musi byc

a swoja droga - http jako priorytet to troche nie trafiony temat.
podobnie jak
Cytuj:
dla uploadu dzielę według usług, mam 3 kolejki:

Autor:  zciech [ niedziela, 3 sierpnia 2008, 23:05 ]
Tytuł: 

1. Dlatego że tak jest
2. Nie ma sposobu na ich zmniejszenie (tych pakietów) no może by tak 8><
3. tak

Wydziel osobna klase na pakiety ACK. Zobacz jak to zrobione jest w skrypcie rchtb dostepnym w repozytorium.

Autor:  Diwi [ niedziela, 3 sierpnia 2008, 23:53 ]
Tytuł: 

Ok, tak więc przy uploadzie postanowiłem ograniczyć p2p do 15kB/s a reszte dać do swobodnego użytku dla innych, no i teraz jest problem bo ipp2p i l7 średnio wyłapują mi p2p :/

mam taki skrypt (odpalany przed niceshaperem)
: [/] [] ()
#!/bin/bash
# mark
#set -x
ECHO="/bin/echo"
MODUL="/sbin/modprobe"
TC="/sbin/tc"
i="/usr/sbin/iptables"


$i -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark

$i -t mangle -A PREROUTING -p tcp -m ipp2p --ipp2p -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m ipp2p --ipp2p -j MARK --set-mark 100

$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto bittorrent -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto bittorrent -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto 100bao -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto 100bao -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto applejuice -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto applejuice -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto ares -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto ares -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto edonkey -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto edonkey -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto fasttrack -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto fasttrack -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto freenet -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto freenet -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto gnutella -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto gnutella -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto goboogy -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto goboogy -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto hotline -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto hotline -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto imesh -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto imesh -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto kugoo -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto kugoo -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto mute -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto mute -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto napster -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto napster -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto openft -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto openft -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto poco -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto poco -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto soribada -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto soribada -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto soulseek -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto soulseek -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m layer7 --l7proto tesla -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p udp -m layer7 --l7proto tesla -j MARK --set-mark 100
$i -t mangle -A PREROUTING -p tcp -m mark --mark 100 -j CONNMARK --save-mark
$i -t mangle -A PREROUTING -p udp -m mark --mark 100 -j CONNMARK --save-mark



a w niceshaperze wyskakuje mi (testowo specjalnie ograniczyłem upload do 1kB/s żeby sprawdzić czy mnie przytnie):

: [/] [] ()
upload                    rate - (      utilize )
p2p                      1kB/s - (        1kB/s )
Reszta                  40kB/s - (       16kB/s )


gdzie u mnie na komputerze p2p jedzie 10kB/s na upload


config niceshapera:

config:
: [/] [] ()
<global>
run download upload
support mark-on ppp0
stats unit kB/s file none owner root group root mode 644
</global>

<upload>
iface ppp0 match srcip 192.168.1.0/24
section speed 64kB/s
section shape 55kB/s
default low 4kB/s
default ceil 16kB/s
default htb scheduler esfq
default esfq hash src
default hold 10s
iptables hook PREROUTING # PREROUTING is optimal for upload mode
reload 1s
</upload>


class:
: [/] [] ()
class upload ppp0 p2p
    match mark 100
    rate 1kB/s
    prio 7

class upload ppp0 Reszta
    match srcip 192.168.1.0/24
   rate 40kB/s     
    prio 3


wrzuciłem tylko częśc odpowiedzialną za upload bo z downloadem jest wszystko ok.

I teraz kolejne pytanko, czy to wina ipp2p i l7 (a jeśli tak to czy jest jakiś inny sposób na markowanie p2p ?) że nie wyłapują p2p czy też to ja zrobiłem coś źle w skryptach ?

Autor:  zciech [ poniedziałek, 4 sierpnia 2008, 00:42 ]
Tytuł: 

Diwi pisze:

mam taki skrypt (odpalany przed niceshaperem)

A może trzeba go odpalić po nicecostam :?: :idea:

Autor:  Diwi [ poniedziałek, 4 sierpnia 2008, 03:16 ]
Tytuł: 

Gdy odpalam po niceshaperze to nie wyłapuje zupełnie nic jeśli chodzi o p2p (gdy odpalam przed jednak coś się pokazuje chociaż nie całość)

Autor:  -MW- [ poniedziałek, 4 sierpnia 2008, 11:33 ]
Tytuł: 

markowanie powinno byc dodawane przed uruchomieniem niceshapera.
reguly markujace musza byc przed regula kierujaca ruch do nice.

chyba ze zamienisz -A na -I jednoczenie przestawiajac regulki,
to wowczas nie bedzie mialo znaczenia kiedy dodasz markowanie przed czy po uruchomieniu niceshapera.

Autor:  zciech [ poniedziałek, 4 sierpnia 2008, 13:46 ]
Tytuł: 

-MW- pisze:
markowanie powinno byc dodawane przed uruchomieniem niceshapera.
reguly markujace musza byc przed regula kierujaca ruch do nice.

chyba ze zamienisz -A na -I jednoczenie przestawiajac regulki,
to wowczas nie bedzie mialo znaczenia kiedy dodasz markowanie przed czy po uruchomieniu niceshapera.

Ale zdajesz sobie sprawę, że cel -j MARK nie jest kończący? Każda następna pasujaca reguła może zmienić mark.
Należało by dokanać analizy reguł zakładanych przez nice w tabeli mangle i być może dodac regułe kończąca wędrówkę pakietów z markiem 100 po tabeli.

$i -t mangle -A PREROUTING -m mark --mark 100 -j RETURN

Autor:  -MW- [ poniedziałek, 4 sierpnia 2008, 19:05 ]
Tytuł: 

Cytuj:
$i -t mangle -A PREROUTING -m mark --mark 100 -j RETURN

raczej nie powinien tego uzywac.
inaczej pakiety zamarkowane nie zostana zlapane przez nice.

nie wiem jakie reguly nice w nowej wersji zaklada w mangle PREROUTING.
w starszych wersjach z wykorzystaniem imq kierowal pakiety hostow do imq,
i tam wylapywal w/g ip.

jesli w nowszych wersjach jest podobnie to pakiety markowane winny byc
na samej gorze lancucha.

w tej tabeli nie powinien miec zadnych regul, jedynie te od niceshapera

bez analizy dodawanych regul sie nie obejdzie.

nic nie stoi na przeszkodzie aby kolega wylistowal reguly i wkleil je na forum.

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/