podrzucę wam mój skrypt rc.htb chodzi oki. Nie wiem czy nnd ma to samo rc.htb co w oryginale, ale dobra nie kombinujmy poniżej skrypcik rc.htb do analizy
#!/bin/bash
# rc.htb 0.3.3-stable, (C)PriSM 2oo3, GNU GPL
# <http://www.rc.htb.prv.pl/>
# wygenerowano: 2004-03-19 01:11:56
VER=0.3.3-stable
stop()
{
/sbin/rchtb_tc qdisc del root dev eth1 2> /dev/null
/sbin/rchtb_tc qdisc del root dev eth0 2> /dev/null
}
start()
{
stop # dla bezpieczeństwa
# INTERFEJS ETH0 (ruch przychodzący)
/sbin/rchtb_tc qdisc add dev eth0 root handle 1:0 htb default 3 r2q 1
# Główna klasa dla eth0
/sbin/rchtb_tc class add dev eth0 parent 1:0 classid 1:1 htb rate 99Mbit ceil 99Mbit
# Podział na pasmo dla łącza internetowego i resztę
/sbin/rchtb_tc class add dev eth0 parent 1:1 classid 1:2 htb rate 1013kbit ceil 1013kbit
/sbin/rchtb_tc class add dev eth0 parent 1:1 classid 1:3 htb rate 97987kbit ceil 97987kbit prio 9
/sbin/rchtb_tc qdisc add dev eth0 parent 1:3 sfq perturb 10
# pasmo priorytetowe dla ICMP, TOS 0x10 (min. delay) oraz wybranego portu 22
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:20 htb rate 48kbit ceil 1013kbit prio 1 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:20 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 2 parent 1:0 u32 match ip sport 22 0xffff flowid 1:20
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 1 parent 1:0 u32 match ip tos 0x10 0xff flowid 1:20
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 1 parent 1:0 u32 match ip protocol 1 0xff flowid 1:20
# admin
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:21 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:21 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.1 flowid 1:21
# ciminska
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:22 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:22 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.10 flowid 1:22
# durko
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:23 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:23 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.8 flowid 1:23
# edyta
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:24 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:24 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.3 flowid 1:24
# jurczuk
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:25 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:25 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.6 flowid 1:25
# kowalczyk
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:26 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:26 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.4 flowid 1:26
# ksiegowa
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:27 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:27 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.13 flowid 1:27
# lemieszek
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:28 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:28 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.9 flowid 1:28
# mazi
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:29 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:29 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.2 flowid 1:29
# pedzinski
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:30 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:30 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.12 flowid 1:30
# rulak
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:31 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:31 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.5 flowid 1:31
# salak
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:32 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:32 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.14 flowid 1:32
# tarnowska
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:33 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:33 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.11 flowid 1:33
# wieliczko
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:34 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:34 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.7 flowid 1:34
# wlazlo
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:35 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:35 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.15 flowid 1:35
# x1
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:36 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:36 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.17 flowid 1:36
# x2
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:37 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:37 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.18 flowid 1:37
# x3
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:38 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:38 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.19 flowid 1:38
# x4
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:39 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:39 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.20 flowid 1:39
# ziele
/sbin/rchtb_tc class add dev eth0 parent 1:2 classid 1:40 htb rate 48kbit ceil 1013kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 1:40 sfq perturb 10
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.16 flowid 1:40
# transfer serwer->LAN
/sbin/rchtb_tc filter add dev eth0 protocol ip prio 4 parent 1:0 handle 1 fw flowid 1:3
# INTERFEJS ETH1 (ruch wychodzący)
/sbin/rchtb_tc qdisc add dev eth1 root handle 2:0 htb default 11 r2q 1
# główna klasa
/sbin/rchtb_tc class add dev eth1 parent 2:0 classid 2:1 htb rate 230kbit ceil 230kbit
# klasa priorytetowa ACK
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:10 htb rate 16kbit ceil 30kbit prio 1 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:10 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 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 eth1 parent 2:1 classid 2:9 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:9 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:10 # TOS 0x10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 2 u32 match ip dport 22 0xffff flowid 2:10 # port 22
/sbin/rchtb_tc filter add dev eth1 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 eth1 parent 2:1 classid 2:11 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:11 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11
# admin
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:12 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:12 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 2 fw flowid 2:12
# ciminska
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:13 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:13 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 3 fw flowid 2:13
# durko
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:14 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:14 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 4 fw flowid 2:14
# edyta
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:15 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:15 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 5 fw flowid 2:15
# jurczuk
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:16 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:16 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 6 fw flowid 2:16
# kowalczyk
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:17 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:17 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 7 fw flowid 2:17
# ksiegowa
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:18 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:18 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 8 fw flowid 2:18
# lemieszek
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:19 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:19 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 9 fw flowid 2:19
# mazi
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:20 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:20 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 10 fw flowid 2:20
# pedzinski
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:21 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:21 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 11 fw flowid 2:21
# rulak
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:22 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:22 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 12 fw flowid 2:22
# salak
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:23 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:23 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 13 fw flowid 2:23
# tarnowska
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:24 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:24 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 14 fw flowid 2:24
# wieliczko
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:25 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:25 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 15 fw flowid 2:25
# wlazlo
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:26 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:26 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 16 fw flowid 2:26
# x1
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:27 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:27 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 17 fw flowid 2:27
# x2
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:28 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:28 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 18 fw flowid 2:28
# x3
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:29 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:29 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 19 fw flowid 2:29
# x4
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:30 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:30 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 20 fw flowid 2:30
# ziele
/sbin/rchtb_tc class add dev eth1 parent 2:1 classid 2:31 htb rate 16kbit ceil 30kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth1 parent 2:31 sfq perturb 10
/sbin/rchtb_tc filter add dev eth1 parent 2:0 protocol ip prio 5 handle 21 fw flowid 2:31
/sbin/rchtb_tc filter add dev eth1 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 eth0"
echo "================================"
tc class show dev eth0 | grep root
tc class show dev eth0 | grep -v root | sort | nl
echo "Klasy na interfejsie eth1"
echo "==================================="
tc class show dev eth1 | grep root
tc class show dev eth1 | grep -v root | sort | nl
;;
*)
echo -e "\nUżycie: rc.htb start|stop|restart|status"
;;
esac
myślę że nikt nie będzie miał problemu z przystosowaniem go do własnyc potrzeb. Jest to skrypt poprawiony bo generator generuje z błędami.