OK; To jest mój rc.htb
#!/bin/bash
# rc.htb 0.3.3-stable, (C)PriSM 2oo3, GNU GPL
# <http://www.rc.htb.prv.pl/>
# wygenerowano: 2004-06-28 20:48:06
VER=0.3.3-stable
stop()
{
/sbin/rchtb_tc qdisc del root dev eth0 2> /dev/null
/sbin/rchtb_tc qdisc del root dev eth1 2> /dev/null
}
start()
{
stop # dla bezpieczeństwa
# INTERFEJS ETH1 (ruch przychodz±cy)
/sbin/rchtb_tc qdisc add dev eth1 root handle 1:0 htb default 3 r2q 1
# Główna klasa dla eth1
/sbin/rchtb_tc class add dev eth1 parent 1:0 classid 1:1 htb rate 90000kbit ceil 90000kbit
# Podział na pasmo dla ł±cza internetowego i resztę
/sbin/rchtb_tc class add dev eth1 parent 1:1 classid 1:2 htb rate 506kbit ceil 506kbit
/sbin/rchtb_tc class add dev eth1 parent 1:1 classid 1:3 htb rate 89366kbit ceil 89366kbit prio 9
/sbin/rchtb_tc qdisc add dev eth1 parent 1:3 esfq perturb 10 hash dst
# pasmo priorytetowe dla ICMP, TOS 0x10 (min. delay) oraz wybranego portu 22 blÄð !!!!!
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:20 htb rate 50kbit ceil 460kbit prio 1 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:20 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 2 parent 1:0 u32 match ip sport 22 0xffff flowid 1:20
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 1 parent 1:0 u32 match ip tos 0x10 0xff flowid 1:20
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 1 parent 1:0 u32 match ip protocol 1 0xff flowid 1:20
# buczek
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:21 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:21 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.140 flowid 1:21
# jacek
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:22 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:22 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.143 flowid 1:22
# jaroslawski
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:23 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:23 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.122 flowid 1:23
# marceli
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:24 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:24 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.101 flowid 1:24
# marcin
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:25 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:25 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.121 flowid 1:25
# matusiak
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:26 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:26 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.141 flowid 1:26
# mirek
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:27 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:27 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.25 flowid 1:27
# piotrek
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:28 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:28 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.24 flowid 1:28
# poradowska
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:29 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:29 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.142 flowid 1:29
# wcislo
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:30 htb rate 46kbit ceil 260kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:30 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.102 flowid 1:30
# wieli
/sbin/rchtb_tc class add dev eth1 parent 1:2 classid 1:31 htb rate 46kbit ceil 460kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 1:31 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.41 flowid 1:31 # wieli.marek_laptop
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.0.49 flowid 1:31 # wieli.marek_stacja
# transfer serwer->LAN
/sbin/rchtb_tc filter add dev eth1 protocol ip prio 4 parent 1:0 handle 1 fw flowid 1:3
# INTERFEJS ETH0 (ruch wychodz±cy)
/sbin/rchtb_tc qdisc add dev eth0 root handle 2:0 htb default 11 r2q 1
# główna klasa
/sbin/rchtb_tc class add dev eth0 parent 2:0 classid 2:1 htb rate 112kbit ceil 112kbit
# klasa priorytetowa ACK
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:10 htb rate 16kbit ceil 64kbit prio 1 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:10 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 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
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:9 htb rate 4kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:9 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:10 # TOS 0x10
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 2 u32 match ip dport 22 0xffff flowid 2:10 # port 22
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:10 # ICMP
# ruch serwerowy (pasmo dla go¶ci z zewn±trz)
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:11 htb rate 12kbit ceil 112kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:11 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11
# buczek
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:12 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:12 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 2 fw flowid 2:12
# jacek
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:13 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:13 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 3 fw flowid 2:13
# jaroslawski
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:14 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:14 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 4 fw flowid 2:14
# marceli
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:15 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:15 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 5 fw flowid 2:15
# marcin
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:16 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:16 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 6 fw flowid 2:16
# matusiak
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:17 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:17 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 7 fw flowid 2:17
# mirek
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:18 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:18 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 8 fw flowid 2:18
# piotrek
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:19 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:19 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 9 fw flowid 2:19
# poradowska
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:20 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:20 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 10 fw flowid 2:20
# wcislo
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:21 htb rate 2kbit ceil 32kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:21 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 11 fw flowid 2:21
# wieli
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:22 htb rate 8kbit ceil 64kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:22 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle 12 fw flowid 2:22
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 9 u32 match ip dst 0/0 flowid 2:11
}
echo "rc.htb 0.3.3-stable, (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 eth1"
echo "================================"
tc class show dev eth1 | grep root
tc class show dev eth1 | grep -v root | sort | nl
echo "Klasy na interfejsie eth0"
echo "==================================="
tc class show dev eth0 | grep root
tc class show dev eth0 | grep -v root | sort | nl
;;
*)
echo -e "\nUżycie: rc.htb start|stop|restart|status"
;;
esac