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/.
Witam. Mam do obsluzenia dwa lacza, dsla i symetryka. Chcialem zapytac czy taka polityka bedzie dobra. Wszystko z dst port 80 na dsla, reszta przez symetryka, jako domyslna brama interfesj symetryka, a na firewallu snatowac dst port 80 na ipka dsla. Pojdzie tak? Druga wazna sprawa - jak tu teraz odpalic na tym shappera ew napisac pod to jakies kolejkowanie, ograniczyc liczbe polazen itd. Czytalem nieco (rowniez tutaj na dug - miedzy innymi o htb), ale w htb jak itp jestem zielony :-/ i generalnie mam metlik w glowie. Nie wiem od czego zaczac :-/
pozdro
Offline
Nkt nie wie? Nie chce mi sie wierzyc :-)
Offline
Nkt nie wie? Nie chce mi sie wierzyc :-)[/quote]
symetryk defaulowe lacze
a www poprzez squida i tcp_outgoing_address wraz z delay pools
2 laczem puszczasz :P;p
Offline
ja mam tak u siebie zrobione ze po dslu mam puszcozny defaultowy ruch a przkierwane inne porty po ktrych idzi syf na polpaka
dslem ida zapytania + www + poczta....
reszta portow jest markowana i idzie sobie polpakiem
mam te z takie rozwiazanie ze
polpakiem ida zaytania + poczta + ruch z zenwetrznych IP
dsl nr 1 - www
dsl nr 2 - caly inny syf
wszystko zalrzy od charakteyrstyki sieci....
i jak to rozwiazesz czy np bdziesz mial odzielnego kompa dla ruchu www....
co do koleje jest podobnie w zalerznosci jakie rozwiazanie zastosujesz
Offline
Moze jakis przykladowy skrypt? Cos na wzor, zebmym wiedzial,jak sie do tego zabrac?
Offline
przyłączam sie z proźbą o skrypt :]
Offline
Moze to wszyscy znaja ale nie moglem ostatniowejsc na forum [url]http://forum.slackware.pl[/url] wiec podaje z mojego archiwum tresc ciekawego posta.
Jak ugryźć IMQ - podstawy
1. Wstęp
Jak powszechnie wiadomo, do kształtowania i kolejkowania ruchu służy QoS (Quality Of Service) wraz z algorytmami typu CBQ czy HTB. Za pomocą w/w możemy decydować o ruchu wychodzącym z naszego routera, niestety nie jesteśmy w stanie zapanować nad tym co - i w jakiej kolejności - do nas z internetu przychodzi.
Jeżeli posiadamy prosty router z dwoma interfejsami (LAN oraz internet), który robi tylko NAT/firewall to nie ma problemu - na każdej karcie sieciowej zakładamy kolejkowanie dla ruchu wychodzącego i możemy kontrolować ruch do oraz z internetu.
Co jednak zrobić gdy na maszynie routującej ruch mamy uruchomione usługi lokalne (typu ftp, poczta lub www), lub gdy mamy parę łącz? Co zrobić gdy chcemy kształtować ruch uwzględniając rodzaj usługi, a potem dzielić go via IP hosta końcowego w sieci LAN? Odpowiedź jest jedna; zainstalujmy IMQ.
2. Jak to w ogóle działa?
IMQ to wirtualne międzymordzie (interfejs), które nie posiada adresacji IP a jego jedynym zadaniem jest umożliwienie zarządzania ruchem który przez nie przepływa (np. za pomocą programu tc).
Idea IMQ jest taka:
Tworzymy wirtualną "rurę" do której za pomocą iptables przerzucamy cały ruch. To gdzie i jak ustawimy taką "rurę" zależy od naszej inwencji. Dla przykładu, jeżeli przekierujemy ruch już w PREROUTINGu interfejsu udostępniającego nam
internet na routerze, bo będziemy mogli zapanować nad całym ruchem wpadającym do naszego routera (w tym też nad tym co przychodzi do lokalnych daemonów ftp,poczty www etc). Możemy w ten sposób ukrócić "raj" userom znającym screena i shellowe programy ftp/p2p.
3. Trochę historii
IMQ (The Intermediate Queueing Device) zostało wymyślone w 2001 r. przez Marina Deverę (tego samego gościa który maczał palce w HTB). W poźniejszym czasie projekt został przejęty przez Patricka McHardy, jednakże Patrick przestał się tym zajmować... Szczerze mówiąc, nie mam pojęcia kto jest teraz odpowiedzialny za dalszy rozwój IMQ.
Wiem natomiast że na tej stronie (www.linuximq.net) można zawsze znaleźć świeże mięsko dotyczące IMQ.
4. Instalacja
Niestety, czeka nas patchowanie źródeł linuksa i rekompilacja kernela. Aby było weselej to samo musimy zrobić z iptables. Osobiście nie ufam za bardzo jajeczkom w wersji 2.6 i nie stosuję ich na "produkcyjnych" maszynach, więc patchowałem i kompilowałem kernela w wersji 2.4.28. Opis jak to zrobić można znaleźć tutaj http://alfa.tailor.com.pl...imq_htb_pl.html , i jest to bardzo dokładny (step-by-step) instruktaż który nikomu nie powinien sprawić kłopotu. Ja jednak, na wypadek gdyby powyższy link nie działał opiszę pokrótce jak to uczynić:
a. z http://kernel.org pobieramy źródła kernela
b. z http://netfilter.org pobieramy źródła iptables
c. z http://www.linuximq.net - pobieramy patche IMQ dla kernela, iptables, oraz patche do wspólpracy IMQ z NAT.
d. siadamy wygodnie z zaparzoną kawą i zabieramy się do roboty :-)
e. w /usr/src/ rozpakowałem źródła linuksa-2.4.28 oraz iptables-1.2.11 i utworzyłem linki symboliczne poleceniami:
# root@w1:~# cd /usr/src/
# root@w1:/usr/src# pwd
/usr/src
# root@w1:/usr/src# ln -s linux-2.4.28 linux
# root@w1:/usr/src# ln -s iptables-1.2.11 iptables
# root@w1:/usr/src# ls -lh linux iptables
lrwxrwxrwx 1 root root 16 2004-12-03 10:41 iptables -> iptables-1.2.11/
lrwxrwxrwx 1 root root 12 2005-02-22 16:19 linux -> linux-2.4.28/
f. Dodałem łatkę imq do kernela:
# cd /usr/src/linux
# patch -p1 < /usr/src/linux-2.4.28-imq2.diff
g. Dodałem łatkę imq do iptables i zmieniłem troszkę atrybuty;
# cd /usr/src/ipables
# patch -p1 < /usr/src/iptables-1.2.9-imq1.diff
# chmod +x extensions/.IMQ-test*
h. Przekopiowałem i zainstalowałem łatkę IMQ do wspólpracy z nat;
# cp /usr/src/imq-nat.diff /usr/src/linux/drivers/net/
# cd /usr/src/linux/drivers/net
# patch <imq-nat.diff
i. Oprócz tego dodałem troche innych "zabawek" (typu p-o-m, czy openwall), ale to już dla funkcjonowania IMQ jest nieistotne i nie opisuję tego tutaj. Nie opisuję też jak skompilować i zainstalować kernela/iptables, bo takich rzeczy uczą już w przedszkolu (a nie na poważnym forum:-). Acha! Aby zadziałało IMQ w opcjach kernela musimy ustawić to;
Kod:
Code maturity level options --->Prompt for development and/or incomplete code/drivers
Networking options ---> Network packet filtering (replaces ipchains)
Networking options ---> IP: Netfilter Configuration ---> IP tables support (required for filtering/masq/NAT)
Networking options ---> IP: Netfilter Configuration ---> Packet mangling
Networking options ---> IP: Netfilter Configuration ---> IMQ target support
Network device support ---> IMQ (intermediate queueing device) support
! Powtarzam; opis jak to zrobić (step-by-step) można znaleźć tutaj; http://alfa.tailor.com.pl...imq_htb_pl.html !
5. Konfiguracja
Tak jak już wspomniałem, sposobów wykorzystania IMQ jest cała masa. Ja pokaże tutaj jak wykorzystałem IMQ aby ukształtować ruch na dwóch DSL'ach (2Mbit i 1Mbit). Utworzyłem sobie taki oto plik, który jest odpalany z rc.local;
Kod:
#!/bin/bash
echo "Konfiguracja IMQ..."
modprobe imq
ip link set imq0 up
ip link set imq1 up
iptables -A PREROUTING -t mangle -i eth0 -j IMQ --todev 0
iptables -A PREROUTING -t mangle -i eth2 -j IMQ --todev 1
echo "...zrobione"
Co zrobiłem?
a. Załadowałem moduł imq
b. Podniosłem 2 interfejsy imq
c. Przekierowałem ruch przychodzący do DSLi (DSL 2Mbit "wisi" u mnie na eth0 a DSL 1Mbit na eth2)
Mogę teraz zarządzać wszystkim co przychodzi z internetu do DSL1 i DSL2 zakładając kolejki HTB dla imq0 oraz imq1.
Wynik kilku poleceń z mojego routera;
Kod:
root@w1:~# ifconfig imq0
imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:32458106 errors:0 dropped:0 overruns:0 frame:0
TX packets:32424333 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
RX bytes:3169468955 (3022.6 Mb) TX bytes:3159762534 (3013.3 Mb)
root@w1:~# ifconfig imq1
imq1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:7674392 errors:0 dropped:0 overruns:0 frame:0
TX packets:7671805 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
RX bytes:1481222823 (1412.6 Mb) TX bytes:1478680820 (1410.1 Mb)
Kod:
root@w1:~# iptables -L -v -t mangle | grep IMQ
Chain PREROUTING (policy ACCEPT 64M packets, 35G bytes)
pkts bytes target prot opt in out source destination
12M 11G IMQ all — eth0 any anywhere anywhere IMQ: todev 0
35K 3042M IMQ all — eth2 any anywhere anywhere IMQ: todev1
6. Uwagi na koniec
- RTFM
- Jeśli chcemy mieć więcej interfejsów IMQ to moduł imq uruchamiamy z parametrem # modprobe imq numdevs=X
- Przydaje się watch, aby na bieżąco sprawdzać czy i jak pracują tc lub iptables. Np;
# watch -d -n1 "iptables -L -v -t mangle"
# watch -d -n1 "tc -d -s class show dev imq0"
7. Trochę linków;
http://www.linuximq.net/
http://alfa.tailor.com.pl...imq_htb_pl.html
http://pupa.da.ru/imq/
Autor: bzyk
Skład: Skyscraper
[/quote]
Offline
poza tym zobacz to:
[url]http://www.linuxfan.pl/modules.php?op=modload&name=Forums&file=viewtopic&topic=1655&forum=11[/url]
Offline
z imq co prawda kozystam dla współpracy PPPoE +HTB
ale mam pewien pomysł niewiem co wy na to,mały schemacik :) :
http://www.fotosik.pl/pokaz_obrazek/1809275396872bfb.html
jesli zle mysle niebijcie ,
koleny pomysł to łącze default puszcze reszte ruchu a przez Squid transparent przepuszcze ruch (poczta ,www ,) na drugie łącze ,ale nadal jestem w fazie lektur How to .
Offline
Panowie ja sie przylacze niebawem, na razie mam stress time ;-)
Offline
Szeczyk ten schemacik troszke niezabardzo, jestem ciekaw jak przypiszesz adres ip dla imq :) imq to coprawda wirualny interfejs ale bez ip.
Proponuje ci stworzenie trasy routingu dla dsla i dla reszty defaulta zostawić.
Natomiast samo imq bedzie wtedy pozwalało na odpowiednie przycinanie ruchu zarówno "do" jak i "z" interfejsu. Mówiąc w skrucie zmień koncepcję
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00108 | 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.128.226.128' WHERE u.id=1 |
0.00082 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.128.226.128', 1732791513) |
0.00038 | SELECT * FROM punbb_online WHERE logged<1732791213 |
0.00080 | SELECT topic_id FROM punbb_posts WHERE id=52492 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=6663 ORDER BY posted |
0.00077 | 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=6663 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00286 | 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=6663 ORDER BY p.id LIMIT 0,25 |
0.00950 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=6663 |
Total query time: 0.01649 s |