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