VPS 200 G8 - Wireguard - keine Verbindung über IPv6

  • Hallo,


    nachdem ich nun viele Tage lang gefühlt das gesamte Internet min. 2 x gelesen und vieles ausprobiert habe, muss ich nun hier anfragen.


    Ich habe einenVPS 200 G8 mit Ubuntu 20.04 LTS.


    Darauf läuft Wireguard, PiHole und Unbound.


    Über mein WLAN zu Hause (DSL, IPv4) läuft alles super. Es wird über Wireguard verbunden, PiHole filtert fleißig.


    Sobald ich mit dem Handy vom WLAN trenne und ins Mobilfunknetz wechsle (Pennymobil = Congstar / Telekom) erhält dieses eine IPv6 und ich komme nicht mehr durch.


    PiHole sagte mir bei Einrichtung:


    Code
    Configure your devices to use the Pi-hole as their DNS server
                                               │ using:                                                             │
                                               │                                                                    │
                                               │ IPv4:        185.207.105.144                                       │
                                               │ IPv6:        2a03:4000:1e:742:a85f:b7ff:fe5f:c8cc


    Code
    ip6tables -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT



    Bisher probiert:


    1. IP-Fowarding für IPv4 und IPv6 eingeschaltet


    Code
    sysctl net.ipv4.ip_forward=1
    net.ipv4.ip_forward = 1


    2. in /etc/sysctl.d/99-sysctl.conf

    Code
    net.ipv6.conf.all.forwarding=1  

    auskommentiert


    3. in /etc/wireguard/wg0.conf folgendes vor dem Peer eingefügt:

    Code
    PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


    4. in /etc/wireguard/wg0.confg die Allowed IPs gändert, statt:


    jetzt:


    Egal was ich mache, ich komme über IPv6 / Mobilfunk nicht durch.


    Nach allen Änderungen wird wie folgt ausgegeben:


    meine aktuelle /etc/wireguard/wg0.conf:


    meine aktuelle/home/vpn/configs/papa.conf:

    Code
    [Interface]
    PrivateKey = EM*******************************M=
    Address = 10.6.0.2/24
    DNS = 10.6.0.1
    
    [Peer]
    PublicKey = M/HRCmQAa/+0FxG7IiEJjtTa3RZV1ZDkOQYVq4wi4RE=
    PresharedKey = VV**********************************w=
    Endpoint = 185.207.105.144:51820
    AllowedIPs = 0.0.0.0/0, ::0/0


    Ich bin völlig ratlos und für Hilfe dankbar.


    Gruß,

    Shack.

  • Mahlzeit,

    ich glaube ich war neulich in einem ähnlichen Problem gefangen bei einem anderen Provider.


    Fangen wir mal mit den Basics an:

    1.) Netzwerk Konfiguration der Maschine bitte mal posten (kannst X nutzen, geht mir hauptsächlich drum wie IPv6 konfiguriert ist)

    2.) Funktioniert ping6 auf externe Ressourcen, sprich hat die Maschine IPv6 Konnektivität?

    3.) In der Wireguard Konfig hab ich zusätzlich neben IPv4 auch IPv6 Adressen eingetragen:

    Code
    [Interface]
    Address = {{ vpn_network }}.1/24, {{ vpn_network6 }}:dada::1/80

    4.) Um Ipv6 Konnektivität über Wireguard nach draußen zu haben, nutze ich noch ndppd

    Code
    proxy eth0 {
        timeout 500
        ttl 16000
        rule {{ vpn_network6 }}:dada::/64 {
            static
        }
    }

    Der letzte Punkt war bei mir dann der Durchbruch um auch getunneltes IPv6 zu haben.


    EDIT:
    Gerade nochmal das Ansible Playbook ausgepackt und Node provisioniert. scheint weiterhin zu funktionieren:

    pasted-from-clipboard.png

  • Hallo


    und schonmal DANKE vorab.


    Um nicht durcheinander zu kommen, habe ich mal alles neu aufgesetzt, das sieht jetzt aus wie folgt:


    Code
    # ip6tables -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    Code
    # cat /proc/sys/net/ipv6/conf/all/forwarding
    1
    Code
    # sysctl -p
    net.ipv4.ip_forward = 1
    net.ipv6.conf.all.forwarding = 1
    Code
    # nano /etc/ndppd.conf
    proxy eth0 {
    timeout 500
    ttl 16000
    rule fd86:ea04:dada::/64 {
    static
    }
    }


    Leider bisher alles ohne Erfolg. Handy über WLAN (IPv4) geht, Handy über Mobilfunk (IPv6) nicht.


    Ich hoffe, ich habe alle Deine Fragen beantworten können und nicht zu viel reinkopiert, aber ich bin einfach ziemlich unsicher, was Du brauchst.


    Danke und Gruß,

    Shack.

  • Also entweder täusche ich mich, aber das sieht für mich komisch aus auf den ersten Blick


    Endpoint = 185.207.105.144:51820 in der Konfig:

    Code
    # nano /home/vpn/configs/papa.conf
    [Interface]
    PrivateKey = 4J***********************o=
    Address = 10.6.0.2/24
    DNS = 10.6.0.1
    [Peer]
    PublicKey = FhdsKWz/zzUlCoUT1Up1bmlZtpFTAE/s36UslT9RnHc=
    PresharedKey = xF**************************s=
    Endpoint = 185.207.105.144:51820
    AllowedIPs = 0.0.0.0/0, ::0/0

    Das wäre natürlich eine Erklärung warum IPv6 gar nicht geht.


    Bei mir habe ich dort einen DNS Namen eingetragen, der sowohl als IPv4 (A) als auch IPv6 (AAAA) auflöst. Den Rest deiner Konfig schaue ich mir später an, nur als erstes Feedback

  • Was genau ist denn das Ziel des VPN Tunnels? Nur der Zugriff auf Pi-Hole? Oder soll auch der Internet Traffic der Clients darüber geroutet werden? Ich sehe NAT Regeln in der Konfig, aber nur für IPv4.


    Außerdem benutzt du IPv6 ULA Adressen für das WG Netz, da macht es natürlich keinen Sinn, die per NDPP bekannt zu geben. Die Frage ist: Wofür überhaupt IPv6 im VPN Netz? Wenn es nur um Pi-Hole und den Zugriff von außen über IPv6 geht, dann brauchst du das nicht.


    Andererseits: Welcher Mobilfunkprovider bietet denn keine IPv4 Adresse? Nicht mal als CGNAT? D.h., der Aufbau über IPv4 müsste auch funktionieren.


    Vielleicht beschreibst du erst mal sauber, was du genau du erreichen willst.

  • Nicht wirklich on-topic, aber bitte sorge unbedingt dafür, dass deine PiHole nicht allen im Internet antwortet. Wenn du es nicht bereits bist, dann landest du sehr wahrscheinlich bald auf einer DNS Reflection DDoS Liste.


  • Hallo


    und danke schonmal für die Antworten und Hilfen.


    Mein Ziel ist es, auf dem vServer ein Wireguard-PiHole-Unbound-System einzurichten, das dann den Datenverkehr aller Samrtphones (IPv4 und IPv6) des Haushalts dauerhaft darüber laufen lässt, also DNS, Werbeblocker und Traffic.


    Später will ich dann noch die FritzBox (IPv4) aus dem Haushalt darüber laufen lassen. Das ist aber noch nicht soweit, erst mal das eine.


    Ich habe das System wie hier beschrieben installiert:


    https://blog.login.gmbh/pihole…der-cloud-fast-geschenkt/


    Fail2Ban und UFW sind soweit eingerichtet.


    Jetzt stehe ich vor dem Problem, dass ich, bin ich mit dem Handy im WLAN (IPv4) es wie erhofft funktioniert, über Mobilfunk (IPv6) aber nicht.


    Ich habe daher vermutet, dass es an der IPv6 liegen könnte.


    Ich hoffe, dass das zur Hilfestellung beitragen kann.


    Ich verwerfe jetzt mal alle Änderungen und setze nochmal komplett neu auf, dann muss man nicht die Änderung der Änderung verbasteln sondern kann nochmal bei 0 anfangen.

  • Aaaaaaargh...


    Jetzt habe ich neu aufgesetzt und Fail2Ban wie hier


    https://www.thomas-krenn.com/d…an_mit_fail2ban_absichern


    und UFW


    wie hier


    https://www.digitalocean.com/c…th-ufw-on-ubuntu-20-04-de


    beschrieben installiert.


    UFW habe ich wie hier


    https://strobelstefan.org/2021…r-ufw-firewall-absichern/


    beschrieben eingerichtet.


    Jetzt geht gar nix mehr...


    Deaktiviere ich UFW geht es zumindest wieder über WLAN.


    Ich werd' verrückt.

  • Hallo,

    Jetzt haben wir ja geklärt dass der sämtliche Traffic über den vServer laufen soll und dass wir in unbound / pihole noch auf Netzwerke beschränken aus denen Abfragem erfolgen.


    Mir würde es helfen wenn wir der Reihe nach vorgehen und nicht UFW und Iptables direkt miteinander vermengen. An UFW würde ich erst rumbasteln wenn der Rest läuft. Zumal du den Port 53 auch nicht Richtung Internet aufmachen willst.


    Könntest du dann jetzt die derzeit aktive Konfig nach dem Reset hier posten dass wir dann den richtigen Stand analysieren?


    Das ist jetzt nicht böse gemeint, aber durch die diversen Verzweigungen bin ich mir gerade nicht mehr sicher was der aktuelle Stand ist. Ich kann nachher mal wieder ne Node mit Ansible provisionen wo das angestrebte Setup funktioniert. Danach kann ich dann auch mal paar Konfigs hier posten


    Gruß

  • Könntest du dann jetzt die derzeit aktive Konfig nach dem Reset hier posten dass wir dann den richtigen Stand analysieren?


    Das ist jetzt nicht böse gemeint,

    Um Gottes Willen, wie könnte das böse gemeint sein, Du versuchst mir zu helfen!


    Danke für Deine Geduld mit mir :)


    /etc/wireguard/wg0.conf


    /home/vpn/configs/papa.conf

    Code
    [Interface]
    PrivateKey = qD***************************nQ=
    Address = 10.6.0.2/24
    DNS = 10.6.0.1
    
    [Peer]
    PublicKey = 46VB8q+Y2Gxa/dEbgU8xFuo10R2QGp1G1GiunLMHDG4=
    PresharedKey = eP***********************K4=
    Endpoint = 185.207.105.144:51820
    AllowedIPs = 0.0.0.0/0, ::0/0


    So kommt das raus, wenn ich es über diese Anleitung einrichte:


    https://blog.login.gmbh/pihole…der-cloud-fast-geschenkt/


    Über WLAN geht's, über's Mobilfunknetz nicht.

  • Um Gottes Willen, wie könnte das böse gemeint sein, Du versuchst mir zu helfen!


    Danke für Deine Geduld mit mir :)

    Ok, dann fangen wir mal mit dem ganz einfachen an:

    Endpoint = 185.207.105.144:51820


    Kannst du auf der Node mal prüfen, ob dann über IPv6 überhaupt was lauscht? Andernfalls wäre das der erste Punkt warum IPv6 nicht tut.

    Bei mir sieht das wie folgt aus:


    Code
    root@node ~ # netstat -lnp | grep 51820
    udp        0      0 0.0.0.0:51820           0.0.0.0:*                           -                    
    udp6       0      0 :::51820                :::*                                -     


    Gruß


  • Hallo,


    meine Config sieht nahezu identisch aus. Einzig als Endpoint habe ich den Hostnamen statt der IP eingetragen.


    Also sowas wie:


    Endpoint = vpn.xxxx.de:51820


    Der Name löst dann per A-Record und AAAA-Record auf die IPv4 bzw. IPv6 auf.

  • Noch mal die Frage: Warum funktioniert IPv4 über Mobilfunk nicht? Ich kann mir beim besten Willen nicht vorstellen, dass es einen Mobilfunkprovider gibt, der keine IPv4 Adressen verteilt. Wer ist der Anbieter?


    Möglicherweise können wir uns viel Konfigurationsgewusel sparen, wenn sich am Ende herausstellt, dass wir IPv6 gar nicht brauchen.

  • Noch mal die Frage: Warum funktioniert IPv4 über Mobilfunk nicht? Ich kann mir beim besten Willen nicht vorstellen, dass es einen Mobilfunkprovider gibt, der keine IPv4 Adressen verteilt. Wer ist der Anbieter?


    Möglicherweise können wir uns viel Konfigurationsgewusel sparen, wenn sich am Ende herausstellt, dass wir IPv6 gar nicht brauchen.

    Dann hast trotzdem Problem wenn dein Anbieter IPv6 "bevorzugt", in der Falle saß ich nämlich an einem normalen Telekom DSL Anschluss.


    Gruß

  • Ich habe keinen Hostnamen nur die IP-Adresse meines Servers. Das ist eben die 185.207.105.144.


    Und es funktioniert ja auch, aber eben nur wenn der Client eine IPv4 und keine IPv6 Adresse hat


    Noch mal die Frage: Warum funktioniert IPv4 über Mobilfunk nicht? Ich kann mir beim besten Willen nicht vorstellen, dass es einen Mobilfunkprovider gibt, der keine IPv4 Adressen verteilt. Wer ist der Anbieter?

    Wenn ich das heimische WLAN verlasse und in Mobilfunk gehe und dann meine IP-Adresse abfrage, bekomme ich eine IPv6-Adresse angezeigt.


    Mein Provider ist Pennymobil (= Congstar = Telekom).

  • Sprich du hast keine Domäne oder ähnliches? Dann bliebe der Umweg über einen DynDNS Service der sowohl IPv4 als auch IPv6 anbietet als Mittellösung, wenn du keine ganze Domäne "mieten" möchtest. Wenn der Server bei Netcup ist, dann sollte er auch ein /64 IPv6 Netz haben.


    Ich hätte ne Domäne zu Testzwecken rumfliegen.

  • Dann hast trotzdem Problem wenn dein Anbieter IPv6 "bevorzugt"

    Das macht nie der Anbieter, das ist immer eine Sache des Endgeräts.



    Und es funktioniert ja auch, aber eben nur wenn der Client eine IPv4 und keine IPv6 Adresse hat

    Dann ist dein Endgerät aber äußerst merkwürdig konfiguriert. Beim direkten Zugriff auf eine IPv4 Adresse ist es völlig egal, ob das Gerät nebenbei eine IPv6 Adresse hat. Die stört nicht im Geringsten.


    Wenn ich das heimische WLAN verlasse und in Mobilfunk gehe und dann meine IP-Adresse abfrage, bekomme ich eine IPv6-Adresse angezeigt.

    Benutzt du Android? Dann ruf mal die Statusinformationen auf und schau dir die Adressen an. Bei Congstar bin ich mir absolut sicher, dass es dort eine IPv4 Adresse gibt. Es sei denn, du hast im APN komische Dinge gemacht. Steht der auf "IPv6 only"?


    Ich habs gerade auf meinem Handy getestet. Das zeigt z.B. bei "Wie ist meine IP" auch keine IPv4 an, trotzdem ist der Zugriff auf die IPv4 meines Wireguard Server völlig problemlos möglich. In den Statusinformationen des Geräts sieht man die IPv4 Adresse des Anbieters.

  • Das zeigt z.B. bei "Wie ist meine IP" auch keine IPv4 an, trotzdem ist der Zugriff auf die IPv4 meines Wireguard Server völlig problemlos möglich

    Korrekt. Mir ist auch kein (Standard)Fall bekannt, in dem ein Mobilgerät keine IPv4-Verbindungen aufbauen kann. Klar ist das dort alles geNATed, aber ausgehende Verbindungen klappen damit natürlich anstandslos.


    shack hier z.B. kannst du prüfen, ob IPv4 und IPv6 vom jeweiligen Gerät grundsätzlich gehen würden: https://ipv6-test.com/ oder https://ip.zuim.de/


  • Code
    root@node ~ # netstat -lnp | grep 51820
    udp        0      0 0.0.0.0:51820           0.0.0.0:*                           -                   
    udp6       0      0 :::51820                :::*                                -

    Die Konfiguration von "ndppd" hatte ich mal gemacht weil Wireguard im Docker Container lief. Mit der oben genannten Konfig hab ich sowohl IPv4 als auch IPv6 alles über den Server laufen.


    Das macht nie der Anbieter, das ist immer eine Sache des Endgeräts.

    Da melde ich zumindest Zweifel an. Das Problem hab ich nämlich bei 2 verschiedenen DSL Anbietern. Gleicher DNS Name, bei Anbieter A bevorzugt über IPv6, bei Anbieter B IPv4.


    DNS Server, FritzBox Einstellungen + OS Version + Endgerät das selbe.

  • Benutzt du Android? Dann ruf mal die Statusinformationen auf und schau dir die Adressen an. Bei Congstar bin ich mir absolut sicher, dass es dort eine IPv4 Adresse gibt. Es sei denn, du hast im APN komische Dinge gemacht. Steht der auf "IPv6 only"?


    Ich habs gerade auf meinem Handy getestet. Das zeigt z.B. bei "Wie ist meine IP" auch keine IPv4 an, trotzdem ist der Zugriff auf die IPv4 meines Wireguard Server völlig problemlos möglich. In den Statusinformationen des Geräts sieht man die IPv4 Adresse des Anbieters.

    Ich werd' verückt!


    Ich habe in Android über Einstellungen nach APN gesucht und dort den Eintrag "Zugangspunkte (APNs)" gefunden.


    Dort war unter APN "internet.v6.telekom" eingetragen. Kurz im Internet geschaut und statt "internet.v6.telekom" jetzt "internet.telekom" eingetragen.


    Code
    Wir haben es anfangs schon gesagt: Keine Angst, wir nehmen euch nichts weg! Wenn ihr einen Anwendungsfall habt, der mit IPv6-only nicht funktioniert, dann stellt einfach den alten APN internet.telekom in den Einstellungen eures Gerätes ein und ihr bekommt wieder zusätzlich zur IPv6-Adresse eine private IPv4 Adresse. Wir schalten IPv4 ja nicht ab.
    
    https://telekomhilft.telekom.de/t5/Blog/Neuer-IPv6-Zugang-zum-mobilen-Internet-im-Netz-der-Telekom/ba-p/4254741


    Es läuft! jetzt alles schnell und geschmeidig wie es soll.


    Aber:


    Vorteil 1: ich habe einiges gelernt.

    Vorteil 2: ich kann Michaels Einstellungen ausprobieren und wenn es nicht klappt, jederzeit auf eine funktionierende Lösung zurückgreifen.


    1.000 Dank an Euch!


    Gruß,

    Shack.