IMQ+NAT
Miroslaw Dyduch
dydko1 w o2.pl
Sob, 17 Wrz 2005, 12:34:05 CEST
Witam
Mam pytanie związane z ostanio pojawiającym sie imq. Przepraszam że jest
bardzo długie pytanie ale nie mam już kogo się spytać a chciałbym jakoś to
rozwiązać. Da się jakoś zrobić by ruch przychodzący do eth0 rozdzielić na
ruch serwera oraz lanu za pomocą imq. Chcę tak zrobić by pewne usługi na
routerze miały niższe prio niż lanu (za natem) a np .: wspólny mldonkey (dla
calej sieci) miał wyższe prio, niż p2p lanu (są tacy co mają problem z
obsługą mldonkeya. A ich windowsowe zamulacze i torrenty wysysją całe pasmo
wydzielone na p2p).
A) PREROUTING+NAT
Pytanie jest takie jak wstawić (przestawić) imq by było widziane ip serwera
oraz ip sieci lan na (PREROUTINGU -t mangle -i eth0 oraz imq1)??
Napewno gdzieś mam mały błąd. Na 2.4 był patch imq-nat i podobno to działo
tyle mówią google np http://lartc.org/
http://www.it-faq.pl/news_archives/pl.comp.networking/2003/nov/msg02700.html
i wiele innych.
Jak to teraz zrobic na 2.6. Zmieniłem z w .config CONFIG_IMQ_BEHAVIOR_AB na
CONFIG_IMQ_BEHAVIOR_BB (przkompilowałem) i dalej nic (tylko w logach są
zmiany dmesg |grep IMQ
IMQ starting with 2 devices...
IMQ driver loaded successfully.
Hooking IMQ before NAT on PREROUTING [przedtem było after na AB- tak jak
domyślnie w PLD]
Hooking IMQ before NAT on POSTROUTING)
Tu zrobiłem wszytkie 4 możliwosci (CONFIG_IMQ_BEHAVIOR- AA,AB,BA,BB) i nic-
jak by imq nie reagowało wcale na te zmiany
Prawie ta sama konfiguracja na (POSTROUTINGU -t mangle -o eth0 oraz imq1)
ładnie działa- rozrożnia prawidłowo ruch serwera i lanu.
B) INPUT
Czyszcze calą tablice mangle
Jeśli dam iptables -t mangle -A INPUT -i eth0 -j IMQ --todev 1 to nic nie
wpada do imq1 ( nload -m -u K imq1 ) natomiast watch -n1 iptables -L -t
mangle -nv pokazuje za pakiety przychodzą na lokalną maszynę. Wydaje się że
ipatbles nie umie przekierować INPUT do imq1
watch -n1 tc -s class show dev imq1- też nic nie pokazuje w imq1
jeśli daje
iptables -t mangle -A INPUT -i eth0 -j DROP
to ping nie idzie
Co zrobić by łapać ruch w INPUT i przkierować do imq1. Jeśli by INPUT działało
to bym tylko dołożył FORWARD i by mi to wystarczyło
C) PREROUTING+FORWARD
czyszczę calą tablice mangle
Jeśli dam iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 1 to widze
że pakiety tak jak powinny idą do imq1. Jeśli dołoże do tego iptables -t
mangle -A FORWARD -i eth0 -o eth1 -j IMQ --todev 1 to wtedy jest ciekawy
przypadek (tak się musi dziać bo pakiety "zawracją"). Efektem dołożenia
FORWARD jest że kompy za natem mają 1/2 transferu a nlod -m -u K imq1
wskazuje dwukronie wyższy transfer (łącze*2 np z 128kB/s robi się 256 a za
natem jest 64kB/s)
Co zrobić by PREROUTING -i eth0 rozrożniał ip (serwer, lan) lub by z INPUT
dało się przekierować do imq1. Używam kernela 2.6.12.5-0.5(cvs z PLD), może
to wina patcha 2.6.10-imq.patch (może na 2.6.13-imq.patch to bedzie działać),
albo braku jakieś łatki na iptables (raczej jej braku)
--
Pozdrawiam
Miroslaw Dyduch
gg 3936429, email dydko1 w o2.pl
Więcej informacji o liście dyskusyjnej pld-users-pl