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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Wszystko wpada do kolejki default niewiem czemu moj HTB:
tc qdisc del dev ppp0 root
tc qdisc add dev ppp0 root handle 1:0 htb default 3
tc class add dev ppp0 parent 1:0 classid 1:1 htb prio 4 rate 94kbit ceil 94kbit quantum 16
tc class add dev ppp0 parent 1:1 classid 1:2 htb prio 1 rate 5kbit ceil 5kbit quantum 4
tc class add dev ppp0 parent 1:1 classid 1:3 htb prio 1 rate 89kbit ceil 94kbit quantum 4
tc qdisc add dev ppp0 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev ppp0 parent 1:3 handle 3:0 sfq perturb 10
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:2
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:3
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ftp -j MARK --set-mark 21
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ssh -j MARK --set-mark 20
moj konfig kernela:http://www.hell.az.pl/config.txt moze coś zapomniałem??
polecenie tc filter show dev ppp0:
filter parent 1: protocol ip pref 1 fw
filter parent 1: protocol ip pref 1 fw handle 0x14 classid 1:3
filter parent 1: protocol ip pref 1 fw handle 0x15 classid 1:2
Jak coś jeszcze potrzeba to do rzuce!Już od tygodnia googluje i nic nie wygooglowałem :(
Offline
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
UPIERDALACZ all -- anywhere anywhere
MARK all -- anywhere anywhere LAYER7 l7proto ftp MARK set 0x15
MARK all -- anywhere anywhere LAYER7 l7proto ssh MARK set 0x14
Nic to nie zmienia :(
klasa 1:2 nadal pusta wszystko wpada do default
Offline
Po dalszych testach doszedłem do takiego o to wniosku jeżeli zamarkuje pakiety w ten sposób:
iptables -t mangle -A POSTROUTING -p tcp --sport 21 -j MARK --set-mark 21
iptables -t mangle -A POSTROUTING -p tcp --sport 22 -j MARK --set-mark 20
Pakiety trafiają do odpowiednich klas.
Wiec wygląda na to że markowanie przez 7-layer nie działa!:(
Tylko dlaczego i co zrobić żeby działało bo p2p nie zamarkuje sobie w ten sposob a o to głównie chodzi.
Offline
markujesz w ten sposob ??
iptables -t mangle -A POSTROUTING -m layer7 --l7-proto gnutella -j MARK --set-mark 21
MARK all — anywhere anywhere LAYER7 l7proto ftp MARK set 0x15
MARK all — anywhere anywhere LAYER7 l7proto ssh MARK set 0x14
[/quote]
a co to niby jest ?? markujesz ftp za pomoca l7 ??!!??
pozdr
[url=http://dziecineo.prv.pl][img]http://sopot.i365.pl/neo/i/us4.jpg[/img][/url]
Offline
"]
a co to niby jest ?? markujesz ftp za pomoca l7 ??!!??
[/quote]
A dlaczego nie?
A za pomoca 7l nie mozna calego ruchu p2p zamarkowac??
jak za pomoca ipp2p ktore to zreszta tez mi niedziała:(
Offline
ipp2p dziala i to bdb. komilujesz ze zrodel wersja rc2 z serii 8 bodajze.
ponawiam pytanie: jak markujesz - tak jak napisalem czy jak ??
l7 sluzy do filtrowania p2p glownie, do innych zastosowan nie polecam, a ftp to nie jest p2p.
urzywam ipp2p jako glowny filtr a l7 uszczelnia tylko przeciekajacy udp na sieciach gnutella.
pozdr
Offline
"]ipp2p dziala i to bdb. komilujesz ze zrodel wersja rc2 z serii 8 bodajze.
ponawiam pytanie: jak markujesz - tak jak napisalem czy jak ??
l7 sluzy do filtrowania p2p glownie, do innych zastosowan nie polecam, a ftp to nie jest p2p.
urzywam ipp2p jako glowny filtr a l7 uszczelnia tylko przeciekajacy udp na sieciach gnutella.
pozdr[/quote]
Wiem, że ftp to nie p2p, to było tylko w celach testowych!!!
a p2p markuje tak:
iptables -t mangle -A POSTROUTING -m ipp2p --ipp2p -j MARK --set-mark 21
i wgóle klasa na p2p jest pusta nic nie wpada.
Natomiast jak uzyje:
iptables -A FORWARD -m ipp2p --ipp2p -j DROP
to działa super
A ipp2p skompilowałem 0.8.2
Offline
sproboj moze w mysl zasady dzialania htb:
-download ograniczasz na lokalnym
-upload na publicznym
wiec: skoro ograniczasz ruch na ppp0 (co widze w pierwszym poscie) to zastosuj regulke markujaca ruch idacy DO ppp0 (download) a nie caly.
dodaj -s 0/0, -d [klasa sieci na ppp0)
jesli to nie dziala to zapodaj swojego firewalla - moze jakies inne wpisy pasuja da tych pakietow i sie to nie markuje
pozdr
Offline
"]sproboj moze w mysl zasady dzialania htb:
-download ograniczasz na lokalnym
-upload na publicznym
[/quote]
No własnie ppp0 to moj publiczny i to ma byc upload ograniczony"]
wiec: skoro ograniczasz ruch na ppp0 (co widze w pierwszym poscie) to zastosuj regulke markujaca ruch idacy DO ppp0 (download) a nie caly.
dodaj -s 0/0, -d [klasa sieci na ppp0)
[/quote]
przecież na ppp0 nie moge ograniczyc downloadu?Mam neo i tam jest zawsze ta sama klasa sieci??
A skoro mowa o download to czy takie rozwiazanie ma szanse działania??:
moja siec:
ppp0 - net
router(debian)
| |
| eth0 -pierwsy komp
eth1 - drugi komp
na routerze działa mldonkey wiec chce podzielic na 3 równe pasma - mój pomysł: IMQ + markowanie pakietów po dst ip, później sprawdzienie które nie sa zamarkowane i im inny mark(te beda nalezec do serwera)
O ile dobrze kombinuje to IMQ musi być po NAT bo inaczej nic z tego?
Ma to szanse działania czy nie?Offline
imq daje zawsze po nat - nie probowalem nigdy inaczej.... ale moze tez dziala :)
z tym download/upload sie zamotalem - faktycznie ppp publiczny i na nim ograniczysz wychodzace
wiec biorac ta mala poprawke (-s 0/0 -d ip_lokalnego_kompa) + to co wczesniej napisalem sproboj jeszcze raz czy markuje.
pozdr
Offline
"]imq daje zawsze po nat - nie probowalem nigdy inaczej.... ale moze tez dziala :)
z tym download/upload sie zamotalem - faktycznie ppp publiczny i na nim ograniczysz wychodzace
wiec biorac ta mala poprawke (-s 0/0 -d ip_lokalnego_kompa) + to co wczesniej napisalem sproboj jeszcze raz czy markuje.
pozdr[/quote]
teraz ja mam zamotke a nie przypadkiem (-s ip_lokalnego_kompa -d 0/0) to jest ruch wychodzący!
Ale serwer też mysyla pakiety p2p!Wiec takie markowanie chyba nie wiele mi pomoże:(
A co do download - to w którym łańcuchu poprawnie zamarkować pakiety należące do danego IP???
Offline
no chyba wlasnie nie :) z punktu widzenia serwera: pakiet przychadzi z kad kolwiek (-s 0/0) i adresowany jest przez niego do kompa (np. -d 192.168.1.4/24) to jest download bo klient pobiera dane z neta
upload - pakiet przyszedl int. lokanym z kompa (-s 192.168.1.4/24) i adresowany jest w neta do kadkolwiek (0/0)
a dokadkolwiek dlatego ze nie przewidzisz z czym sie klient laczy, ale przewidujesz ze polaczenie wyjdzie z kompa klienta (upload)
i nie przewidzidz z kad pakiet idzie ale wiesz ze bedzie adresowany do danego klienta (download)
teraz sie chyba nie pomylilem =)
pozdr
Offline
"]...teraz sie chyba nie pomylilem =)...pozdr[/quote]
Potwierdzam: mowisz z sensem :)
Jezeli serwer to 'sprzegniete ze soba' interfejsy to faktycznie DOWNLOAD (czyli to co SCIAGA klient z inetu) ograniczamy na interfejsie lokalnym LAN natomiast UPLOAD (to, co klient wysyla do inetu) na interfejsie zewnetrznym WAN (PPPo). Z markowaniem w iptablach mam tak:
iptables -t nat -A POSTROUTING -s ip.lokalne.miska -d 0.0.0.0/0 -j SNAT --to-source ip.zewnetrzne.routera
iptables -t mangle -A PREROUTING -p all -s ip.lokalne.miska -j MARK --set-mark mark.miska
gdzie:
ip.lokalne.miska: np. 192.168.1.100
ip.zewnetrzne.routera: np. 195.204.34.1
mark.miska: np. 100 (konkretna liczba)
Ograniczenie dla DL jest po IP dest. natomiast UL robi sie markujac pakiety od miska - przez to wpadaja do odpowiednich kolejek klienckich.
w HTB mam tak:
$TC class add dev eth1 parent 1:2 classid 1:koncowka_ip_miska htb rate $d_g ceil $d_no prio 3 burst 10k quantum 1492
$TC qdisc add dev eth1 parent 1:koncowka_ip_miska sfq perturb 10
$TC filter add dev eth1 protocol ip prio 3 parent 1:0 u32 match ip dst ip_miska flowid 1:koncowka_ip_miska
$TC class add dev eth0 parent 2:1 classid 2:koncowka_ip_miska htb rate $u_g ceil $u_no prio 3 burst 10k quantum 1492
$TC qdisc add dev eth0 parent 2:koncowka_ip_miska sfq perturb 10
$TC filter add dev eth0 parent 2:0 protocol ip prio 5 handle koncowka_ip_miska fw flowid 2:koncowka_ip_miska
gdzie:
koncowka_ip_miska=mark_miska: np 50
Uproscilem sobie sprawe, tworzone klasy dla miskow na interfejsach oznaczam koncowkami IP miskow. Podobnie ze znakowaniem pakietow - mark jest taki sam jak koncowka ip miska.
Oczywiscie to nic nowego, maniana zaczyna sie dopiero gdy klienci maja mozliwy ruch miedzy soba w LANie lub jest np PROXY. Pomocne okazuje sie np. IMQ - interfejsy wirtualne. I tworzy sie juz calkiem ciekawa sytuacja:
WAN <===> IMQ(1,2) <===> LAN
Wszelkie kolejki tworzy sie wtedy na miedzymordziach wirtualnych.
Mozna dodac L7 do filtreowania wszelkiego syfu.
Offline
Dobra działa! Dzieki za wszelka okazaną mi pomoc!
Offline
Jednak nie tak jak powinno... tym razem problem z downloadem!
ip link set imq1 up
iptables -t mangle -A PREROUTING -i ppp0 -j IMQ --todev 1
tc qdisc del dev imq1 root
tc qdisc add dev imq1 root handle 1:0 htb default 2
tc class add dev imq1 parent 1:0 classid 1:1 htb rate 155kbit ceil 155kbit quantum 1500
tc class add dev imq1 parent 1:1 classid 1:2 htb rate 5kbit ceil 155kbit prio 2 quantum 1500 #serwer
tc class add dev imq1 parent 1:1 classid 1:3 htb rate 70kbit ceil 155kbit prio 1 quantum 1500 #ja
tc class add dev imq1 parent 1:1 classid 1:4 htb rate 70kbit ceil 155kbit prio 2 quantum 1500 # moj brat
tc class add dev imq1 parent 1:1 classid 1:5 htb rate 10kbit ceil 10kbit quantum 1500
tc qdisc add dev imq1 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:4 handle 4:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:5 handle 5:0 sfq perturb 10
tc filter add dev imq1 parent 1:0 protocol ip u32 match ip dst 192.168.1.2 flowid 1:3
tc filter add dev imq1 parent 1:0 protocol ip u32 match ip dst 192.168.2.2 flowid 1:4
tc filter add dev imq1 parent 1:0 protocol ip u32 match ip dport 22 0xffff flowid 1:5
I kwestia jest tego rodzaju ze jak serwer cos ciagnie a probuje cos na kompie otworzyc to chodzi to tak samo jak przed zrobieniem tego kolejkownia. Dlaczego jest tu cos zle napisane??
Offline
wiem ze gotowiec to nie najlepsze rozwiazanie... ale licze na to ze go przeanalizujesz i dostrzezesz bledy: mylisz pre/post-routing oraz -i z -o
ponizej masz kompletna kolejke na dwoch userow
kolejka tnie download i upload, ponadto umozliwia transfer klient<->serwer znacznie wiekszy niz klient<->net - jesli tego nie potrzebujesz to wywal na wstepie, nastepnie pozmieniaj sobie zmienne - w moim przypadku: eth0=public eth1=lan 192.168.1.1=serwer *.5 i *.6 przykladowi klienci.
na tej podstawie zrobisz kolejkowanie z prawdziwego zdarzenia, przypominam ze potrzebujesz miec w jajku dwa interfejsy imq ustawione gdyz jeden idzie na download a drugi na upload.
jak czegos nie wiesz to pisz. polecam ponownie lektorke z dzialu artykuly na dug.net.pl
#!/bin/sh #Kolejka IPTABLES="/usr/local/sbin/iptables" tc="/sbin/tc" ip="/sbin/ip" #Gwarantowane d="128kbit" u="24kbit" #Maxymalne dm="900kbit" um="190kbit" #LAN l="3000kbit" lm="50000kbit" lip="192.168.1.1" wan="xxx.xxx.xxx.xxx" $tc qdisc del root dev imq0 $tc qdisc del root dev imq1 $IPTABLES -t mangle -A POSTROUTING -o eth1 -j IMQ --todev 0 $IPTABLES -t mangle -A PREROUTING -i eth1 -j IMQ --todev 1 $ip link set imq0 up $ip link set imq1 up $tc qdisc add dev imq0 root handle 1:0 htb $tc qdisc add dev imq1 root handle 2:0 htb $tc class add dev imq0 parent 1:0 classid 1:1 htb rate 70000kbit ceil 70000kbit $tc class add dev imq1 parent 2:0 classid 2:1 htb rate 70000kbit ceil 70000kbit #Net Download/Upload $tc class add dev imq0 parent 1:1 classid 1:2 htb rate 3900kbit ceil 3900kbit $tc class add dev imq1 parent 2:1 classid 2:2 htb rate 500kbit ceil 500kbit #LAN Download/Upload $tc class add dev imq0 parent 1:1 classid 1:3 htb rate 55000kbit ceil 55000kbit $tc class add dev imq1 parent 2:1 classid 2:3 htb rate 55000kbit ceil 55000kbit # #192.168.1.5 - 5 $tc class add dev imq0 parent 1:2 classid 1:5 htb rate $d ceil 2000kbit $tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.1.5 flowid 1:5 $tc qdisc add dev imq0 parent 1:5 handle 5:0 sfq perturb 10 $tc class add dev imq0 parent 1:3 classid 1:505 htb rate $l ceil $lm $tc filter add dev imq0 protocol ip parent 1:0 u32 match ip src $lip flowid 1:505 $tc filter add dev imq0 protocol ip parent 1:0 u32 match ip src $wan flowid 1:505 $tc class add dev imq1 parent 2:2 classid 2:5 htb rate $u ceil $um $tc filter add dev imq1 protocol ip parent 2:0 u32 match ip src 192.168.1.5 flowid 2:5 $tc qdisc add dev imq1 parent 2:5 handle 5:0 sfq perturb 10 $tc class add dev imq1 parent 2:3 classid 2:505 htb rate $l ceil $lm $tc filter add dev imq1 protocol ip parent 2:0 u32 match ip dst $lip flowid 2:505 $tc filter add dev imq1 protocol ip parent 2:0 u32 match ip dst $wan flowid 2:505 #192.168.1.6 - 6 $tc class add dev imq0 parent 1:2 classid 1:6 htb rate $d ceil $dm $tc filter add dev imq0 protocol ip parent 1:0 u32 match ip dst 192.168.1.6 flowid 1:6 $tc qdisc add dev imq0 parent 1:6 handle 6:0 sfq perturb 10 $tc class add dev imq0 parent 1:3 classid 1:506 htb rate $l ceil $lm $tc filter add dev imq0 protocol ip parent 1:0 u32 match ip src $lip flowid 1:506 $tc filter add dev imq0 protocol ip parent 1:0 u32 match ip src $wan flowid 1:506 $tc class add dev imq1 parent 2:2 classid 2:6 htb rate $u ceil $um $tc filter add dev imq1 protocol ip parent 2:0 u32 match ip src 192.168.1.6 flowid 2:6 $tc qdisc add dev imq1 parent 2:6 handle 6:0 sfq perturb 10
zauwarz ze kolejki glowne na imq = 70000kbit - to jest m/w realna predkosc osiagalna na sredniej klasy switchu/karcie lan - z niej rozchodzi sie ruch na klient<->serwer i klient<->net - do tej glownej 70000kbit nie podpinasz userow tylko do pochodnych.
jesli masz wifi a nie lan, proponuje dostosowac wartosc do predkosci sieci.
pozdr
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00116 | 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='3.129.194.133' WHERE u.id=1 |
0.00082 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.129.194.133', 1738447807) |
0.00069 | SELECT * FROM punbb_online WHERE logged<1738447507 |
0.00149 | DELETE FROM punbb_online WHERE ident='18.227.140.235' |
0.00061 | SELECT topic_id FROM punbb_posts WHERE id=42944 |
0.00010 | SELECT id FROM punbb_posts WHERE topic_id=5582 ORDER BY posted |
0.00075 | 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=5582 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00117 | 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=5582 ORDER BY p.id LIMIT 0,25 |
0.00132 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=5582 |
Total query time: 0.00829 s |