Debian-Router hinter Deutsche Glasfaser für IPv6

  • Hallo,
    ich hoffe, es kann mir jedem aus der freundlichen Runde hier helfen. Ich habe einen Anschluss bei Deutsche Glasfaser. Als Router benutze ich einen Zotac-Mini-PC mit zwei Ethernet-Anschlüssen. Auf dem läuft Debian Bullseye.


    Der Medienwandler ist direkt mit dem Zotac verbunden. Also muss das Debian sich auch direkt um die IP-Adressen von DG kümmern. Bei IPv4 funktioniert das auch gut. Leider bekomme ich das bei IPv6 nicht so richtig zum Laufen. Ich habe bisher auch nirgendwo im Netz eine gute Anleitung gefunden, wie man einen IPv6-Router mit dynamischer IP-Vergabe konfiguriert. Ich habe die Vermutung, dass es dort sehr viele Möglichkeiten gibt und ich deswegen immer an der falschen Stelle suche.


    Meine derzeitigen Ausgabe von ip a:

    Code
    2: eth-wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:01:2e:82:b9:c7 brd ff:ff:ff:ff:ff:ff
        inet 100.84.185.30/16 brd 100.84.255.255 scope global dynamic eth-wan
           valid_lft 3329sec preferred_lft 3329sec
        inet6 2a00:6020:1000:41::26cf/128 scope global deprecated 
           valid_lft forever preferred_lft 0sec
        inet6 fe80::201:2eff:fe82:b9c7/64 scope link 
           valid_lft forever preferred_lft forever

    Wie man sieht, habe ich schon mal eine IPv6 bekommen. Leider scheint sich diese aber nicht automatisch zu erneuern. Ich habe es auch bisher nicht geschafft, das zugewiesene Prefix an das Netzwerk weiterzureichen. Für IPv4 setze ich dnsmasq ein.


    Kann mir bei meinem Vorhaben eventuell jemand unter die Arme greifen oder wenigstens eine gute Quelle für weitere Informationen nennen?

  • Für IPv4 setze ich dnsmasq ein.

    Auch für IPv6?


    Ums gleich zu sagen: Eine Patentanleitung für die Einrichtung hab ich auch nicht parat. Aber mich interessiert das Thema persönlich sehr stark. Ich bin gerne bereit, dass wir uns der Sache gemeinsam nähern. Ich könnte dafür z.B. Traces der DHCPv6 Aushandlung meiner Fritzbox bereitstellen, und die vergleichen wir dann mit deinem DHCP Datenverkehr und versucht daran, die Parameter deiner Installation so zu tunen, dass sie funktionieren. Das wird aber nicht adhoc klappen, sondern vermutlich einige Tage dauern, bis alles rund läuft.


    Alternativ könntest du noch mal in den Threads der Geräte schauen, die sehr nah an Linux sind oder vergleichbare Tools nutzen. Unify, OPNSense und ähnliche fallen mir da auf Anhieb ein. Vielleicht finden sich da Hinweise auf die geeignete IPv6 Konfiguration.


    Generell kann ich dir schon mal sagen, dass du per DHCP die IP und ein Prefix anfordern musst. Beides hat eine preferred Lifetime, und nach der Hälfte dieser Lifetime wird eine Erneuerung angefragt.

  • Das wird wahrscheinlich schwieriger, als du erwartest. Du brauchst einen DHCPv6-Client, der eine Adresse und ein Präfix abruft, einen RA-daemon und, wenn du nachgelagerte Router versorgen möchtest, einen DHCPv6-Server für PD. Das alles muss mit dynamischen Adressen und Präfixen umgehen können. Du musst Forwarding für IPv6 einschalten und um die Firewall musst du dich auch kümmern. (Die ist erheblich wichtiger als bei IPv4, wo die privaten Adressen eine gewisse Hürde für Verbindungen von außen darstellen, was aber eine IPv4 Firewall nicht ersetzt.)


    Meine Empfehlung ist, dafür ein spezialisiertes System einzusetzen, wenn es dir nicht nur um eine Lernübung geht. Das kann man auch virtualisiert auf dem selben Gerät laufen lassen. OpenWRT ist bei der Umsetzung von IPv6 relativ weit fortgeschritten.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Aus meiner schwachen Erinnerung nach unterstützt nicht jeder dhcpv6 Client (bzw. das entsprechende Debian Package) Router Advertisements (RAs), zumindest war das ein Kritikpunkt an Ubuntu in dem c't Artikel "6 setzen". Da Ubuntu auf Debian aufsetzt, kann der Wechsel des Clients/Packages schon Verbesserung bringen.


    Nachtrag: der Standard DHCPv6 Client unterstützt das "Reconfigure" bei einer Prefixänderung nicht.

  • Für DHPCPv6 nutze ich gerne dhcpcd. Der bezieht per PD die entsprechenden Netze für die Interfaces. DNSMasq verteilt dann dynamisch ([::] ermöglicht einen dynmischen IPv6-Betrieb mit DNSMasq) passend die IPs. Fahre mit seit Jahren ohne Probleme.

    ISP: HTP Surf & Fon 1.000 MBit/s Download / 500 MBit/s Upload (Glasfaser)

    Router: Supermicro A1SRM-2758F (Gentoo Linux) + Genexis Fibertwist F2110 (Rev1.1) @ AON (1000BASE-BX)

    VoIP: Gigaset Go-Box 100 (Firmware 42.263), Cisco ATA-191-MPP 2-Port Phone Adapter (Firmware 11-2-3MPP0001-028)

    Handset: Gigaset SL800H Pro (Firmware 131.011.08)

  • Erstmal vielen Dank für eure Antworten.

    Auch für IPv6?

    Bisher noch nicht.

    Das wird aber nicht adhoc klappen, sondern vermutlich einige Tage dauern, bis alles rund läuft.

    Meine Empfehlung ist, dafür ein spezialisiertes System einzusetzen, wenn es dir nicht nur um eine Lernübung geht. Das kann man auch virtualisiert auf dem selben Gerät laufen lassen. OpenWRT ist bei der Umsetzung von IPv6 relativ weit fortgeschritten.

    Ich würde mir das schon gerne ansehen und auch verstehen. Ich bin bereit, dafür auch ein paar Fehlschläge hinzunehmen. Was ich nicht möchte, ist eine fertige Lösung dazwischen zu setzen (Fritzbox). Wenn wir es gemeinsam nicht hinbekommen, dann könnte ich mir aber auch eine VM-Lösung vorstellen.


    Nachtrag: der Standard DHCPv6 Client unterstützt das "Reconfigure" bei einer Prefixänderung nicht.

    Kann es sein, dass das derzeit mein erstes Problem ist? Wenn ich das Interface neu starte, erhalte ich eine neue IP. Diese läuft dann irgendwann ab und wird nicht automatisch erneuert. So zumindestens mein Empfinden. Weißt du, wie ich das überprüfen kann?
    Das ist derzeit meine /etc/network/interfaces


    Für DHPCPv6 nutze ich gerne dhcpcd. Der bezieht per PD die entsprechenden Netze für die Interfaces. DNSMasq verteilt dann dynamisch ([::] ermöglicht einen dynmischen IPv6-Betrieb mit DNSMasq) passend die IPs. Fahre mit seit Jahren ohne Probleme.

    Hast du dann auch deine Firewall dynamisch hinbekommen? Ich nutze nftables und das bisher nur mit IPv4. Also im Prinzip ist alles verboten, was von draußen kommt und ausgehende Verbindungen sind erlaubt. So ganz grob.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Hast du dann auch deine Firewall dynamisch hinbekommen? Ich nutze nftables und das bisher nur mit IPv4. Also im Prinzip ist alles verboten, was von draußen kommt und ausgehende Verbindungen sind erlaubt. So ganz grob.

    Ja. Wobei ich sagen muss, mein Anbieter (HTP) hat weiterhin PPPoE am Start. Bedeutet, ich habe ein Skript unter /etc/ppp/ip-up.d und /etc/ppp/ip-down.d entsprechend abgelegt, was dann nach erfolgten Verbindungsaufbau und Verbindungsabbau die passenden Regeln setzt. Ist zwar noch old school iptables, aber nftables steht auf meiner TODO-Liste für ein Upgrade.


    Mit DHCPcd könnte man das aber auch realisieren. Der kann entsprechende hooks ausführen, die man anbinden kann. Stichwort dhcpcd-run-hooks.

    ISP: HTP Surf & Fon 1.000 MBit/s Download / 500 MBit/s Upload (Glasfaser)

    Router: Supermicro A1SRM-2758F (Gentoo Linux) + Genexis Fibertwist F2110 (Rev1.1) @ AON (1000BASE-BX)

    VoIP: Gigaset Go-Box 100 (Firmware 42.263), Cisco ATA-191-MPP 2-Port Phone Adapter (Firmware 11-2-3MPP0001-028)

    Handset: Gigaset SL800H Pro (Firmware 131.011.08)

    Einmal editiert, zuletzt von ConiKost ()

  • Kann es sein, dass das derzeit mein erstes Problem ist? Wenn ich das Interface neu starte, erhalte ich eine neue IP. Diese läuft dann irgendwann ab und wird nicht automatisch erneuert.

    Von welcher IP-Adresse sprichst Du? IPv4 oder IPv6?


    Ich bin ebenfalls Kunde bei Deutscher Glasfaser und habe seit weit über einen Jahr sowohl bei IPv4 und IPv6 keine Änderung erhalten, das betrifft ebenfalls das IPv6 Prefix. Meine 5530 wird jede Woche einmal für 5 Minuten stromlos gemacht, Möglichkeiten zur Änderung gab es also genug.

  • Wenn ich das Interface neu starte, erhalte ich eine neue IP.

    Aber das bleibt das Prefix gleich und nur die Host-ID ändert sich, oder? Das wäre das erwartbare Verhalten.


    Diese läuft dann irgendwann ab und wird nicht automatisch erneuert. So zumindestens mein Empfinden. Weißt du, wie ich das überprüfen kann?

    Da müssen wir die Logs deines DHCP Clients analysieren, und ggf. mit Hilfe von tcpdump entsprechende Traces anfertigen, um den DHCP Datenverkehr zu überwachen.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Auch wenn ich nach euren ganzen Antworten sehr wissbegierig bin, werde ich vermutlich erst am Montag mit dem Thema weitermachen können. Ihr habt auf jeden Fall recht. Meine IP hat sich nicht geändert, sondern nur der Status ist von "deprecated" zu "dynamic" gewechselt.

    Dies ist mit einem up && down des Interfaces passiert. Wie kam es aber vorher in den "deprecated"-Status?

    Gibt es eine gute Seite, die bis zum Bit erklärt, wie DHCPv6 und SLAAC funktioniert. In der Uni hatten wir damals DHCP bis zum letzten Bit durchgenommen und dazu findet man viel im Netz. Aber bei IPv6 steht immer nur, dass sich die jeweiligen Protokolle darum kümmern. Wie das genau abläuft, habe ich bisher nicht gefunden.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Dann fasse ich meine derzeitigen Erkenntnisse einmal zusammen:


    DG wechselt (fast gar) nicht das Prefix. Sollte man das beachten?


    Zur Zeit nutze ich networking.service (ifup/down). Bei der Doku für Ubuntu ist alles nur für service-networkd beschrieben. Macht es Sinn zu wechseln?


    Wir meine zweite Schnittstelle (eth-lan) dann auch automatisch über eine IPv6-Adresse mit dem globalen Prefix versorgt? Beim DHCPv4 muss man die ja statisch machen. Hmmm....

  • Ich seh da nur DHCPv6 Confirms. Ich glaube nicht, dass im Confirm was drin steht. Müsstest du nachsehen. Was war denn vorher? Gabs keinen Rebind oder Request?


    Offenbar hat das Gerät aber bereits eine Adresse gehabt, denn da sind Pakete im Trace, die sehen aus, wie Antworten an deine Adresse auf vorhergehende Kommunikation.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Also in dem Mitschnitt passiert schlicht nichts, was anzeigt, wie das WAN-Interface zu seiner globalen Adresse 2a00:6020:1000:41::26cf gekommen ist. Nach einem IFUP wird offenbar nur versucht, die vor dem IFDOWN schon zugewiesene Adresse wiederzuverwenden und per DHCPv6-Confirm zu bestätigen, allerdings antwortet der DHCv6-Server nicht. Ansonsten sieht man nur die üblichen Pakete, die mit der Autokonfiguration der fe80-Adresse (wird aus der MAC-Adresse abgeleitet) zu tun haben.

  • Man müsste anstelle IFDOWN zum Loswerden der vorhandenen Adresse ein Kommando eingeben, das ein DHCPv6-RELEASE auf dem WAN-Interface auslöst - gibt's so ein Kommando unter Debian?


    Damit müsste man dann im Trace den Ablauf der Adresszuweisung sehen können.

  • Noch ein Hinweis: Wenn man irgendwann mal einen Trace bekommt, in dem der Router ein DHCPv6-SOLICIT sendet, dann sollten in diesem SOLICIT in der Option Request-Liste neben IA_NA auch IA_PD angefordert werden (IA=Identity Association, NA=Non-temporary Address, PD=Prefix Delegation).


    Vermutlich wird nur IA_NA für die WAN-Adresse angefordert. Zusätzliche IA_PD-Anforderung muss man dem Debian sicherlich per Zusatz-Konfiguration beibringen.

  • Tipp: Jetzt kostenlos registrieren, mitmachen und das Forum ohne Werbebanner nutzen.
  • Ich habe jetzt folgendes ausgeführt:

    Code
    ip addr del 2a00:6020:1000:41::26cf/128 dev eth-wan
    dhclient -6  -r -v eth-wan
    dhclient -6  -N -v eth-wan


    Dann bekam ich folgende Ausgabe. Den entsprechenden Trace habe ich angehängt.

    Dann habe ich in der [tt]/etc/dhcp/dhclient.conf[/tt] folgendes ergänzt:

    Code
    send dhcp6.ia-pd 0;
    request dhcp6.ia-pd;

    Nun bekomme ich derzeit keine Antworten vom DHCP-Server mehr. Das hatte ich vorher vor der dhclient-Umstellung aber auch schon mal:

    Ich hatte die Vermutung, dass meine Firewall etwas blockiert. Aber dort werden mit IPv6 derzeit nur Pakete zum UDP-1900 geblockt, welche damit ja nichts zu tun haben sollten. Meine entsprechenden Erlaubnisse sehen so aus:

    Code
        # respond to ping
        icmp   type echo-request limit rate 10/second counter accept
        icmpv6 type echo-request limit rate 10/second counter accept
    
        # accept neighbour discovery otherwise connectivity breaks
        icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } counter accept
    
        iifname eth-wan ip6 daddr fe80::/10 ip6 saddr fe80::/10 udp dport 546 udp sport 547 counter accept comment "dhcp6"

    Mache ich jetzt gerade was verkehrt oder antwortet der DHCP-Server von DG nur sporadisch? Ich würde sogar sagen, dass ich das schon vor einem Jahr mal bei IPv4 hatte, es dort aber auch auf mich geschoben haben.