iptables
Grzegorz Sójka
pld w sojka.co
Wto, 28 Paź 2014, 10:53:12 CET
On 10/27/14 23:51, Adam Osuchowski wrote:
> Chyba nie bardzo rozumiem jak to masz zrobione. Wszystko przychodzące na
> dport 997 markujesz, a potem routujesz na podstawie tabeli tunel, tak?
> No to jeżeli w niej masz default na host A to co się dziwisz, że tamtędy
> to idzie?
Opis może rzeczywiście nie najlepszy więc może od początku. Tym razem
żeby się nie mieszało zacznę od rozwiązania które _nie_ działam (i
chciał bym je poprawić).
Przypominam 2 host (A i B) adresy zewnętrzne ExtA, ExtB oraz tunel
szyfrowany pomiędzy nimi o adresach IntA, IntB. Celem jest
przekierowanie ruchu wchodzącego na host A, ExtA:997 na host B, IntB:997
tudzież tego co wychodzi z IntB:997 tak, żeby przeszło przez host A i
zostało "zamaskowane" jako ExtA:997. Na hoście A skonfigurowany NAT
(poprawnie czego dowodzi działający przykład). Na hoście B zrobiłem tak:
iptables -A PREROUTING -t mangle -p tcp --dport 997 -j MARK --set-mark 1
i analogicznie dla OUTPUT, POSTROUTING, INPUT
ip route add default via $IntA table tunel
ip rule add fwmark 1 table tunel
To _nie_ działa (bladego pojęcia nie mam dla czego). Tzn pakiety
wchodzące z zewnątrz na ExtA:997 zostają przekierowane na IntB ("widać"
je na drugim końcu tunelu) ale powrotne już nie. Wygląda to tak jak by
na hoście B i tak wszystko było routowane zgodnie z tabelą main. W
związku z tym w akcie desperacji na hoście B _zamiast_ tego co wyżej
zrobiłem tak:
ip route add default via $IntA table tunel
ip rule add from $IntB table tunel
i teraz działa - aż za dobrze. To co wchodzi z zewnątrz na ExtA:997
rzeczywiście przekierowane jest na IntB:997 (włącznie z pakietami
powrotnymi). Tyle, że ruch generowany przez IntB z portów różnych od 997
też idzie najpierw przez tunel a potem jest maskowany przez ExtA i
wychodzi na zewnątrz (co jest oczywiście bez sensu).
Generalnie "działające" rozwiązanie to jedynie jedynie obejście problemu
a nie prawdziwe rozwiązanie i przytoczyłem je żeby było wiadomo, że na
hoście A jest ok. Moim celem jest poprawienie niedziałającego rozwiązania.
--
Pozdrawiam
Grzesiek
Wysłane z kompa wolnego od wirusów Billa Gatesa.
Więcej informacji o liście pld-users-pl