Raspberry als Router

  • Hallo Maker,

    als eigentlich stiller Leser muss ich mich doch mal zu Wort melden, ich bin momentan ein bisschen in einer Sackgasse,

    ich will mein Raspberry als Datenlogger verwenden und habe ihm per Webstick eine Internetverbindugen eingerichtet.

    Der Raspberry fungiert als Client auf einem Multiclient OpenVPN Server. Das funktioniert auch alles soweit ich komm über den VPN auf den Webserver des Raspberry.

    Nun will ich aber hinter dem Raspberry ein Lokales Netzwerk aufbauen, Hardwaremäßig habe ich an die RJ45 Buchse vom Raspy einen POE Switch gehangen und will daran Netzwerkteilnehmer an den Raspberry anschließen. Der Raspberry soll diesen per dhcp eine ip zuweisen und das routing ins internet verwalten bzw das routing unteinander.

    Was ich bissher getan habe:

    /etc/network/interfaces

    Dann habe ich mir dnsmasq installiert und die /etc/dnsmasq.conf angepasst

    Code
    domain-needed
    bogus-priv
    interface=eth0
    dhcp-range=192.168.200.10,192.168.200.50,24h

    Und anschließend habe ich in /etc/sysctl.conf noch die Zeile:

    net.ipv4.ip_forward=1

    aktiviereen

    Wenn ich nun ein PC an den Switch stecke müsste ihm teoretisch ja eine IP andresse im besagten Bereich zugewiesen werden und ich müsste auf den Webserver des Raspberry zugreifen können? Aber das passiert leider nicht, ich bekomme nichtmal eine Ip per dhcp zugewiesen.

    Zudem müssen wahrscheinlich irgentwo noch die routen vom Webstick zu den Teilnehmern erstellt werden oder? Falls ja wo?


    Ich hoffe ich finde hier jemanden der verstehen kann was ich vorhab und mir eventuell den ein oder anderen Tipp gibt.:danke_ATDE:

    Beste Grüße

    resource exhaustion

  • Servus, ich bi zwar erst seit heute Mittag stiller Leser, aber ich meld mich auch mal zu Wort.

    Christian283, hast du es so wie geplant zum laufen gebracht? Ich denke mein Vorhaben geht in die selbe Richtung.

    Hab einen Pi mit Huawei E3372 LTE-Stick und möchte das Internet an über LAN mit DHCP weiterleiten.

    Der Stick funktioniert auf Anhieb, hat die IP 192.168.8.1, der Pi bekommt auf eth1 die 192.168.8.100. Demnach ist eth0 dann das integrierte LAN vom Pi.

    Aber so ganz verstehe ich das noch nicht wie man das richtig umsetzt. Erfahrungen mit Linux habe ich wenig.

    Nach Recherche wäre das mein Vorgehen:

    Console:

    sudo apt-get install isc-dhcp-server

    sudo nano /etc/default/isc-dhcp-server

    Folgende Zeile anpassen:

    INTERFACES="eth0"

    Console:

    sudo nano /etc/dhcp/dhcpd.conf

    Folgende Zeilen einfügen:

    authoritative;

    default-lease-time 86400;

    max-lease-time 604800;

    ping-check true;

    subnet 192.168.1.0 netmask 255.255.255.0 {    range 192.168.1.1 192.168.1.255;    option routers 192.168.1.0;    interface eth0;}

    Console:

    sudo nano /etc/sysctl.conf

    Folgende Zeile einkommentieren:

    net.ipv4.ip_forward=1

    Console:

    sudo -s

    echo 1 > /proc/sys/net/ipv4/ip_forward

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    service isc-dhcp-server start

    Ganz verstehe ich auch das nicht mit den unterschiedlichen IP-Bereichen nicht. Kann das so funktionieren? 192.168.8. vom Stick und 192.168.1 für LAN, oder sollten beide im selben Bereich sein?

    Ich denk ich sollt das LAN (eth0) vom Pi noch auf eine feste Adresse festlegen mit ...

    Console:

    sudo nano /etc/network/interfaces

    Folgende Zeilen einfügen:

    iface eth0 inet static

    address 192.168.1.0

    netmask 255.255.255.0

    gateway 192.168.8.1

    Was meint ihr dazu? Ich trau mich net stur drauf los zu tippen, ohne richtig zu wissen was ich tu :conf:

    So hab's mal probiert. Anstatt INTERFACES="eth0"machte ich INTERFACESv4="eth0", INTERFACESv6=""hatte ich so gelassen.

    Nach Eingabe von service isc-dhcp-server startbekomme ich die Meldung:

    Jof for isc-dhcp-server.service failed because the control process exited with error code.

    See "systemctl status isc-dhcp-server.service" and "journalctl -xe" for details.

    Neustart hatte ich for gemach. Mit ifconfigsehe ich nur noch lo, kein eth0 und eth1 mehr wie vorher.

    Wenn ich die Maus über das Netzwerksymbol in der Taskleiste fahre kommt in der Infobox: "Connection to dhcpd lost".

    Einmal editiert, zuletzt von OberQuaker (9. März 2018 um 10:26) aus folgendem Grund: Nachtrag

  • Ich hab herausgefunden, das statische IP's nicht mehr in /etc/network/interfaces vergeben werden, sondern in /etc/dhcpcd.conf.

    Ich lass die DHCP Funktionalität der Einfachheit erst mal weg. Dann hatte ich noch andere Anleitungen im Netz gefunden bezüglich den iptables.

    Hier mein geänderter Plan:

    IP-Adresse am Windows-PC, welcher am LAN vom Pi steckt, manuell vergeben:

    IP-Adresse: 192.168.1.11

    Subnetmaske: 255.255.255.0

    Standardgateway: 192.168.1.1

    IP-Adresse an eth0 vom Pi manuell vergeben in /etc/dhcpcd.conf:

    Code
    interface eth0
    static ip_address=192.168.1.1
    static routers=192.168.8.1
    static domain-name-servers=192.168.8.1

    In /etc/sysctl.conf Zeile einkommentieren:

    net.ipv4.ip_forward=1

    In der Console eingeben (sollte laut Anleitung als Script angelegt werden):

    Code
    sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

    Ergebnis für netstat -rn:

    Code
    Ziel            Router        Genmask            Flags        MSS    Fenster    irtt    Iface
    0.0.0.0        192.168.8.1    0.0.0.0            UG            0        0        0        eth0
    0.0.0.0        192.168.8.1    0.0.0.0            UG            0        0        0        eth1
    192.168.1.0    0.0.0.0        255.255.255.0       U            0        0        0        eth0
    192.168.8.0    0.0.0.0        255.255.255.0       U            0        0        0        eth1
    192.168.8.1    0.0.0.0        255.255.255.255    UH            0        0        0        eth0

    Ich denke da steht ein bischen zuviel drin, evtl. noch Blödsinn von vorherigen "Versuchen".

    Kann man das beheben? Komme so irgendwie nicht weiter.

    2 Mal editiert, zuletzt von OberQuaker (9. März 2018 um 16:43)

  • So, ich habe es nun hinbekommen. Hier mein Vorgehen für Raspbian Stretch.

    Ausgangslage: Huawei LTE Stick E3372, funktioniert auf Anhieb durch Plug&Play, IP 192.168.8.1, in Raspbian 192.168.8.100 an eth1.

    Weil ich mir nicht sicher bin, ob ich durch mein ganzes Herumprobieren was zerschossen habe, habe ich die iptables pauschal gelöscht:

    Code
    sudo iptables -F
    sudo iptables -X
    sudo iptables -t nat -F
    sudo iptables -t nat -X
    sudo iptables -t mangle -F
    sudo iptables -t mangle -X
    sudo iptables -P INPUT ACCEPT
    sudo iptables -P FORWARD ACCEPT
    sudo iptables -P OUTPUT ACCEPT

    1. DHCP für LAN (eth0) einrichten (nach dieser Anleitung)

    Code
    sudo apt-get install dnsmasq
    sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf_alt
    sudo nano /etc/dnsmasq.conf

    Folgende Zeilen eintragen:

    Testen:

    Code
    dnsmasq --test -C /etc/dnsmasq.conf

    DNSMASQ neu starten:

    Code
    sudo systemctl restart dnsmasq

    DNSMASQ beim Systemstart starten:

    Code
    sudo systemctl enable dnsmasq

    2. Feste IP-Adresse für LAN (eth0) vergeben

    Code
    sudo nano /etc/dhcpcd.conf

    Folgende Zeilen eintragen:

    Code
    interface eth0
    static ip_address=192.168.1.1

    3. IP-Forwarding aktivieren

    Code
    sudo nano /etc/sysctl.conf

    Folgende Zeile einkommentieren:

    Code
    net.ipv4.ip_forward=1

    4. Autostartscript für iptables (Postrouting) anlegen

    Code
    sudo nano /usr/local/bin/LTE_Stick_Postrouting.sh

    Folgende Zeilen eintragen:

    Bash
    #!/bin/bash
    sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

    Script ausführbar machen:

    Code
    sudo chmod +x /usr/local/bin/LTE_Stick_Postrouting.sh

    Script zu Autostart hinzufügen:

    Code
    sudo nano /etc/rc.local

    Folgende Zeile einfügen:

    Code
    /usr/local/bin/LTE_Stick_Postrouting.sh

    So, das war's. Evtl. kann man das eine oder andere eleganter oder schöner lösen, aber so funktioniert es. Das reicht mir für den Anfang.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!