Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
htb i samba http://forum.freesco.pl/viewtopic.php?f=22&t=9864 |
Strona 1 z 1 |
Autor: | radul [ niedziela, 13 listopada 2005, 01:33 ] |
Tytuł: | htb i samba |
witam mam problem z htb i samba, mianowicie sa ograniczenia dl i ul dla userow na sztywno po 100 kb,i u niektorych userow przy sciaganiu/wysylaniu plikow z samby maja ograniczony transfer do 100kb, nic nie ruszalem z klasami i nie wiem co zrobic z tym moze ktos mi pomoc. moj plik rc.htb Cytuj: #!/bin/bash
# rc.htb 0.1a.upl/down Zciech # # 19.07.04 # wpisy hostow umiescic w pliku /etc/htb_config: # Adres_IP max_download max_upload # 192.168.1.2 128 64 #Jacek # 192.168.1.2 256 128 #Agatka # po ostatnim adresie enter, nie umieszczac pustych lini # dopuszczalne komentarze '#" htb_config=/etc/htb_config #htb_config=./htb_config # wpisac wartosci dla waszej sieci # moze kiedys zrobie konfigurator ![]() WANINT=eth0 # iterfejs do internetu LANINT=eth1 # interfejs do Lanu WANDOWN=2100 # Download w kbit/s WANUP=260 # Upload w kbit/s LANSPD=1200000 # Predkoc Lanu w kbit/s # Jesli tu dasz za duzo moze nic nie zostac dla userow ![]() ICMPSPD=5 # Predkosc dla klasy ICMP kbit/s SERVSPD=5 # Predkosc dla gosci kbit/s PRIOPORT=22 # Port priorytetowy SFQ="sfq perturb 10" #SFQ STARTMRK=2 # Startowy MARK h=/sbin/rchtb_tc #h=echo i=iptables #i=echo stop() { # $i -F -t mangle # $i -X -t mangle $h qdisc del root dev $WANINT 2> /dev/null $h qdisc del root dev $LANINT 2> /dev/null } start() { stop # dla bezpieczeństwa # obliczenia WANDOWN=$[$WANDOWN*95/100] WANUP=$[$WANUP*95/100] LANSPD=$[$LANSPD*95/100] LOCAL=$[$LANSPD-$WANDOWN] ACKSPD=$[$WANDOWN/20] CNT=0 for ii in `cat $htb_config| cut -d "#" -f1 |awk '{print $1}'`;do CNT=$[$CNT+1] done if [ $CNT = 0 ]; then CNT=1 fi USERDOWN=$[$WANDOWN/$CNT] if [ $USERDOWN = 0 ]; then USERDOWN=1 fi USERUP=$[$WANUP-$ACKSPD-$ICMPSPD-$SERVSPD] USERUP=$[$USERUP/$CNT] if [ $USERUP = 0 ]; then USERUP=1 fi # INTERFEJS LANINT (ruch przychodz±cy) $h qdisc add dev $LANINT root handle 1:0 htb default 3 r2q 1 # Główna klasa dla LANINT $h class add dev $LANINT parent 1:0 classid 1:1 htb rate ${LANSPD}kbit ceil ${LANSPD}kbit # Podział na pasmo dla ł±cza internetowego i resztę $h class add dev $LANINT parent 1:1 classid 1:2 htb rate ${WANDOWN}kbit ceil ${WANDOWN}kbit $h class add dev $LANINT parent 1:1 classid 1:3 htb rate ${LOCAL}kbit ceil ${LOCAL}kbit prio 9 $h qdisc add dev $LANINT parent 1:3 $SFQ # pasmo priorytetowe dla ICMP, TOS 0x10 (min. delay) oraz wybranego portu 22 $h class add dev $LANINT parent 1:2 classid 1:4 htb rate ${USERDOWN}kbit ceil ${WANDOWN}kbit prio 1 quantum 1500 $h qdisc add dev $LANINT parent 1:4 sfq perturb 10 $h filter add dev $LANINT protocol ip prio 2 parent 1:0 u32 match ip sport 22 0xffff flowid 1:4 $h filter add dev $LANINT protocol ip prio 1 parent 1:0 u32 match ip tos 0x10 0xff flowid 1:4 $h filter add dev $LANINT protocol ip prio 1 parent 1:0 u32 match ip protocol 1 0xff flowid 1:4 # transfer serwer->LAN $h filter add dev $LANINT protocol ip prio 4 parent 1:0 handle 1 fw flowid 1:3 # INTERFEJS (ruch wychodz±cy) $h qdisc add dev $WANINT root handle 2:0 htb default 11 r2q 1 # główna klasa $h class add dev $WANINT parent 2:0 classid 2:1 htb rate ${WANUP}kbit ceil ${WANUP}kbit # klasa priorytetowa ACK $h class add dev $WANINT parent 2:1 classid 2:2 htb rate ${ACKSPD}kbit ceil ${WANUP}kbit prio 1 quantum 1500 $h qdisc add dev $WANINT parent 2:2 sfq perturb 10 $h filter add dev $WANINT parent 2:0 protocol ip prio 2 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 2:2 # ACK # klasa priorytetowa TOS 0x10 oraz ICMP i DNS $h class add dev $WANINT parent 2:1 classid 2:3 htb rate ${ICMPSPD}kbit ceil ${WANUP}kbit prio 2 quantum 1500 $h qdisc add dev $WANINT parent 2:3 $SFQ $h filter add dev $WANINT parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:3 # TOS $h filter add dev $WANINT parent 2:0 protocol ip prio 2 u32 match ip dport 22 0xffff flowid 2:3 # port 22 $h filter add dev $WANINT parent 2:0 protocol ip prio 2 u32 match ip sport 22 0xffff flowid 2:3 # port 22 $h filter add dev $WANINT parent 2:0 protocol ip prio 1 u32 match ip dport 53 0xffff flowid 2:3 # port 53 $h filter add dev $WANINT parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:3 # ICMP # ruch dla gosci $h class add dev $WANINT parent 2:1 classid 2:4 htb rate ${SERVSPD}kbit ceil ${WANUP}kbit prio 2 quantum 1500 $h qdisc add dev $WANINT parent 2:4 $SFQ $h filter add dev $WANINT parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:4 $i -t mangle -A OUTPUT -j MARK --set-mark 1 # Userzy CNT=1 MARK=$STARTMRK grep "^" $htb_config | grep -v "^#"| while read IP USERDOWN1 USERUP1 REM; do if [ $USERDOWN -gt $USERDOWN1 ]; then USERDOWN=$USERDOWN1 fi if [ $USERUP -gt $USERUP1 ]; then USERUP=$USERUP1 fi if [ $USERUP1 -gt $WANUP ]; then USERUP1=$WANUP fi if [ $USERDOWN1 -gt $WANDOWN ]; then USERDOWN1=$WANDOWN fi $h class add dev $LANINT parent 1:2 classid 1:$[10+$CNT] htb rate ${USERDOWN}kbit ceil ${USERDOWN1}kbit prio 2 quantum 1500 $h qdisc add dev $LANINT parent 1:$[10+$CNT] $SFQ $h filter add dev $LANINT protocol ip prio 5 parent 1:0 u32 match ip dst $IP flowid 1:$[10+$CNT] $i -t mangle -A PREROUTING -s $IP -j MARK --set-mark $MARK $h class add dev $WANINT parent 2:1 classid 2:$[10+$CNT] htb rate ${USERUP}kbit ceil ${USERUP1}kbit prio 2 quantum 1500 $h qdisc add dev $WANINT parent 2:$[10+$CNT] $SFQ $h filter add dev $WANINT parent 2:0 protocol ip prio 5 handle $MARK fw flowid 2:$[10+$CNT] MARK=$[$MARK+1] CNT=$[$CNT+1] done # reszta $h filter add dev $WANINT parent 2:0 protocol ip prio 9 u32 match ip dst 0/0 flowid 2:4 } case "$1" in 'start') echo -n "Uruchamianie kolejkowania..." start echo " wykonano." ;; 'stop') echo -n "Zatrzymywanie kolejkowania..." stop echo " wykonano." ;; 'restart') echo -n "Restartowanie kolejkowania: stop" stop echo -n " start" start echo " wykonano." ;; 'status') echo "Klasy na interfejsie $LANINT" echo "================================" tc class show dev $LANINT | grep root tc class show dev $LANINT | grep -v root | sort | nl echo "Klasy na interfejsie $WANINT" echo "===================================" tc class show dev $WANINT | grep root tc class show dev $WANINT | grep -v root | sort | nl ;; *) echo -e "\nUżycie: rc.htb start|stop|restart|status" ;; esac |
Autor: | zciech [ niedziela, 13 listopada 2005, 02:39 ] |
Tytuł: | |
Obawiam sie ze musisz zainstalowac nowszy skrypt ![]() http://reliserv.pl/nnd/rchtb/htb_z_grupami/ |
Autor: | Anonymous [ poniedziałek, 14 listopada 2005, 14:43 ] |
Tytuł: | |
@Zciech: A w jaki sposób w config'u zaznaczyć, aby system odróżnił wywołania lokalne od tych 'na zewnątrz'? NICESHAPER odróżnia. Jeśli ma to związek z grupami, to jak się one mają do priorytetów klas HTB i filtrów podanych w 'rchtb'? Gdzieś coś trzeba ustawić, dopisać? Pozdrawiam... |
Autor: | zciech [ poniedziałek, 14 listopada 2005, 16:20 ] |
Tytuł: | |
Cytuj: @Zciech: A w jaki sposób w config'u zaznaczyć, aby system odróżnił wywołania lokalne od tych 'na zewnątrz'? NICESHAPER odróżnia. NIe bardzo rozumie co masz na mysli, ale sysytem odróżnia. jedne to klasa 1:3 (local) drugie 2:4 (goscie) Cytuj: Jeśli ma to związek z grupami, to jak się one mają do priorytetów klas HTB i filtrów podanych w 'rchtb'? Gdzieś coś trzeba ustawić, dopisać?
Nijak, nic nie trzeba robic. Wszystko w skrypcie opisane jest. Grupy to tylko bonus, dodany ostatnio na specjalne zyczenie "Stowarzyszenia Anonimowych Ciągników". Grupa to kilkakomputerow posiadajacych jeden transfer. Na ten przyklad sprzedajesz net na zasadzie max. transferu w roznych pakietach 32,64,128, 256kbit i jeden z klientow kupuje sobie laptoka, ktorego chce uzywac razem z kompem stacjinarnym, ale nie chce kupowac drugiego pakietu, to za 5 zł/miesiecznie dajesz laptokowi drugi IP(klient stawia sobie swicza), ale oba IP wpisujesz do grupy co daje ze w sumie transfer obydwu koputerow nie przekroczy tego za co klient płaci. |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |