wiedsche
Goto Top

NAT mit IPtables und Antwort über falsche IP

Hallo,

ich habe einen Server mit mehren öffentlichen IP-Adressen. Eine IP-Adresse ist für den Server selbst, zwei weitere IP-Adressen werden für an ein interenes Netzwerk angeschlossene Server per IPtables "vergeben", so dass diese auch öffentliche IP-Adressen haben. Kurz:

public-server: 172.16.186.1 (auf diesem ist NAT eingerichtet)
mailserver: 172.16.186.128 -> 87.104.x.y
webserver: 172.16.186.129 -> 87.104.a.b

Das untenstehende Skript übernimmt das NAT. Soweit auch alles wunderbar. Die inneren Server sind erreichbar und können auch nach außen "funken"... Das Problem ist folgendes:

Auf einem internen Rechner (172.16.186.128) ist ein SMTP-Mailserver installiert (exim). Kontaktiert man ihn über die öffentliche IP von außerhalb funktioniert alles problemlos. Kontaktiert aber ein anderer Server im internen Netzwerk (172.16.186.129) den Mailserver, so gibt es Probleme. Ich denke es kommt durch die falsche Antwort-Adresse, denn diese ist nicht die öffentliche, sondern die interne. Ein Aufruf von PING zeigt dieses Verhalten ebenfalls:

    PING mailserver.mynetwork.net (87.104.x.y) 56(84) bytes of data.
    64 bytes from 172.16.186.128: icmp_seq=1 ttl=64 time=1.81 ms


Im normalfall sollte die Antwort von 87.104.x.y kommen ... kommt sie aber nicht, sondern von 172.16.186.128.

Was kann ich unternehmen, dass die Anwort von der öffentlichen IP kommt und nicht von der privaten? Fehlt irgendwo ein NAT-Eintrag? Oder setze ich an der ganz falschen Stelle an?

Vielen Dank für Hilfe!


NAT-Skript:

    #!/bin/bash
    IPTABLES=/sbin/iptables
    IFCONFIG=/sbin/ifconfig
    GATEWY=172.16.186.1

    IPVM01=172.16.186.128
    IPRM01=87.104.x.y

    IPVM02=172.16.186.129
    IPRM02=87.104.a.b

    $IFCONFIG eth0:1 $IPRM01 netmask 255.255.255.255 broadcast $IPRM01 up
    $IFCONFIG eth0:2 $IPRM02 netmask 255.255.255.255 broadcast $IPRM02 up

    #nat
    $IPTABLES -F
    $IPTABLES -t nat -F
    $IPTABLES -X

    #activate ip_forward
    echo "1"  > /proc/sys/net/ipv4/ip_forward  

    #1
    $IPTABLES -t nat -A POSTROUTING -o eth0 -s $IPVM01 -j SNAT --to-source $IPRM01
    $IPTABLES -t nat -A PREROUTING -d $IPRM01 -j DNAT --to-destination $IPVM01
    $IPTABLES -t nat -A OUTPUT -d $IPRM01 -j DNAT --to-destination $IPVM01

    #2
    $IPTABLES -t nat -A POSTROUTING -o eth0 -s $IPVM02 -j SNAT --to-source $IPRM02
    $IPTABLES -t nat -A PREROUTING -d $IPRM02 -j DNAT --to-destination $IPVM02
    $IPTABLES -t nat -A OUTPUT -d $IPRM02 -j DNAT --to-destination $IPVM02



/etc/network/interfaces vom Mailserver:

    auto eth0
    iface eth0 inet static
      address 172.16.186.128
      network 172.16.186.0
      netmask 255.255.255.0
      dns-nameservers 172.16.186.1
      gateway 172.16.186.1

Content-ID: 98567

Url: https://administrator.de/contentid/98567

Ausgedruckt am: 13.11.2024 um 06:11 Uhr