Richtiges Routing im Netzwerk

  • Das richtige Rounting im Netzwerk


    Immer wieder kommt es zu Threads wo der PI als AP oder als VPN Server verwendet werden soll.
    Immer wieder die selben Fehler.


    Hier soll nun mal kurz erklärt werden wie das Netzwerk funktioniert und wie Pakete ihren Weg finden.



    Angenommen wird folgendes Zenario :
    Ein bestehendes Heimnetz mit einer Fritzbox, Standart IP 192.168.178.1.
    Einen PI der im Fritzbox Netzwerk erreichbar ist, hier mit der statischen IP 192.168.178.20


    Jetzt soll aus dem PI ein AP werden welcher mittels hostapd das Netzwerk 10.10.10.0/24 verteilt. Dazu bekommt das WLAN Interface des PI eine statische IP 10.10.10.1
    Die Clients in dem PI Wlan die Adressen 10.10.10.2 - 254


    Und nun gehen die Probleme los :


    1. Ich komme von meinem Notebook ( 10.10.10.2 ) nicht in das Internet.
    2. Ich kann von 10.10.10.2 auf 192.168.178.22 zugreifen komme aber nicht ins Internet



    OBERSTE REGEL IM NETZWERK :
    Es gibt nur ein Default Gateway.
    Das Default Gateway wird auch als "Gateway of last resort" bezeichnet, also der letzte Versuch bevor ich aufgebe.
    Warum, erklären wir gleich.


    Problem 1:
    Auf dem Notebook wollen wir das Forum öffnen.
    Es geht nicht.
    Schauen wir uns an welchen Weg die Pakete nehmen müssen :

    Code
    10.10.10.2
    10.10.10.1
    192.168.178.20
    192.168.178.1
    .... ( INTERNET)
    104.28.31.119


    10.10.10.2 kennt die Zieladresse 104.28.31.119 nicht, die steht nicht in seinen Routingtabellen.
    Erster Fehler: Das routing ist nicht aktiviert, das Paket wird verworfen
    Kein Fehler: 10.10.10.1 kennt die Zieladresse 104.28.31.119 nicht, die steht nicht in seinen Routingtabellen. Er hat aber ein Default Gateway ( Defaulkt Route ) konfiguriert. Also nimmt er das Paket und schickt es via eth0 zu 192.168.178.1


    192.168.178.1 kennt die Zieladresse 104.28.31.119 nicht, die steht nicht in seinen Routingtabellen. Er hat aber ein Default Gateway ( Defaulkt Route ) konfiguriert. Also nimmt er das Paket und schickt es zu dem Gateway des Provider.


    Von hier aus nimmt es seinen Lauf im Internet und das Paket erreicht das Forum.
    jetzt macht sich das Paket auf den Rückweg.
    Es kommt an der Fritzbox an und sagt :
    Hey, ich komme von 104.28.31.119 und will zu 10.10.10.2
    Die Fritzbox kratzt sich kurz am Kopf schaut in ihre Routingtabelle und
    Zweiter Fehler: findet keine Route zu 10.10.10.0/24
    kein Fehler: findet eine Route in der steht : 10.10.100/24 findest du hinter 192.168.178.20


    Sie schickt das Paket nun an die 192.168.178.20.


    Das Paket kommt nun am PI an. der schaut in seine Routingtabelle und sieht :
    Ah 10.10.10.2, das gehört zum 10.10.10.0, da hab ich ein bein drin, ich schick das von eth0 zu wlan0
    wlan0 kennt die Zieladresse und stellt das Paket nun zu.


    Genau so verhält es sich wenn der PC 192.168.178.21 auf das Notebook 10.10.10.2 zugreifen möchte.



    Das Paket wandert zum Gateway, die Fritzbox schaut in Ihre Routingtabelle.
    Fehler : Die Fritzbox hat keinen Eintrag für das 10.10.10.0, sie schickt das Paket also an ihr Default Gateway, den Router des ISP. Der sieht das es eine Private Adresse ist und verwirft das Paket.
    Kein Fehler Die Fritzbox findet einen Eintrag in der Routingtabelle und schickt das Paket an die dort angegebene Zieladresse 192.168.178.20.


    Das Paket landet nun auf dem PI an eth0
    Dort geht es wieder los, blick in Routingtabelle.
    Treffer ?
    JA Das Paket geht von eth0 an wlan0 ( 10.10.10.1 )
    Und jetzt kommt der tödliche Fehler :


    NEIN Das Paket geht an das default Gatway ( 192.168.178.1 ), kommt da an,
    die Fritzbox schaut in Ihre Routingtabelle.
    Kein Fehler Die Fritzbox findet einen Eintrag in der Routingtabelle und schickt das Paket an die dort angegebene Zieladresse 192.168.178.20.
    Das geht jetzt solange hin und her bis der TTL abgelaufen ist.
    PI->FB->PI->FB->PI->FB->PI->FB->PI->FB->PI->FB->PI->FB->PI->FB->PI->FB->PI->FB



    Das ganze wird durch NAT, was die FB zum Internet hin macht, etwas komplexer, ändert aber erst mal nix an der Problematik.


    Ich hoffe das war verständlich und hilft Fehler zu beseitigen.
    Wer Rechtschreibfehler findet darf sie behalten.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Edited once, last by Der_Imperator ().


  • Das richtige Rounting im Netzwerk
    ::::
    Ich hoffe das war verständlich und hilft Fehler zu beseitigen.


    Ja, das war es :thumbs1: Ich habe das jetzt "logisch" verstanden, mir ist jetzt klar, wie das sein müsste, aber im Moment haperts bei mir leider an der Umsetzung. :s


    Meine Vorgeschichte:
    Ich nutze bereits seit mehreren Jahren zuhause OpenVPN, um via Tunnel von aussen in mein heimisches Netz zu kommen. Das hat auch bisher unter Windows immer hervorragend funktioniert. Aber wenn ich ehrlich bin, so recht hatte ich bisher nicht verstanden, warum das überhaupt funktioniert. Mir ist das allerdings jetzt mit Deiner Erklärung ein wenig klarer geworden. Nur jetzt nach meiner Umstellung auf Linux funktionierts dummerweise nur noch teilweise. Und nach Deinen Erläuterungen glaube ich zu verstehen, wie es sein müsste, weiss aber nicht, wie ich das umsetzen könnte.


    So sieht derzeit meine Konstellation aus



    Mein Problem ist, ich komme einwandfrei von draußen auf meinen Fileserver (10.10.10.2), aber leider auf kein anderes Gerät, wie z.B. ein anderer PC oder die heimischen Web-Cams. Und insbesondere meine beiden Web-Cam's würde ich gerne von ausserhalb sehen. Im Moment weiss ich nicht, wie und wo ich die Route setzen müsste, damit das klappt.


    In meiner Fritzbox ist eine "statische IP4-Route" eingetragen, und zwar 10.10.20.0 zum OpenVPN-Gateway-PC 10.10.10.2. Das heisst, aller Trafic (aller Roadwarrior-Clients) kommt auch sauber im OpenVPN-Dienst auf dem Server an.


    Auf dem Server steht in der OpenVPN-Config der Befehl

    Code
    push "route 10.10.10.0 255.255.255.0"

    Ich hätte jetzt gedacht, dass der Traffic damit auch ins Netz weitergeleitet wird. Unter Windows war das so, allerdings hat dieser Befehl nur mit Admin-Rechten funktioniert. Ich nehme mal an, dass das jetzt auf meinem Raspi das gleiche ist und das es mangels Rechte nicht funktioniert. Das heisst, ich müsste irgendwo im System jetzt eine passende Route eintragen, die den "push" ersetzt. Tja, und da komme ich leider nicht mehr weiter. Wie und wo müsste ich denn da eine Route setzen?


    Ich hoffe, dass ich mich mit meinem Problem hier einklinken darf.... denn ich denke, dass passt ja eigentlich vollständig zum Tutorial.


    Gruß, Thomas

    Edited once, last by ThomasL ().

  • Hast du auf dem PI das Routing aktiviert ?
    nano /etc/sysctl.conf:


    Code
    net.ipv4.ip_forward = 1


    Dann schau mal ob du in der Client und Sevrer Config

    Code
    script-security 2


    drin hast.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Edited once, last by Der_Imperator ().

  • Moin


    Hast du auf dem PI das Routing aktiviert? nano /etc/sysctl.conf:

    Code
    net.ipv4.ip_forward = 1


    Manchmal ist das echt bekloppt.... oder ich sollte besser sagen, manchmal ist man echt bekloppt... :no_sad: Unter Windows hatte ich mir eine kleine eigene Doku geschrieben und da steht natürlich drin "IP-Forwarding erlauben". Warum ich jetzt nicht auf die Idee gekommen bin, dass das unter Linux genauso funktionieren könnte, weiss ich auch nicht :s


    ip-forward war jedenfalls die Lösung. Jetzt funktioniert alles, sogar das VPN-Surfen über meinen kleinen Pi, wenn ich mich irgendwo in EU rumtreibe.... :D


    Danke! :thumbs1:


    Ein schönes Wochenende, Thomas

    Edited once, last by ThomasL ().

  • Wie hast Du denn die iptables auf dem Raspi gesetzt?
    Ich habe ähnliches aufgebaut. Mein Router ist eine Fritzbox 7270. Auf dem Raspi habe ich auf NAT verzichtet, da sonst die SIP-Verbindung von dem Roadwarrier über openVPN zur Fritzbox nicht funktioniert. iptables habe ich nach dieser Anleitung gesetzt: https://community.openvpn.net/…n/wiki/BridgingAndRouting Abschnitt "Using routing and OpenVPN not running on the default gateway".
    Der Roadwarrier kann sich auf dem SIP-Registrar der Fritzbox einloggen und das Telefonieren funktioniert.
    Da ich aber sämtlichen Internetverkehr vom Roadwarrier über den Tunnel schicke, sollen auch Internetzugriffe darüber laufen. Und da macht die Kindersicherung der Fritzbox zu. Wie bekomme ich die Pakete über die Kindersicherung hinweg. Im Kindersicherungsmenü ist der Roadwarrier natürlich mit seiner "fremden" IP nicht aufgelistet.


    Marcus

  • Die "Fremde IP" sollte im Netzwerk Menü der Fritzbox auftauchen.
    Dort solltest du für diese IP die Kindersicherung deaktivieren können.


    Ich mache Split-Tunneling, habe also das Problem nicht.
    Auch ist mein Netfilter nur als Firewall konfiguriert und hält sich sonst aus dem Routing raus.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.