Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
PPPoE Rózne predkosci do klientów http://forum.freesco.pl/viewtopic.php?f=24&t=11548 |
Strona 1 z 1 |
Autor: | mih2 [ wtorek, 7 marca 2006, 13:31 ] |
Tytuł: | PPPoE Rózne predkosci do klientów |
ip-up #!/bin/bash #/etc/ppp/ip-up PPP_IPPARAM="$6" PPP_REMOTE=$5 > /var/log/logowanie.log 2>&1 KLIENT=$2 > /var/log/logowanie.log 2>&1 INTERFEJS=$1 > /var/log/logowanie.log 2>&1 tc="/sbin/rchtb_tc" NR_PPP=`echo $INTERFEJS | cut -c 4- ` NR_IP=`echo $PPP_REMOTE | cut -c 12- ` /usr/sbin/iptables -A FORWARD -s 0/0 -d $PPP_REMOTE -j ACCEPT /usr/sbin/iptables -A FORWARD -s $PPP_REMOTE -j ACCEPT /usr/sbin/iptables -t nat -A POSTROUTING -s $PPP_REMOTE -j MASQUERADE /usr/sbin/iptables -t mangle -A POSTROUTING -o $INTERFEJS -j IMQ --todev 1 /usr/sbin/iptables -t mangle -A PREROUTING -i $INTERFEJS -j IMQ --todev 0 /usr/sbin/iptables -t mangle -A PREROUTING -s $PPP_REMOTE -j MARK --set-mark 1$NR_PPP HTB=$(grep -vE '^[[:space:]]*(#|$)' /etc/ppp/htb_conf ) while [ "$HTB" ];do IPLIMITED=$(echo $HTB | awk '{print $1}') DOWNCEIL=$(echo $HTB | awk '{print $2}') DOWNRATE=$(echo $HTB | awk '{print $3}') UPCEIL=$(echo $HTB | awk '{print $4}') UPRATE=$(echo $HTB | awk '{print $5}') if [ $IPLIMITED = $PPP_REMOTE ];then # dl $tc class add dev imq1 parent 1:2 classid 1:20$NR_PPP htb rate $DOWNRATE ceil $DOWNCEIL prio 5 quantum 1500 $tc qdisc add dev imq1 parent 1:20$NR_PPP esfq perturb 10 hash dst $tc filter add dev imq1 protocol ip prio 5 parent 1:0 u32 match ip dst $PPP_REMOTE flowid 1:20$NR_PPP # ul $tc class add dev imq0 parent 2:10 classid 2:10$NR_PPP htb rate $UPRATE ceil $UPCEIL prio 4 quantum 1500 $tc qdisc add dev imq0 parent 2:10$NR_PPP esfq perturb 10 hash dst $tc filter add dev imq0 parent 2:0 protocol ip prio 5 handle 1$NR_PPP fw flowid 2:10$NR_PPP fi HTB=$(echo $HTB | sed "s%^$IPLIMITED $DOWNCEIL $DOWNRATE $UPCEIL $UPRATE%%") done ip-down #!/bin/bash #/etc/ppp/ip-down INTERFEJS=$1 KLIENT=$2 PPP_REMOTE=$5 NR_PPP=`echo $INTERFEJS | cut -c 4- ` NR_IP=`echo $PPP_REMOTE | cut -c 11- ` HTB=$(grep -vE '^[[:space:]]*(#|$)' /etc/ppp/htb_conf ) /usr/sbin/iptables -D FORWARD -s 0/0 -d $PPP_REMOTE -j ACCEPT /usr/sbin/iptables -D FORWARD -s $PPP_REMOTE -j ACCEPT /usr/sbin/iptables -t nat -D POSTROUTING -s $PPP_REMOTE -j MASQUERADE /usr/sbin/iptables -t mangle -D POSTROUTING -o $INTERFEJS -j IMQ --todev 1 /usr/sbin/iptables -t mangle -D PREROUTING -i $INTERFEJS -j IMQ --todev 0 /usr/sbin/iptables -t mangle -D PREROUTING -s $PPP_REMOTE -j MARK --set-mark 1$NR_PPP #Usuwanie podzialu while [ "$HTB" ];do IPLIMITED=$(echo $HTB | awk '{print $1}') DOWNCEIL=$(echo $HTB | awk '{print $2}') DOWNRATE=$(echo $HTB | awk '{print $3}') UPCEIL=$(echo $HTB | awk '{print $4}') UPRATE=$(echo $HTB | awk '{print $5}') if [ $IPLIMITED = $PPP_REMOTE ];then # dl /sbin/rchtb_tc filter del dev imq1 protocol ip prio 5 parent 1:0 u32 match ip dst $PPP_REMOTE flowid 1:20$NR_PPP /sbin/rchtb_tc qdisc del dev imq1 parent 1:20$NR_PPP esfq perturb 10 hash dst /sbin/rchtb_tc class del dev imq1 parent 1:2 classid 1:20$NR_PPP htb rate $DOWNRATE ceil $DOWNCEIL prio 5 quantum 1500 # ul /sbin/rchtb_tc filter del dev imq0 parent 2:0 protocol ip prio 5 handle 1$NR_PPP fw flowid 2:10$NR_PPP /sbin/rchtb_tc qdisc del dev imq0 parent 2:10$NR_PPP esfq perturb 10 hash dst /sbin/rchtb_tc class del dev imq0 parent 2:10 classid 2:10$NR_PPP htb rate $UPRATE ceil $UPCEIL prio 4 quantum 1500 fi HTB=$(echo $HTB | sed "s%^$IPLIMITED $DOWNCEIL $DOWNRATE $UPCEIL $UPRATE%%") done rc.htb #!/bin/bash # rc.htb 0.3.3-stable-0.2-NNND-Zciech-05.01.23, (C)PriSM 2oo3, GNU GPL # <http://www.rc.htb.prv.pl/> # wygenerowano: 2005-06-22 13:08:24 # 0.2 Poprawki Zciech #przystosowanie do pppoe by Albercik #/etc/rc.d/rc.htb VER=0.3.3-stable-0.2-NNND-Zciech-05.01.23 TC=`which rchtb_tc` echo "$TC" stop() { $TC qdisc del root dev imq0 2> /dev/null $TC qdisc del root dev imq1 2> /dev/null $TC qdisc del root dev eth0 2> /dev/null $TC qdisc del root dev eth1 2> /dev/null } start() { stop # dla bezpieczeństwa /etc/rc.d/rc.imq stop /etc/rc.d/rc.imq start # INTERFEJS IMQ1 (ruch przychodzący) $TC qdisc add dev imq1 root handle 1:0 htb default 3 r2q 1 # Główna klasa dla imq1 $TC class add dev imq1 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit # Podział na pasmo dla łącza internetowego i resztę $TC class add dev imq1 parent 1:1 classid 1:2 htb rate 3910kbit ceil 3910kbit $TC class add dev imq1 parent 1:1 classid 1:3 htb rate 7090kbit ceil 7090kbit prio 9 $TC qdisc add dev imq1 parent 1:3 esfq perturb 10 hash dst # pasmo priorytetowe dla ICMP, TOS 0x10 (min. delay) oraz wybranego portu 22 $TC class add dev imq1 parent 1:2 classid 1:20 htb rate 11kbit ceil 1910kbit prio 1 quantum 1500 $TC qdisc add dev imq1 parent 1:20 esfq perturb 10 hash dst $TC filter add dev imq1 protocol ip prio 3 parent 1:0 u32 match ip sport 22 0xffff flowid 1:20 $TC filter add dev imq1 protocol ip prio 2 parent 1:0 u32 match ip tos 0x10 0xff flowid 1:20 $TC filter add dev imq1 protocol ip prio 2 parent 1:0 u32 match ip protocol 1 0xff flowid 1:20 # transfer serwer->LAN $TC filter add dev imq1 protocol ip prio 1 parent 1:0 handle 1 fw flowid 1:3 # INTERFEJS IMQ0 (ruch wychodzący) $TC qdisc add dev imq0 root handle 2:0 htb default 11 r2q 1 # główna klasa $TC class add dev imq0 parent 2:0 classid 2:1 htb rate 470kbit ceil 470kbit # klasa priorytetowa ACK $TC class add dev imq0 parent 2:1 classid 2:10 htb rate 470kbit ceil 480kbit prio 1 quantum 1500 $TC qdisc add dev imq0 parent 2:10 esfq perturb 10 hash dst $TC filter add dev imq0 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:10 # ACK # klasa priorytetowa TOS 0x10 oraz ICMP $TC class add dev imq0 parent 2:1 classid 2:9 htb rate 1kbit ceil 350kbit prio 2 quantum 1500 $TC qdisc add dev imq0 parent 2:9 esfq perturb 10 hash dst $TC filter add dev imq0 parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:9 # TOS 0x10 $TC filter add dev imq0 parent 2:0 protocol ip prio 2 u32 match ip dport 22 0xffff flowid 2:9 # port 22 $TC filter add dev imq0 parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:9 # ICMP # ruch serwerowy (pasmo dla gości z zewnątrz) $TC class add dev imq0 parent 2:1 classid 2:11 htb rate 14kbit ceil 350kbit prio 2 quantum 1500 $TC qdisc add dev imq0 parent 2:11 esfq perturb 10 hash dst $TC filter add dev imq0 parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11 $TC filter add dev imq0 parent 2:0 protocol ip prio 9 u32 match ip dst 0/0 flowid 2:11 /etc/rc.d/imq_link } echo "rc.htb 0.3.3-stable-0.2-NNND-Zciech-05.01.23, (C)PriSM 2oo3. Na licencji GNU GPL." echo "Strona projektu: http://www.rc.htb.prv.pl/" 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 imq1" echo "================================" tc class show dev imq1 | grep root tc class show dev imq1 | grep -v root | sort | nl echo "Klasy na interfejsie imq0" echo "===================================" tc class show dev imq0 | grep root tc class show dev imq0 | grep -v root | sort | nl ;; *) echo -e "\nUżycie: rc.htb start|stop|restart|status" ;; esac htb_conf #/etc/ppp/htb_conf 192.166.1.3 356kbit 80kbit 80kbit 32kbit 192.166.1.4 356kbit 80kbit 80kbit 32kbit rc.imq #!/bin/sh # modyfikacja cudzych skryptów 23.03.2005 bhb #" Podnoszenie interfejsów wirtulanych IMQ " #/etc/rc.d/rc.imq . /etc/rc.d/functions # case "$1" in start) stat_busy "Podnoszenie interfejsów wirtulanych IMQ" # /sbin/modprobe imq numdevs=2 &>/dev/null /sbin/ifconfig imq0 up &>/dev/null /sbin/ifconfig imq1 up &>/dev/null # stat_done ;; stop) # stat_busy "Wirtualne interfejsy IMQ wyłączone" /sbin/ifconfig imq0 down &>/dev/null /sbin/ifconfig imq1 down &>/dev/null /sbin/rmmod imq &>/dev/null # stat_done ;; restart) $0 stop $0 start ;; *) echo "" echo "Użycie: rc.imq [ start | stop | restart ]" echo "" exit ;; esac imq_link #!/bin/bash #/etc/rc.d/imq_link /usr/sbin/iptables -t mangle -A POSTROUTING -o ppp+ -j IMQ --todev 1 ip link set imq1 up Poprawione i dziala ![]() |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |