Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest sobota, 5 lipca 2025, 19:42

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 16 ] 
Autor Wiadomość
Post: poniedziałek, 25 lutego 2008, 17:19 
Offline

Rejestracja: poniedziałek, 25 lutego 2008, 17:06
Posty: 5
Witam,

Chciałem wykonać dynamiczny podział pasma podług uzytkowników. Dla downloadu wszystko działa poprawnie. Jednakże natrafiam na problem z ruchem wychodzącym (upload).

: [/] [] ()
#nalezy jeszcze wykonac /sbin/modeprobe imq de...=X
# oczywiście przerobiłem adresacje zgodnie ze swoją podsiecia


ifc_zew="eth0"

komputer1="192.168.2.2/24"
komputer2="192.168.2.3/24"
komputer3="192.168.2.4/24"
max_upload="250kbit"
upload_user="50kbit"
upload_serv="70kbit"
max_download="510kbit"
download_user="127kbit"
download_serv="127kbit"

ip link set imq0 up
tc qdisc del dev imq0 root
tc qdisc add dev imq0 root handle 1: htb default 10
tc class add dev imq0 parent 1: classid 1:1 htb rate $max_upload ceil $max_upload

tc class add dev imq0 parent 1:1 classid 1:10 htb rate $upload_serv ceil $max_upload

tc class add dev imq0 parent 1:1 classid 1:20 htb rate $upload_user ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:30 htb rate $upload_user ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:40 htb rate $upload_user ceil $max_upload

tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer1 flowid 1:20
tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer2 flowid 1:30
tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer3 flowid 1:40

tc qdisc add dev imq0 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:20 handle 20:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:30 handle 30:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:40 handle 40:0 sfq perturb 10

iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 1


Powyższy listing jest kodem jaki znalazłem na sieci. Niestety cały ruch jest kolejkowany na 1:10. Wyglada na to, ze filtry nie wyłapują komputerów z sieci. Czy ktoś ma pomysł jak rozwiązać owo zagadnienie?
Pomoże markowanie pakietów? (informuję, że iptables znam b. słabo)
Dla downloadu stosuję wyłącznie htb bez imq.

Mam także pytania odnośnie layer7, ipp2p itp. Z tego co rozumiem służą one do wyłapania ruchu p2p gdy dzielimy pasmo podług usług. Czy dobrze rozumiem istotę ich przeznaczenia?

Dziękuję za ewentualną pomoc.

Ps. Mam jeszcze jeden ciekawy problem: gdy wpiszę tc qdisc to daostajęinformacjent qdisc które utworzyłem. Jednakże gdy wpiszę tc filter lub tc class (także z paramterami -s, -d) to informacji brak nt. danego obiektu. Coś robię nie tak w skryptach?


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 25 lutego 2008, 20:22 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
: [/] [] ()
ifc_zew="eth0"
iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 1

weź i pomyśl nad tym chwile :twisted: , bo jak rozumie masz dsl.

: [/] [] ()
komputer1="192.168.2.2/24"
komputer2="192.168.2.3/24"
komputer3="192.168.2.4/24"

Nad tym też radziłbym sie zastanowić :idea:

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 25 lutego 2008, 21:11 
Offline

Rejestracja: poniedziałek, 25 lutego 2008, 17:06
Posty: 5
"weź i pomyśl nad tym chwile , bo jak rozumie masz dsl."

Niestety nie wiem jak to ugryźć. To jest przykładowy skrypt. Udało mi się założyć ograniczenia na download. Z uploadem nie daję rady. Głownie dlatego, że moja znajomośćiptables jest nikła.

"Nad tym też radziłbym sie zastanowić "
Maski 32 bit? ;]

Tak więc dalej tkwię w martwym pukncie. Nie wiem jak markować pakiety (próbowałem iptables ale nie mogę ich wyłapać za pomocą filtrów, mógłby ktoś pokazać jak wykonać to poprawnie na podstawie adresu źródłowego?)

Jak wcześniej już pisałem skrypt działa w odniesieniu do całego ruchu tzn. wszystko jest przypisane do 1:10. Jak chciałbym filtrować na podstawie adresu źródłowego.

