htb
Tomasz Rutkowski
rennis w o2.pl
Pon, 11 Paź 2004, 09:09:01 CEST
Tomasz Rutkowski wrote:
P.S. Trzeba dodać jeszcze do firewall-a następujące linijki.
$iptables -t mangle -A FORWARD -i $WORLD -j IMQ --todev 0
$iptables -t mangle -A FORWARD -o $WORLD -j IMQ --todev 1
ip link set imq0 up
ip link set imq1 up
>------------------------------------------------------------------------
>
>#!/bin/sh
>modprobe imq
>TC="/sbin/tc"
>TC_CL="$TC class add dev"
>TC_QD="$TC qdisc add dev"
>TC_FL="$TC filter add dev"
>
># Konfiguracja dla połączenia internetowego w domu
>#
>#
># Ustaw poniższe wartości trochę poniżej faktycznych prędkości
># ściągania i wysyłania (w kilobitach)
>DOWNLINK=1024
>UPLINK=256
>DEV=imq0
>DEV2=imq1
>IP_WORLD=80.53.199.10
>ILE_IP=17
>
>####################################
>echo "Tworze drzewo dla imq0"
># wyczyść kolejki dla ruchu wchodzacego
>tc qdisc del dev $DEV root 2> /dev/null > /dev/null
>
># zainstaluj w korzeniu kolejkę HTB, skieruj domyślnie ruch do 1:20:
>$TC_QD $DEV root handle 1: htb default 15
>
>$TC_CL $DEV parent 1:0 classid 1:1 htb rate ${DOWNLINK}kbit ceil ${DOWNLINK}kbit
>
>$TC_CL $DEV parent 1:1 classid 1:10 htb rate 200kbit ceil $((DOWNLINK-50))kbit prio 1
>$TC_CL $DEV parent 1:1 classid 1:11 htb rate 200kbit ceil $((DOWNLINK-50))kbit prio 2
>$TC_CL $DEV parent 1:1 classid 1:12 htb rate 100kbit ceil $((DOWNLINK-50))kbit prio 3
>$TC_CL $DEV parent 1:1 classid 1:13 htb rate 200kbit ceil $((DOWNLINK-50))kbit prio 3
>$TC_CL $DEV parent 1:1 classid 1:14 htb rate 100kbit ceil $((DOWNLINK-50))kbit prio 3
>$TC_CL $DEV parent 1:1 classid 1:15 htb rate 100kbit ceil $((DOWNLINK-50))kbit prio 4
>$TC_CL $DEV parent 1:1 classid 1:16 htb rate 10kbit ceil $((DOWNLINK-500))kbit prio 6
>
># DNS, ACK
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 53 0xffff classid 1:10
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 53 0xffff classid 1:10
>#$TC_FL $DEV protocol ip parent 1:0 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
># ssh, cvs
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 22 0xffff classid 1:11
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 22 0xffff classid 1:11
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 2401 0xffff classid 1:11
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 2401 0xffff classid 1:11
># smtp, gg
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 25 0xffff classid 1:12
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 25 0xffff classid 1:12
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 8074 0xffff classid 1:12
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 8074 0xffff classid 1:12
># www
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 80 0xffff classid 1:13
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 80 0xffff classid 1:13
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 443 0xffff classid 1:13
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 443 0xffff classid 1:13
># ftp
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 20 0xffff classid 1:14
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip sport 21 0xffff classid 1:14
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 20 0xffff classid 1:14
>$TC_FL $DEV protocol ip parent 1:0 u32 match ip dport 21 0xffff classid 1:14
># p2p
>$TC_FL $DEV protocol ip parent 1:0 handle 0x21 fw classid 1:16
>
>$TC_QD $DEV parent 1:10 handle 100: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV parent 1:11 handle 110: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV parent 1:12 handle 120: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV parent 1:13 handle 130: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV parent 1:14 handle 140: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV parent 1:15 handle 150: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV parent 1:16 handle 160: wrr dest ip $ILE_IP 100 wmode1=1 wmode2=1
>
>echo "Gotowe !"
>
>######################################
>echo "Tworze drzewo dla imq1"
># wyczyść kolejki dla ruchu wychodzacego
>tc qdisc del dev $DEV2 root 2> /dev/null > /dev/null
>
># zainstaluj w korzeniu kolejkę HTB, skieruj domyślnie ruch do 1:20:
>$TC_QD $DEV2 root handle 1: htb default 15
>
>$TC_CL $DEV2 parent 1:0 classid 1:1 htb rate ${UPLINK}kbit ceil ${UPLINK}kbit
>
>$TC_CL $DEV2 parent 1:1 classid 1:10 htb rate 20kbit ceil $((UPLINK-20))kbit prio 1
>$TC_CL $DEV2 parent 1:1 classid 1:11 htb rate 20kbit ceil $((UPLINK-20))kbit prio 2
>$TC_CL $DEV2 parent 1:1 classid 1:12 htb rate 10kbit ceil $((UPLINK-20))kbit prio 3
>$TC_CL $DEV2 parent 1:1 classid 1:13 htb rate 20kbit ceil $((UPLINK-20))kbit prio 3
>$TC_CL $DEV2 parent 1:1 classid 1:14 htb rate 10kbit ceil $((UPLINK-20))kbit prio 3
>$TC_CL $DEV2 parent 1:1 classid 1:15 htb rate 10kbit ceil $((UPLINK-20))kbit prio 4
>$TC_CL $DEV2 parent 1:1 classid 1:16 htb rate 5kbit ceil $((UPLINK-100))kbit prio 6
>
># DNS, ACK
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 53 0xffff classid 1:10
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 53 0xffff classid 1:10
>#$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
># ssh, cvs
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 22 0xffff classid 1:11
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 22 0xffff classid 1:11
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 2401 0xffff classid 1:11
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 2401 0xffff classid 1:11
># smtp, gg
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 25 0xffff classid 1:12
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 25 0xffff classid 1:12
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 8074 0xffff classid 1:12
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 8074 0xffff classid 1:12
># www
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 80 0xffff classid 1:13
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 80 0xffff classid 1:13
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 443 0xffff classid 1:13
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 443 0xffff classid 1:13
># ftp
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 20 0xffff classid 1:14
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip sport 21 0xffff classid 1:14
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 20 0xffff classid 1:14
>$TC_FL $DEV2 protocol ip parent 1:0 u32 match ip dport 21 0xffff classid 1:14
># p2p
>$TC_FL $DEV2 protocol ip parent 1:0 handle 0x22 fw classid 1:16
>
>$TC_QD $DEV2 parent 1:10 handle 100: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV2 parent 1:11 handle 110: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV2 parent 1:12 handle 120: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV2 parent 1:13 handle 130: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV2 parent 1:14 handle 140: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV2 parent 1:15 handle 150: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>$TC_QD $DEV2 parent 1:16 handle 160: wrr sour masq $ILE_IP 100 wmode1=1 wmode2=1
>
>######################################
>echo "Gotowe !"
>
>
--
Tomasz Rutkowski - gg 1118937
Więcej informacji o liście dyskusyjnej pld-users-pl