Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam.
mam w komputerze dwa interfejsy sieciowe: eth0 i ppp0 (eth0 stale ip, ppp0 zmienne)
chciałbym zrobić tak by apache2 działał tylko na eth0 a lighttpd na ppp0 (chodzi mi oczywiscie tylko o ruch wychodzacy.
tak więc w iptables dodałem mark na proces uzytkownika lighttpd:
iptables -A OUTPUT -t nat -p tcp -m owner --uid-owner 1002 -j MARK --set-mark 81
a nastepnie w tablicy routowania dodałem takie wpisy:
ip route add default dev ppp0 scope link table 81 ip rule add fwmark 81 table 81 ip route flush cache
niestety odpalajac w php curla na myip, wychodzi na to ze laczy mi sie przez interface eth0 a nie ppp0.
Ma ktoś pomysł co robię źle?
Offline
Chyba w samym iptables można to zrobić, masz przełączniki -i , -o.
Offline
a czy te przełączniki nie służą do dopasowania reguły dla in-interface i out-interface?
//edit
ok, wiem juz ze ten wpis:
iptables -A OUTPUT -t nat -p tcp -m owner --uid-owner 1002 -j MARK --set-mark 0x1111
jest ok.
ale wydaje mi sie ze nie dziala ten:
ip rule add fwmark 0x1111 table 81
bo gdy tablica 81 jest pusta powinno mi zwrocic komunikat no route to host, tym czasem on nadal jak gdyby nigdy nic korzysta sobie z eth0
Ostatnio edytowany przez Kudlaty (2011-03-25 15:37:48)
Offline
Czy w regułę markującą coś wpada, i czy przypadkiem markowanie nie powinno być wykonane w tablicy mangle?
Twój mark to jest 0x51 (zobacz iptables -t nat -nvL) i taki parametr użyj w poleceniu ip.
Ostatnio edytowany przez bobycob (2011-03-27 16:47:17)
Offline
0x1111/0xffffffff
wiec przy ip dobrze uzylem :)
markowanie dodalem teraz i do tablicy nat i mangle, ale nadal nie dziala
z tym ze raczej nie dziala ip route, poniewaz probowalem w iptables zamiast markowania dac DNAT --to <jakis adres ip> i dzialalo...
wiec wychodzi na to ze tylko ip rule nie dziala...
Offline
Więc w drugą stronę iproute nie zmienia adresu pakietu.
Jak sądzę lighttpd nie nasłuchuje na określonym adresie IP - jest to trudne skoro adres na ppp0 się zmienia - pewnie przy każdym zestawieniu tunelu - choć pewnie da się to jakoś rozwiązać.
Upewnij się jaką drogę wychodzi pakiet wysyłany przez lighttpd podejrzewam, że tak jak oczekujesz wysyłany jest za pomocą ppp0, jednak adres źródłowy jest inny. Jeśli tak pozostaje wykonać SNAT - co też może być problemem skoro adres IP dla ppp0 się zmienia :).
Dokładnie ten sam problem miałem gdy robiłem podział ruchu zależny od usługi na dwóch łączach DSL. Okazało się, że ruch szedł prawidłowo tylko należało jeszcze skorygować adres źródłowy za pomocą nat :). Różnica tylko taka, że przy DSL adresy się nie zmieniają.
Pomijam kwestię - czy koncentrator ppp pozwala na przesłanie pakietu z innym adresem źródłowym, jest to zależne od konfiguracji. Normalnie pozwala.
Ostatnio edytowany przez bobycob (2011-04-03 11:55:31)
Offline