Καταμπερδεμένος με τα iptables

Antonis Christofides anthony at itia.ntua.gr
Wed Feb 15 18:42:46 EET 2012


Έχω ένα σέρβερ (εφεξής host) με IP 192.168.1.199. Μέσα του τρέχει ένα
VM (openvz container, εφεξής guest) με IP 10.1.3.1, ο οποίος τρέχει
μια postgresql που ακούει στο port 5432. Το nat είναι ρυθμισμένο και
δουλεύει καλά, o guest επικοινωνεί με τον έξω κόσμο, και έχω φτιάξει
και το εξής iptables rule στο host (table nat) για να μπορεί ο έξω
κόσμος να μιλήσει με το guest:

-A PREROUTING -p tcp -m multiport --dports 80,443,5432 -j DNAT
--to-destination 10.1.3.1

Έχουμε λοιπόν (έστω "other" ένας άλλος υπολογιστής στο ίδιο δίκτυο).

Από other: nc -vn 192.168.1.199 5432     => OK
Από guest: nc -vn 127.0.0.1     5432     => OK
Από guest: nc -vn 10.1.3.1      5432     => OK
Από guest: nc -vn 192.168.1.199 5432     => OK
Από host:  nc -vn 10.1.3.1      5432     => OK

Από host:  nc -vn 192.168.1.199 5432     => Connection refused
Από host:  nc -vn 127.0.0.1     5432     => Connection refused

Με άλλα λόγια, ο host δεν κάνει port forwarding όταν το connection
request γίνεται από τον εαυτό του. Τι έχω καταλάβει λάθος;

guest & host τρέχουν Debian 6.0 - Linux 2.6.32-5-openvz-amd64.


More information about the Linux-greek-users mailing list