Ps. zciech, umiem ten skrypt przerobić tak by działał. Problemem nie jest imq ani maski. Nie umiem wyłapać pakietów za pomocą iptables (mark) i fw (handle).


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 25 lutego 2008, 21:36 
Offline
Użytkownik

Rejestracja: niedziela, 16 maja 2004, 21:32
Posty: 1203
Lokalizacja: Bieruń
Cytuj:
Niestety nie wiem jak to ugryźć.

zciech napisał, ze masz pomyśleć a nie gryźć!! :-)

Cytuj:
Maski 32 bit? ;]

no to uważaj żebyś zębów nie połamał!!

poszukaj cos na temat HTB lub niceshapera!! jak również możesz zajrzeć do FAQ


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 25 lutego 2008, 21:37 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
Powinno być:
ifc_zew="eth1"
komputer1="192.168.2.2"
komputer2="192.168.2.3"
komputer3="192.168.2.4"

imq0 to jest dev 0 a nie 1
iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 0

ps.
Pozwolę sobie mieć odmienne zdanie w tej kwestii, nie potrzebujesz markowania.
pss

pss
Sądzę, że lepiej by było gdybyś raczył zamieścić wszystko co spłodziłeś dla swojej sieci, a nie jakies fragmenty i to jeszcze przed dostosowaniem. Bo to forum to nie ITV, i tu nie ma wróżek.

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Ostatnio zmieniony wtorek, 26 lutego 2008, 00:52 przez zciech, łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 25 lutego 2008, 21:59 
Offline

Rejestracja: poniedziałek, 25 lutego 2008, 17:06
Posty: 5
: [/] [] ()
# download
 tc qdisc del dev eth1 root
 tc qdisc add dev eth1 root handle 1:0 htb
 tc class add dev eth1 parent 1:0 classid 1:1 htb rate 15Mbit ceil 15Mbit

# host_test
 tc class add dev eth1 parent 1:1 classid 1:198 htb rate 208Kbit ceil 14560Kbit
 tc filter add dev eth1 protocol ip u32 match ip dst 192.168.1.98 flowid 1:198


Tak przedstawia się sytuacja dla download.
Zastosowałem wcześniej podany skrypt (po dostosowaiu) dla uploadu - zmieniłem jedynie paramter dst na scr w filtrze. Użyłem imq.

"poszukaj cos na temat HTB lub niceshapera!! jak również możesz zajrzeć do FAQ"

Właśnie siedzę nad htb. Nice'a wcześiej użyłem ale nie trzymał uploadu. Potem użyłem shaperd'a. Po pewnym czasie program wywalił "Błąd ochrony pamięci" i nie chciał ruszyć... Dlatego postanowiłem sam napisać stosowne reguły.

A teraz:
: [/] [] ()
 modprobe imq
 ifconfig imq0 up

 tc qdisc del dev imq0 root
 tc qdisc add dev imq0 root handle 2: htb
  tc class add dev imq0 parent 2: classid 2:1 htb rate 128Kbit ceil 128Kbit

  tc class add dev imq0 parent 2:1 classid 2:100 htb rate 16Kbit ceil 32Kbit
  tc class add dev imq0 parent 2:1 classid 2:200 htb rate 16Kbit ceil 128Kbit

# tutaj wg mnie popelniam blad
 tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.100 flowid 2:100
 tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.200 flowid 2:100

ptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0


"Pozwolę sobie mieć odmienne zdanie w tej kwestii, nie potrzebujesz markowania."
Mógłbyś pokazać jak byś to rozwiązał?

Ps. Na dodatek nie wiem do końca jak sprawa ma się z layer7 i ipp2p. O czym wcześniej pisałem.

Pps. Możecie pokazać na podstawie powyższego skryptu jak poprawnie rozwiązać ten problem?

Ppps. http://www.linuxhomenetworking.com/wiki ... g_iptables <== to swoją wielkość ma, nie dam rady zrozumieć tego w rozsądnej jednostce czasu.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 26 lutego 2008, 00:22 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
Poza brakiem literki "i" na poczatku ptables w ostatniej linii reszta wydaje się byc OK.

