Freesco, NND, CDN, EOS http://forum.freesco.pl./ |
|
iptables, iproute2, 2 łącza i problem z przekierowaniem port http://forum.freesco.pl./viewtopic.php?f=34&t=17716 |
Strona 1 z 1 |
Autor: | obi-wan [ poniedziałek, 1 czerwca 2009, 18:12 ] |
Tytuł: | iptables, iproute2, 2 łącza i problem z przekierowaniem port |
Witam. Mam problem z konfiguracją przekierowania portów przez iptables. Router ma 3 sieciówki, eth0 podpięte do LANu, eth1 i eth2 podpięte do dwóch niezależnych łącz internetowych. Problem polega na tym, że chcę przekierować port na obydwu łączach na jeden z kompów wewnątrz LANu. Stosując zwykłe przekierowanie z użyciem DNAT (bez podawania parametru -i, albo podając oba interfejsy w tym parametrze) działa na jednym łączu (tym które jest jako default w ip route) a na drugim już nie. nmap pokazuje że port jest "filtered". Przypuszczam że problem polega na tym, że pakiety wchodzą powiedzmy przez eth2, trafiają do hosta wewnątrz LANu, a ten odpowiadając, wysyła pakiety z IP docelowym ustawionym na adres z którego pakiet przyszedł, a przechodząc przez router wychodzą one łączem defaultowym, czyli w moim przypadki przez eth1. Dlatego eth1 przekierowanie działa ok, a na eth2 już nie. Nie wiem czy dobrze myślę, ale chyba musiałbym zrobić coś w rodzaju maskarady, tylko działającej jakby w drugą stronę, żeby pakiety opuszczały router tym interfejsem z którego nadeszły. Tylko jak to zrobić? |
Autor: | -MW- [ poniedziałek, 1 czerwca 2009, 20:39 ] |
Tytuł: | |
Cytuj: # droga powrotna z routera do netu
ip rule add prio 499 from $IPL2 table LACZE2 # droga powrotna z routera do netu ip rule add prio 500 from $IPL1 table LACZE1 kiedys mialem podobny problem i takie wpisy rozwiazaly wszystko. (traktowac jako przyklad a nie lekarstwo) |
Autor: | obi-wan [ poniedziałek, 1 czerwca 2009, 22:40 ] |
Tytuł: | |
OK. sprawdze na routerze i dam znać co i jak. edit: Wyskakuje błąd: Error: an inet prefix is expected rather than "table". |
Autor: | -MW- [ wtorek, 2 czerwca 2009, 14:43 ] |
Tytuł: | |
Cytuj: (traktowac jako przyklad a nie lekarstwo)
dopasuj do swoich regul, nr, nazwy tabel i ip. |
Autor: | obi-wan [ wtorek, 2 czerwca 2009, 18:46 ] |
Tytuł: | |
Rozumiem, że $IPL1 i $IPL2 to adresy IP łącz 1 i 2 (nie ich bram), a LACZE1 i LACZE2 to tabele dot. łącza 1 i łacza2. Jeśli tak, to po wprowadzeniu tego (nie wyskakują już żadne błędy) nic się nie zmienia. Dalej przekierowanie działa na jednym łączu a na drugim już nie :/. Poza tym wyświetlając ip rule widzę że już tam są regułki takie jak po wprowadzeniu tych Twoich pod nr 499 i 500, ale pod innymi numerami. |
Autor: | -MW- [ wtorek, 2 czerwca 2009, 19:44 ] |
Tytuł: | |
zakladam ze przekierowane do hosta na obu laczach masz prawidlowo dopisane ? Cytuj: iptables -I PREROUTING -t nat -i $ETH_L1 -d $IPL1 -p $Prot --dport $Pwej -j DNAT --to $IP_hosta:$Port_wyjscia
iptables -I FORWARD -t filter -p $Prot -d $IP_hosta --dport $Pwyjscia -j ACCEPT i klient korzysta z MASQUERADE. oraz reguly routingu z niejszymi numerami nie lapia ruchu hosta wczesniej niz wspomniane wyzej. |
Autor: | obi-wan [ wtorek, 2 czerwca 2009, 20:55 ] |
Tytuł: | |
Myślę, że tak. Generalnie cały mój iptables wygląda następująco: Cytuj: iptables -I FORWARD -p tcp -d 10.0.0.56 --dport 5900 -j ACCEPT iptables -I FORWARD -p udp -d 10.0.0.56 --dport 5900 -j ACCEPT iptables -t nat -A PREROUTING --protocol tcp --destination-port 5900 -j DNAT --to-destination 10.0.0.56:5900 iptables -t nat -A PREROUTING --protocol udp --destination-port 5900 -j DNAT --to-destination 10.0.0.56:5900 iptables -t nat -A POSTROUTING -o eth2 -d 0/0 -j SNAT --to $IP1 iptables -t nat -A POSTROUTING -o eth3 -d 0/0 -j SNAT --to $IP2 a iproute następująco: Cytuj: echo "Etap 1"
ip route replace $P1_NET dev $IF1 src $IP1 table T1 ip route replace default via $P1 table T1 ip route replace $P2_NET dev $IF2 src $IP2 table T2 ip route replace default via $P2 table T2 ip route replace $P3_NET dev $IF3 src $IP3 table T3 ip route replace default via $P3 table T3 echo "Etap 2" ip route replace $P1_NET dev $IF1 src $IP1 ip route replace $P2_NET dev $IF2 src $IP2 ip route replace $P3_NET dev $IF3 src $IP3 ip route replace default via $P3 echo "Etap 3" ip rule add from $IP1 table T1 ip rule add from $IP2 table T2 ip rule add from $IP3 table T3 #load balancing, parametrem weight mozemy ustawic ktore z laczy ma byc bardziej obciazone. echo "Etap 4" ip route replace default scope global nexthop via $P2 dev $IF2 weight 1 nexthop via $P3 dev $IF3 weight 1 #routing poloczen lokalnych serwera echo "Etap 5" ip route replace $P0_NET dev $IF0 table T1 ip route replace $P2_NET dev $IF2 table T1 ip route replace 127.0.0.0/8 dev lo table T1 ip route replace $P0_NET dev $IF0 table T2 ip route replace $P1_NET dev $IF1 table T2 ip route replace 127.0.0.0/8 dev lo table T2 ip route replace $P0_NET dev $IF0 table T3 ip route replace $P1_NET dev $IF1 table T3 ip route replace 127.0.0.0/8 dev lo table T3 #Odswiezanie tablicy routingu ip route flush cache for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done Gdzie eth2 i 3 to łącza do internetu a eth0 to lan (eth1 i jest niepodpięty). |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |