Strona 1 z 1
zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 10:38
autor: adramalech
WITAM
Pierwszy post nie licząc powitania, ubuntu od kilku dni także proszę o wyrozumiałość

. Forum i siec przeszukana (na ile skutecznie nie mam pojęcia

)
Poszukuje odpowiednika programu cFos dla ubuntu 10.4.
Jest to program zarządzający ruchem sieci.
w tym przypadku interesuje mnie zarządzanie ruchem w ramach JEDNEGO komputera.
Mam nadzieje, że wyraziłem się zrozumiale:) Na wszelki wypadek: podczas ściągania (czegokolwiek przy pomocy FF) chciałbym "normalnie" otwierać strony takie rozwiązanie pod windowsem umożliwiał mi program cFos.
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 13:04
autor: LiTE
A co ten program tak dokładniej robi?
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 16:53
autor: adramalech
z strony domowej:
http://www.cfos.de/speed/what_is_cfosspeed_pl.htm
Czym jest cFosSpeed?
cFosSpeed jest sterownikiem sieciowym, który podpina sie pod istniejące łącza do internetu. Dzięki temu jest w stanie optymalizować transfer danych poprzez Traffic Shaping.
Traffic Shaping jest metodą optymalizacji ruchu w sieci internet. Pozwala otrzymać najwyższą prędkość zachowując niski ping.
Możesz używać cFosSpeed wraz z routerem lub/oraz modemem kablowym lub DSL. Możesz także używać cFosSpeed z innymi typami łącz internetowych.
cFosSpeed obsługuje szeroki zakres typów łącz, takich jak DSL, kablówki, ISDN, UMTS, itp.
cFosSpeed ma dwa cele
1. Utrzymywanie opóźnień (czas ping) na jak najniższym poziomie aby aplikacje korzystające z internetu działały jak najszybciej.
2. Zwiekszanie szybkości przepływu danych poprzez zapobieganie zapychaniu się łącza.
Możesz używać cFosSpeed z połączeniami, które używasz tylko ty albo dzielisz z innymi na kilku komputerach.
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 17:59
autor: LiTE
Poczytaj o QoS
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 19:02
autor: darthsidious
Ten sterownik to bzdura chyba że korzystasz z mydelniczek na USB które rozdaje TP/Orange. Wiem bo korzystałem kiedyś jak czekałem na router bezprzewodowy. I w wolnej chwili porównałem sobie wydajność tego cFOS ze zaktualizowanym softem RouterTech na routerze Asmax. Wynik - cFOS nie miał żadnych szans. Najciekawsze jednak jest to że soft w routerze to nic innego jak Linux więc jak chcesz wydajności to poczytaj o konfiguracji TCPIP na Linux'ie i uzyskasz to samo jeżeli nie lepiej.
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 19:03
autor: Admc
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 21:35
autor: woolf
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 15 cze 2010, 21:36
autor: adramalech
wszystkie rozwiązania które podajecie lub są zawarte w wątku
viewtopic.php?t=108002 dotyczą sieci, a nie JEDNEGO komputera.
@ darthsidous nie wiem jak u Ciebie działał cfosspeed u mnie świetnie.
Zobrazuje wam o co chodzi:
X - pakiet pobieranego pliku
O - pakiet z otwieranej strony
Przeglądanie stron (w trakcie pobierania) na windzie bez włączonego cfosa (strona otwiera się 15-30s):
XXXXXXXXX
OXXXXXXXXX
OXXXXXXXX
OXXXXXXXX
O
Przeglądanie stron (w trakcie pobierania) z uruchomionym cfosem (otwierając www nie odczuwam widocznej różnicy):
XX
OXX
OXX
OXX
OXX
OXX
OXX
OXX
OXX
OXX
OXX
OXX
OXX
O
Sorry za takie tłumaczenie. Jestem laikiem...
edit: dzięki woolf
edit: dla potomnych
wondershaper - skrypt dostępny w repo
viewtopic.php?t=102393 - trochę info.
Odp: zarządzanie ruchem (cFos (dla ubuntu))
: 16 cze 2010, 01:23
autor: jacekalex
Wondershapper, niceshaper - to może jakoś dziala, ale prawdziwe wyniki, się osiąga naładając kilka łatek na kernel (zen lub l7, imq) i na iptables (l7, imq) + oczywiście kompilacja jednego i drugiego, do tego jeszcze xtables-addons
A potem można QoS skonfigurować np. tak:
Kod: Zaznacz cały
IF1="imq1"
IF2="imq0"
tc="/sbin/tc"
UP="512kbit"
DOWN="5000kbit"
EXT="eth0"
INT1="eth1"
INTV="vboxnet0"
/sbin/modprobe imq numdevs=2
/sbin/ip link set imq0 up
/sbin/ip link set imq1 up
......................
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -N MARKER
iptables -t mangle -F MARKER
iptables -t mangle -Z MARKER
iptables -t mangle -A MARKER -p tcp --sport http -j MARK --set-mark 30
iptables -t mangle -A MARKER -p tcp --sport http -j RETURN
iptables -t mangle -A MARKER -p tcp --sport https -j MARK --set-mark 30
iptables -t mangle -A MARKER -p tcp --sport https -j RETURN
iptables -t mangle -A MARKER -p tcp --dport pop3s -m iprange --src-range 193.17.41.0-193.17.41.255 -j MARK --set-mark 40
iptables -t mangle -A MARKER -p tcp --dport pop3s -m iprange --src-range 193.17.41.0-193.17.41.255 -j RETURN
iptables -t mangle -A MARKER -p tcp --dport ssmtp -m iprange --src-range 193.17.41.0-193.17.41.255 -j MARK --set-mark 40
iptables -t mangle -A MARKER -p tcp --dport ssmtp -m iprange --src-range 193.17.41.0-193.17.41.255 -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto skypetoskype -j MARK --set-mark 10
iptables -t mangle -A MARKER -m layer7 --l7proto skypetoskype -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto skypeout -j MARK --set-mark 10
iptables -t mangle -A MARKER -m layer7 --l7proto skypeout -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto sip -j MARK --set-mark 10
iptables -t mangle -A MARKER -m layer7 --l7proto sip -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto h323 -j MARK --set-mark 10
iptables -t mangle -A MARKER -m layer7 --l7proto h323 -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto jabber -j MARK --set-mark 20
iptables -t mangle -A MARKER -m layer7 --l7proto jabber -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto shoutcast -j MARK --set-mark 30
iptables -t mangle -A MARKER -m layer7 --l7proto shoutcast -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto quicktime -j MARK --set-mark 30
iptables -t mangle -A MARKER -m layer7 --l7proto quicktime -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto ftp -j MARK --set-mark 50
iptables -t mangle -A MARKER -m layer7 --l7proto ftp -j RETURN
iptables -t mangle -A MARKER -m layer7 --l7proto bittorrent -j MARK --set-mark 70
iptables -t mangle -A MARKER -m layer7 --l7proto bittorrent -j RETURN
iptables -t mangle -A MARKER -m ipp2p --edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares --mute --waste --xdcc -j MARK --set-mark 70
iptables -t mangle -A MARKER -m ipp2p --edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares --mute --waste --xdcc -j RETURN
iptables -t mangle -A MARKER -j MARK --set-mark 40
iptables -t mangle -A MARKER -j RETURN
iptables -t mangle -I PREROUTING -i $EXT -j MARKER
iptables -t mangle -A PREROUTING -i $EXT -j IMQ --todev 0
iptables -t mangle -I POSTROUTING -o $EXT -j MARKER
iptables -t mangle -A POSTROUTING -o $EXT -j IMQ --todev 1
########
echo "# upload"
$tc qdisc del root dev $IF1 #2> /dev/null
$tc qdisc add dev $IF1 root handle 1:0 htb default 70 r2q 1
$tc class add dev $IF1 parent 1:0 classid 1:10 htb rate $UP ceil $UP prio 1
$tc class add dev $IF1 parent 1:0 classid 1:20 htb rate $UP ceil $UP prio 2
$tc class add dev $IF1 parent 1:0 classid 1:20 htb rate $UP ceil $UP prio 3
$tc class add dev $IF1 parent 1:0 classid 1:40 htb rate $UP ceil $UP prio 4
$tc class add dev $IF1 parent 1:0 classid 1:50 htb rate $UP ceil $UP prio 5
$tc class add dev $IF1 parent 1:0 classid 1:60 htb rate $UP ceil $UP prio 6
$tc class add dev $IF1 parent 1:0 classid 1:70 htb rate $UP ceil $UP prio 7
echo "# upload - filtry"
$tc filter add dev $IF1 parent 1:0 protocol ip handle 10 fw classid 1:10
$tc filter add dev $IF1 parent 1:0 protocol ip handle 20 fw classid 1:20
$tc filter add dev $IF1 parent 1:0 protocol ip handle 30 fw classid 1:30
$tc filter add dev $IF1 parent 1:0 protocol ip handle 40 fw classid 1:40
$tc filter add dev $IF1 parent 1:0 protocol ip handle 50 fw classid 1:60
$tc filter add dev $IF1 parent 1:0 protocol ip handle 60 fw classid 1:60
$tc filter add dev $IF1 parent 1:0 protocol ip handle 70 fw classid 1:70
echo "# upload - SFQ"
$tc qdisc add dev $IF1 parent 1:10 handle 10:0 sfq perturb 1
$tc qdisc add dev $IF1 parent 1:20 handle 20:0 sfq perturb 1
$tc qdisc add dev $IF1 parent 1:30 handle 10:0 sfq perturb 1
$tc qdisc add dev $IF1 parent 1:40 handle 40:0 sfq perturb 1
$tc qdisc add dev $IF1 parent 1:50 handle 50:0 sfq perturb 1
$tc qdisc add dev $IF1 parent 1:60 handle 60:0 sfq perturb 1
$tc qdisc add dev $IF1 parent 1:70 handle 70:0 sfq perturb 1
########
echo "# download"
$tc qdisc add dev $IF2 # 2> /dev/null
$tc qdisc del root dev $IF2 2> /dev/null
$tc qdisc add dev $IF2 root handle 1:0 htb default 70 r2q 1
$tc class add dev $IF2 parent 1:0 classid 1:10 htb rate $DOWN ceil $DOWN prio 1
$tc class add dev $IF2 parent 1:0 classid 1:20 htb rate $DOWN ceil $DOWN prio 2
$tc class add dev $IF2 parent 1:0 classid 1:30 htb rate $DOWN ceil $DOWN prio 3
$tc class add dev $IF2 parent 1:0 classid 1:40 htb rate $DOWN ceil $DOWN prio 4
$tc class add dev $IF2 parent 1:0 classid 1:50 htb rate $DOWN ceil $DOWN prio 5
$tc class add dev $IF2 parent 1:0 classid 1:60 htb rate $DOWN ceil $DOWN prio 6
$tc class add dev $IF2 parent 1:0 classid 1:70 htb rate $DOWN ceil $DOWN prio 7
echo "# download -Filtry"
$tc filter add dev $IF2 parent 1:0 protocol ip handle 10 fw classid 1:10
$tc filter add dev $IF2 parent 1:0 protocol ip handle 20 fw classid 1:20
$tc filter add dev $IF2 parent 1:0 protocol ip handle 30 fw classid 1:30
$tc filter add dev $IF2 parent 1:0 protocol ip handle 40 fw classid 1:40
$tc filter add dev $IF2 parent 1:0 protocol ip handle 50 fw classid 1:60
$tc filter add dev $IF2 parent 1:0 protocol ip handle 60 fw classid 1:60
$tc filter add dev $IF2 parent 1:0 protocol ip handle 70 fw classid 1:70
echo "# download - SFQ"
$tc qdisc add dev $IF2 parent 1:10 handle 10:0 sfq perturb 1
$tc qdisc add dev $IF2 parent 1:20 handle 20:0 sfq perturb 1
$tc qdisc add dev $IF2 parent 1:30 handle 30:0 sfq perturb 1
$tc qdisc add dev $IF2 parent 1:40 handle 40:0 sfq perturb 1
$tc qdisc add dev $IF2 parent 1:50 handle 50:0 sfq perturb 1
$tc qdisc add dev $IF2 parent 1:60 handle 60:0 sfq perturb 1
$tc qdisc add dev $IF2 parent 1:70 handle 70:0 sfq perturb 1
Działa elegancko.
Jesli nie wchodzi w grę kompilacja kernela i iptables - to pozostaje ifb na ruchu przychodzącym i ethX na wychodzącym, (kolejki - na tych interfejsach).
Jak to zrobić - na necie jest trochę przykładów.
To by było na tyle.
