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

dynamiczne ograniczanie pasma sieciowego (pakiet justice)
http://forum.freesco.pl/viewtopic.php?f=35&t=1282
Strona 1 z 1

Autor:  RaaDaaR [ poniedziałek, 17 lutego 2003, 00:28 ]
Tytuł:  dynamiczne ograniczanie pasma sieciowego (pakiet justice)

Moje rozwiąznie w miarę dynamicznego ograniczania przepustowości zapychaczom łącz zostało zapaczkowane. W tej wersji jest jeszcze w konflikcie z MRTG I LAS ale w przyszłości planuję te rzeczy pożenić ze sobą. Do pracy z SDi i kilkoma userami z jedną kartą sieciową na serwerze praktycznie nie wymaga konfiguracji. Trzeba tylko podać przy instalacji adresy IP komputerów co do których będziemy to stosować.

Dziękuję za pomoc osobom KIPA (pomysł), JEREMIAN, ZCIECH i MATY.


http://pa173.bierun.sdi.tpnet.pl/freesco/dshaper.htm

Mam zamiar to rozwijać w dalszym ciągu.

Autor:  morpheus [ poniedziałek, 17 lutego 2003, 16:56 ]
Tytuł: 

gratuluje - na tą paczke chyba wszyscy czekali - myślę, ze wszyscy teraz czekamy aż opatrzysz ją przypisem final.

Czy nie zastanawiałęś sie nad zrobieniem wersji dla Freesco 0.3??

Autor:  RaaDaaR [ poniedziałek, 17 lutego 2003, 19:17 ]
Tytuł: 

morpheus pisze:
gratuluje - na tą paczke chyba wszyscy czekali - myślę, ze wszyscy teraz czekamy aż opatrzysz ją przypisem final.

Wszyscy raczej czekają na dynamiczne zaawansowane algorytmy kolejkowania dla FreeSCO, i niestety się raczej nie doczekają. :wink: A to jest tylko shaper i skrypt sterujący. :)

Cytuj:
Czy nie zastanawiałęś sie nad zrobieniem wersji dla Freesco 0.3??

Chyba trudne to nie będzie, tylko musiałbym najsampierw zaistalować trzecie FreeSCO :D

Poza tym INFO że poprawiłem troche skrypt instalacyjny justice.sh i jak komuś nie chciało się zainstalowac z powodu "brak pamieci potrzebnej do
instalacji pakietu" to powinien teraz spróbować.

Autor:  Kipa [ poniedziałek, 24 lutego 2003, 16:27 ]
Tytuł: 

Ustosunkuję się tutaj do tego pakieciku, bo na stronce domowej nie znalazłem takiej możliwości. Bez bicia się przyznaję, że długo nie szukałem :)

Co do ograniczeń transfery z serwera (samba) - dlaczego, przecież transfer nie leci po TCP/IP, a gdybym się jednak mylił (np. dla POP3), to chyba nie trzeba dopisywać drogi routingu do samego serwera, przecież już adres został osiągnięty.

Mój pomysł jest nieco inny, więc można go pogodzić z LAS. Oto moja propozycja wynikowa (na gorąco), bo nie mam możliwości nawet tego cuda potestować (czas :():
1. Instalujemy shaper
2. Zliczamy za pomocą LAS ruch sieciowy dla podejrzanych kaza.hst
3. Gdy nastąpi przekroczenie zadanych wartości przez ściągacza (załapał się do programu ochrony sieci :)), dopisujemy jego adres do tablicy routingu, aby skorzystał z przydziału pasma :) np. na 1 godzinkę.
4. Każdorazowo odczytując dane z LAS'a, w zależności od aktualnej liczby serfujących dobieramy parametry gardła.

Jeżeli mamy w regulaminie wyznaczone ochronne strefy czasowe, możemy bardziej dotkliwie ograniczać pasmo i zapisywać do programu przy niżej ustawionych progach w tych godzinach.

Tak działał mój program f_rules (except pkt. 4.), tylko nie mając odpowiedniego egzekutora, na stały odcinek czasowy następowała oscylacja pomiędzy dostępem do internetu, a jego brakiem :)

Mając teraz możliwość zabawy pasmem, otrzymuje się efekt podziału pasma na dwie grupy:
- normalnych (pozostałe pasmo)
- sciągających inaczej (proporcjonalna część pasma przypadająca na użytkownika, np. 2 ściągaczy na 8 userów dostanie po 14,3 kbps każdy, dla pasma 115 kbps)

Proszę o komentarz do mojego wywodu.

Autor:  Kipa [ środa, 26 lutego 2003, 09:55 ]
Tytuł: 

