Forum: Mikrocontroller und Digitale Elektronik IPv6 Namenauflösung in lwIP/Mbed


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes S. (jojos)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich beschäftige mich gerade mit IPv6 auf einem µC. Das Beispiel
https://github.com/ARMmbed/mbed-os-snippet-UDPSocket/blob/v6.0/main.cpp
funktioniert mit IPv6, aber Namen im lokalen Netz werden nicht 
aufgelöst.
gethostbyname() nutzt festverdrahtet eine Tabelle mit öffentlichen DNS 
und daher funktioniert das Beispiel mit time.nist.gov als remote. Das 
Mbed API hat eine Funktion um einen DNS manuell hinzuzufügen, wenn ich 
die Fritzbox Addresse eintrage wird ein lokaler host auch aufgelöst.
Bei einem embedded Gerät kennt man den DNS aber nicht und dafür gibt es 
ja NDP mit Neighbor und Router Advertisement. Hier sehe ich das im lwIP 
eine Tabelle mit Nachbarn aufgebaut wird, aber die wird in der 
Adressauflösung nicht benutzt bzw. es wird ein Router nicht automatisch 
als DNS eingetragen.
Was sollte ein OS machen wenn so RA ankommt? Muss man in lwIP nochwas 
aktivieren das da was automagisch passiert?

von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bekommst du die ipv6 von der Fritz box?
Diese gibt ja dann auch den DNS bekannt.

Martin

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
nein, die IP wird aus der MAC generiert, self assigned address 
autoconfiguration, SAAC.
DHCPv6 wird nicht unterstützt, aber wenn ich das richtig verstehe soll 
das ja mit der Nachbarschaft auch funktionieren.

von Johannes S. (jojos)


Bewertung
2 lesenswert
nicht lesenswert
Habe eine Lösung gefunden:
ich dachte erst ich habe mich verrant, nach drüber schlafen war klar das 
ICMP hat ja nichts mit DNS zu tun und den DNS bekommt man ja eigentlich 
über DHCP.
Dann habe ich aber die Option 25 im RA entdeckt, das ist in der Fritzbox 
als 'DNSv6-Server auch über Router Advertisement bekanntgeben' 
aktiviert.
Wenn der Client startet, dann sendet er ein ICMPv6 'Router 
Solictitation' und bekommt per 'Router Advertisement' in Option 25 die 
IP vom DNS mitgeteilt. In lwIP muss LWIP_ND6_RDNSS_MAX_DNS_SERVERS > 0 
gesetzt sein, dann wird diese Adresse übernommen. Eigentlich ganz 
einfach.

von Jim M. (turboj)


Bewertung
1 lesenswert
nicht lesenswert
Danke für die Rückmeldung!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.