Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2006-04-20 22:07:40

  kuchar - Użytkownik

kuchar
Użytkownik
Skąd: Warszawa
Zarejestrowany: 2005-11-16
Serwis

HTB - co o tym myślicie

Mam DSL 256/128 (niestety ale nic nie moge na to poradzic) i chcę podzielić pasmo między usługi:
   - w godzinach 16-23 download 200 Kbit na www, pocztę ssh, reszę pasma na pozostałe
      upload analogicznie 80 na wybrane usługi a reszte na reszte  :)
   - w pozostałych godzinach download po równo, upload tak jak wyzej

Oto skrypt uruchamiany o 16:

Kod:

#!/bin/bash
echo "Reguły dotyczace DOWNLOAD-u"
echo  "Kasujemy stara kolejke..."
tc qdisc del dev eth1 root handle 1:0 htb

echo "Tworzymy nowa glowna kolejke..."
tc qdisc add dev eth1 root handle 1:0 htb

echo "Tworzymy klase o predkosci 99 Mbit..."
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 99999kbit ceil 99999kbit

echo "Tworzymy klase dla netu..."
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 240kbit ceil 240kbit

echo "Tworzymy klase dla LAN-u..."
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 99749kbit ceil 99749kbit

echo "Tworzymy klase dla www..."
tc class add dev eth1 parent 1:2 classid 1:10 htb rate 200kbit ceil 240kbit quantum 1 burst 10k

echo "Tworzymy klase dla reszty..."
tc class add dev eth1 parent 1:2 classid 1:11 htb rate 40kbit ceil 240kbit

echo "Aby wszyscy mieli po równo..."
tc qdisc add dev eth1 parent 1:3 handle 3: sfq perturb 10
tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth1 parent 1:11 handle 11: sfq perturb 10

echo "Tworzymy filtry..."
tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 1 fw flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 2 handle 2 fw flowid 1:11
tc filter add dev eth1 protocol ip priority 3 parent 1:0 u32 match ip src 192.168.0.1 flowid 1:3

#echo "upload"
echo "Reguły dotyczące UPLOAD-u"
echo "Kasujemy stara kolejke"
tc qdisc del dev eth0 root handle 2:0 htb

echo "Tworzymy nowa glowna kolejke"
tc qdisc add dev eth0 root handle 2:0 htb

echo "Tworzymy klase o predkosci 110 kbit"
tc class add dev eth0 parent 2:0 classid 2:1 htb rate 110kbit ceil 110kbit

echo "Tworzymy klase dla www, ssh"
tc class add dev eth0 parent 2:1 classid 2:20 htb rate 80kbit ceil 110kbit

echo "Tworzymy klase dla reszty"
tc class add dev eth0 parent 2:1 classid 2:30 htb rate 30kbit ceil 110kbit

echo "Aby każdy miał po równo"
tc qdisc add dev eth0 parent 2:20 handle 20:0 sfq perturb 10
tc qdisc add dev eth0 parent 2:30 handle 30:0 sfq perturb 10

echo "Tworzę filtry"
tc filter add dev eth0 parent 2:0 protocol ip prio 0 handle 4 fw flowid 2:20
tc filter add dev eth0 parent 2:0 protocol ip prio 1 handle 5 fw flowid 2:30

O 23 uruchamiam identyczny ze zmienionymi prędkościami

Regułki na firewallu (eth0 sieciówka do netu, eh1 do LANU:
download:

Kod:

iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 80 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 110 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 22 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 443 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth0 -p tcp -j MARK --set-mark 0x2

upload:

Kod:

iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x4
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j MARK --set-mark 0x4
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 22 -j MARK --set-mark 0x4
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 25 -j MARK --set-mark 0x4
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 443 -j MARK --set-mark 0x4
iptables -t mangle -A PREROUTING -i eth1 -p tcp -s 192.168.0.0/24 -j MARK --set-mark 0x5

Czy to ma prawo działać? Pytam się bo nie mogę tego sprawdzić (nie ma mnie na miejscu i przez jakiś czas nie będzie). Z góry dziękuję za wszelkie sugestie.


Linux Registered User # 406343

[i]Routing protocols enable routers to route routed protocols[/i] :)

Offline

 

#2  2006-04-21 09:56:46

  Nickleodeon - Członek DUG

Nickleodeon
Członek DUG
Skąd: Drawsko Pomorskie
Zarejestrowany: 2005-08-19

Re: HTB - co o tym myślicie

http://linuxreviews.org/howtos/networking/lartc/index.html.pl

moze to cie 'natchnie' ;) Pozdrawiam

Offline

 

#3  2006-04-21 13:35:02

  kuchar - Użytkownik

kuchar
Użytkownik
Skąd: Warszawa
Zarejestrowany: 2005-11-16
Serwis

Re: HTB - co o tym myślicie

właśnie korzystałem z tego, chodzi mi o to żeby ktoś zerknął i napisał czy to wogole ma prawo działać, czy sama koncepcja głównie markowania pakietów i filtrowania ich jest poprawna


Linux Registered User # 406343

[i]Routing protocols enable routers to route routed protocols[/i] :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.007 seconds, 10 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00119 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.216.188.136' WHERE u.id=1
0.00060 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.216.188.136', 1738353530)
0.00049 SELECT * FROM punbb_online WHERE logged<1738353230
0.00065 DELETE FROM punbb_online WHERE ident='148.81.194.149'
0.00052 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=3349 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00143 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=3349 ORDER BY p.id LIMIT 0,25
0.00075 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=3349
Total query time: 0.00583 s