Routing procesow lokalnych

Serwery i sieci oparte na Slackware, wszelkiego rodzaju usługi, troubleshooting.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
matryc
Użytkownik
Posty: 74
Rejestracja: 2005-10-30, 09:51
Lokalizacja: Dąbrowa Tarnowska

Routing procesow lokalnych

Post autor: matryc »

Posiadam rozdzielona ze wzgledu na porty siec na kilka lacz ( narazie jeszcze tylko na dwa lacza ). Problem polaga na tym ze procesy lokalne czyli DNS(BIND), SQUID, INETD, itp. idzie przez brame domyslna. A ja chce cos takiego by wybrane rzeczy na LACZE_1 a LACZE_2 to brama domyslna i tam cala reszta. Chodzi mi o wrzucanie pakietow na okreslone lacza za pomaca ich znakowania (fwmark). I w przypadku sieci nazwijmy LAN oznaczenie tych pakietow jest latwe za pomoca IPTABLES bo droga jest nastepujaca:
SIEC-LAN --> PREROUTING(mangle) --> PREROUTING(nat) --> ROUTING! --> itd.
A w przypadku procesow lokalnych jest to:
Proces Lokalny --> ROUTING! --> OUTPUT(mangle) --> OUTPUT(nat) --> itd.
Dlatego oznaczanie za pomaca IPTABLES Procesow lokalnych odpada! Bo wczesniej jest ROUTING a dopiero pozniej OUTPUT(mangle)
I stad moje pytanie czy ma ktos sposob na Procesy lokalne?
sayetan
Moderator w st. spocz.
Posty: 2193
Rejestracja: 2004-06-20, 21:47
Lokalizacja: Jelenia Góra

Re: Routing procesow lokalnych

Post autor: sayetan »

Nakładka owner na iptables z zestawu patch-o-matic powinna rozwiazac sprawe.
# `echo -e "\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
Awatar użytkownika
matryc
Użytkownik
Posty: 74
Rejestracja: 2005-10-30, 09:51
Lokalizacja: Dąbrowa Tarnowska

Re: Routing procesow lokalnych

Post autor: matryc »

Late owner posiadam tylko jak mam to zastosowac? Jak tego uzyc? Prosze o przyklad

EDIT: Za pomoca IPTABLES chyba nie osiagne celu! ;/ Ale chce teraz zrobic to przy pomocy:
"ip rule add from xxxxx table WAN"
No i co wstawic za xxxxx??
Probowalem to zrobic tak:
ip rule add from 127.0.0.1 table WAN
I nie bardzo mi to wychodzi ;/
POZDRAWIAM
[moderator](sayetan) Prosze edytować posty, a nie pisać post za postem.[/moderator]
sayetan
Moderator w st. spocz.
Posty: 2193
Rejestracja: 2004-06-20, 21:47
Lokalizacja: Jelenia Góra

Re: Routing procesow lokalnych

Post autor: sayetan »

na iptables to będzie tak:

<code>iptables -A OUTPUT -m owner $opcja_owner -j ROUTE $opcja_route</code>

opcje obydwu mozesz wylistowac za pomocą poleceń: # iptables -m owner -h i # iptables -j ROUTE -h
Podałem te polecenia abyś zobaczył opcje i wybrał tę, która Cie satysfakcjonuje.
Oczywiście da sie to robić za pomocą tablic, ale ja niestety takiej wiedzy nie posiadam.
# `echo -e "\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
Awatar użytkownika
matryc
Użytkownik
Posty: 74
Rejestracja: 2005-10-30, 09:51
Lokalizacja: Dąbrowa Tarnowska

RE: Routing procesow lokalnych

Post autor: matryc »

