IMQ+NAT

Jarek Poplawski domat w klub.chip.pl
Wto, 20 Wrz 2005, 10:16:58 CEST


Miroslaw Dyduch wrote:
> Dnia poniedziałek, 19 września 2005 13:24, Jarek Poplawski napisał:
> 
>  > Miroslaw Dyduch wrote:
> 
>  > ..
> 
>  >
> 
>  > > 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)
> 
>  >
> 
>  > Jeśli -i eth0 wychodzi do internetu, to przy domyślnym w PLD
> 
>  > ustawieniu CONFIG_IMQ_BEHAVIOR_AB pakiety przychodzące (iptables
> 
>  > -t mangle -A PREROUTING -i eth0 -j IMQ --todev 1) będą widziane w
> 
>  > tc filter z adresami lokalnymi (serwera, lanu), czyli po
> 
>  > "zdenatowaniu".

Tu małe sprostowanie: pakiety należące do serwera będą zwykle 
widziane w tc filter z adresem interfejsu eth0, więc 
niekoniecznie lokalnym.

> 
> -i eth0 mam od strony internetu (Hooking IMQ after NAT on PREROUTING, 
> Hooking IMQ before NAT on POSTROUTING) mam zgodnie z PLD czyli 
> CONFIG_IMQ_BEHAVIOR_AB. Czyli powinno być widzane ip LAN i serwera na 
> PREROUTING -i eth0 . Wydaje mi sie ze w imq jest ciagle domyslne 
> ustwienie CONFIG_IMQ_BEHAVIOR_BA http://www.docum.org/docum.org/kptd/ a 
> tylko sie zmienia wpis w logach. To co mi przychodzi jest widziane z ip 
> serwera nie z ip lanu czyli wyglada to na CONFIG_IMQ_BEHAVIOR_BA.
> 
> Natomiast na POSTROUTNG -o eth0 CONFIG_IMQ_BEHAVIOR_xA lub 
> CONFIG_IMQ_BEHAVIOR_xB (x=a|b) bez wzgledu na ustawinia jest rozrozniane 
> ip lan i serwera.

IMQ jest dość intensywnie używane przez użytkowników PLD, więc 
proponuję wychodzić z założenia, że działa zgodnie z założeniami 
i w pierwszej kolejności szukać błędów w swojej konfiguracji lub 
podejściu do tematu.
Oczywiście lepiej jest to sprawdzać na "oficjalnych" wersjach jądra.

> 
> dla przykładu
> 
> Jesli zrobie routing statyczny do brata (moj_komp jest "serwerem")
> 
> serwer (eth0-dsl, eth1-192.168.0.1)->moj_komp(eth0-192.168.0.3, 
> eth1-192.168.1.1)->komp_brata(192.168.1.2).

Tu pewna niejasność: jeśli moj_komp jest "serwerem", to czym jest 
serwer?

> 
> ip r add dev eth1 192.168.1.0/24 via 192.168.0.3 (na 192.168.0.1 to wpisuje)
> 
> Teraz kolejkuje na moj_komp-192.168.0.3- to wtedy jest rozrozniane ip 
> moje 192.168.0.3 i lanu 192.168.1.2 na PREROUTIOING -d - wszytko wpada 
> tak jak ma.
> 
> Teraz dodaje iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to 
> 192.168.0.3 czyli natuje i wtedy jest wszystko widzane jako 192.168.0.3 
> czyli jest CONFIG_IMQ_BEHAVIOR_BA czyli jakby domyslne
> 
> wydaje mi się ze problem nie tkwi w PLD tylko w imq moze trzeba usunąć 
> jakis "#" z patcha do imq?? na u32 wyglda ze to działa- sprawdzałem 
> (zgonie za schematem jest za natem ip/tc). Ale u32 nie ma tylu mozliwosc 
> co iptables i jest malo elastyczny do moich zastosowań.

W tym sęk, że IMQ  ma sens tylko w tc, a CONFIG_IMQ_BEHAVIOR w 
u32 i nie ma to wpływu na widzenie adresów pakietów przez iptables.

Jarek P.




Więcej informacji o liście dyskusyjnej pld-users-pl