Wireguard "Client" mit 2 Netzwerkkarten - Netzwerk erweitern

  • Hallo

    ich habe folgendes Projekt. Ich möchte mein privates Netzwerk per Wireguard quasi erweitern und dafür einen Raspi mit zwei Netzwerkschnittstellen nutzen. Der Grund ist ich muss aufgrund eines etwas störrischen Fernsehers das Ziel Netz über einen eigenen Switch/Netzwerk trennen. Die Implementierung des Netzwerks ist im TV völlig buggy und fragt, egal was ich einstelle, immer den DHCP nach dem Weg ins Internet und ich will nicht nur ein paar Filme von meinem NAS darauf sehen sondern auch Mediatheken mit einer Deutschen IP benutzen.

    Also ich habe einen Raspi mit zwei Physikalischen Netzwerkschnittstellen (eth0 [eingebaut]) und (eth1 [USB to LAN]).

    Mein Wirequard-Server (Ja ich weiß echte Server gibts da eigentlich nicht) läuft bereits und ich kann z.B. mein Handy damit verbinden.

    Ich habe schon etwas herumgesucht und Anleitungen gefunden, wie man zwei (oder mehr) Netze miteinander verbinden, was mir aber nicht so recht weiterhilft. Ich weiß auch das Wireguard nicht dafür ausgelegt ist mit zwei Netzwerkschnittstellen umzugehen.

    Meiner Idee/Meinung/Vorstellung nach kann man das lösen in dem man die Routing-Regeln so umbiegt das alles was im Raspi an eth1 geht, durch den Wireguard Tunnel geschickt wird. Nur übersteigt das mein können.

    Mein jetziger Lösungsweg wäre

    1. Auf dem Client Raspi eth1 auf eine feste IP binden ( hier 192.168.1.110) [da es hier ja keinen DHCP gibt und der Raspi 24/7 laufen soll]
    2. Client Config-Datei auf dem Wireguard Server erzeugen (benutze wg-easy)
    3. In der Config-Datei die Zeilen PostUp & PostDown einfügen und bearbeiten......

    und ab hier weiß ich nicht mehr so recht weiter.

    Ich habe mal ein Beispiel-Bild davon gezeichnet wie ich mir das "Vorstelle".... ich hoffe das macht es etwas verständlicher.

    Bin ich mit der Idee auf dem richtigen Weg und ist das überhaupt möglich oder verrenne ich mich hier total und könnt ihr mir dabei helfen?

    Wäre sehr Dankbar wenn mir dabei jemand helfen könnte oder ein paar Tipps hätte.

    Grüße und schon mal DANKE

    Phil

    P.S. Die IP-Adressen in dem Bild entsprechen nur grob meiner realen Aufteilung der Wireguard-1, NAS und DOCKER-Server haben in meinem Netz feste IPs, der Rest wird von meinem DHCP vergeben. Und das ich den gleichen Adressraum auch für die Erweiterung (Wireguard-2 -> eth1 und dahinter) nutzen will, liegt an der Idee das mein DHCP aus dem 192.168.1.X Netz die Adressverteilung übernehmen könnte.

  • Wireguard "Client" mit 2 Netzwerkkarten - Netzwerk erweitern? Schau mal ob du hier fündig wirst!

  • Mein jetziger Lösungsweg wäre

    1. Auf dem Client Raspi eth1 auf eine feste IP binden ( hier 192.168.1.110) [da es hier ja keinen DHCP gibt und der Raspi 24/7 laufen soll]
    2. Client Config-Datei auf dem Wireguard Server erzeugen (benutze wg-easy)
    3. In der Config-Datei die Zeilen PostUp & PostDown einfügen und bearbeiten......

    und ab hier weiß ich nicht mehr so recht weiter.

    Welches OS hat PC1 (am WG-Client)?
    D. h. Du hast noch keine Verbindung zwischen WG-Server und WG-Client, oder?
    wg-easy brauchst Du nicht. Was Du brauchst ist, die Kommandozeile einen Texteditor (z. B. nano) und Kenntnisse über systemd-networkd.


    EDIT:

    Display Spoiler
  • Welches OS hat PC1 (am WG-Client)?

    Windows 10

    D. h. Du hast noch keine Verbindung zwischen WG-Server und WG-Client, oder?

    Doch über die Router(DSL-Modems)

    wg-easy brauchst Du nicht. Was Du brauchst ist, die Kommandozeile einen Texteditor (z. B. nano) und Kenntnisse über systemd-networkd.

    Ja hast du im Prinzip recht, wg-easy benutzt weil das eine so schöne Weboberfläche hat von der ich die Client-Config per QR-Code in mein Handy bekomme. Mit Nano komme ich zurecht. Systemd-networkd weiß ich was es tut, würde ich mich tiefer einlesen, wenn ich weiß wonach ich suche.


    Habe die Zeichung noch mal überarbeitet (wollte die PCs durchnummerieren...vergessen Sorry).

    Also ich habe einen funktionierenden Wirequard Server (Wireguard-1), mit dem ich z.B. mein Handy verbinden kann, das dann mein NAS sehen kann und auch so ins Internet kommt.

    Was ich jetzt möchte ich einen 2 "Client" Wirequard Raspi der alles was in eth1 aufschlägt, verpackt und nach Wireguard-1 verschickt.


    P.S. Danke an RIP444

  • Doch über die Router(DSL-Modems)

    Was ich jetzt möchte ich einen 2 "Client" Wirequard Raspi der alles was in eth1 aufschlägt, verpackt und nach Wireguard-1 verschickt.

    Wie sind jetzt auf deinem WG-Client (wenn dieser per WG mit dem WG-Server verbunden ist), die Ausgaben von:

    Code
    ip a
    ip r g 192.168.1.102

    ? Evtl. einen USB-Stick mit Debian-Live (statt Windows) für den PC1 erstellen.

  • sudo wg show

    ip a

    ip r g 192.168.1.106

    Code
    magier@Wireguard-2:~ $ ip r g 192.168.1.106
    192.168.1.106 dev eth1 src 192.168.1.110 uid 1000
        cache

    Ist es das was interessant ist?

    Den PC hinter Wireguard-2 gibt es so noch nicht. Also es gibt ihn aber zur Zeit ist er einfach an ohne Wireguard-2 an den Router angeschlossen.

    MfG und DANKE!!!!!!!

  • Noch Zusatz Info

    Code
    magier@Wireguard-2:~ $ ping -I wg0 192.168.1.106
    PING 192.168.1.106 (192.168.1.106) from 10.8.0.6 wg0: 56(84) bytes of data.
    64 bytes from 192.168.1.106: icmp_seq=1 ttl=63 time=2.87 ms
    64 bytes from 192.168.1.106: icmp_seq=2 ttl=63 time=2.73 ms
    ^C
    --- 192.168.1.106 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 2.731/2.800/2.870/0.069 ms
  • Noch Zusatz Info

    Code
    magier@Wireguard-2:~ $ ping -I wg0 192.168.1.106
    PING 192.168.1.106 (192.168.1.106) from 10.8.0.6 wg0: 56(84) bytes of data.
    64 bytes from 192.168.1.106: icmp_seq=1 ttl=63 time=2.87 ms
    64 bytes from 192.168.1.106: icmp_seq=2 ttl=63 time=2.73 ms
    ^C
    --- 192.168.1.106 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 2.731/2.800/2.870/0.069 ms

    Auf deinem Bild gibt es kein Gerät mit der IP 192.168.1.106, Auf deinem Bild hat das eth0-Interface vom WG-Client, eine andere IP. Poste mal vom WG-Client auch die Ausgabe von:

    Code
    ip r
  • Auf deinem Bild gibt es kein Gerät mit der IP 192.168.1.106

    192.168.1.102 ist mein Backup NAS, das ist gerade Offline. 192.168.1.102 ist aber = 192.168.1.106, also im selben Netz/Lokation.

    Auf deinem Bild hat das eth0-Interface vom WG-Client, eine andere IP. Poste mal vom WG-Client auch die Ausgabe von

    Das ist weil ich das Setup noch bei mir zu Haus betreibe (Probe und Test-Betrieb). WG-1 und WG-2 hängen zum probieren im selben Netz. Will WG-2 erst umziehen wenn es funktioniert, weil sein Standort dann in einem anderen Land ist und ich für Test oder Probieren nicht jedes Mal dahin fahren will.

    ip r

    Code
    magier@Wireguard-2:~ $ ip r
    default via 192.168.1.1 dev eth1 proto static metric 100
    default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.107 metric 101
    10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.6
    192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.110 metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.107 metric 101
  • 192.168.1.102 ist mein Backup NAS, das ist gerade Offline. 192.168.1.102 ist aber = 192.168.1.106, also im selben Netz/Lokation.

    Netz ist egal bzw. war klar. Welches Gerät in diesem Netz hat die IP-Adresse 192.168.1.106 und welches OS hat dieses Gerät?

    Das ist weil ich das Setup noch bei mir zu Haus betreibe (Probe und Test-Betrieb). WG-1 und WG-2 hängen zum probieren im selben Netz. Will WG-2 erst umziehen wenn es funktioniert, weil sein Standort dann in einem anderen Land ist und ich für Test oder Probieren nicht jedes Mal dahin fahren will.

    ip r

    Code
    magier@Wireguard-2:~ $ ip r
    default via 192.168.1.1 dev eth1 proto static metric 100
    default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.107 metric 101
    10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.6
    192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.110 metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.107 metric 101

    Naja, aber was hindert dich zuhause, dem eth0-Interface jetzt schon die "richtige" IP-Adresse zuzuweisen? So wie es jetzt ist, kann man nicht für den späteren Betrieb, testen.

  • Ähm so langsam bin ich durcheinander. Ist es nicht völlig egal welche IP eth0 von WG-2 hat?

    • WG-2 eth0 bekommt seine IP per DHCP und ist der Weg ins Internet
    • WG-2 eth1 ist auf eine feste IP gepinnt, die dem Subnetz bei mir zu Hause einspricht und frei ist.

    Ich suche doch nur einen Weg, Pakete von eth1 auf wg0 und umgekehrt zu routen.

    Und was macht es aus welches OS auf meinem NAS läuft? Ist ebenfalls ein Raspi

    Code
    Linux NAS 6.1.0-rpi8-rpi-v8 

    Könntest du mir erklären, wonach du suchst oder was dich irritiert?

  • Könntest du mir erklären, wonach du suchst oder was dich irritiert?

    Ich suche nach Geräten in deiner Konstellation, auf denen man z. B. tcpdump und ähnliche nützliche Tools, benutzen kann. Mit Windows kenne ich mich nicht aus.
    Ich will u. a. auch sehen können, was in den WG-Tunnel rein geht und was aus dem WG-Tunnel rauskommt.

  • Was du willst ist ein Transparenter Tunnel zwischen Wireguard-1 und Wireguard-2 (Bridge)
    Keine Ahnung ob WG das kann, bei OpenVPN konnte man das einrichten.
    Warum muss das Subnet hinter Wireguard-2 das selbe Netz wir hinter Wireguard-1 haben (192.168.1.x) ?

    Offizieller Schmier und Schmutzfink des Forum.

  • ... Wireguard-1 und Wireguard-2 (Bridge)
    Keine Ahnung ob WG das kann, bei OpenVPN konnte man das einrichten.

    OpenVPN macht das auf Ebene 2, mit tap-Interfaces. Wireguard kann das nicht bzw. agiert auf Ebene 3:

    Quote

    WireGuard is a secure network tunnel, operating at layer 3 ...

    Quelle: https://www.wireguard.com/papers/wireguard.pdf

    Mit Wireguard (wg-quick oder systemd-networkd) kann man als Ergänzung/Optimierung zu AllowedIPs, auch policy routing machen.

  • OpenVPN macht das auf Ebene 2, mit tap-Interfaces. Wireguard kann das nicht bzw. agiert auf Ebene 3:

    Danke für die Info. Hatte ich mir fast gedacht da ich noch nie etwas von Bridge gelesen hatte.

    Mit Wireguard (wg-quick oder systemd-networkd) kann man als Ergänzung/Optimierung zu AllowedIPs, auch policy routing machen.

    Dank table=off funktioniert nun auch BGP oder OSPF. Nutze WS doch jetzt recht häufig.

    Offizieller Schmier und Schmutzfink des Forum.

  • Hey

    Also erst mal Danke das ihr euch alle so gedanken darum gemacht habt.

    WireGuard und so eine Config wie ich sie wollte, geht....wenn es auch nicht vorgesehen ist.

    Ich habe es geschafft, wenn auch etwas anders als hier zu erst vorgestellt. Ich habe den WG-2 (Client) von einem nackten Raspi-OS auf OpenWTR umgestellt und nach etwas gefummel, lief das. Wenigstens ne Weile und es gabe einen großen Fehler, ich habe das I-Netz erreicht, ich habe den WG-1 (Server) erreicht aber mein NAS war von hinter WG-2 nicht zu erreichen. Per Ping

    Code
    magier@Wireguard-2:~ $ ping -I WG 192.168.1.102

    also per SSH auf WG-2, über Tunnel (WG), zu Ziel NAS (192.168.1.102), ging.

    Von einem PC dahinter, ging es nicht mehr.

    Eine Vermutung war das dem WG-1, eine Route dafür fehlte, die ich versucht habe Händisch einzurichten aber nach einem Neustart von WG-2 spinnt der USB-LAN Adapter und ich habe den Versuch nun abgebrochen.

    Ich werde es wohl mit OpenVPN noch mal versuchen. Nen Docker-System habe ich ja....aber die erste Idee, ich habe ja schon WireGuard, also wieso probiere ich es nicht damit mal, ist erst mal zu ENDE.

    Danke euch allen!!!!!

  • Dein Problem ist dass das Netz hinter WG1 das selbe ist wie hinter WG2.
    Das kann man machen indem man auf WG2 NAT macht, ist aber kein sauberes Routing.

    Wenn du im Netz von WG1 aus dem 192.168.1. zu einer 192.168.1.102 pingst, woher soll der Wissen das es hinter WG2 zu finden ist.

    Offizieller Schmier und Schmutzfink des Forum.

  • Dein Problem ist dass das Netz hinter WG1 das selbe ist wie hinter WG2.

    Naja, das muss kein Problem sein, wenn man weiß was man will.

    Z. B.: Ich verbinde mit Wireguard 3 Laptops (an 3 verschiedenen Internetanschlüssen), wenn jeder dieser Laptops sich im Subnetz einer FritzBox befindet und jeder Laptop vom DHCP-Server der FritzBox, z. B. die IPv4-Adresse 192.168.178.25 bekommt.

  • Naja, das muss kein Problem sein, wenn man weiß was man will.

    Z. B.: Ich verbinde mit Wireguard 3 Laptops (an 3 verschiedenen Internetanschlüssen), wenn jeder dieser Laptops sich im Subnetz einer FritzBox befindet und jeder Laptop vom DHCP-Server der FritzBox, z. B. die IPv4-Adresse 192.168.178.25 bekommt.

    Das ist Korinthenkackerei und das weist du auch.
    Was du so nie kannst ist jede der drei Fritzboxen vom WG Server zu erreichen, jedenfalls nicht mit einfachem Routing.

    im oben genannten Fall geht es auch nicht ohne NAT auf WG2. Was ein erreichen des Netz hinter WG2 von Netz1 aus fast unmöglich macht.

    Offizieller Schmier und Schmutzfink des Forum.

  • Was du so nie kannst ist jede der drei Fritzboxen vom WG Server zu erreichen, jedenfalls nicht mit einfachem Routing.

    Ich will die drei FritzBoxen (mit ihrer internen IP-Adresse) auch nicht erreichen. Ich will, dass die drei Laptops sich (via WG-Server) untereinander jederzeit und von jedem Ort/Internetanschluss, erreichen können und das geht.

    Der WG-Server kann (muss aber nicht) sich im W/LAN einer der drei FritzBoxen befinden.

    EDIT:

    Routing auf den 3 Laptops (mit Linux als OS):

    Display Spoiler

    # Laptop-Nr. 1 (an FB in Hamburg):
    :~$ ip r
    default via 192.168.178.1 dev wlan0 proto static src 192.168.178.25
    192.168.22.0/24 dev wg0 proto kernel scope link src 192.168.22.14
    192.168.22.0/24 via 192.168.22.1 dev wg0 proto static initcwnd 30 initrwnd 30
    192.168.178.0/24 dev wlan0 proto static scope link

    # Laptop-Nr. 2 (an FB in Köln):
    :~$ ip r
    default via 192.168.178.1 dev wlan0 proto static src 192.168.178.25
    192.168.22.0/24 dev wg0 proto kernel scope link src 192.168.22.15
    192.168.22.0/24 via 192.168.22.1 dev wg0 proto static initcwnd 30 initrwnd 30
    192.168.178.0/24 dev wlan0 proto static scope link

    # Laptop-Nr. 3 (an FB in München):
    :~$ ip r
    default via 192.168.178.1 dev wlan0 proto static src 192.168.178.25
    192.168.22.0/24 dev wg0 proto kernel scope link src 192.168.22.16
    192.168.22.0/24 via 192.168.22.1 dev wg0 proto static initcwnd 30 initrwnd 30
    192.168.178.0/24 dev wlan0 proto static scope link

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!