Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam wszystkich.
Na początek przyznam się, że jestem początkującym użytkownikiem Debiana, do tej pory miałem tylko styczność z Freesco NND.
Ale do rzeczy ….
Sprzęt
Mam serwerek-router, który podłączony jest do Routerka TPSA (SPEEDTOUCH 510) który pracuje jako Bridge.
Oczywiście dwie karty sieciowe 10/100,płyta gówna Aspen AX6B Plus, dysk 10 GB, ram 256
Wszystko to pracuje na Neostradzie 1024, 5 użytkowników w sieci z dostępem do netu.
System Debian 4.0 Etch, jajko 2.6.18 tryb tekstowy
Chciałbym, aby serwer pełnił rolę strażnika łącza i do tego chce użyć HTB tak żeby wszyscy mieli dostęp do netu, mogli ściągać pliki (P2P) z limitami, ale bez zakazu.
Wiele czytałem na temat kolejkowania pakietów za pomocą HTB, ale tu już zaczyna się problem.
Nie wiem jak się za to zabrać, opisy jaki znalazłem w sieci są dla mnie mało czytelne, wiele poleceń nie uruchamia konsoli konfiguracyjnych.
Czy jest ktoś na forum, kto wyjaśni mi krok po kroku jak zainstalować HTB, czy muszę zmieniać jajko na nowsze, czy można pozostać na tym co mam teraz?
Z góry dziekuję za wszelka pomoc.
Offline
Podział Neostrady poza lokal jest zabroniony!
Rozważmy więc kwestie tego routera. Czy prócz shapingu i firewall'a potrzebujesz na nim coś jeszcze? DHCP, VPN, PPTP, itp.
Offline
Czy on gdziekolwiek napisal ze dzieli poza lokal?
Niechce nikogo bronic ale to jest jakas obsesja, jak ktos pisze ze dzieli neostrade to odrazu mu sie mówi ze poza lokal niemozna.
:P
Offline
na poczatek polecam przeczytanie artykulu linio na temat htb
http://linio.terramail.pl/htb.pdf
tam jest to dosc zgrabnie opisane
Offline
Syziek, profilaktycznie, a i może mam takie zboczenie życia na legalu :P
Patrząc po wymaganiach to osobiście nie używałbym tutaj HTB. Zamiast tego DummyNet lub ALTQ, a całość uzupełnił pf. Oczywiści DHCP server, może
Squid i jeśli w sieci są AP to CP.
Ponieważ jak widzę sprzęt to nie Soekris lub inny oparty o AMD Geode proponuję coś co dobrze się sprawdzi na defaultowych ustawieniach [urp=http://pfsense.org/l]pfSense[/url] można tez postawić ultra lekkiego (~10MB) m0n0wall.
Offline
Witam ponownie.
Dzieki za tak szybki odzew na moje pytanie.
Wracajac do serwera na obecna chwile mam serwer stac na NND Freesco z uslugami: www (apache + php + mysql), ftp, oczywiscie ssh do zarzadzania zdalnie serwerem, dhcp, firewall z blokada p2p i mozliwoscia indywidualnego przydzialu ilosci nawiazywanych polaczen, niceshaper oraz kilka innych uslug do monitorowania serwera np.mrtg
ktos z was moze powiedziec ze skoro mam taki serwer z tym oprogramowaniem i dzialajacy bardzo dobrze to po co szukam sobie problemow? wiec odpowiem tak: nie jestem ekspertem od linuksa, udalo mi sie postawic na prostym systemie (NND) serwerek wiec teraz chcialbym isc dalej i zrobic cos co stawia wyzej poprzeczke. Zgodnie z powiedzeniem "Kto nie idzie do przodu ten sie cofa"
Co do sprzetu, mam w trakcie skladania lepszy, wydajniejszy serwerek z PIII i kontrolerem SCSI.
Wracajac do mojej prosby...
Oczywiscie czytalem juz na temat HTB troche opisow w jezyku polskim (niestety nie znam angielskiego), i zagladalem na strony z paczkami kernela HTB i calej reszty, ale nie wiem dokladnie co pobrac.
- jaka wersja kernela?
- jaki iproute?
- na stronie z HTM jest tylko paczka dla jajka 2.2.x i 2.4.x
Jesli chodzi o jajko to mam 2.6.18, ktore zainstalowalo sie jak przechodzilem na wersje Etch i wyczytalem gdzies na forum, ze mozna pozostawic obecny kernel pod warunkiem zrobienia pewnych zmian,ale jakich nie wiem.
Mysle, ze z waszych rad podpartych dlugim doswiadczeniem z Debianem uda mi sie zainstalowac to wymarzone HTB.
Co do podzialu Neo, kabelki nie wychodza poza budynek, a adres budynku jest jeden dla kilku pomieszczen, ktore wynajmuje krewnym. Tylko w moim mieszkaniu mam 3 komputery + serwer w piwnicy.
Offline
To skoro chcesz miec tam Apacha z MySQL i FTP to moje propozycje raczej odpadają, choć proponuje żebyś zobaczył jak działają - możesz się nauczyć coś więcej o podziale łącza i tworzeniu firewall'a.
Offline
Jestem w tym momencie po calym dniu roboty ( + zaliczenia w budzie) wiec napisze dosyc krotko bez podawanie konkretnych linkow. Yakubek wiekszosc odpowiedzi temat jakie jadro , iproute jak patchowac jadro itp znajdziesz w dziale kernel na Naszym forum. Bodajze BieXi podala zbior swoich patchy jak mnie pamiec nie myli to w temacie " jadro na serwer" jakos tak. Wiec jak juz wiesz zeby stworzyc kolejkowanie powinienes przekompilowac kernel.
Kiedy zaczniesz z tym dzialac to bedzie latwiej to zrozumiec. Sam jestem poczatkujacy w sprawach sieciowych ale w praktyce szybciej idzie to zrozumiec niz tylko czytac posty :]. A po to jest forum by sobie pomagac.
Pozdrawiam.
Offline
Jak na razie to nie udalomi sie podmienic jadra na nowsze, po kilku probach albo serwerek wstawal na starym jajku, albo cos zle dopisywal do konfigu gruba.
Ale z tego co zaobserwowalem i wyczytalem to jajko 2.6.x ma wkompilowana obsluge htb wiec mysle sobie ze chyba nie trzeba ponownie grzebac w kernelu. ??
W tej chwili mam czysta instalke debiana 4.0 doinstalowalem tylko iproute, skonfigurowalem dhcp i skrypcik firewalla z obsluga dhcp wg. opisu BiExi i pppoeconfig. Koncze teraz skrypt htb pytanie tylko czy to wszystko wystartuje?
Offline
Moj plik htb
#! /bin/sh # Poniżej zamieszczono kod odpowiedzialny za kontrolę downloadu: # Tworzymy główną kolejkę 1:0 na interfejsie eth1 tc qdisc add dev eth1 root handle 1:0 htb # W kolejce tej tworzymy główną klasę 1:1 o przepustowości 9Mbit: tc class add dev eth1 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit # Tworzymy podklasy i określamy ich przepustowości (minimalną i maksymalną): # # Dla pierwszej podklasy, do której trafią wszystkie połączenia z Neostrady do # sieci lokalnej, będzie to jakieś 1000 kbit minus kilka procent. tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1000kbit # Druga podklasa jest przeznaczona dla połączeń między serwerem, a LAN-em. # Na razie tworzymy kolejki, później przy użyciu filtrów poprzypisujemy, # które pakiety trafią do której kolejki. tc class add dev eth1 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit # Teraz tworzymy właściwe podklasy (jedna podklasa na jeden komputer) należące # do podklasy 1:2 (cała Neostrada). Określają one przepustowości między # Neostradą, a poszczególnymi użytkownikami sieci. tc class add dev eth1 parent 1:2 classid 1:4 htb rate 120kbit ceil 900kbit # dla mnie tc class add dev eth1 parent 1:2 classid 1:5 htb rate 120kbit ceil 240kbit # dla 2 tc class add dev eth1 parent 1:2 classid 1:6 htb rate 120kbit ceil 240kbit # dla 3 tc class add dev eth1 parent 1:2 classid 1:7 htb rate 120kbit ceil 240kbit # dla 4 tc class add dev eth1 parent 1:2 classid 1:8 htb rate 120kbit ceil 240kbit # dla 5 tc class add dev eth1 parent 1:2 classid 1:9 htb rate 120kbit ceil 240kbit # dla 6 # Przydzielamy ruch dla poszczególnych kanałów: # # Najpierw filtrujemy w/g źródła pakietu -- jeżeli źródłem jest bramka, # to trafia do klasy 1:3 (która ma 8,5Mbit) tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.0 flowid 1:3 # Resztę filtrujemy w/g adresu odbiorcy: tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.2 flowid 1:4 # Ja tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.3 flowid 1:5 # dla 2 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.4 flowid 1:6 # dla 3 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.5 flowid 1:7 # dla 4 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.6 flowid 1:8 # dla 5 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.7 flowid 1:7 # dla 6 # Drobna uwaga -- w powyższych wierszach wszędzie występuje "preference 1". # Po godzinie prób i błędów doszedłem do wniosku, że tak musi być, gdyż w # przeciwnym przypadku shaping nie chciał działać i wszystkie połączenia # między serwerem a klientami przydzielał nie do 1:3, tylko do pozostałych :( # Sprawiedliwy algorytm kolejkowania (zamiast fifo): # # Domyślnie kolejka będzie działała na zasadzie fifo -- czyli pakiet, który # ostatni trafi do kolejki, ostatni z niej też wyjdzie. W przypadku porządnego # zapchania może to uniemożliwić korzystanie z czegokolwiek. SFQ przepuszcza # pakiety "sprawiedliwie", czyli losowo. Uniemożliwi to zapchanie telnetu Kazą # i innych interaktywnych usług. tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10 # 3.2. Kształtowanie ruchu wychodzącego # Wykorzystujemy tu możliwości iptables do znakowania pakietów, a następnie na podstawie fwmark # przyporządkowujemy je do poszczególnych kanałów: # Na razie to samo... tworzymy główną kolejkę tc qdisc add dev eth0 root handle 1:0 htb # Główna klasa: 256kbit minus trochę tc class add dev eth0 parent 1:0 classid 1:1 htb rate 256kbit ceil 256kbit quantum 16 # 5 klas dla każdego komputera, łącznie z serwerem. Końcówkę quantum musiałem # dopisać, bo inaczej kernel wypisywał, że "quantum of class ... is too small" # i zaśmiecał logi. # Klasy o numerach 2 do 6, są to podklasy głównej klasy 1:1 tc class add dev eth0 parent 1:1 classid 1:2 htb rate 24kbit ceil 24kbit quantum 4 # bramka tc class add dev eth0 parent 1:1 classid 1:3 htb rate 24kbit ceil 48kbit quantum 4 # Ja tc class add dev eth0 parent 1:1 classid 1:4 htb rate 24kbit ceil 24kbit quantum 4 # dla 2 tc class add dev eth0 parent 1:1 classid 1:5 htb rate 24kbit ceil 24kbit quantum 4 # dla 3 tc class add dev eth0 parent 1:1 classid 1:6 htb rate 24kbit ceil 24kbit quantum 4 # dla 4 tc class add dev eth0 parent 1:1 classid 1:7 htb rate 24kbit ceil 24kbit quantum 4 # dla 5 tc class add dev eth0 parent 1:1 classid 1:8 htb rate 24kbit ceil 24kbit quantum 4 # dla 6 # Sprawiedliwe kolejkowanie... tak jak wyżej. tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:6 handle 7:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:6 handle 8:0 sfq perturb 10 # "Czarna magia": # # Klasyfikujemy nie wg źródła pochodzenia pakietu, tylko wg fwmarka (to po # handle, 20 do 24). tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:2 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 1:4 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 23 fw flowid 1:5 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:6 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:7 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:8 # Przypisanie pakietom znaczków, w zależności od pochodzenia. Każdy pakiet # wychodzący dostaje jakiś mark (-j MARK --set-mark eth1): iptables -t mangle -N MYSHAPER-OUT iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK --set-mark 21 # od Ja iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK --set-mark 22 # od 2 iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK --set-mark 23 # od 3 iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.5 -j MARK --set-mark 24 # od 4 iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.6 -j MARK --set-mark 24 # od 5 iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.7 -j MARK --set-mark 24 # od 6 # Powyższe pakiety dają się ładnie zaklasyfikować, ponieważ jako źródło # pochodzenia mają adres IP klienta. Z pakietami wychodzącymi z serwera jest # pewnien problem, ponieważ adresem źródłowym jest zewnętrzne IP Neostrady+ # (80.*). Tak więc pozostałe pakiety bez znaczka (mark=0) oznaczamy jako 20. # To w zupełności wystarcza. Dodatkowo działa motywująco na takich, którzy w # ramach kombinowania zmienią sobie IP, aby ominąć ograniczenie. iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20 # 3.3. Skrypt konfiguracyjny # Cała konfiguracja ogranicza się do utworzenia jednego skryptu shellowego, # dla wygody przyjmującego parametry stop, start i status: #!/bin/sh # shaper.sh -- prosty i łatwy skrypt do zarządzania pasmem if [ "$1" == "stop" ] then echo "Zatrzymujemy shapera" tc qdisc del root dev eth1 2>/dev/null tc qdisc del root dev eth0 2>/dev/null iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null iptables -t mangle -F MYSHAPER-OUT 2>/dev/null iptables -t mangle -X MYSHAPER-OUT 2>/dev/null exit fi if [ "$1" == "start" ] then # To co było wcześniej -- do pieca! :) echo "Uruchamiamy shapera" tc qdisc del root dev eth1 2>/dev/null tc qdisc del root dev eth0 2>/dev/null iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null iptables -t mangle -F MYSHAPER-OUT 2>/dev/null iptables -t mangle -X MYSHAPER-OUT 2>/dev/null ########## DOWNLOAD tc qdisc add dev eth1 root handle 1:0 htb tc class add dev eth1 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit tc class add dev eth1 parent 1:1 classid 1:2 htb rate 480kbit ceil 480kbit tc class add dev eth1 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit tc class add dev eth1 parent 1:2 classid 1:4 htb rate 120kbit ceil 480kbit tc class add dev eth1 parent 1:2 classid 1:5 htb rate 120kbit ceil 480kbit tc class add dev eth1 parent 1:2 classid 1:6 htb rate 120kbit ceil 480kbit tc class add dev eth1 parent 1:2 classid 1:7 htb rate 120kbit ceil 480kbit tc class add dev eth1 parent 1:2 classid 1:8 htb rate 120kbit ceil 480kbit tc class add dev eth1 parent 1:2 classid 1:9 htb rate 120kbit ceil 480kbit tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.2.0 flowid 1:3 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.2 flowid 1:4 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.3 flowid 1:5 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.4 flowid 1:6 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.5 flowid 1:7 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.6 flowid 1:8 tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip dst 192.168.2.7 flowid 1:8 tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10 ########## UPLOAD tc qdisc add dev eth0 root handle 1:0 htb tc class add dev eth0 parent 1:0 classid 1:1 htb rate 120kbit ceil 120kbit quantum 16 tc class add dev eth0 parent 1:1 classid 1:2 htb rate 24kbit ceil 24kbit quantum 4 tc class add dev eth0 parent 1:1 classid 1:3 htb rate 24kbit ceil 24kbit quantum 4 tc class add dev eth0 parent 1:1 classid 1:4 htb rate 24kbit ceil 24kbit quantum 4 tc class add dev eth0 parent 1:1 classid 1:5 htb rate 24kbit ceil 24kbit quantum 4 tc class add dev eth0 parent 1:1 classid 1:6 htb rate 24kbit ceil 24kbit quantum 4 tc class add dev eth0 parent 1:1 classid 1:7 htb rate 24kbit ceil 24kbit quantum 4 tc class add dev eth0 parent 1:1 classid 1:8 htb rate 24kbit ceil 24kbit quantum 4 tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:7 handle 7:0 sfq perturb 10 tc qdisc add dev eth0 parent 1:8 handle 8:0 sfq perturb 10 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:2 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 1:4 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 23 fw flowid 1:5 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:6 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:7 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:8 iptables -t mangle -N MYSHAPER-OUT iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK --set-mark 21 iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK --set-mark 22 iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK --set-mark 23 iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.5 -j MARK --set-mark 24 iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.6 -j MARK --set-mark 25 iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.7 -j MARK --set-mark 26 ### iptables -t mangle -A MYSHAPER-OUT -s 192.168.1.10 -j MARK --set-mark 24 iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20 exit fi if [ "$1" == "status" ] then echo "eth1: " tc -s qdisc show dev eth1 echo "eth0: " tc -s qdisc show dev eth0 exit fi echo "$0 start|stop|status" ## KONIEC
plik firewall
# wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F # ustawienie polityki dzialania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # zezwolenie nna laczenie sie z naszym zewnetrznym ip po ssh iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT # Otwart port SSH iptables -A INPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT # polaczenia nawiazane #iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED #iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED #iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # polaczenia nawiazane dla wlaczonego dhcp iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej ###iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE ###iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT # Dla wlaczonego dhcp # Komputer IBM iptables -t nat -A POSTROUTING -s 192.168.2.2 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:0D:60:B1:38:EE -j ACCEPT # Michal iptables -t nat -A POSTROUTING -s 192.168.2.3 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:e0:7d:a1:94:d5 -j ACCEPT # Marek iptables -t nat -A POSTROUTING -s 192.168.2.4 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:40:05:3c:7c:a0 -j ACCEPT # Mazur iptables -t nat -A POSTROUTING -s 192.168.2.5 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:50:fc:65:84:44 -j ACCEPT # Wojtek iptables -t nat -A POSTROUTING -s 192.168.2.6 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:4f:4e:60:8b:6b -j ACCEPT # Ewelina iptables -t nat -A POSTROUTING -s 192.168.2.7 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:50:8d:68:d6:e1 -j ACCEPT # Przemek iptables -t nat -A POSTROUTING -s 192.168.2.8 -j MASQUERADE iptables -A FORWARD -m mac --mac-source 00:0e:2e:ab:20:c4 -j ACCEPT
Po starcie systemu i odpaleniu z palca htb wywalakomunikat :
serwer:~# /etc/init.d/htb start RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel iptables: Chain already exists Uruchamiamy shapera RTNETLINK answers: File exists We have an error talking to the kernel RTNETLINK answers: File exists We have an error talking to the kernel iptables: Chain already exists
Co jest zle ??
Czy musze instalowac nowe jadro i konfigurowac ??
Prosze was o pomoc
Offline
moze nie mam sie czym chwalic, ale zrobilem HTB w taki sposob:
- zainstalowalem debianka 4.0 z podstawowym systemem w trybie tekstowym zjaderkiem 2.6.18-4
- nastepnie zmienilem wpisy w konfigu apta
# # deb cdrom:[Debian GNU/Linux testing _Etch_ - Official Beta i386 NETINST Binary-1 20070320-21:02]/ etch contrib main # deb cdrom:[Debian GNU/Linux testing _Etch_ - Official Beta i386 NETINST Binary-1 20070320-21:02]/ etch contrib main deb http://ftp.pl.debian.org/debian/ etch main deb-src http://ftp.pl.debian.org/debian/ etch main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib
- potem atp-get update
- apt-get uprade
- instalka ssh, mc, sysvconfig, rrconf, iproute, iptables, iptraf to tylena poczatek
- zrobilem skrypcie firewall i umiescilem go w /etc/init.d
- zrobilem skrypcik htb w /etc/init.d
Skrypty startuja podczas startu serwera
update-rc.d program defaults 20
HTB chodzi dobrze, dowolnie moge zmieniac transfer dla uzytkownikow.
plik firewall
# wlaczenie w kernelu forwardowania
echo 1 > /proc/sys/net/ipv4/ip_forward
# czyszczenie starych regul
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
# ustawienie polityki dzialania
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# zezwolenie nna laczenie sie z naszym zewnetrznym ip po ssh
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# Otwart port SSH
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
# Hamownia
# polaczenia nawiazane
#iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
#iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
#iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# polaczenia nawiazane dla wlaczonego dhcp
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# udostepniaie internetu w sieci lokalnej
###iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
###iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
# Dla wlaczonego dhcp
# Komputer IBM
iptables -t nat -A POSTROUTING -s 192.168.2.2 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0D:60:B1:38:EE -j ACCEPT
# Michal
iptables -t nat -A POSTROUTING -s 192.168.2.3 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:e0:7d:a1:94:d5 -j ACCEPT
# Marek
iptables -t nat -A POSTROUTING -s 192.168.2.4 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:40:05:3c:7c:a0 -j ACCEPT
# Mazur
iptables -t nat -A POSTROUTING -s 192.168.2.5 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:fc:65:84:44 -j ACCEPT
# Wojtek
iptables -t nat -A POSTROUTING -s 192.168.2.6 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:4f:4e:60:8b:6b -j ACCEPT
# Ewelina
iptables -t nat -A POSTROUTING -s 192.168.2.7 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:8d:68:d6:e1 -j ACCEPT
# Przemek
iptables -t nat -A POSTROUTING -s 192.168.2.8 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0e:2e:ab:20:c4 -j ACCEPT
plik htb
#!/bin/sh
# shaper.sh — prosty i łatwy skrypt do zarządzania pasmem
if [ "$1" == "stop" ]
then
echo "Zatrzymujemy shapera"
tc qdisc del root dev eth1 2>/dev/null
tc qdisc del root dev eth0 2>/dev/null
iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null
iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
exit
fi
if [ "$1" == "start" ]
then
# To co było wcześniej — do pieca! :)
echo "Uruchamiamy shapera"
tc qdisc del root dev eth1 2>/dev/null
iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null
iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
########## DOWNLOAD
tc qdisc add dev eth1 root handle 1:0 htb
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 99000kbit ceil 99000kbit
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1000kbit
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 98000kbit ceil 98000kbit
tc class add dev eth1 parent 1:2 classid 1:4 htb rate 256kbit ceil 1000kbit #Yakub
tc class add dev eth1 parent 1:2 classid 1:5 htb rate 256kbit ceil 1000kbit #Laptop
tc class add dev eth1 parent 1:2 classid 1:6 htb rate 256kbit ceil 1000kbit #Karolinka
tc class add dev eth1 parent 1:2 classid 1:7 htb rate 256kbit ceil 1000kbit #Skura
tc class add dev eth1 parent 1:2 classid 1:8 htb rate 256kbit ceil 1000kbit #Skura
tc class add dev eth1 parent 1:2 classid 1:9 htb rate 256kbit ceil 1000kbit #Skura
tc class add dev eth1 parent 1:2 classid 1:10 htb rate 256kbit ceil 1000kbit #Skura
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
src 192.168.2.0 flowid 1:3
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.2 flowid 1:4
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.3 flowid 1:5
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.4 flowid 1:6
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.5 flowid 1:7
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.6 flowid 1:8
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.7 flowid 1:9
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.8 flowid 1:10
tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:10 handle 10:0 sfq perturb 10
########## UPLOAD
tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 250kbit ceil 250kbit quantum 16
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 50kbit ceil 250kbit quantum 4 #Serwer
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 50kbit ceil 250kbit quantum 4 #Ja
tc class add dev eth0 parent 1:1 classid 1:4 htb rate 50kbit ceil 250kbit quantum 4 #Michal
tc class add dev eth0 parent 1:1 classid 1:5 htb rate 50kbit ceil 250kbit quantum 4 #Marek
tc class add dev eth0 parent 1:1 classid 1:6 htb rate 50kbit ceil 250kbit quantum 4 #Mazur
tc class add dev eth0 parent 1:1 classid 1:7 htb rate 50kbit ceil 250kbit quantum 4 #Wojtek
tc class add dev eth0 parent 1:1 classid 1:8 htb rate 50kbit ceil 250kbit quantum 4 #Ewelina
tc class add dev eth0 parent 1:1 classid 1:9 htb rate 50kbit ceil 250kbit quantum 4 #Przemek
tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:7 handle 7:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:8 handle 8:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:9 handle 9:0 sfq perturb 10
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:2
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 1:4
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 23 fw flowid 1:5
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:6
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 25 fw flowid 1:7
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 26 fw flowid 1:8
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 27 fw flowid 1:9
iptables -t mangle -N MYSHAPER-OUT
iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK --set-mark 21
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK --set-mark 22
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK --set-mark 23
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.5 -j MARK --set-mark 24
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.6 -j MARK --set-mark 25
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.7 -j MARK --set-mark 26
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.8 -j MARK --set-mark 27
# iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.5 -j MARK --set-mark 28
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20
exit
fi
if [ "$1" == "status" ]
then
echo "eth1: "
tc -s qdisc show dev eth1
exit
fi
echo "$0 start|stop|status"
## KONIEC
teraz tak
eth0 - wyjscie do neta
eth1 - wyjscie dla LAN
net ADSL 1024 (neostrada)
czego do szczescia mi brakuje... zeby ograniczyc ilosc polaczen dla 2 uzytkownikow ktorze mula siec p2p i tu niestety nie bardzo sobie moge poradzic
Jak zmodyfikowac wpisy w pliku firewall zeby zrobic limit ilosci polaczen?
np. takie wpisy generuja blad podczas starty firewalla
iptables -t filter -I FORWARD -p tcp -s 192.168.2.2 -m connlimit - connlimit-above 300 -j REJECT
iptables -t mangle -A FORWARD -p tcp -s 192.168.2.2 -m connlimit --connlimit-above 300 -j DROP
Offline
# Otwart port SSH
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
Źle, jeszcze nie spotkałem się z działaniem ssh po UDP. A drugi błąd masz w OUTPUT, nie możesz podac --dport 22 bo to oznacza że TY łącząc sie z SSH używasz u siebie portu 22, a jak wiadomo jest wybierany "losowy" wiekszy niż 1024. Koljena sprawa to taka że masz politykę OUTPUT na Accept więc po co "dwa" razy puszczać?
Offline
dstlimit
This module allows you to limit the packet per second (pps) rate on a per destination IP or per destination port base. As opposed to the `limit' match, every destination ip / destination port has it's own limit.
--dstlimit avg
Maximum average match rate (packets per second unless followed by /sec /minute /hour /day postfixes).
--dstlimit-mode mode
The limiting hashmode. Is the specified limit per dstip, dstip-dstport tuple, srcip-dstip tuple, or per srcipdstip-dstport tuple.
--dstlimit-name name
Name for /proc/net/ipt_dstlimit/* file entry
[--dstlimit-burst burst]
Number of packets to match in a burst. Default: 5
[--dstlimit-htable-size size]
Number of buckets in the hashtable
[--dstlimit-htable-max max]
Maximum number of entries in the hashtable
[--dstlimit-htable-gcinterval interval]
Interval between garbage collection runs of the hashtable (in miliseconds). Default is 1000 (1 second).
[--dstlimit-htable-expire time
After which time are idle entries expired from hashtable (in miliseconds)? Default is 10000 (10 seconds).
limit
This module matches at a limited rate using a token bucket filter. A rule using this extension will match until this limit is reached (unless the `!' flag is used). It can be used in combination with the LOG target to give limited logging, for example.
--limit rate
Maximum average matching rate: specified as a number, with an optional `/second', `/minute', `/hour', or `/day' suffix; the default is 3/hour.
--limit-burst number
Maximum initial number of packets to match: this number gets recharged by one every time the limit specified above is not reached, up to this number; the default is 5.
http://iptables-tutorial.frozentux.net/other/iptables.html
Limitowanie poprzez obniżenie maksymalnego przepływy powinno wystarczyć
Poszukam jeszcze czegoś, ale ja uzywam PF i tam jest troche inaczej :)
edit:
http://pl.docs.pld-linux.org/siec_iptables.html
A no i możesz nie miec moduły connlimit :]
Offline
a mnie sie wydaje ze htb a niema prawa ci dzialac bo jesli pamiec mnie niemyli to trzeba je wkompilowac w jajko a napewno niejest standardowo wkompilowane.
do do kolejkowania to raczej polecil bym ci HFSC bo lepiej sie sprawuje mozna wiecej nim zrobic ale jest z nim zabawy bo niegdzie niema pozadnego opisu jak go zrobic. a jak juz zrobisz HFSC to niebedziesz musial robic limitowania pakietow bo HFSC ma mozliwosc ustawienia "warznosci pakietw" i czasu odpowiedzi na nie czy jakos tak to sie zwie :D
qluk jesli mnie pamiec nie myli to PF jest tylko pod BSD dostepny tak jak i ALTQ wiec to raczej malo pomocne :D
Offline
Skoro nie jest wkompilowane htb w jadro to dlaczego ladnie przycina dowload i upload, dlaczego nie pokazuje bledow podczas uruchamianie skryptu HTB?
Moze wypowie sie ktos bardziej doswiadczony w debianie jak to jest z jest z tym jajkiem, co jest wkompilowane, a czego nie ma.
Offline
wlasnie sobie siadlem to testowego komputerka (zawsze na nim mieszam nim na swoim serku cos zaczne robic) i sprawdzilem, HTB jest wrzucone do nowego jajka jako modol, czyli mozan go wylaczyc, jednakze jedynie htb, jesli chcesz cos wiecej to albo dokompiluj sobie modlo badz tak jak ja przekompiluj jajko od nowa z tym co potrzebujesz i czego nie potrzebujesz, dzieki temu przyokazji odchudzisz jajko.
samo htb jednak jak dla mnie niejest dobre bo czasto zdaza sie ze ktos wskakuje z kolejki i zaczyna sie problem dlatego polecam raczej hfsc niz htb.
Offline
...jesli chcesz cos wiecej to albo dokompiluj sobie modlo ...
tzn. co moge zrobic bez ponownego kompilowania calego jadra?
A jesli kompilacja calego nowego jajka to w jaki sposob, ja robilem sposobem debiana i jeszcze innym sposobem , ale za kazdym razem konczylo sie instalacja nowego systemu.
Offline
kompilacja sposobem debiana jest op problem sie pojawia gdy niedopiszesz przy kompilacji polecenia --initrd, bez tego debian nieruszy
Offline
powiedzcie mi co ja robie nie tak, mam takie bledy:
RTNETLINK answers: No such file or directory
iptables: Chain already exists
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
a moje htb wyglada tak:
#!/bin/bash
# Z mienne
tc=/sbin/tc
ip=/sbin/ip
ipt=/usr/local/sbin/iptables
#--------------------------------------
#
# eth0 - internet ---> WAN
# eth2 - local interface ---> LAN
#
# Kasowanie glownej kolejki
$tc qdisc del root dev eth0
# Tworzenie glownej kolejki
$tc qdisc add dev eth0 root handle 1:0 htb
# Tworzenie glownej klasy
$tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2000kbit ceil 2000kbit
# Tworzenie glownych klas podzialu pasma
# 2Mbit
$tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2000kbit ceil 2000kbit
# 1Mbit
$tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1000kbit ceil 1000kbit
# 512 Kbit
$tc class add dev eth0 parent 1:1 classid 1:4 htb rate 512kbit ceil 512kbit
# 256 Kbit
$tc class add dev eth0 parent 1:1 classid 1:5 htb rate 256kbit ceil 256kbit
# 128 Kbit
$tc class add dev eth0 parent 1:1 classid 1:6 htb rate 256kbit ceil 256kbit
# 64 Kbit
$tc class add dev eth0 parent 1:1 classid 1:7 htb rate 64kbit ceil 64kbit
#---------------------------------------------------------------------------------------------
# Gwarantowne lacze
# Kafejka
$tc class add dev eth0 parent 1:6 classid 1:9 htb rate 200kbit ceil 256kbit prio 2
$tc class add dev eth0 parent 1:6 classid 1:10 htb rate 200kbit ceil 256kbit prio 2
$tc class add dev eth0 parent 1:6 classid 1:11 htb rate 200kbit ceil 256kbit prio 2
$tc class add dev eth0 parent 1:6 classid 1:12 htb rate 200kbit ceil 256kbit prio 2
#$tc class add dev eth0 parent 1:4 classid 1:6 htb rate 200kbit ceil 256kbit prio 2
#------------------------------------------------------------------------------------------------
# Tworzenie lancuka
$ipt -t mangle -N htbETH0
# kasowaniu przy ponownym przeladowaniu
$ipt -t mangle -D POSTROUTING -o eth0 -j htbETH0
# zalozenie lancucha na eth0
$ipt -t mangle -I POSTROUTING -o eth0 -j htbETH0
#
# Regulki dla kafejki
#
$tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.10 flowid 1:9
$tc qdisc add dev eth0 parent 1:9 handle 9:0 sfq perturb 10
$ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.10 -j MARK --set-mark 60 >>/dev/null
$ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.10 -j MARK --set-mark 60
$tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.31 flowid 1:10
$tc qdisc add dev eth0 parent 1:10 handle 10:0 sfq perturb 10
$ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.31 -j MARK --set-mark 60 >>/dev/null
$ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.31 -j MARK --set-mark 60
$tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.32 flowid 1:11
$tc qdisc add dev eth0 parent 1:11 handle 11:0 sfq perturb 10
$ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.32 -j MARK --set-mark 60 >>/dev/null
$ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.32 -j MARK --set-mark 60
$tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.33 flowid 1:12
$tc qdisc add dev eth0 parent 1:12 handle 12:0 sfq perturb 10
$ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.33 -j MARK --set-mark 60 >>/dev/null
$ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.33 -j MARK --set-mark 60
# Markowanie pakietow NoName
$ipt -t mangle -A htbETH0 -m mark --mark 0 -j MARK --set-mark 2000
# Spr wpisow
$ipt -vxL FORWARD -n | awk '{print $9, $2}'
# <EOF>
a jak dam tc qdisc show to mam:
qdisc htb 1: dev eth0 r2q 10 default 0 direct_packets_stat 4183
qdisc sfq 9: dev eth0 parent 1:9 quantum 1514b perturb 10sec
qdisc sfq 10: dev eth0 parent 1:10 quantum 1514b perturb 10sec
qdisc sfq 11: dev eth0 parent 1:11 quantum 1514b perturb 10sec
qdisc sfq 12: dev eth0 parent 1:12 quantum 1514b perturb 10sec
qdisc pfifo_fast 0: dev eth2 [Unknown qdisc, optlen=20]
natomiast jak wpisze tc class show to nawet jednej klasy nie uswiadczy, czemu tak jest??
Offline
Jestem własnie w trakcie konfiguracji serwera opartego na Ubuntu serwer 7.04. Podzial łącza zrobilem na Niceshaper ale jako ze od jakiegos czasu administruje siecią wifi na swoim osiedlu a mam router LINKSYSA WRT54GL z Tomato do ktorego uzywam fajnego programiku http://openlinksys.info/d...download_id=115 Scriptgenerator-a do owego linkasysa ktorego sofcik jest oparty na linkusie. I tak sie zastanawiam czy taki skrypt :
Kod:
code:modprobe ipt_layer7
TCA="tc class add dev br0"
TFA="tc filter add dev br0"
TQA="tc qdisc add dev br0"
SFQ="sfq perturb 10"
tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate 3096kbit
$TCA parent 1:1 classid 1:10 htb rate 512kbit ceil 2800kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 512kbit ceil 2167kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 512kbit ceil 2167kbit prio 1
$TCA parent 1:1 classid 1:13 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:14 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:15 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:16 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:17 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:18 htb rate 50kbit ceil 512kbit prio 0
$TCA parent 1:1 classid 1:19 htb rate 1200kbit ceil 2900kbit prio 1
$TCA parent 1:1 classid 1:20 htb rate 110kbit ceil 800kbit prio 2
$TCA parent 1:1 classid 1:21 htb rate 100kbit ceil 512kbit prio 2
$TCA parent 1:1 classid 1:22 htb rate 75kbit ceil 128kbit prio 0
$TQA parent 1:10 handle 10: $SFQ
$TQA parent 1:11 handle 11: $SFQ
$TQA parent 1:12 handle 12: $SFQ
$TQA parent 1:13 handle 13: $SFQ
$TQA parent 1:14 handle 14: $SFQ
$TQA parent 1:15 handle 15: $SFQ
$TQA parent 1:16 handle 16: $SFQ
$TQA parent 1:17 handle 17: $SFQ
$TQA parent 1:18 handle 18: $SFQ
$TQA parent 1:19 handle 19: $SFQ
$TQA parent 1:20 handle 20: $SFQ
$TQA parent 1:21 handle 21: $SFQ
$TQA parent 1:22 handle 22: $SFQ
$TFA parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
$TFA parent 1:0 prio 1 protocol ip handle 11 fw flowid 1:11
$TFA parent 1:0 prio 1 protocol ip handle 12 fw flowid 1:12
$TFA parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
$TFA parent 1:0 prio 4 protocol ip handle 14 fw flowid 1:14
$TFA parent 1:0 prio 4 protocol ip handle 15 fw flowid 1:15
$TFA parent 1:0 prio 4 protocol ip handle 16 fw flowid 1:16
$TFA parent 1:0 prio 4 protocol ip handle 17 fw flowid 1:17
$TFA parent 1:0 prio 0 protocol ip handle 18 fw flowid 1:18
$TFA parent 1:0 prio 1 protocol ip handle 19 fw flowid 1:19
$TFA parent 1:0 prio 2 protocol ip handle 20 fw flowid 1:20
$TFA parent 1:0 prio 2 protocol ip handle 21 fw flowid 1:21
$TFA parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22
iptables -t mangle -A POSTROUTING -m layer7 --l7proto sip -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -m layer7 --l7proto skypetoskype -j MARK --set-mark 11
iptables -t mangle -A POSTROUTING -m layer7 --l7proto skypeout -j MARK --set-mark 12
iptables -t mangle -A POSTROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 13
iptables -t mangle -A POSTROUTING -m layer7 --l7proto fasttrack -j MARK --set-mark 14
iptables -t mangle -A POSTROUTING -m layer7 --l7proto soulseek -j MARK --set-mark 15
iptables -t mangle -A POSTROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 16
iptables -t mangle -A POSTROUTING -m layer7 --l7proto directconnect -j MARK --set-mark 17
iptables -t mangle -A POSTROUTING -p tcp --sport 53 -j MARK --set-mark 18
iptables -t mangle -A POSTROUTING -p tcp --sport 80 -j MARK --set-mark 19
iptables -t mangle -A POSTROUTING -p tcp --sport 110 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -p tcp --sport 25 -j MARK --set-mark 21
iptables -t mangle -A POSTROUTING -p tcp --sport 5128 -j MARK --set-mark 22
iptables -I FORWARD -p tcp -m layer7 --l7proto edonkey -m connlimit --connlimit-above 100 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto fasttrack -m connlimit --connlimit-above 50 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto soulseek -m connlimit --connlimit-above 50 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto bittorrent -m connlimit --connlimit-above 100 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto directconnect -m connlimit --connlimit-above 50 -j DROP
z podzialem na uslugi bedzie dzialal pod ubuntu i jak ewentualnie go wdrozyc poza zmiana nazw interfejsow?? I to własnie pytanie kieruje do mądrzejszych od siebie moze ktos pomoze??
Offline
Strony: 1