Sam se odpowiem, jako że to ruch wychodzący, czyli z serwera do kompa, więc będzie ograniczenie dla protokołu TCP/IP (np. POP3). :(
Mam nadzieję, że samba do transferu plików nie używa TCP/IP :lol:
Ja na szczęście ma oddzielny serwerek plików, więc mnie to nie boli, po prostu no-problem.

Autor:  RaaDaaR [ środa, 26 lutego 2003, 12:48 ]
Tytuł: 

Nie wiem dlaczego ipfwadm na FreeSCO nie pozawala na użycie kilku zakresów portów do zliczania ruchu. Nie da się używać np.
ipfwadm -A both -a -S 0/0 -D 192.168.0.2 1:136 140:32767
Musiałbym ewentualnie poszukać nowszych źródeł ipfwadm, i zobaczyć co da się zrobić

Autor:  Kipa [ czwartek, 27 lutego 2003, 12:49 ]
Tytuł: 

Dlaczego kolejne urządzenia SHAPERA, mają coraz to wyższe prędkości początkowe w rc_shaper :?:

Autor:  RaaDaaR [ czwartek, 27 lutego 2003, 13:10 ]
Tytuł: 

Kipa pisze:
Dlaczego kolejne urządzenia SHAPERA, mają coraz to wyższe prędkości początkowe w rc_shaper :?:

Hmm to stara koncepcja stworzenia kilku interfejsów o różnych prędkościach. Dopooki nie odkryłem że można sterować prędkościami w czasie pracy :) nie ma to znaczednia.

Autor:  zciech [ czwartek, 27 lutego 2003, 19:51 ]
Tytuł: 

Cytuj:
Nie wiem dlaczego ipfwadm na FreeSCO nie pozawala na użycie kilku zakresów portów do zliczania ruchu. Nie da się używać np.
ipfwadm -A both -a -S 0/0 -D 192.168.0.2 1:136 140:32767
Musiałbym ewentualnie poszukać nowszych źródeł ipfwadm, i zobaczyć co da się zrobić

A moze policzyc osobno i dodac ?
: [/] [] ()
ipfwadm -A both -a -S 0/0 -D 192.168.0.2 1:136
ipfwadm -A both -a -S 0/0 -D 192.168.0.2 140:32767

Nie ma nowszego ipfwadm. Po za tym ipfwadm jest tylko programem obslugujacym, który dzialając na strukturach damych jadra ustawie i oblicza i to prawdopodobnie w procedurach w jadrze systemu jest to ograniczenie :cry:

Autor:  Kipa [ czwartek, 27 lutego 2003, 23:03 ]
Tytuł: 

Popełniłem taki skrypt, który dodaje usera do programu ochrony sieci. Na początek założyłem tylko 3 urządzenia dławiące równocześnie dla 3 kazowiczów. Wszystkie mają taką samą szybkość ustalaną co 4 min i zależną od aktualnej liczby internautów.
Jak ktoś podejżanie za dużo ściąga, to wywołuje sobie ten skrypcik, a on sprawdza czy delikwent już nie zgłosił się wcześniej na "drogę przez mękę" a jak nie, to go wrzuca na pierwszu wolny shaperX.
Dzięki takiemu założeniu, nie sprawdzam co chwilkę ile kto ciągnie, tylko w czasie pracu LAS, co 4 min odczytuje dane. Teraz tylko wystarczy się określić jak długo ta męka ma trwać, a może długo, bo jak sam będzie w sieci to zero spowolnienia, swoje proporcjonalnie dostaje :)

nazwałem go f_radd
: [/] [] ()
# by KIPA :-)
# Dodaj kompa do programu ochrony shaper.
# parametr - nazwa kompa

check() {
odp="NO"
if [ "$1" ]; then
  for okomp in `route | cat`; do
    if [ "$okomp" = $1 ]; then
      odp="YES"
    fi
  done
else
  odp="Podaj nazwę KOMPA"
fi
}


check $1
if [ "$odp" = NO ]; then
  for i in 0 1 2; do
    check shaper$i
    if [ "$odp" = NO ]; then
      echo "Dodaję $1 do dev shaper$i"
      route add $1 dev shaper$i
      ipfwadm -A out -a -P all -W shaper$i -D $1
      # to wyżej, żeby LAS liczył OUT przez shaperX
      exit
    fi
  done
else
  echo "$1 jest dodany"
fi
Oczywiście teraz muszę dopisać f_rdel, który to wypisze gościa za dobre sprawowanie

Autor:  RaaDaaR [ piątek, 28 lutego 2003, 00:12 ]
Tytuł: 

Ja mam zastrzeżenie co do używalności u Mnie. Jak wpiszę "route" to próbuje przedstawić tabelę routingu z nazwami hostów. I jeżeli próbuje znaleść nazwę dla adresu mojej półki trwa to bardzo długo (moje półka SDI figuruje w tablicy routingu jako druga strona połaczenia ppp0). W justice używałem route -n aby szybko to działało, jako że w justice tablica routingu jest przeszukiwana dwukrotnie w jednym cyklu.

