QOS download dla zielonych - gotowy skrypt
|
shibby |
Dodano 03-07-2009 12:49
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
i niby jak ona mialaby byc wrzucana do routera?
generator ma za zadanie jedno, nie kazdy potrafi napisac sobie skrypt HTB by podzielic lacza. generator w ladny i przejzysty sposob to umozliwia generuja ciezki do zrozumienia dla wiekszosci skrypt, ktory wystarczy tylko wkleic. wiekszosc osob chca go zmodyfikowac, generuja skrypt na nowo bo nie potrafia.
co do QoS to wszystko jest ladnie i przejrzyscie zrobione w GUI, wiec czego chciec wiecej.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
Piosza |
Dodano 17-07-2009 09:06
|
User
Posty: 14
Dołączył: 07/09/2006 22:38
|
Czy ten skrypt będzie działał na różnych prędkościach downloadu ? bo u mnie mam 3 różne w zależności od godziny a niestety nie mogę tego nigdzie wyczytać
WRT54GL-EU 1.1 <--> Tomato Firmware v1.23.8510 RAF
LINKSYS E4200
|
|
|
|
shibby |
Dodano 17-07-2009 09:16
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
i tak i nie. musisz zrobic sobie takie 3 skrypty, kazdy w osobnym pliku i zapisac je np na jffs i w shedulerze odpalac dany skrypt o danej godzinie.
Edytowany przez shibby dnia 17-07-2009 09:17
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
Piosza |
Dodano 18-07-2009 20:37
|
User
Posty: 14
Dołączył: 07/09/2006 22:38
|
Cytat shibby napisał/a:
i tak i nie. musisz zrobic sobie takie 3 skrypty, kazdy w osobnym pliku i zapisac je np na jffs i w shedulerze odpalac dany skrypt o danej godzinie.
a scheduler to ten z poziomu www ?? i ewentualnie jaką komendę mu zapodać.
WRT54GL-EU 1.1 <--> Tomato Firmware v1.23.8510 RAF
LINKSYS E4200
|
|
|
|
shibby |
Dodano 19-07-2009 11:20
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
tak ten z www gui.
komende? hmm normalnie zapisujesz sobie 3 pliki na jffs kazdy ze skryptem z innymi predkosciami. nadalesz im atrybut do uruchomienia. i wpisujesz w shedulerze np /jffs/skrypt1.sh codziennie o danej godzinie
Edytowany przez shibby dnia 19-07-2009 19:57
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
Piosza |
Dodano 19-07-2009 19:55
|
User
Posty: 14
Dołączył: 07/09/2006 22:38
|
no mam nadzieję że sobie poradzę . Dzieki za info
WRT54GL-EU 1.1 <--> Tomato Firmware v1.23.8510 RAF
LINKSYS E4200
|
|
|
|
alvaro99 |
Dodano 20-07-2009 23:44
|
Power User
Posty: 250
Dołączył: 01/12/2008 16:23
|
Cytat // tworzenie klas
// tutaj okresli gwarantowana i max przepustowosc dla swoich klas
// PAMIETAJ - suma wszystkich gwarantowanych nie moze przekroczyc CEIL
$TCA parent 1:1 classid 1:10 htb rate 256kbit ceil 256kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 1492kbit ceil ${CEIL}kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 1024kbit ceil ${CEIL}kbit prio 3
$TCA parent 1:1 classid 1:13 htb rate 128kbit ceil ${CEIL}kbit prio 4
W którym miejscu jest max przepustowość download tutaj?
Mam łączę D 1000 kbytes/s i U 230 kbytes/s. Jak to najlepiej prawidłowo ustawić? Chciałbym tylko rozgraniczyć WWW od P2P i skype żeby to dobrze hulało i torrent nie zamulał wszystkiego. Żadnych portów dla gier i innych.
Czy jak np. ustawię jakiś gwarantowany próg dla P2P powiedzmy 30 KB/s to chociaż przeglądam tylko stronki WWW i nie mam włączonego klienta torrenta to i tak odcina mi z łącza zawsze te 30 KB i ze 120 KB downloadu zostaje mi tylko 90?
ISP WiFi 5GHz >><< Ubiquiti NanoStation M5 <---> FRITZ!Box Fon VoIP <---> AP+BT+FTP+SAMBA OVISLINK WMU-6500FS i C009-M2 by JKR >><< 3 Kompy po WiFi
|
|
|
|
-K@mil- |
Dodano 25-07-2009 14:50
|
User
Posty: 2
Dołączył: 06/04/2007 02:58
|
U mnie skrypt wygląda tak:
modprobe ipt_layer7
DEV="br0"
TCA="tc class add dev ${DEV}"
TFA="tc filter add dev ${DEV}"
TQA="tc qdisc add dev ${DEV}"
SFQ="sfq perturb 10"
CEIL=1900
WWWMAX=1000000
PRIO0="27964,27015:27016,27045"
PRIO1="20:110"
P2P="61555"
tc qdisc del dev ${DEV} root
tc qdisc add dev ${DEV} root handle 1: htb
tc class add dev ${DEV} parent 1: classid 1:1 htb rate ${CEIL}kbit
$TCA parent 1:1 classid 1:10 htb rate 256kbit ceil 256kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 1024kbit ceil ${CEIL}kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 492kbit ceil ${CEIL}kbit prio 3
$TCA parent 1:1 classid 1:13 htb rate 128kbit ceil ${CEIL}kbit prio 4
$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
$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 3 protocol ip handle 12 fw flowid 1:12
$TFA parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
iptables -t mangle -A PREROUTING -j BCOUNT
iptables -t mangle -A PREROUTING -p tcp -m mport --dports ${P2P} -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -p tcp -m mport --dports ${P2P} -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --dports ${P2P} -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -p udp -m mport --dports ${P2P} -j RETURN
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO0} -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO0} -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO0} -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO0} -j RETURN
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j RETURN
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j MARK --set-mark 12
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j MARK --set-mark 12
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j RETURN
iptables -t mangle -A PREROUTING -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -m layer7 --l7proto shoutcast -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -m layer7 --l7proto skypetoskype -j MARK --set-mark 11
Jednak w dalszym ciągu bittorrent zapycha łącze - 2048kbps down i 256kbps up.
Tomato 1.25
Edytowany przez -K@mil- dnia 25-07-2009 14:53
|
|
|
|
Rayden |
Dodano 26-07-2009 02:19
|
User
Posty: 45
Dołączył: 24/09/2006 18:28
|
Chciałbym się paru rzeczy dowiedzieć, jestem zielony jeśli chodzi o skrypty qos. Bawiłem się trochę generatorem skryptów robsonna i częściowo kojarzę jak to działa.
sorki za moje noobowate pytania ale poprostu większość tutoriali tłumaczy składnię poleceń ale nie piszą już co oznaczają nawiasy () a co {}
1. jak się nazywa ten język skryptów (czego mam szukać w google) aby się czegoś więcej dowiedzieć nt jak to dokładnie działa.
2. rozumiem że: TCA="" <<< definiuję zmienną i uzywam jej za pomocą $TCA, ale nie rozumiem w takim razie po co klamry ${CEIL} ?
co to dokładnie zmienia jak są klamry???
3. do czego służy -j RETURN ??
4. Skrypt robsonna uzywa postrouting natomiast ten skrypt uzywa prerouting, co to zmieni jeśli użyłbym postrouting ?
5. chciałbym się dowiedzieć dokładniej jak działa bcount --range 0x0-${WWWMAX}, szukałem w googlach, ale nie moge nigdzie znaleźć informacji na temat bcount i jak tego używać, w dodatku chciałbym się dowiedzieć jakich wartości mógłbym użyć z --range, czy muszę uzywać wartości szestnastkowych??? wygodniej byłoby mi podać ilość bajtów lub kilobajtów(ew kilobitów)
6. dlaczego w jednym miejscu mam --range 0x0-${WWWMAX} a w drugim --range $(($WWWMAX+1)) <<< co takiego robią te dodatkowe nawiasy czy nie mogłoby być ${WWWMAX+1} lub 1000001.
Netgear R7000 Tomato 122 K26ARM USB VPN-64K
|
|
|
|
shibby |
Dodano 26-07-2009 09:05
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
odpowiem na czesc
1) jezyk to bash, skrypt to HTB, a calosc wykonywana przez iptables.
2) definiujesz zmienna TCA="" i pozniej jej mozesz uzyc jako $TCA lub ${TCA}. to sa rownowazne odpowiedniki. chociaz ${TCA} jest bardziej bezpieczne. zauwaz ze w jednym miejscu jest zapis ${TCA}kbit. jakbys napisal $TCAkbit to nie zadziala prawda? w pozostalych przypadkach mozna uzyc poprostu $TCA. ale zeby bylo estetycznie i ladnie to juz autor zastosowal {} przy kazdej zmiennej. odrazu sie rzuca w oczy.
3) zwraca wynik.
4) bo tej skrypt ogranicza tylko download. skrypt robsona ogranicza i upload i download.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
luki_er |
Dodano 02-09-2009 12:35
|
User
Posty: 5
Dołączył: 10/07/2009 16:59
|
Witam,
od razu piszę że jestem bardzo zielony, ale udało mi się zrobić wszystko jak jest opisane w tym tutorialu + codzienna automatyczna podmiana plików *.sh przy zmiennym łączu (dzien, noc)
Jak narazie wszystko działa - dziękuję wszystkim bardzo!
Niestety po dłuższym zastanowieniu się pojawiły mi się pewne pytania na które nie potrafię znaleźć odpowiedzi:
1) dlaczego w określeniu klas i reguł w skrypcie jest następująca numeracja: Prio 0, 1, 3 i 4 jeśli na początku skryptu i w regułach piszesz o prio 0, 1, 2, 3? Nie wiem czy się mylę ale albo jest błąd w numeracji albo tak powinno być? Czy należy to poprawić we własnym skrypcie?
Cytat liamk napisał/a:
Krytycznie linie sa w miare szczegolowo opisane. Dla twpowych zastosown starczy, ze wyedytujesz sobie CEIL, WWWMAX, DWLMIN = WWWMAX +1, PRIO0, PRIO1.
// Porty o podwyzszonym priorytecie. Tutaj powinny wyladowac
// typowe uslugi jak www, ftp, smpt, pop.
// Po przekroczeniu WWWMAX automatycznie polaczenie
// zostanie wyrzucone z tej kolejki tak aby zawsze
// zapewnic jej przepustowosc (uzyteczne dla L7 skype, L7 shoutcast itp)
PRIO1="20:110"
PRIO2 - bez zmian
PRIO3 - bez zmian
// tworzenie klas
// tutaj okresli gwarantowana i max przepustowosc dla swoich klas
// PAMIETAJ - suma wszystkich gwarantowanych nie moze przekroczyc CEIL
$TCA parent 1:1 classid 1:10 htb rate 256kbit ceil 256kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 1492kbit ceil ${CEIL}kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 1024kbit ceil ${CEIL}kbit prio 3
$TCA parent 1:1 classid 1:13 htb rate 128kbit ceil ${CEIL}kbit prio 4
// tworzenie filtrow
$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 3 protocol ip handle 12 fw flowid 1:12
$TFA parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
2) Czy Prio 0 musi mieć dokładnie wartość 256kbps czy może wynosić więcej lub mniej?
Cytat
// PRIO jest jednak ograniczone do max 256kbit downloadu.
// Tutaj wpisuj TYLKO porty gier, ssh, telnet, itp.
PRIO0="27964,27015:27016,27045"
3) Dlaczego WWWMAX = 1000000, a nie więcej lub mniej?
Cytat // Po przekroczeniu sciagania tylu bits uslugi z PRIO1
// zostana przeniosione do PRIO2.
// Ma to na celu np. odroznienie normlanego ogladania stron www
// od sciagania plikow przez www czy ftp.
// Czyli jesli WWWMAX zostanie przekroczony sciaganie pliku dostanie
// nizszy prio od przegladania www.
WWWMAX=1000000
4) WWWMAX+1 - co oznacza i ile wynosi?
5) czy mam mieć włączony QoS (np tylko do sprawdzania ruchu na łączu) czy lepiej go całkowicie wyłączyć by procesor routera miał mniej zadań?
6) czy warto używać reguł typu L7 jeśli jest użyty ten skrypt?
Cytat // wczytanie L7, mozna usunac jesli nie uzywasz
modprobe ipt_layer7
Cytat // reguly dla programow P2P
// procesor twojego routera z pewnoscia je doceni gdy uzywasz L7
Proszę o wyrozumiałość i odpowiedź |
|
|
|
jack78 |
Dodano 15-12-2009 00:06
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Coś ten temat umarł. Kiepsko się znam ale spróbuję, najwyżej ktoś mnie poprawi
Cytat 1) dlaczego w określeniu klas i reguł w skrypcie jest następująca numeracja: Prio 0, 1, 3 i 4 jeśli na początku skryptu i w regułach piszesz o prio 0, 1, 2, 3? Nie wiem czy się mylę ale albo jest błąd w numeracji albo tak powinno być? Czy należy to poprawić we własnym skrypcie?
Skrypt operuje na klasach 0, 1, 2 i 3, chociaż klasa druga nie jest szczegółowo zdefiniowana. Wpada tam wszystko co nie mieści się w klasie 1.
Cytat
2) Czy Prio 0 musi mieć dokładnie wartość 256kbps czy może wynosić więcej lub mniej?
Możesz dać więcej, ale wydaje mi się że z tej klasy ma korzystać tylko DNS, więc więcej nie potrzeba. Chociaż w tym skrypcie są tam przypisane porty gier, pewnie większej przepustowości nie potrzebuję.
Cytat
3) Dlaczego WWWMAX = 1000000, a nie więcej lub mniej?
ustalasz według uznania, po prostu to jest ilość danych po których połączenie jest przerzucane o klasę niżej.
Cytat
4) WWWMAX+1 - co oznacza i ile wynosi?
nie wiem co to znaczy
Cytat
5) czy mam mieć włączony QoS (np tylko do sprawdzania ruchu na łączu) czy lepiej go całkowicie wyłączyć by procesor routera miał mniej zadań?
Ja mam włączony ponieważ ten skrypt steruje tylko downloadem, a QOS zajmuje się uploadem.
Cytat
6) czy warto używać reguł typu L7 jeśli jest użyty ten skrypt?
U mnie działają dodatkowo 2 reguły L7 i nadal przepuszczają mi torrenty, więc jeszcze tnę to po portach.
Edytowany przez jack78 dnia 15-12-2009 00:08
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
marcinsz0 |
Dodano 06-01-2010 23:01
|
User
Posty: 3
Dołączył: 03/01/2010 18:05
|
Cytat 2. przeklej moj skrypt do notatnika, dopasuj pod siebie, wlacz cifs1 (tez z if www routera w adm) zgraj tam skrypt pod nazwa fw.txt
prosze o podpowiedz jak to zgrać na cifs1 ,jestem bardzooo zielony z tego
Zastanawiam się jaką funkcję spełnia w QoS INBOUND LIMIT i jego klasy,podobno QoS nie limituje downloadu wiec po co te ustawienia ?
Z góry dziekuję za odpowiedzi. |
|
|
|
shibby |
Dodano 06-01-2010 23:07
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
cifs1 to podmontowany udzial sieciowy komputera. a wiec udostepnij jakis katalog na komputerze na haslo i podmontuj co w routerze jako cifs podajac nazwe komputera lub ip, login i haslo do udzialu.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
marcinsz0 |
Dodano 07-01-2010 08:27
|
User
Posty: 3
Dołączył: 03/01/2010 18:05
|
dziękuję bardzo ,mozesz mi jeszcze odpowiedziec na moje drugie pytanie . |
|
|
|
shibby |
Dodano 07-01-2010 09:16
|
SysOp
Posty: 17110
Dołączył: 15/01/2009 20:30
|
to powinno dzialac i pewnie dziala (w jakims stopniu) jezeli sobie odpowiednio skonfigurujesz klasy. A ze klas jest tak malo ze ledwo co starcza na podzial wysylu to stosuje sie taki trik ze qosem dzieli sie upload a skryptem download.
zreszta ja i tak preferuje tylko skrypt. nie ma zadnych ograniczen i robisz co i jak chcesz
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
marcinsz0 |
Dodano 09-01-2010 11:16
|
User
Posty: 3
Dołączył: 03/01/2010 18:05
|
udało mi się wrzucić skrypt w wersji 2 ,ale nie działa do konca tak jak ma ,ustawiłem sobie w klasyfikacji niski priorytet dla ruchu na porcie docelowym i zródłowym 54911 ,który wykorzystuję w torrencie ,nie wszystkie połaczenia na tym porcie są wrzucane do klasy niskiej ,część z nich ląduje do połaczeń nieklasyfikowanych.
Miałem ustawioną klasyfikację tak jak na zdjeciach wszystko lecące na portach docelowych w zakresie 10-110 o rozmiarze max.512KB miało wysoką klasę niestety np ruch DNS na porcie 53 był wrzucany do klasy niskiej ,musiałem dodać osobną klasyfikację dla portu 53,dlaczego wczesniejsza reguła nie dała portu 53 wysokiego priorytetu??
Edytowany przez marcinsz0 dnia 09-01-2010 11:23
|
|
|
|
jack78 |
Dodano 10-01-2010 00:40
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Mam jedno pytanie odnoście tego skryptu.
Neta dzielę we 4 z sąsiadami, i od zawsze było tak że maksymalna dostępna prędkość jaką mieliśmy była dostępna dla każdego. Teraz rozgraniczyłem, w dzień max to 1,5mbit,. nocą 2mbit, chciałem trochę ograniczyć torrenty w dzień, niech sobie ludzie kompy na noc zostawiają włączone, jak nikt nie korzysta z netu.
Teraz zgłosił się do mnie kolejny sąsiad i chciałbym w końcu przestać każdemu dawać max łącza. Jak do tego skryptu dodać kolejną regułkę po adresie MAC, tak żeby wszyscy mieli po staremu, a nowo dopięta osoba miała ograniczenie 1mbit. Kto to widział żeby za 18zł/m-c mieć 2 mbit :D . Wcześniej płacił 40zł za 512kbs, to teraz i tak będzie miał jak za darmo.
Mój skrypty na dzień wygląda tak.
Oczywiście zależy mi żeby nadal po pobraniu WWWMAX usługa była zrzucana o klasę niżej.
#!/bin/sh
modprobe ipt_layer7 #wczytanie L7, mozna usunac jesli nie uzywasz
DEV="br0" #nazwa device. Na std. tomato do download to br0
#makra do budowy klas, filtrow i kolejek
TCA="tc class add dev ${DEV}"
TFA="tc filter add dev ${DEV}"
TQA="tc qdisc add dev ${DEV}"
SFQ="sfq perturb 10"
#max download twojego lacza
CEIL=1500
WWWMAX=1000000
PRIO0="22222,2000,8080,8000,8001,9092"
PRIO1="20:80"
P2P="50900,32000,51413,51414"
# usuwanie/tworzenie roota
tc qdisc del dev ${DEV} root
tc qdisc add dev ${DEV} root handle 1: htb
tc class add dev ${DEV} parent 1: classid 1:1 htb rate ${CEIL}kbit
$TCA parent 1:1 classid 1:10 htb rate 500kbit ceil ${CEIL}kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 400kbit ceil ${CEIL}kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 200kbit ceil ${CEIL}kbit prio 3
$TCA parent 1:1 classid 1:13 htb rate 128kbit ceil ${CEIL}kbit prio 4
# tworzenie kolejek
$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
# tworzenie filtrow
$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 3 protocol ip handle 12 fw flowid 1:12
$TFA parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
WWWMAX
iptables -t mangle -A PREROUTING -j BCOUNT
# reguly dla programow P2P
# procesor twojego routera z pewnoscia je doceni :) gdy uzywasz L7
iptables -t mangle -A PREROUTING -p tcp -m mport --dports ${P2P} -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -p tcp -m mport --dports ${P2P} -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --dports ${P2P} -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -p udp -m mport --dports ${P2P} -j RETURN
# reguly dla PRIO0
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO0} -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO0} -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO0} -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO0} -j RETURN
# reguly dla PRIO1
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range 0x0-${WWWMAX} -j RETURN
# reguly dla PRIO2
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j MARK --set-mark 12
iptables -t mangle -A PREROUTING -p tcp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j RETURN
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j MARK --set-mark 12
iptables -t mangle -A PREROUTING -p udp -m mport --sports ${PRIO1} -m bcount --range $(($WWWMAX+1)) -j RETURN
# regula dla PRIO3
iptables -t mangle -A PREROUTING -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -m layer7 --l7proto shoutcast -j MARK --set-mark 12
iptables -t mangle -A PREROUTING -m layer7 --l7proto skypetoskype -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -m layer7 --l7proto skypeout -j MARK --set-mark 11
Edytowany przez jack78 dnia 12-01-2010 00:20
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
ulag |
Dodano 15-01-2010 12:32
|
User
Posty: 4
Dołączył: 12/01/2010 08:30
|
czy właczając ten skrypt, w qos mam włączyć Inbound Limit? |
|
|
|
jack78 |
Dodano 15-01-2010 14:27
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Ja mam wszędzie ustawione tak
A gdyby ktoś był w stanie odpowiedzieć na moje pytanie dwa posty wyżej.
Edytowany przez jack78 dnia 15-01-2010 14:28
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|