Cytuj:
Mógłbyś pokazać jak byś to rozwiązał?

tak:
http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz
można też tak:
http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz
albo tak (dla zaawansowanych):
http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz

A tu masz calkiem gratis, napisany w perlu program do oglądania ruchu w regułach htb

wywołanie np.:

tc-viewer --iface=imq0 --colors --unit=kbit

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 26 lutego 2008, 01:02 
Offline

Rejestracja: poniedziałek, 25 lutego 2008, 17:06
Posty: 5
"(...) reszta wydaje się byc OK."

Niestety, ruch nie zostaje wyłapany. Gdy zmodyfikować tak:

: [/] [] ()
#tworzenie classy dla qdisc
 tc qdisc add dev imq0 root handle 2: htb default 10:

# clasa domyslna
 tc class add dev imq0 parent 2: classid 2:10 htb rate X ceil Y


To cały ruch jest kierowany do tej klasy. Doszedłem do wniosku, iż jest to spowodowane przez niepoprawne filtry.

Rchtp wydaje mi się obejściem problemu - ktoś za mnie odrobił pracę domową. Nie mówię, że to źle. Analiza źródeł najprawdopodobniej powie mi co robię nie tak. Tylko, hmm.. po prostu to nie w moim stylu.

Tc-viewer'a używam. I kolejna ciekawostka, nie pokazuje on absolutnie żadnej informacji nt. klas, kolejek czy filtrów.

W każdym razie naświetlcie sprawę z layer7 i ipp2p. Czy są przydatne przy podziale na usługi. Czy też znajdą zastosowanie w "sztywnym" podziale?


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 26 lutego 2008, 01:23 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
To ciekawe bo umnie dziala:
: [/] [] ()
 modprobe imq
 ifconfig imq0 up

 tc qdisc del dev imq0 root
 tc qdisc add dev imq0 root handle 2: htb
  tc class add dev imq0 parent 2: classid 2:1 htb rate 128Kbit ceil 128Kbit

  tc class add dev imq0 parent 2:1 classid 2:100 htb rate 16Kbit ceil 32Kbit
  tc class add dev imq0 parent 2:1 classid 2:200 htb rate 16Kbit ceil 128Kbit
 tc filter add dev imq0 protocol ip u32 match ip src 10.0.0.30 flowid 2:100
 tc filter add dev imq0 protocol ip u32 match ip src 10.0.0.12 flowid 2:200

iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0






: [/] [] ()
   Tue Feb 26 00:20:47 2008

        Mode: HTB  imq0      ^C to QUIT


 2:1                  <    128Kbit -    128Kbit >     36.3 kbit/s
    2:100                <     16Kbit -     32Kbit >     34.5 kbit/s
    2:200                <     16Kbit -    128Kbit >      0.4 kbit/s


w zwiazku z tym nasuwa się pytanie dlaczego w sekcji downloadu masz:
tc filter add dev eth1 protocol ip u32 match ip dst 192.168.1.98 flowid 1:198
a uploadu
tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.100 flowid 2:100
tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.200 flowid 2:100

to zupelnie nie takie same IP są.

tc_wiewer pokazuje tylko aktywne klasy, uzyj opcji
--zero

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 26 lutego 2008, 02:37 
Offline

Rejestracja: poniedziałek, 25 lutego 2008, 17:06
Posty: 5
Z dwóch różnych serwerów brałem. Na jednym (produkcyjnym) jest załączony download. Upload testuję na "domowym", że się tak wyrażę.
Pomyłki związane z adresami ip i niewłaściwymi "gałęziami" można odrzucić.

Ps. Przeanalizuję jeszcze raz filtry. Skoro u Ciebie działa, to i u mnie też powinno. Chyba, że brakuje jakiegoś patcha na iptables, kernel (???). W kazdym razie przyjże się rchtb. Wygląda to na kawał, dobrej roboty.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 28 lutego 2008, 20:24 
Offline
Użytkownik