Spoko że wziął się za to ktoś lepiej piszący skrypty shell'a ode Mnie :) :D


jeszcze dopisze:
Może nie zadziałać liczenie ruchu poprzez shaper'y, to nie są fizyczne urządzenia.

Autor:  RaaDaaR [ piątek, 28 lutego 2003, 00:38 ]
Tytuł: 

Cytuj:
A moze policzyc osobno i dodac ?
: [/] [] ()
ipfwadm -A both -a -S 0/0 -D 192.168.0.2 1:136
ipfwadm -A both -a -S 0/0 -D 192.168.0.2 140:32767


Tak też będę kombinował, dodatkowo podzieli to zakres portów na niższe, które będą traktowane normalnie, i wyższe na których działają programy p2p i będzie to graniczane bardziej restrykcyjnie.
Cytuj:
Nie ma nowszego ipfwadm. Po za tym ipfwadm jest tylko programem obslugujacym, który dzialając na strukturach damych jadra ustawie i oblicza i to prawdopodobnie w procedurach w jadrze systemu jest to ograniczenie :cry:

Już do tego doszedłem :( nie nada :cry: :(

Autor:  Kipa [ sobota, 1 marca 2003, 22:38 ]
Tytuł: 

RaaDaaR pisze:
Ja mam zastrzeżenie co do używalności u Mnie. Jak wpiszę "route" to próbuje przedstawić tabelę routingu z nazwami hostów.

Zobacz zawartość pliku resolve.conf, zapewne masz włączone DNS a rozwiązania lokalnie. Spróbuj podmienić na DNS'y z Tepsy, powinno się poprawić.


A co do pliku f_rdel
: [/] [] ()
# by KIPA :-)
# Usuwa kompa z programu ochrony shaper.
# parametr $1 - nazwa kompa
# parametr $2 - nr dev shapera
# parametr $3 - czas opóżnienia (czyli działania routingu)

echo "Usunę $1 z dev shaper$i po $3 sek."
sleep $3
route del $1
ipfwadm -A out -d -P all -W shaper$2 -D $1
Wywołujemy zaraz po dopisaniu do tablicy routingu w tle (fork)
Tak wygląda zmieniony fragment f_radd (na początku domyślny czas podtrzymania 30 godz. :))
: [/] [] ()
if [ "$2" ]; then
  t_bl=$2
else
  t_bl=108000
fi

....

    if [ "$odp" = NO ]; then
      echo "Dodaję $1 do dev shaper$i"
      route add $1 dev shaper$i
      ipfwadm -A out -a -P all -W shaper$i -D $1
      [b]fork f_rdel $1 $i $t_bl[/b]
      exit
    fi

Autor:  Kipa [ sobota, 1 marca 2003, 23:14 ]
Tytuł: 

Zmodyfikowłem lekko rc_shaper
: [/] [] ()
...

#dokladamy tyle urzadzen shaperX ile mamy userow doograniczenia gdzie x to numer
for i in 0 1 2 3 4; do

  #jedno urzadzenie na jednego usera
  insmod -fs -o shaper$i /mnt/router/packages/tshaper/shaper.o

  #dowiazujemy wszystkie shapery do naszej karty sieciowej dla sieci wewnetrznej
  shapecfg attach shaper$i eth0
  #tu lepiej chyba podać zmienną bo dla DSL czy NEO to będzie eth1

  #ustawiamy predkosc interfejsow
  shapecfg speed shaper$i 55000

  #podnosimy owe interfejsy ograniczen z adresem naszego eth0
  ifconfig shaper$i 172.16.0.1 up
done
$DONE

Nadmienię, że zastosowałem shapera bezpośrednio do moich skryptów kazownika, wcześniej tu publikowanych. Działa dardzo dobrze, zlicza ruch nawet poprzez dev shaperX, dzięki czemu LAS pokazuje ruch w sieci.

Co ciekawe, kiedy gościu jest wpisany do "programu ochrony sieci", nigdy się nie łapie na przkroczeniu transferu, co się zdarzało w oscylatorze :)

Autor:  RaaDaaR [ sobota, 1 marca 2003, 23:26 ]
Tytuł: 

Kipa pisze:
: [/] [] ()
  shapecfg attach shaper$i eth0
  #tu lepiej chyba podać zmienną bo dla DSL czy NEO to będzie eth1

W przypadku justice tak jest :D . Jak zacząłem się bawić ze kernelami to shapera zaniedbałem :(

Autor:  Anonymous [ sobota, 8 marca 2003, 11:53 ]
Tytuł:  shaper

Brawo za robote z tym skrypcikiem - ale mam problem
U mnie po jakims czasie w logu shaper-a pojawia sie taki blad:

[b]sleep: Unknown error[/b]

Serverek to P166MMX 40MB RAM HDD 850MB
dla Neo+

Czy ktos się jeszcze z tym spotkał ?

Byłbym wdzieczny za pomoc....

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