ich habe ein kleines Problem mit DNAT.
Auf meinem Server mit einer einzigen öffentlichen IP-Adresse laufen mehrere virtuelle KVM-Instanzen mit privaten IP-Adressen. Auf dem Hostsystem habe ich DNAT eingerichtet, um die Dienste der virtuellen Maschinen auf der öffentlichen IP-Adresse anzubieten. Zusätzlich läuft noch IP-Masquerading, damit die VMs ins Internet kommen. Hier die entsprechenden Regeln beispielhaft für nur eine VM (172.16.1.1), auf der ein SMTP-Daemon läuft.:
Code: Select all
# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 2386 packets, 144K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 <public-ip> tcp dpt:25 to:172.16.1.1:25
Chain POSTROUTING (policy ACCEPT 2979 packets, 208K bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * * 172.16.1.0/24 !172.16.1.0/24
Chain OUTPUT (policy ACCEPT 2779 packets, 197K bytes)
pkts bytes target prot opt in out source destination
Code: Select all
Chain OUTPUT (policy ACCEPT 2779 packets, 197K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * lo <public-ip> <public-ip> tcp dpt:25 to:172.16.1.101:25
Code: Select all
Chain OUTPUT (policy ACCEPT 2779 packets, 197K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 172.16.1.101 <public-ip> tcp dpt:25 to:172.16.1.101:25