Kombinuje z tym cejem ROUTE i nic mi nie chce wyjsc :(
Probowalem tez nie uzywac tych rozszerzen tylko zmusic go do wysylania (lancuch OUTPUT) co idzie na drugie lacze przez lacze pierwsze:
iptables -t mangle -I OUTPUT -o eth2 -j ROUTE --gw X.X.X.B --continue
gdzie:
X.X.X.B to IP bramy LACZE_1
eth2 karta do ktorej jest wpiete LACZE_2
Rezultat tego taki ze z serwera nie mage sie polaczyc przez SSH z innym ani otworzyc www na serwerze.
Skrypt ktory rozdziela ze wzgledu na porty siec na kilka lacz wyglada tak:

Kod: Zaznacz cały

#!/bin/sh
#
# Zmienne:
IPT="/usr/sbin/iptables"
INT_LAN="eth0"
INT_WAN_1="eth1"
INT_WAN_2="eth2"
SIEC_LAN="999.999.000.000/16"
SIEC_WAN_1="111.111.111.000/24"
SIEC_WAN_2="222.222.222.000/24"
WAN_1="111.111.111.111"
WAN_2="222.222.222.222"
WAN_1_G="111.111.111.GGG"
WAN_2_G="222.222.222.GGG"
# porty=1:410,412:1024, Gadu-Gadu=8074, CACHE=3128,8080, KURNIK=17001
porty="1:410,412:1024,3128,8074,8080,17001"
echo "---"
echo "START"
echo "---"
###### znakowanie pakietow #####
## Czyszczenie tablicy MARK
$IPT -t mangle -A PREROUTING -i $INT_LAN -j CONNMARK --restore-mark
## Wyrzucanie pakietow juz oznaczonych
$IPT -t mangle -A PREROUTING -i $INT_LAN -m mark ! --mark 0x0 -j RETURN
## porty z LAN do WAN
$IPT -t mangle -A PREROUTING -i $INT_LAN -p tcp -s $SIEC_LAN -d ! $SIEC_LAN -m multiport --dports $porty -j MARK --set-mark 22
$IPT -t mangle -A PREROUTING -i $INT_LAN -p udp -s $SIEC_LAN -d ! $SIEC_LAN -m multiport --dports $porty -j MARK --set-mark 22
## Pingi
$IPT -t mangle -A PREROUTING -i $INT_LAN -p icmp -s $SIEC_LAN -d ! $SIEC_LAN -j MARK --set-mark 22
## Zapis tablicy MARK
$IPT -t mangle -A PREROUTING -i $INT_LAN -m mark --mark 22 -j CONNMARK --save-mark
#
###### routing lacze 1 ######
ip route add $SIEC_WAN_1 dev $INT_WAN_1 src $WAN_1 table WAN_1
ip route add default via $WAN_1_G1 dev $INT_WAN_1 table WAN_1
ip rule add fwmark 22 table WAN_1
ip rule add from $WAN_1 table WAN_1
###### routing lacze 2 ######
ip route add $SIEC_WAN_2 dev $INT_WAN_2 src $WAN_2 table WAN_2
ip route add default via $WAN_2_G dev $WAN_2 table WAN_2
ip rule add from $WAN_2 table WAN_2
###### lokalny routing ######
ip route add 127.0.0.0/8 dev lo table WAN_1
ip route add 127.0.0.0/8 dev lo table WAN_2
ip route add $SIEC_LAN dev $INT_LAN table WAN_1
ip route add $SIEC_LAN dev $INT_LAN table WAN_2
# dodatkowy routing
ip route add $SIEC_WAN_1 dev $INT_WAN_1 table WAN_2
ip route add $SIEC_WAN_2 dev $INT_WAN_1 table WAN_1
#
ip route flush cache

Moze cos nie tak z tablica ??
POZDRAWIAM

[moderator]Hannibal: Code![/moderator]
Awatar użytkownika
matryc
Użytkownik
Posty: 74
Rejestracja: 2005-10-30, 09:51
Lokalizacja: Dąbrowa Tarnowska

Re: Routing procesow lokalnych

Post autor: matryc »

Temat nadal aktualny! :)
Choc nie walcze z tym uporczliwie bo oznaczyłem sobie pakiety w łańcuchu OUTPUT z dwóch łącz, wrzuciłem do Lstat'a i się okazało, że nie jest to duży ruch :)
Ale wykryłem, że po ozaczeniu i wrzuceniu za pomocą "ip rule..." czy "iptables... -j ROUTE.." tcpdump pokazał mi: na interfejsie łącza '1' pojawia się połączenie z adresem łacza '2' ( adres karty sieciowej łącza 2 ) i niestety połączenia nie udaje się zrealizować :( Łącze '2' jest bramą domyślną dla serwera! Nie wiem co może być przyczyną :| Może ma znaczenie kolejność regułek jakie włączam przez skrypt! Może najpierw muszę włączyć mój skrypt a potem odpalić routing na interfejsy i routing bramy domyślnej? :?
Awatar użytkownika
snaj
Moderator w st. spocz.
Posty: 1608
Rejestracja: 2004-10-10, 16:32
Lokalizacja: Warszawa
Kontakt:

Re: Routing procesow lokalnych

Post autor: snaj »

Wiec jeszcze raz dokladnie napisz o co ci chodzi bo nie wize ROUTEa wykorzsytanego, i kiedy ci zle paczki ida po interfejsach ?!

Zainsteresuj sie ROUTE --oif + SNAT jesli chodzi o lokalne zrodla ruchu.
*
[color=blue]Sieci[/color]/[color=green]Serwery[/color]/[color=red]Security[/color] - Freelancer
*
Awatar użytkownika
matryc
Użytkownik
Posty: 74
Rejestracja: 2005-10-30, 09:51
Lokalizacja: Dąbrowa Tarnowska

Re: Routing procesow lokalnych

Post autor: matryc »

Po przeinstalowaniu systemu na nowy: Slackware-11 :mrgreen: Napisałem tablice routingu od nowa i wygląda to teraz tak:
"ip route show table main" skopiowane do dwóch tablic N11, N22
Do tego "ip rule add..." w odpowiedniej kolejności czyli najpierw wrzucam $IP_LOCAL do tablicy N22 potem "ip rule add fwmark 22 table N11"
A ma się to tak, że jak dodaje "ip rule add..." to idzie mi to na początek polityki routingu:
"ip rule show:"
0: from all lookup local
32748: from all fwmark 0x16 lookup N11
32749: from $IP_LOCAL lookup N22
...

Brama domyślna to łącze 1=N11
Oznaczam pakiety (www,ssh,poczta,itp.) i wrzucam w łącze 1=N11
I teraz pakiety gdzie źródłem jest serwer idą do tablicy main a tam bramą domyślną łącze 1-N11 oznaczone pakiety idą na łącze N=11, a nie oznaczone pakiety z sieci: $IP_LOCAL idą na łącze N=22 gdzie bramą jest łącze 2 :)
Wszystko działa jak chciałem!!
POZDRAWIAM
ODPOWIEDZ