Rejestracja: niedziela, 16 maja 2004, 21:32
Posty: 1203
Lokalizacja: Bieruń
nadal nie napisales jakie masz lacze.

Cytuj:
max_upload="250kbit"
upload_user="50kbit"
upload_serv="70kbit"
max_download="510kbit"
download_user="127kbit"
download_serv="127kbit"


Ja mysle ze ten upload masz trochę przesadzony, i zapychasz upload!

EDIT

ja testowalem HTB zciecha i niceshapera i oba sposoby u mnie działają, ale bardziej odpowiada mi niceshaper, a i jeszcze jedno, jak kopiujesz jakieś pliki od kogos przejrzyj je najpierw i zmień do swoich potrzeb parametry w nim zawarte!!


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 28 lutego 2008, 21:50 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
Cytuj:
Chciałem wykonać dynamiczny podział pasma podług uzytkowników.


a jaka to metoda dynamicznego podzialu?

ps.
proponuje poczytac co napisal autor niceshapera na temat prob podzialu
dynamicznego w bash.

_________________
Pomógł? wypij jego zdrowie.
http://nnd-linux.pl/faq.php
http://wiki.nnd.freesco.pl/index.php/FAQ


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 29 lutego 2008, 00:41 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
-MW- pisze:
Cytuj:
Chciałem wykonać dynamiczny podział pasma podług uzytkowników.


a jaka to metoda dynamicznego podzialu?

ps.
proponuje poczytac co napisal autor niceshapera na temat prob podzialu
dynamicznego w bash.


Prszę Cię, nie mąć ludziom w głowach :evil:

Reguły htb to w/g Ciebie jest podział statyczny?

ps.
A pamiętacie justice? To był podział dynamiczny w bashu. Ale freesco nie ma htb :).

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 29 lutego 2008, 01:36 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
dynamiczny podzial to taki gdzie klasa hosta zmienia predkosc zaleznie od panujacych warunkow, czyli jest dodawana i kasowana i tak dalej.
rozumiem ze do tego potrzebny jest jakis skrypt monitorujacy i podejmujacy akcje zaleznie od potrzeby.

kiedys wykombinowalem taki skrypcik zmieniajacy reguly hostom zaleznie od panujacych warunkow ale poniewaz w bashu obliczenia nie mogly byc wykonywane czesciej niz kilka-kilkanascie sekund strasznie mi sie to nie podobalo.

regula dodana statycznie i okreslajaca wielkosc klasy to raczej statyczny podzial.


dynamiczny podzial jest wtedy jak nie mamy zadnego podzialu - kto pierwszy sie dopcha ten ma wiecej - czasem sytuacja moze sie zmienic i host sciaga wiecej, a raz mniej.
podobnie jest ze statycznym htb zapchanym na full - jest dynamiczne :twisted:

_________________
Pomógł? wypij jego zdrowie.
http://nnd-linux.pl/faq.php
http://wiki.nnd.freesco.pl/index.php/FAQ


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 29 lutego 2008, 09:33 
Offline
Użytkownik

Rejestracja: sobota, 26 listopada 2005, 07:47
Posty: 864
nie do końca MW masz rację. W moim mniemaniu htb też jest dynamiczne. Po co w przeciwnym wypadku byłby parametr 'prio'? Liczby przypisane w konfiguracji mogą być stałe, ale do wewnętrznych obliczeń htb może używać własnych parametrów - zależnych od obciążenia sieci, prio itp.

Niceshaper jako przykład dynamicznego podziału, sam ustawia limity dla hostów, z pominięciem wewnętrznych przeliczników w htb (nie pozwala im się dostosowywać, bo sam zmienia limity).


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 29 lutego 2008, 15:57 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
jesli o taka dynamike chodzi to niech bedzie ze jest to dynamiczny podzial.
lepszym przykladem dynamicznego podzialu pasma jest hfsc.

_________________
Pomógł? wypij jego zdrowie.
http://nnd-linux.pl/faq.php
http://wiki.nnd.freesco.pl/index.php/FAQ


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 16 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl