htb

Tomasz Rutkowski rennis w o2.pl
Pon, 11 Paź 2004, 09:00:47 CEST


pbern w pbern.biz wrote:

>Witam..
>  
>
Witam

>czy ktos moglby podzielic sie jakims gotowcem (przykladem) zarzadzania 
>ruchu w oparciu o nat, htb, proxy..
>
>bo miotam sie z tym od dluzszego czasu i chyba w koncu musze zobaczyc jak 
>tacie cos robi sie profesjonalnie.. bo regulek mi przybywa coiraz wiecej a 
>efektu jakos nie ma..
>
>  
>
Nie jest to może super ładnie zrobiony skrypt ale działa w 3 sieciach i 
nikt nie marudzi.
Pozdrawiam

-- 
Tomasz Rutkowski - gg 1118937

-------------- następna część ---------
#!/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 !"


Więcej informacji o liście pld-users-pl