IP-Forwarding funktioniert nicht

Hinweis: In dem Thema IP-Forwarding funktioniert nicht gibt es 1 Antwort.
  • Moin


    ich habe hier ein (vielleicht etwas komplizierten) Netzaufbau, aber das kann ich im Moment nicht ändern.


    Mein server (openSUSE) läuft auf einem ESX-Server und hat zwei Netzwerkkarten.

    eth0 hat statisch die 192.168.0.20 und ist über die 192.168.0.254 mit dem Internet verbunden.

    eth1 hat statisch die 192.168.2.1 und dient für andere Rechner als DNS, DHCP, Server.


    Am server funktioniert auch alles ohne Probleme.


    Im selben Netz auf dem ESX-Server ist ein SLES15.2 Server installiert.

    Dieser hat die fixe IP 192.168.2.20 (statisch am DHCP vergeben) und soll über die 192.168.2.1 -> 192.168.0.20 -> 192.168.0.254 ins Internet.


    Auf dem server habe ich (gemäss dieser Anleitung) die <span style="font-size: 10pt;"><span style="color:#0000CD;">/proc/sys/net/ipv4/ip_forward</span></span> (inhalt 1) und die <span style="color:#0000CD;">/etc/sysctl.conf </span>(inhalt net.ipv4.ip_forward = 1) bearbeitet.<br>

    Imho sollte das reichen, tuts aber nicht. Daraufhin habe ich <a href="https://www.opensuse-forum.de/thread/64034-opensuse-15-2-und-eine-statische-ip/">diesen Thread gefunden</a> und die /etc/sysconfig/network/ifroute-eth0 (inhalt default 192.168.100.254 - eth0) auch angepasst.


    Wenn ich nun ein traceroute vom SLES mache

    Code
    traceroute ct.de
    traceroute to ct.de (193.99.144.80), 30 hops max, 60 byte packets
     1  192.168.2.1 (192.168.2.1)  0.198 ms  0.179 ms  0.174 ms
     2  * * *
     3  * * *
     4  * * *


    Was fehlt denn noch?

    Oder habe ich noch einen Denkfehler drin?

    Die .254 müsste doch richtig sein. Ist vom server auch erreichbar.


    Firewall am server ist im moment ausgeschalten. Damit es nicht irgendwas blockt und ich noch mehr suchen muss

    Ach so

    am server



    Code
    ip r
    default via 192.168.100.254 dev eth0 proto static metric 100 
    default via 192.168.100.20 dev eth1 proto static metric 20101 
    192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.1 metric 101 
    192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.20 metric 100 
    192.168.100.20 dev eth1 proto static scope link metric 20101


    am rhel

    Code
    ip r
    default via 192.168.2.1 dev eth0 proto dhcp metric 20100 
    192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.10 metric 100

    Einmal editiert, zuletzt von logg.sar ()

    Für den Inhalt des Beitrages 284019 haftet ausdrücklich der jeweilige Autor: logg.sar

  • Nee, das reicht nicht. Und ich denke, im Post hast du noch einen Fehler: im Text redest du von 192.168.0.x, in den Ausgaben erscheint aber 192.168.100.x. Außerdem vermute ich, dass die 192.168.100.254 nicht direkt mit dem Internet verbunden ist, sondern dass das ein NAT Router ist. Aber unabhängig davon: das IP Forwarding und deine Route sind nicht ausreichend. Was passiert beim Traceroute an deinem "Zweitrechner":

    • Ein IP Paket wird erzeugt. Source IP 192.168.2.20, Destination IP 193.99.144.80
    • Auf Grund der Default Route wird dieses Paket an 192.168.2.1 weitergereicht, also zum Server. Das geschieht, indem die MAC Adresse von 192.168.2.1 ermittelt wird und diese als Ethernet Destination in das Paket geschrieben wird.
    • Dort wird es auf Grund des eingeschalteten IP Forwardings erneut analysiert, die Routing Tabelle wird konsultiert
    • Diese hat wieder eine Default Route nach 192.168.100.254, also geht das Paket über das 192.168.100.20er Interface in diese Richtung raus, ebenfalls wieder über MAC Adress Lookup.
    • Das ist nun dein NAT Router. Der ersetzt die Source IP durch seine eigene öffentliche Internet-IP und schickt das Paket ins Internet. Er merkt sich dabei, wie die Source IP denn war.
    • Das Paket get vermutlich erfolgreich durch alle Internet-Router zum Ziel, und die Antwort geht auch wieder zu deinem NAT Router. Bis hierher alles paletti!
    • Der ersetzt die Zieladresse nun wieder durch die ursprüngliche Source Adresse, also die 192.168.2.20
    • Jetzt macht dein NAT Router ein MAC Lookup (ARP Request), um die MAC Adresse zu bestimmen, die zu 192.168.2.20 gehört. Aber leider gibt es auf diesem Netzwerk niemand mit dieser Adresse, also antwortet keiner auf den ARP Request.
    • Das Paket wird verworfen.

    Wenn du so ein Setup machen willst, dann funktioniert das nur vernünftig, wenn du an deinem Server auch ein NAT einrichtest. Dann werden alle Adressen korrekt übersetzt. Wie das geht, soll dir aber jemand anderes erklären.