iptables

Grzegorz Sójka pld w sojka.co
Pon, 27 Paź 2014, 13:21:59 CET


On 10/23/14 19:51, Adam Osuchowski wrote:
> Grzegorz Sójka wrote:
>> Próbuje ustawić różny routing w zależności od portu docelowego. Z tego co
>> pamiętam to się robiło tak:
>> iptables -t mangle -A POSTROUTING (coś tam) -j ROUTE --gw <ip>
>> tylko zdaje się, że w iptables nie ma teraz targetu ROUTE. Da się jakoś
>> dodać ewentualnie jak to inaczej zrobić?
>
> Targetem MARK albo CONNMARK zaznaczasz odpowiednio pakiety albo flowy,
> a potem w ip rule za pomocą selektora fwmark wybierasz odpowiednią tablicę
> routingu.
Nie do końca mi idzie więc może od początku. Mam 2 maszynki (powiedzmy A 
i B) z podłączeniem do netu (IP: ExtA, ExtB) w różnych lokalizacjach 
połączone tunelem szyfrowanym (IP: IntA, IntB). Potrzebuje przeroutować 
trafic wchodzący na host A port (powiedzmy) 997 na host B poprzez tunel.

Zrobiłem tak:

Na hoście A ustawiony DNAT tak, że to co wchodzi na ExtA:997 jest 
przekierowane tunelem na IntB:997. (tu wszystko jest ok).

Na hoście B dodatkowa tabela routing "tunel" a w niej default gw IntA oraz:
ip rule add from IntB table tunel

No i generalnie działa (co dowodzi, że na hoście A iptables jest 
ustawione jak trzeba). Nie bardzo mi się to jednak podoba bo cały trafic 
z IntB jest routowany przez hosta A. Wolał bym żeby dotyczyło to tylko 
ruchu na porcie 997. Próbowałem tak:
iptables -A PREROUTING -t mangle -p tcp --dport 997 -j MARK --set-mark 1
(i to samo dla OUTPUT, POSTROUTING, INPUT z odpowiednimi sport/dport)
ip rule add fwmark 1 table tunel
i q-pa. Jak ktoś wie jak to ogarnąć to będę wdzięczny za info.


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