[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Spec od IPTABLES potrzebny :)



Mam taki problem i nikuta nie moge sobie z nim dac rady....

Debian 3.1, w nim dwa interfejsy - eth0 od strony wan i eth1 na ktorym chodzi maskarada dla sieci lokalnej. Maskarada jest zapuszczona ze standardowego debianowego ipmasq, wszystko gra i buczy. Paru klientow jednak zazyczylo sobie numery z klasy publicznej. Tak wiec idac po najprostrzej linii oporu chcialem dorobic po prostu alias do eth1 ktory obslugiwalby owe publiczne numery.

eth1      Link encap:Ethernet  HWaddr 00:30:4F:1B:5C:F7
         inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         Interrupt:10 Base address:0xe800

eth1:1    Link encap:Ethernet  HWaddr 00:30:4F:1B:5C:F7
inet addr:213.155.XXX.129 Bcast:213.155.XXX.255 Mask:255.255.255.128
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         Interrupt:10 Base address:0xe800

Problem polega jednak na tym, ze nie moge pogodzic maskarady i aliasu na jednym interfejsie. W momencie kiedy uruchamiaja sie skrypty z ipmasq, alias eth1:1 przestaje odpowiadac na pingi z sieci. Tcpdump pokazuje, ze icmp requesty caly czas dolatuja na alias. Jednak alias nie raczy juz na nie odpowiadac. W momencie zatrzymania ipmasq - eth1:1 elegancko znow zaczyna dogadywac sie ze swiatem.

Podejrzewam, ze najpraqwdopodobniej ktorys z fyfnastu skryptow ipmasq blokuje wszystko co nie jest podstawowym adresem maskowanego interfejsu lub cos w ten desen. Albo moze wrecz na sile probuje trzaskac SNATa rowniez i na tym aliasie?

Jesli tak to czy ktos sie moze orientuje w ktorym skrypcie tego szukac? Gdzie taka blokade mozna zdjac w skryptach ipmasq?


Wyglada na to, ze faktycznie, skrypty ipmasq SNATuja wszystko jak leci.
Rowiazanie wiec mojego problemu winno byc wiec banalnie proste. Wystarczy prawdopodobnie usunac regule SNATu dla klasy numerowej aliasu eth1:1. Ale tutaj pojawia sie problem bo nie moge tego dranstwa usunac...

Linijka w skrypcie ktora ustawia ten SNAT wyglada nastepujaco:

IPTABLES -t nat -A POSTROUTING -o ${j%%:*} -s $IPOFIF/$NMOFIF -j SNAT --to 212.14.XXX.205

W -t nat wyglada to potem tak:

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
target     prot opt in     out     source      destination
SNAT all -- any eth0 localnet/24 anywhere to:212.14.XXX.205 SNAT all -- any eth0 213.155.XXX.128/25 anywhere to:212.14.XXX.205

Wydawalo mi sie wiec, ze linijka kasujaca ta niepozadana regulke winna wygladac jak nizej:

#: iptables -t nat -D POSTROUTING -o eth0 -s 213.155.XXX.128/25 -j SNAT --to 212.14.XXX.205

ale niestety nie dziala... :(
#: iptables: No chain/target/match by that name

Czy ktos biegly w iptables moglby mi podpowiedziec jak powinna ona w takim razie wygladac?


Z gory dzieki za sugestie!


Reply to: