Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
mój konfig dla p2p http://forum.freesco.pl/viewtopic.php?f=22&t=16794 |
Strona 1 z 1 |
Autor: | realisty [ sobota, 12 kwietnia 2008, 07:37 ] |
Tytuł: | mój konfig dla p2p |
witam proszę o sprawdzenie mojego configa od p2p z imq. Ograniczam nim p2p przez ipp2p i l7. Łącze 2Mb/s i 256kb/s upload na ppp0 #!/bin/bash TC="/sbin/tc" i="/usr/sbin/iptables" if=/sbin/ifconfig #20306-MW- case "$1" in start) #------------------------------------- # sciezki do plikow HOSTS=/home/P2P/hosts.p2p TMP=/home/P2P/hosts.tmp #interfejs do internetu INET=ppp0 #------------------------------------- echo "" echo " -----------ON---------- " echo "" # -- podnosi interfejsy IMQ -------------- /sbin/modprobe imq numdevs=6 &>/dev/null $if imq0 up &>/dev/null $if imq1 up &>/dev/null $if imq2 up &>/dev/null $if imq3 up &>/dev/null $if imq4 up &>/dev/null $if imq5 up &>/dev/null #------------------------------------------------------------------------------------------------ # restartuj skrypt cronem o 1,2,7,9,16,22 # 00 1,2,7,9,16,22 * * * /home/P2P/p2p restart # ustawienie przepustowosci do internetu w KB/s (Kilo Bajty / sekunda) # imq2 # staly przydzial dla uploadu w/g uslug U1=5 #ack,icmp,dns U2=5 #gry,tos U3=3 #skype na jakims porcie (55555) U4=3 #ssh U5=3 #ftp U6=1 #pop3,nntp,smtp U7=1 #ipp2p U8=4 #reszta UL=$[U1+U2+U3+U4+U5+U6+U7+U8] # maxymalne przydzialy dla uploadu UL1=$[UL-5] #ack,icmp,dns UL2=$[UL-5] #gry,tos UL3=$[UL-2] #skype na jakims porcie (55555) UL4=$[UL-2] #ssh, UL5=2 #ftp UL6=7 #pop3,nntp,smtp #ULR - w/g godzin ponizej godz=`date +%H%M` #--- wartosci wpisz w KB (Kilo Bajtach) --- #----Ograniczenie pasma dla p2p w godzinach--------- if [ $godz -ge "0100" -a $godz -lt "0200" ];then ULR=1 pora=noc fi #----Ograniczenie pasma dla p2p w godzinach--------- if [ $godz -ge "0200" -a $godz -lt "0700" ];then ULR=1 pora=noc2 fi #----Ograniczenie pasma dla p2p w godzinach--------- if [ $godz -ge "0700" -a $godz -lt "0900" ];then ULR=1 pora=ranek fi #----Ograniczenie pasma dla p2p w godzinach--------- if [ $godz -ge "0900" -a $godz -lt "1600" ];then ULR=1 pora=dzien fi #----Ograniczenie pasma dla p2p w godzinach--------- if [ $godz -ge "1600" -a $godz -lt "2200" ];then ULR=1 pora=wieczor fi #----Ograniczenie pasma dla p2p w godzinach--------- if [ $godz -ge "2200" -o $godz -lt "0100" ];then ULR=1 pora=wieczor2 fi #------------------------------------------------------------------------------------------------ echo " " echo " klasa11 "$U1"KB/s max-"$UL1"KB/s - ACK,icmp,dns" echo " klasa12 "$U2"KB/s max-"$UL2"KB/s - gry, TOS" echo " klasa13 "$U3"KB/s max-"$UL3"KB/s - skype na wybranym porcie" echo " klasa14 "$U4"KB/s max-"$UL4"KB/s - 443,ssh" echo " klasa15 "$U5"KB/s max- "$UL5"KB/s - ftp" echo " klasa16 "$U6"KB/s max- "$UL6"KB/s - pop3,nntp,smtp" echo " klasa17 "$U7"KB/s max- "$ULR"KB/s - w/g ipp2p" echo " klasa18 "$U8"KB/s max- "$ULR"KB/s - RESZTA niechcianego ruchu" echo "--------------------------" echo " imq2 UL-"$UL""KB/s echo "--------------------------" ######################################## # ---- tworzy lancuch ------------ $i -t mangle -N znaczniki #----- Odowolanie do lancucha----- $i -t mangle -I PREROUTING -j znaczniki ######################################## # ---- tworzy lancuch ------------ $i -t mangle -N cel #----- Odowolanie do lancucha----- $i -t mangle -A POSTROUTING -j cel ####################################### # markowanie okreslonych pakietow $i -t mangle -A znaczniki -j CONNMARK --restore-mark # akceptuje pakiety juz zamarkowane (omija niceshapera i nie pokazuje uploadu) #$i -t mangle -A znaczniki -m mark ! --mark 0x0 -j ACCEPT #################################################################################################### # kasuje plik tymczasowy rm $TMP &>/dev/null # wycina komentarze (zaczynajace sie od #) z pliku hosts sed -e '/^#/d' $HOSTS > $TMP # petla odczytujaca IP hosta z pliku hosts.tmp for IP in `cat $TMP`;do #--------!80 # markowanie okreslonych pakietow od uzytkownika (polaczeniowe) $i -t mangle -A znaczniki -p tcp -s $IP --dport ! 80 -j MARK --set-mark 0x10004 $i -t mangle -A znaczniki -p udp -s $IP --dport ! 80 -j MARK --set-mark 0x10004 echo $IP done # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x10004 -j CONNMARK --save-mark # kierowanie pakietow od uzytkownika, do imq $i -t mangle -A cel -o $INET -m mark --mark 0x10004 -j IMQ --todev 2 # kasuje plik tymczasowy rm $TMP &>/dev/null #--------icmp dla celej sieci # markowanie okreslonych pakietow (polaczeniowe) $i -t mangle -A znaczniki -p icmp -j MARK --set-mark 0x1 # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x1 -j CONNMARK --save-mark # kierowanie pakietow do imq $i -t mangle -A cel -o $INET -m mark --mark 0x1 -j IMQ --todev 2 #--------25 dla celej sieci # markowanie okreslonych pakietow (polaczeniowe) $i -t mangle -A znaczniki -p tcp --dport 25 -j MARK --set-mark 0x10025 # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x10025 -j CONNMARK --save-mark # kierowanie pakietow do imq $i -t mangle -A cel -o $INET -m mark --mark 0x10025 -j IMQ --todev 2 #--------110 dla celej sieci # markowanie okreslonych pakietow (polaczeniowe) $i -t mangle -A znaczniki -p tcp --dport 110 -j MARK --set-mark 0x10110 # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x10110 -j CONNMARK --save-mark # kierowanie pakietow do imq $i -t mangle -A cel -o $INET -m mark --mark 0x10110 -j IMQ --todev 2 #--------119 dla celej sieci # markowanie okreslonych pakietow (polaczeniowe) $i -t mangle -A znaczniki -p tcp --dport 119 -j MARK --set-mark 0x10119 # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x10119 -j CONNMARK --save-mark # kierowanie pakietow do imq $i -t mangle -A cel -o $INET -m mark --mark 0x10119 -j IMQ --todev 2 #--------7171 dla celej sieci # markowanie okreslonych pakietow (polaczeniowe) $i -t mangle -A znaczniki -p tcp --dport 7171 -j MARK --set-mark 0x7171 # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x7171 -j CONNMARK --save-mark # kierowanie pakietow do imq $i -t mangle -A cel -o $INET -m mark --mark 0x7171 -j IMQ --todev 4 #--------ipp2p dla celej sieci # markowanie okreslonych pakietow (polaczeniowe) $i -t mangle -A znaczniki -m ipp2p --ipp2p -j MARK --set-mark 0x10999 # zapisanie mark dla reszty pakietow $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto fasttrack -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto ares -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto bittorrent -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto edonkey -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto applejuice -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto directconnect -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto gnutella -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto openft -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto mute -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark $i -t mangle -A znaczniki -m layer7 --l7proto imesh -j MARK --set-mark 0x10999 $i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark #$i -t mangle -A PREROUTING -p tcp --dport 2001:65535 -s 192.168.0.0/23 -j MARK --set-mark 0x10999 #$i -t mangle -A znaczniki -m mark --mark 0x10999 -j CONNMARK --save-mark ##################kieruje p2p do imq 2 $i -t mangle -A cel -o $INET -m mark --mark 0x10999 -j IMQ --todev 2 ####################################### # Tworzymy glowna kolejke na interfejsie $TC qdisc add dev imq2 root handle 10:0 htb r2q 1 default 18 # Glowna klasa $TC class add dev imq2 parent 10:0 classid 10:1 htb rate $((UL*8))kbit ceil $((UL*8))kbit quantum 1500 # podklasy $TC class add dev imq2 parent 10:1 classid 10:11 htb rate $((U1*8))kbit ceil $((UL1*8))kbit quantum 1500 burst 0k cburst 0k prio 0 $TC class add dev imq2 parent 10:1 classid 10:12 htb rate $((U2*8))kbit ceil $((UL2*8))kbit quantum 1500 burst 0k cburst 0k prio 1 $TC class add dev imq2 parent 10:1 classid 10:13 htb rate $((U3*8))kbit ceil $((UL3*8))kbit quantum 1500 burst 0k cburst 0k prio 2 $TC class add dev imq2 parent 10:1 classid 10:14 htb rate $((U4*8))kbit ceil $((UL4*8))kbit quantum 1500 burst 0k cburst 0k prio 3 $TC class add dev imq2 parent 10:1 classid 10:15 htb rate $((U5*8))kbit ceil $((UL5*8))kbit quantum 1500 burst 0k cburst 0k prio 4 $TC class add dev imq2 parent 10:1 classid 10:16 htb rate $((U6*8))kbit ceil $((UL6*8))kbit quantum 1500 burst 0k cburst 0k prio 5 $TC class add dev imq2 parent 10:1 classid 10:17 htb rate $((U7*8))kbit ceil $((ULR*8))kbit quantum 1500 burst 0k cburst 0k prio 6 $TC class add dev imq2 parent 10:1 classid 10:18 htb rate $((U8*8))kbit ceil $((ULR*8))kbit quantum 1500 burst 0k cburst 0k prio 7 # sprawiedliwy podzial $TC qdisc add dev imq2 parent 10:11 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:12 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:13 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:14 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:15 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:16 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:17 esfq perturb 20 quantum 1500 $TC qdisc add dev imq2 parent 10:18 esfq perturb 20 quantum 1500 # filtry #--11 $TC filter add dev imq2 protocol ip prio 0 parent 10:0 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 \ match u16 0x0000 0xffc0 at 1 match u8 0x10 0xff at 33 flowid 10:11 # ACK $TC filter add dev imq2 protocol ip prio 1 parent 10:0 u32 match ip protocol 1 0xff flowid 10:11 #ICMP $TC filter add dev imq2 protocol ip prio 2 parent 10:0 u32 match ip dport 53 0xffff flowid 10:11 #DNS #--12 $TC filter add dev imq2 protocol ip prio 0 parent 10:0 u32 match ip dport 27014 0xffff flowid 10:12 #CS $TC filter add dev imq2 protocol ip prio 0 parent 10:0 u32 match ip dport 27015 0xffff flowid 10:12 #CS $TC filter add dev imq2 protocol ip prio 0 parent 10:0 u32 match ip dport 27016 0xffff flowid 10:12 #CS $TC filter add dev imq2 protocol ip prio 7 parent 10:0 u32 match ip dport 27038 0xffff flowid 10:12 #CS $TC filter add dev imq2 protocol ip prio 7 parent 10:0 u32 match ip dport 27039 0xffff flowid 10:12 #CS # -- tu mozna dopisac jeszcze jakies porty gier internetowych $TC filter add dev imq2 protocol ip prio 1 parent 10:0 u32 match ip tos 0x10 0xff flowid 10:12 #TOS #--13 $TC filter add dev imq2 protocol ip prio 0 parent 10:0 u32 match ip sport 55555 0xffff flowid 10:13 #skype #--14 $TC filter add dev imq2 protocol ip prio 6 parent 10:0 u32 match ip dport 443 0xffff flowid 10:14 # $TC filter add dev imq2 protocol ip prio 7 parent 10:0 u32 match ip dport 999 0xffff flowid 10:14 #SSH #--15 $TC filter add dev imq2 protocol ip prio 7 parent 10:0 u32 match ip dport 20 0xffff flowid 10:15 #ftp $TC filter add dev imq2 protocol ip prio 7 parent 10:0 u32 match ip dport 21 0xffff flowid 10:15 #ftp #--16 $TC filter add dev imq2 protocol ip prio 5 parent 10:0 u32 match ip dport 110 0xffff flowid 10:16 #pop3 $TC filter add dev imq2 protocol ip prio 6 parent 10:0 u32 match ip dport 119 0xffff flowid 10:16 #nntp $TC filter add dev imq2 protocol ip prio 7 parent 10:0 u32 match ip dport 25 0xffff flowid 10:16 #smtp #--17 $TC filter add dev imq2 protocol ip parent 10:0 handle 0x10999 fw classid 10:17 #ipp2p w/g znacznika #--18 # ------- RESZTA --klasa 10:18 #--- echo "" #-----------klasy na imq2 tc class show dev imq2 | grep root tc class show dev imq2 | grep -v root | sort | nl #-------------------------------------------------------- # ominiecie przycinania squida przez niceshapera #-------------------------------------------------------- # przepustowosc interfejsu dla squida w KB (kilo bajtach) SR=900 # port na ktorym pracuje squid PORT=3123 echo "" echo "-------------------------------------------------------------" echo " przepustowosc interfejsu squida "$SR" KB/s" echo "-------------------------------------------------------------" #---markowanie squida----z cache $i -A cel -t mangle -p tcp -m string --string 'X-Cache: HIT ' -j CONNMARK --set-mark 0x8889 $i -A cel -t mangle -p tcp --sport $PORT -j CONNMARK --restore-mark # kierowanie pakietow do imq $i -A cel -t mangle -p tcp -m mark --mark 0x8889 -j IMQ --todev 5 #-------------------------------------------------------- # Tworzymy glowna kolejke na interfejsie $TC qdisc add dev imq5 root handle 20:0 htb r2q 1 default 11 # Glowna klasa $TC class add dev imq5 parent 20:0 classid 20:1 htb rate $((SR*8))kbit ceil $((SR*8))kbit quantum 1500 # podklasy $TC class add dev imq5 parent 20:1 classid 20:11 htb rate $((SR*8))kbit ceil $((SR*8))kbit quantum 1500 burst 0k cburst 0k prio 0 # sprawiedliwy podzial $TC qdisc add dev imq5 parent 20:11 esfq perturb 20 quantum 1500 #-----------klasy na imq3 tc class show dev imq5 | grep root tc class show dev imq5 | grep -v root | sort | nl #------------------------- echo "niceshaper - start" /usr/bin/niceshaper start #------------------------- ;; stop) clear echo "" echo " ----------OFF---------- " echo "" #------------------------- /usr/bin/niceshaper stop killall niceshaper &>/dev/null #------------------------- #---kasuje odwolania $i -t mangle -D PREROUTING -j znaczniki #---czysci bałwan jestem w lancuchu $i -t mangle -F znaczniki #---kasuje lancuch $i -t mangle -X znaczniki #---kasuje odwolania $i -t mangle -D POSTROUTING -j cel #---czysci bałwan jestem w lancuchu $i -t mangle -F cel #---kasuje lancuch $i -t mangle -X cel # usowa bałwan jestem $TC qdisc del dev imq2 root $TC qdisc del dev imq5 root #-- wylacza IMQ -------------------- $if imq0 down &>/dev/null $if imq1 down &>/dev/null $if imq2 down &>/dev/null $if imq3 down &>/dev/null $if imq4 down &>/dev/null $if imq5 down &>/dev/null /sbin/rmmod imq &>/dev/null #----------------------------------- ;; restart) $0 stop sleep 1 $0 start ;; *) echo "" echo " Uzycie skryptu [ start | stop | restart ] " echo "" exit ;; esac |
Autor: | -MW- [ sobota, 12 kwietnia 2008, 07:52 ] |
Tytuł: | |
daj pan spokuj ze starociami |
Autor: | realisty [ sobota, 12 kwietnia 2008, 10:02 ] |
Tytuł: | |
ale nawet dobrze sie spisuje z niceshaperkiem |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |