Ograniczenie pasma dla poszczególnych hostów

Konfiguracja serwerów, usług, itp.
Pablik
Posty: 78
Rejestracja: 12 października 2010, 15:26

Ograniczenie pasma dla poszczególnych hostów

Post autor: Pablik »

Witam.
Mam mini sieć na Debianie około 10 hostów.

Konfiguracja adresów IP:

Kod: Zaznacz cały

/etc/network/interfaces
auto lo iface lo inet loopback  

iface eth0 inet static 
address 83.19.28.220
netmask 255.255.255.248
gateway 83.19.28.217

iface eth1 inet static 
address 192.168.0.1
netmask 255.0.0.0
Jak ograniczyć przepustowość dla danego hosta np. do 100 kb/s. Interesuje mnie również jak zrobić podgląd ile transferu wykorzystują wszystkie hosty w sieci
(dla każdego hosta przypisane jego zużycie).
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post autor: Pacek »

Jeżeli chcesz to sobie ładnie podzielić to zainteresuj się łatką IMQ oraz filtrem Layer7 (tzw. warstwa7). Wymaga to niestety nakładania łatki i rekompilacji jądra oraz nakładania łatki na iptables. Jednakże można wtedy ograniczyć transfer wychodzący jak i przychodzący na każdym z interfejsów.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Czy warstwa7 wam działa?
Bo ja próbowałem to skonfigurować u siebie i efekt jest taki, że rozpoznaje jakieś 10% ruchu a reszta idzie jako ,,nieznany''.
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post autor: Pacek »

Może wkleisz jakieś konfiguracje? Może się okazać, że filtr warstwy7 jakichś usług nie rozpoznaje poprawnie i stąd problemy.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

Da się to zrobić przy użyciu iptables z modułem quota. Problem polega tylko na tym, że regułę tą trzeba będzie resetować co jakiś czas np. przy użyciu crona. Nie musisz resetować całej zapory, wystarczy określone reguły, po numerze.

Kod: Zaznacz cały

iptables -A FORWARD -s 0/0 -d [IP] -m quota --quota 1073741824 -j ACCEPT
Polecenie

Kod: Zaznacz cały

iptables -L -n --line-number
pokaże, jaki numer ma reguła. Aby wstawić (przeładować) regułę np. 12-tą co miesiąc w cronie wstawiamy polecenie:

Kod: Zaznacz cały

iptables -I FORWARD 12 -s 0/0 -d [IP] -m quota --quota 1073741824 -j ACCEP
W ten sposób ją zmieniamy, nadpisujemy, w wyniku czego jej licznik jest kasowany.

Pisałem to wszystko teoretycznie, więc może coś przeoczyłem, ale ogólnie powinno działać.

Ehh pomyliło mi się - nie o to Ci chodziło. Ale to też da się zrobić bez dodatków :)
Np. chcemy uciąć pobieranie dla 192.168.4.50 na eth1 do 1mbit:

Kod: Zaznacz cały

tc qdisc add dev eth1 root handle 1: htb default 4
tc class add dev eth1 parent 1: classid 1:1 htb rate 1mbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.4.50/32 flowid 1:1
Aby to zatrzymać

Kod: Zaznacz cały

tc qdisc del dev eth1 root
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post autor: Pacek »

HTB nie jest w stanie filtrować pakietów przychodzących. Więc Twoje rozwiązanie może nie działać. HTB może jedynie priorytetować pakiety wychodzące. Do tego właśnie służą interfejsy pośrednie IMQ. Jest też również coś takiego jak IFB (Intermediate Functional Block) i to jest chyba standardowo w jądrze (nie trzeba łatać jądra). Jednakże nie stosowałem tego. Można powiedzieć, że jest to oficjalny zamiennik IMQ.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

HTB nie jest w stanie filtrować pakietów przychodzących. Więc Twoje rozwiązanie może nie działać.
To jak może, czy nie może? :)
Działa, dział, możesz wybierać kierunek przepływu pakietów: dsc, src ;)
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post autor: Pacek »

To jak może, czy nie może? Obrazek
Nie może
Przeczytaj pierwszy akapit:
http://luxik.cdi.cz/~devik/qos/htb/htbfaq.htm
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

A próbowałeś?
bzyk
Beginner
Posty: 181
Rejestracja: 08 stycznia 2008, 22:00
Lokalizacja: Pszczyna

Post autor: bzyk »

Może.
Wskazówka: imq ifb
Ten drugi (ifb) nie wymaga rekompilacji jajca w Debianie. Działa od strzału. U mnie kiedyś parę komputerów z tego korzystało. Sprawowało się toto świetnie.
ODPOWIEDZ