Erstellt vor 6 Jahren

Zuletzt geändert vor 4 Jahren

#1953 new enhancement

dnsmasq und ra-names, ra-stateless, manuelle IPv6 DNS/DHCP Records

Erstellt von: Wiedmann Verantwortlicher:
Priorität: normal Meilenstein: freetz-future
Komponente: packages Version: devel
Stichworte: Beobachter:
Product Id: Firmware Version:

Beschreibung

Hallo,

wie schon im IPPF Forum geschrieben, funktioniert beim dnsmasq weder ra-names, ra-stateless, noch das manuelle Eintragen von DNS/DHCP-Records von IPv6 Hosts. Sprich, eine Namesauflösung von lokalen IPv6 Hosts oder zur Fritzbox (inkl. reverse lookup) ist nicht wirklich möglich.

Auch werden bei mir im AVM-WebIf die Rechner (nach DHCP-Bezug) nicht mit Namen angezeigt.

Grund ist der Patch "100-multid-leases.patch". Ich hab das jetzt für mich durch das Entfernen dieses Patches und durch Benutzung eins "—dhcp-script"s gelöst. An der "mod/hosts" hab ich jetzt nichts geändert, so dass dieses wie gehabt für IPv4 (und den multid als DCHPd) funktioniert.

Manuelle Einträge für IPv6 muss man also in der erweiterten dnsmasq Konfiguration mit dchp-host/host-record machen. (Dann kann man die für IPv4 natürlich auch gleich dort machen.)

Ein Beispiel für eine Konfiguration:

Gegeben ist eine Box mit:
Hostname: fritzbox.example.com
IPv4 Subnet: 192.168.178.0/24
IPv6 Subnet: 2001:db8:18d::/64
IPv6 Fritzbox: 2001:db8:18d::1

In der dnsmasq-Konfiguration trage ich als Domain "example.com" ein, und wenn verfügbar einen zusätzlichen IPv6-Nameserver (vom Tunnelbrocker oder Provider). Im WebIf "mod/hosts" trage ich gar nichts ein (und schalte im weitern auch die Benutzung der /etc/hosts ab). Als DHCP-Range den default "192.168.178.20,192.168.178.200,12h"

In "dnsmasq/extra" könnte dann so was zusätzlich stehen:

dhcp-fqdn
dhcp-option=option6:dns-server,[::]

dhcp-range=2001:db8:18d::,ra-stateless,ra-names
enable-ra

no-hosts
host-record=localhost,127.0.0.1,::1
host-record=fritzbox.example.com,fritzbox,192.168.178.1,2001:db8:18d::1
cname=fritz.box,fritzbox.example.com
cname=fritz.fonwlan.box,fritzbox.example.com

Einen Server mit fester IP könnte man so Eintragen

dhcp-host=00:00:00:00:00:00,192.168.178.20,webserver
host-record=webserver.example.com,webserver,192.168.178.20,2001:DB8:18D:0:200:FF:FE00:0

(host-record ist natürlich nur wichtig, wenn man eine Namensauflösung haben will, bevor er sich eine IP über DHCP geholt hat, oder wenn man kein DHCP/SLAAC benutzt)

So jedenfalls funktioniert das gerade bei mir und meiner 7170 :-)

Anhänge (7)

dnsmasq.patch.txt (10.7 KB) - hinzugefügt von Wiedmann vor 6 Jahren.
dnsmasq.patch
dnsmasq.patch (10.7 KB) - hinzugefügt von cuma vor 6 Jahren.
unmodified, without useless extension
netzwerk.jpg (177.1 KB) - hinzugefügt von cuma vor 6 Jahren.
dnsmasq.2.patch (6.6 KB) - hinzugefügt von Wiedmann vor 6 Jahren.
dnsmasq.patch
dnsmasq.2_nach_r9689.patch (5.9 KB) - hinzugefügt von cuma vor 6 Jahren.
dnsmasq.2_nach_r9694.patch (2.5 KB) - hinzugefügt von por vor 6 Jahren.
adapted patch after 9694
dnsmasq.3.patch (11.5 KB) - hinzugefügt von Wiedmann vor 6 Jahren.
dnsmasq.patch

Alle Anhänge herunterladen als: .zip

Änderungshistorie (48)

Geändert vor 6 Jahren durch Wiedmann

dnsmasq.patch

comment:1 Geändert vor 6 Jahren durch Wiedmann

Da fällt mir noch was ein…

Damit SLAAC (ra-names) auch mit Windows 2008/Vista/7 tut. Muss man dort erst noch dafür sorgen, dass es reguläre SLAAC Adressen (nach EUI-64) erzeugt. Als Administrator in der Eingabeaufforderung (und neu starten):

netsh interface ipv6 set global randomizeidentifiers=disabled

Die Privacy Extensions kann man unter Win/Linux trotzdem aktiviert lassen (bzw. aktivieren).


Dann noch was anderes:
In dem Formular unter mod/hosts werden ja aus den Einträgen gleichzeitig DNS und DHCP Einträge erzeugt. Für dnsmasq wäre es natürlich nett auch sowas zu haben, allerdings mit getrennten Feldern (welche dann getrennte Dateien erzeugen).

Meist wird man ja nur einen Eintrag für DHCP machen (und DNS funktioniert dann automatisch wenn man nichts Besonderes braucht). Bzw. bei einem Host mit wirklich statischer IP langt ja ein Eintrag im DNS (und man braucht keine DHCP Lease dafür zu vergeben).

Ein netter Nebeneffekt wäre da nämlich, dass man dnsmasq bei einer Änderung in diesen 2 Dateien nicht komplett neu starten muss. Man muss ihm nur ein HUP schicken und er liest die Dateien neu ein (fehlt noch das reload in rc.dnsmasq). Glaub aber mal gelesen zu haben, dass im Freetz-WebIf die Unterseiten eines Paketes keine unterschiedliche Aktionen haben können? Wie die Webseiten aufgebaut sind hab ich leider noch nicht so den richtigen Durchblick…

Hat da einer Idee dazu?

comment:2 Antwort: Geändert vor 6 Jahren durch cuma

  • Meilenstein auf freetz-future gesetzt

Ich hab die Änderungen nur überflogen, aber es stellt sich die alte Frage, wie man einen IPv6-Tunnel aufbauen kann ohne Namensauflösung (dnsmasq) bzw umgekehrt, wie kann dnsmasq den zugeteilten DNS-Server des Brokers nutzen?

comment:3 Geändert vor 6 Jahren durch cuma

In 9677:

load filesystem modules & ipv6 via modload (refs #1953)

comment:4 Geändert vor 6 Jahren durch er13

Ich habe eine Frage bezüglich der Anzeige in AVM-WebIF. Läuft dnsmasq bei Dir alleine oder läuft auch der DHCP-Server von AVM mit. Wie hermann in diesem Thread rausgefunden hat, ob die Namen im AVM-WebIF angezeigt werden oder nicht, hängt teilweise davon ab, ob der DHCP von AVM mitläuft oder nicht. In dem Thread ist auch ein Patch angehängt, der die multid.leases im neuen Format erstellt. Dein Script macht für mich eigentlich dasselbe, der Vorteil ist allerdings, dass es lease vs. wlease unterscheiden kann und das mittels "msgsend multid neightransfer".

comment:5 Geändert vor 6 Jahren durch er13

In 9679:

dnsmasq:

comment:6 Antwort: Geändert vor 6 Jahren durch cuma

however creates multid.leases in the same format as the recent AVM firmwares

Und das funktioniert auch mit der aktuellen Firmware 09.04.34 der 3020?

Geändert vor 6 Jahren durch cuma

unmodified, without useless extension

comment:7 als Antwort auf: ↑ 6 Geändert vor 6 Jahren durch er13

Replying to cuma:

however creates multid.leases in the same format as the recent AVM firmwares

Und das funktioniert auch mit der aktuellen Firmware 09.04.34 der 3020?

Keine Ahnung, ich habe keine 3020. Es sind lediglich ein paar Einträge hinten hinzugekommen, sodass die alten Boxen, wenn AVM es nicht ganz bescheuert programmiert hat, gar nicht betroffen sein sollen.

comment:8 Geändert vor 6 Jahren durch er13

Was ich noch anmerken wollte, mein Rechner ist per LAN verbunden (d.h. lease vs. wlease ist egal) und wird im AVM Web-IF trotzdem nur mit IP-Adresse angezeigt. Das DHCP-Script von Wiedmann macht vom Lesen her genau das gleiche wie der Patch. Daher meine Vermutung, es liegt gar nicht an dem Patch, dass die Namen nicht angezeigt werden. S. auch Hermann's Recherche in diesem Thread.

Zuletzt geändert vor 6 Jahren von er13 (vorher) (Diff)

comment:9 Geändert vor 6 Jahren durch cuma

Ich muss sagen dass ich das Problem noch gar nicht ganz verstanden hab, was gelöst werden soll…

Geändert vor 6 Jahren durch cuma

comment:10 als Antwort auf: ↑ 2 Geändert vor 6 Jahren durch Wiedmann

Replying to cuma:

Ich hab die Änderungen nur überflogen, aber es stellt sich die alte Frage, wie man einen IPv6-Tunnel aufbauen kann ohne Namensauflösung (dnsmasq) bzw umgekehrt, wie kann dnsmasq den zugeteilten DNS-Server des Brokers nutzen?

Hmm, genauso wie bisher auch? DNSMasq und Tunnel ging ja schon vorher. Über die IPv4 DNS-Servers des normalen Providers bekommst man ja in der Regel auch AAAA Antworten wenn man danach fragt. Als zusätzlichen IPv6 DNS-Server trag ich dann den vom Tunnelbrocker noch als zusätzlich Server manuell im WebIf ein. Würde aber meist genauso auch ohne gehen. Für die Rechner im LAN ist ja immer DNSMasq der Ansprechpartner.

Das Problem bei z.B. der 7170 (die ich hab) ist tatsächlich, dass der Tunnel (und IPv6) erst im rc.custom aufgebaut wird, also nach dem Start vom DNSmasq. Hier starte ich dann in rc.custom auch den DNSMasq noch selbst neu.

Replying to cuma:

Ich muss sagen dass ich das Problem noch gar nicht ganz verstanden hab, was gelöst werden soll…

Wenn sich ein Rechner "workstation" vom DNSMasq/Fritzbox eine IP holt und man macht

nslookup workstation fritzbox

bekommt man bisher nur eine IPv4 Adresse geliefert (A-Record). Mit diesem Patch auch die IPv6-Adresse (AAAA-Record) des Rechners. Und man könnte eben über DHCPv6 feste IPs verteilen, bzw. DNS-Einträge für IPv6-Adressen machen.
Alles bisher nicht möglich. Selbst wenn IPv6 usw. sonst auf der Box läuft. Bisher geht nur die IPv6-Namensauflösung für Rechner im Inet (eben über die DNS-Server des Providers), aber nicht für lokale Rechner.



Nun, und das mit dem WebIf ist mir eigentlich eher nebenbei aufgefallen. Seit ich DNSMasq auf der Box habe und als DHCP/DNS benutze gab es keine Namen mehr im WebIf. Seit ich diese gepatchte Version drauf hab werden wieder welche angezeigt (Und das bei ansonst der selben Firmware/Kernel usw.).

comment:11 Antwort: Geändert vor 6 Jahren durch cuma

Über die IPv4 DNS-Servers des normalen Providers bekommst man ja in der Regel auch AAAA Antworten

Stimmt, hab ich schon vergessen. Meine letzten ipv6 Experimente liegen Jahre zurück…

s Problem bei z.B. der 7170 (die ich hab) ist tatsächlich, dass der Tunnel (und IPv6) erst im rc.custom aufgebaut wird, also nach dem Start vom DNSmasq. Hier starte ich dann in rc.custom auch den DNSMasq noch selbst neu.

Ist das auch noch nach comment:3 nötig? (Gibst es dazu nicht schon ein offenes Ticket?)

Wenn sich ein Rechner "workstation" vom DNSMasq/Fritzbox eine IP holt und man macht: nslookup workstation fritzbox

Ich meinte eigentlich das mit dem Webinterface von dem du weiter unter schreibst :) Ich hab damit aber keine Problem. Das zeigt (Screenshot) auch der Verbindungsart & -geschwindigkeit an.

Also kann man zusammenfassend sagen, dass es

  • um IPv6 Hostnamen in die "Hosts"-Datei eingetragen werden geht?
  • und um die Synchronisation aller Namenseinträge im AVM-Webif?
Zuletzt geändert vor 6 Jahren von cuma (vorher) (Diff)

comment:12 als Antwort auf: ↑ 11 Geändert vor 6 Jahren durch Wiedmann

Replying to cuma:

s Problem bei z.B. der 7170 (die ich hab) ist tatsächlich, dass der Tunnel (und IPv6) erst im rc.custom aufgebaut wird, also nach dem Start vom DNSmasq. Hier starte ich dann in rc.custom auch den DNSMasq noch selbst neu.

Ist das auch noch nach comment:3 nötig? (Gibst es dazu nicht schon ein offenes Ticket?)

Ah.. Naja, das gab's gestern noch nicht ;-) Da kann ich mir natürlich das "if [ -d /proc/sys/net/ipv6 ] …" in der "rc.dnsmasq" sparen.
Dann brauchts ja nur noch eine Lösung, dass auch eine 7170 früher beim lan/eth0 Interface korrekte inet6 Daten hat. (bzw. und der Tunnel früher aufgebaut wird)

BTW: Kann so dann auch der Samba IPv6, oder ist das ein anderes Problem. Muss mal ein svn up machen…


Also kann man zusammenfassend sagen, dass es

  • um IPv6 Hostnamen in die "Hosts"-Datei eingetragen werden geht?

Jein, sie werden ja nicht wirklich in die /etc/hosts eingtragen.. DNSMasq soll:

  • für DHCPv4 Hosts automatisch IPv6 DNS Einträge erzeugen (enable-ra, ra-stateless, ra-names, slaac, usw.)
  • Soll manuelle DHCPv6 Leases verteilen können (dhcp-host mit IPv6)
  • manuelle DNS Einträge für IPv6 verwalten (host-record mit IPv6) → z.B. IPv6 Rechner ohne DHCP



  • und um die Synchronisation aller Namenseinträge im AVM-Webif?

Das war wie gesagt ein Nebeneffekt und tut jetzt wenigstens bei mir. Also nichts was ich jetzt direkt bezwecken wollte… Die "multid.leases" benutzt der DNSMasq ja bei mir nicht mehr. Aber Änderungen bei den DHCP Leases lass ich eben über das Script auch in die "multid.leases" schreiben. War halt bisher auch so das diese aktuell war. Nach schreiben der "multid.leases" schick ich dem multid dann nur noch ein HUP, damit der die Änderung auch mitbekommt.

comment:13 Antwort: Geändert vor 6 Jahren durch cuma

Dann brauchts ja nur noch eine Lösung, dass auch eine 7170 früher beim lan/eth0 Interface korrekte inet6 Daten hat. (bzw. und der Tunnel früher aufgebaut wird)

Früher einen Tunnel? Da ist ja nicht so einfach, da aiccu eine korrekte Zeit braucht. Die bekommt es nur wenn openntpd eine richtige Zeit gesetzt hat. Das geht aber nur wenn der Name des Zeitserver aufgelöst werden kann. (das kommt mit bekannt vor, das hab ich in einem ähnlichen Ticket auch so geschrieben)
Falls es reicht irgendwelche IPv6s für die Interface zu setzen: #1866


Zum Rest kann ich momentan nichts sagen :) Nur noch die Frage, ob man den multid immer manuelle anHUPen muss bei neuen Geräten?

Zuletzt geändert vor 6 Jahren von cuma (vorher) (Diff)

comment:14 als Antwort auf: ↑ 13 ; Antwort: Geändert vor 6 Jahren durch Wiedmann

Replying to cuma:

Dann brauchts ja nur noch eine Lösung, dass auch eine 7170 früher beim lan/eth0 Interface korrekte inet6 Daten hat. (bzw. und der Tunnel früher aufgebaut wird)

Früher einen Tunnel? Da ist ja nicht so einfach, da aiccu eine korrekte Zeit braucht. Die bekommt es nur wenn openntpd eine richtige Zeit gesetzt hat. Das geht aber nur wenn der Name des Zeitserver aufgelöst werden kann. (das kommt mit bekannt vor, das hab ich in einem ähnlichen Ticket auch so geschrieben)
Falls es reicht irgendwelche IPv6s für die Interface zu setzen: #1866

Yo, aiccu oder so benutze ich nicht. Ich setzte meinen Tunnel ganz klassisch mit ip/ifconfig. Wann ich den konfiguriere (und ob der steht) ist tatsächlich nicht ganz so wichtig. Aber eben die IPv6 für das lan-Device sollte man früher setzten können. openntpd startet z.B. bei mir deshalb nicht automatisch, da er sich zu diesem Zeitpunkt noch nicht an die konfigurierte IPv6 binden kann. Und andere Dienste die sich explizit an vorhandene IPv6's binden können das deshalb auch nicht.


Nur noch die Frage, ob man den multid immer manuelle anHUPen muss bei neuen Geräten?

Keine Ahnung. Aber wenn er sich an den Standard hält, sollte er so seine Konfigurationsdateien neu einlesen, also auch die "multid.leases". Irgendwie muss er ja wissen das sich die geändert hat.


Zum Rest kann ich momentan nichts sagen :)

Ok, auch wenn das hier unter "new enhancement" steht, beschreibe ich hier ja einen "defect" im dnsmasq-Paket:
Durch den "100-multid-leases.patch" funktionieren grundlegende dnsmasq-Funktionen nicht mehr.

Wenn du das nachstellen willst, brauchst du keinen Tunnel oder IPv6 vom Provider. Aber eine Box mit IPv6 im Kernel, einen aktivierten dnsmasq für DHCP/DNS und einen IPv6 fähigen Client. Bei einem Windows Client das netsh (comment:1) noch machen.

In die "rc.custom" machst du dieses rein:

modprobe ipv6
ip addr add fd21:23c2:dd2f::1/64 dev lan

Beim dnsmasq unter "extra" noch:

dhcp-range=fd21:23c2:dd2f::,ra-stateless,ra-names
enable-ra

Box neu starten, Rechner neu starten. Dieser sollte sich jetzt ganz normal die IPv4 vom dnsmasq ziehen und über den radv vom dnsmasq bekommt er das IPv6-Prefix mitgeteilt. Daraus bildet er sich dann seine SLAAC Adresse.

Und jetzt was nicht geht:
Ein nslookup mit dem Rechnernamen auf die Box, sollte sowohl die IPv4 sowohl die über SLAAC ermittelte IPv6-Adresse zurück liefern.

Der "100-multid-leases.patch" verhindert also, dass eine normale dnsmasq-Funktion nicht mehr geht. Meine Lösung ist jetzt also,

  • den dnsmasq gar nicht zu patchen (damit funktioniert der korrekt),
  • für die Aktualisierung der multid.leases benutzte ich eine Funktion die mit der dnsmasq zur Verfügung stellt (dhcp-script).
  • und gegenwärtig ist es ja so, dass jedes mal beim (Neu-) Start vom dnsmasq die (vorhandene) lease Datenbank gelöscht wird. Das will man natürlich auch nicht und diese übersteht jetzt auch einen Neustart.
Zuletzt geändert vor 6 Jahren von Wiedmann (vorher) (Diff)

comment:15 als Antwort auf: ↑ 14 ; Antwort: Geändert vor 6 Jahren durch er13

Replying to Wiedmann:

Durch den "100-multid-leases.patch" funktionieren grundlegende dnsmasq-Funktionen nicht mehr.

Bist Du Dir sicher, dass es an dem Patch liegt? Ganz schön viel für einen kleinen Patch, der lediglich eine weitere Datei rausschreibt und das mit den dnsmasq-eigenen Mitteln. Kann es sein, dass es doch ein dnsmasq-Bug war, der mit 2.64 einfach behoben wurde?

Meine Lösung ist jetzt also,

  • den dnsmasq gar nicht zu patchen (damit funktioniert der korrekt),
  • für die Aktualisierung der multid.leases benutzte ich eine Funktion die mit der dnsmasq zur Verfügung stellt (dhcp-script).

@cuma: nur z. Info, das Script macht auch keine Unterscheidung alte vs. neue Box und schreibt multid.leases im neuen Format raus.

comment:16 als Antwort auf: ↑ 15 ; Antwort: Geändert vor 6 Jahren durch Wiedmann

Replying to er13:

Durch den "100-multid-leases.patch" funktionieren grundlegende dnsmasq-Funktionen nicht mehr.

Bist Du Dir sicher, dass es an dem Patch liegt? Ganz schön viel für einen kleinen Patch, der lediglich eine weitere Datei rausschreibt und das mit den dnsmasq-eigenen Mitteln. Kann es sein, dass es doch ein dnsmasq-Bug war, der mit 2.64 einfach behoben wurde?

Yup, da bin ich mir sicher. Aber musst ja nur den Test aus comment:14 mit eurem 2.64 machen.

Aber netterweise behebt 2.64 den Fehler mit "host-record". Ist aber für das grundsätzliche Problem hier nicht ausschlaggebend.


@cuma: nur z. Info, das Script macht auch keine Unterscheidung alte vs. neue Box und schreibt multid.leases im neuen Format raus.

Was genau ist eine alte/neue Box. Bzw. wie unterscheidet sich das. Hab halt nur eine 7170 da und hab geschaut wie die das macht, bzw. was im Fritzbox-Wiki steht.

Ansonsten kann man das Script durchaus erweitern wenn man wo ein anderes Format braucht. Im Moment geh ich auch davon aus das die "neighdebug.txt" immer ungefähr gleich aussieht. Sollte das anders sein, einfach sagen. (IMHO gibt's die sogar erst seit der 7171? Dann sollte man das natürlich für ältere Boxen weglassen. aber deshalb auch der Timeout an der Stelle.

comment:17 Geändert vor 6 Jahren durch cuma

Es kann sein dass es bei allen Boxen gleich ist, ich hab nur vorsorglich gefragt. Sonst macht man was kaputt und merkt es nicht.
Bei der resolv.conf ist es zB so dass sich die Bedeutung der verschiedenen Dateien mit der Zeit verändert hat. Mit Freetz funktioniert das nach längerem basteln von uralt (zB 09.04.34) bis aktuell (zB 105.05.27).
Funktioniert es, dass man eine IPv6 einem Interface nur einmal beim Start zuweist, und die bleibt? Manche Dinge werden von AVM zurückgesetzt (multid, ctlmg, dsld,…), zB http://www.ip-phone-forum.de/showthread.php?t=254728 oder auch in rc.multid zu sehen

comment:18 als Antwort auf: ↑ 16 ; Antwort: Geändert vor 6 Jahren durch er13

Replying to Wiedmann:

Replying to er13:

Durch den "100-multid-leases.patch" funktionieren grundlegende dnsmasq-Funktionen nicht mehr.

Bist Du Dir sicher, dass es an dem Patch liegt? Ganz schön viel für einen kleinen Patch, der lediglich eine weitere Datei rausschreibt und das mit den dnsmasq-eigenen Mitteln. Kann es sein, dass es doch ein dnsmasq-Bug war, der mit 2.64 einfach behoben wurde?

Yup, da bin ich mir sicher. Aber musst ja nur den Test aus comment:14 mit eurem 2.64 machen.

Ich habe kein IPv6 auf meiner Box. Vom Lesen des Patches her kann ich überhaupt nicht nachvollziehen, wieso er das von Dir beschriebene Problem verursachen soll. Die einzige Stelle, wo ich mir noch nicht ganz sicher bin, ist file_dirty = 1 (gehört eventuell vor slaac_add_addrs), alles andere kann ich ausschließen.

p.s. mir geht nicht um die Vertedigung des Patches, ich will es nur verstehen.

comment:19 als Antwort auf: ↑ 18 ; Antwort: Geändert vor 6 Jahren durch Wiedmann

Replying to er13:

p.s. mir geht nicht um die Vertedigung des Patches, ich will es nur verstehen.

Kann natürlich verstehen ;-)

Den Quellcode von dnsmasq hab ich mir gar nicht angeschaut und was der 100-Patch darin genau wie ändert. Mir sind halt 4 Sachen aufgefallen:

  • ra-names tut nicht
  • in der multid.leases steht z.T. Murks am Zeilenende
  • die dnsmasq.leases ist völlig verhunzt
  • die vergebenen Leases überstehen keinen Neustart (der Box bzw. dnsmasq)

Klar war mir allerdings, dass 100-Patch etwas mit den "leases"-Dateien zu tun hat. Und da hat sich mir halt die Frage gestellt: Warum soll ich ein Programm patchen wenn es nicht sein muss?

Ungelöst ist natürlich nach wie vor, dass man über WebIf mod/hosts keine IPv6 Adressen eintragen kann und man dort auf IPv4 festgelegt ist. Da sollte man sich jetzt halt festlegen:

  • beschränkt man sich da auf IPv4? —> Dann sollte natürlich auch ein Hinweis dafür da sein.
  • soll das dort auch für IPv6 gehen? —> Dann muss man den Teil auch noch überarbeiten

comment:21 Geändert vor 6 Jahren durch er13

In 9684:

dnsmasq:

  • fix multid-leases.patch related problem reported in #1953
  • bug introduced in r8866
  • refs #1953

@me: RTFM, … is not the same as va_list, s. http://c-faq.com/varargs/handoff.html for details

comment:22 Antwort: Geändert vor 6 Jahren durch er13

@Wiedmann: Du hattest Recht, es lag an dem Patch. Es hat mich relativ viel Zeit gekostet bis ich den Fehler endlich gesehen habe, werde wohl älter ;-) Jetzt sollte dieser behoben sein. lease vs wlease funktioniert allerdings immer noch nicht.

Sollte Dein DHCP-Script lease vs. wlease Problem tatsächlich lösen und dazu auch noch die Anzeige im AVM-WebIF korrigieren (muss man da wirklich multid anHUPen oder geht es vielleicht auch anders?), so hätte ich nichts dagegen den Patch komplett rauszuschmeissen. Die Korrektur in r9684 ist nur um die Zeit zu überbrücken bis Dein Code bzw. Teile davon eingecheckt werden.

Zuletzt geändert vor 6 Jahren von er13 (vorher) (Diff)

comment:23 als Antwort auf: ↑ 22 ; Antwort: Geändert vor 6 Jahren durch Wiedmann

Replying to er13:

lease vs wlease funktioniert allerdings immer noch nicht.

Das ist halt das Problem mit dem Bridged-Interface. Für dnsmaq kommt halt alles übers lan-Interface. Ansonsten hätte man diese Information ja auch im dnsmasq zur Verfüung. Da ist die Fritzbox im Vorteil, weil die ja weiß welche MACs an welchem Switchport (oder WLAN) vorhanden sind. Also das was ich beim neightdebug abfrage.


und dazu auch noch die Anzeige im AVM-WebIF korrigieren

So ganz funktioniert es noch nicht. Wie mir aufgefallen ist grad nur bei den WLAN Rechnern, aber nicht bei denen die am LAN dranhängen. Und die WLAN-Rechner müssen sich auch nach Boxstart eine Lease besorgen damit der Name stimmt. Allerdings hab ich da eine Idee wie ich das lösen könnte (Landevice).

Sieht soweit ganz gut aus. Für'n richten Test muss ich aber noch warten bis die Box nicht mehr für telefonieren gebraucht wird…


(muss man da wirklich multid anHUPen oder geht es vielleicht auch anders?),

Gute Frage. Kann's ja mal ohne HUPen testen.

BTW:
Hat einer 'ne Ahnung warum /etc/init.d/rc.dnsmasq stop ein "failed" bringt, obwohl er doch danach beendet ist?

comment:24 Geändert vor 6 Jahren durch cuma

Hat einer 'ne Ahnung warum /etc/init.d/rc.dnsmasq stop ein "failed" bringt, obwohl er doch danach beendet ist?

Bei mir gehts. Evtl wegen deiner Modifikationen ;-) Ruf es mit "sh -x …" auf

comment:25 Geändert vor 6 Jahren durch Wiedmann

Bei mir gehts. Evtl wegen deiner Modifikationen ;-) Ruf es mit "sh -x …" auf

Ah, alles klar. Wenn "/var/flash/multid.leases" kein Symlink ist, sagt das rc beim stop "failed", auch wenn der dnsmasq korrekt beendet wurde.

Zuletzt geändert vor 6 Jahren von Wiedmann (vorher) (Diff)

Geändert vor 6 Jahren durch Wiedmann

dnsmasq.patch

comment:26 als Antwort auf: ↑ 23 Geändert vor 6 Jahren durch Wiedmann

Replying to Wiedmann:

Replying to er13:

und dazu auch noch die Anzeige im AVM-WebIF korrigieren

So ganz funktioniert es noch nicht. Wie mir aufgefallen ist grad nur bei den WLAN Rechnern, aber nicht bei denen die am LAN dranhängen. Und die WLAN-Rechner müssen sich auch nach Boxstart eine Lease besorgen damit der Name stimmt. Allerdings hab ich da eine Idee wie ich das lösen könnte (Landevice).

Sieht soweit ganz gut aus. Für'n richten Test muss ich aber noch warten bis die Box nicht mehr für telefonieren gebraucht wird…

Sodele, jetzt hab ich mal eine Version angehängt (dnsmasq.2.patch), welche auch für LAN-Rechner die Namen anzeigt. Für vorhandene Leases sollte der Name auch gleich korrekt nach Start richtig angezeigt werden, ohne das sich der Rechner eine neue IP beziehen muss.

Bleibt noch ein "Problem" für die, welche auch wie ich den dnsmasq vor dem multid starten. Hier kann dann für schnell anmeldende Rechner das wlease evtl. nicht korrekt ermittelt werden, da multid noch nicht läuft. Einstweilen behelfe ich mich mit einem /etc/init.d/rc.dnsmasq reload in der rc.custom. Da sollte man evtl. dann die rc.multid entsprechend erweitern damit das dort passieren kann?

BTW. Wie genau wollt ihr denn ein diff haben, wo eine Datei gelöscht wird? Ansonsten: Happy Testing :-)

comment:27 Geändert vor 6 Jahren durch cuma

In 9689:

rc.dnsmasq:

  • add reload
  • use modlibrc's pre/post
  • dont use 'kill' to stop

(refs #1953)

Geändert vor 6 Jahren durch cuma

comment:28 Antwort: Geändert vor 6 Jahren durch cuma

Bei Dateien löschen am besten dazuschreiben, ein .patch macht sonst eine leere Datei. Ausführungsberechtigungen am besten auch (zB die make/dnsmasq/files/root/usr/sbin/dnsmasq-script.sh braucht?). Klappt das mit IPv6 noch nicht? Und wie ist die Laufzeit, diese "ctlmgr_ctl" sind doch nicht so schnell

comment:29 als Antwort auf: ↑ 28 Geändert vor 6 Jahren durch Wiedmann

Replying to cuma:

Bei Dateien löschen am besten dazuschreiben, ein .patch macht sonst eine leere Datei.

Index: make/dnsmasq/patches/100-multid-leases.patch (deleted)


Ausführungsberechtigungen am besten auch (zB die make/dnsmasq/files/root/usr/sbin/dnsmasq-script.sh braucht?).

Laut Doku läuft der Prozess als root, wie der dnsmasq auch.


Klappt das mit IPv6 noch nicht?

Machen die neuen Fritzboxen DHCPv6 statefull. Also können die was damit anfangen, wenn es nur eine Client-ID gibt aber keine MAC?

Hab hier leider keine neue Box. Und bei "Diese IP immer für den PC vergeben" ist hier nur IPv4 gemeint. Können die neueren auch IPv6 fest vergeben?


Und wie ist die Laufzeit, diese "ctlmgr_ctl" sind doch nicht so schnell

time ctlmgr_ctl r landevice settings/landevice0/name

real    0m 0.38s

Kommt also auf die Anzahl der Rechner drauf an… Das betrifft aber nur die Anzeige im WebIf. Der dnsmasq vergibt ja jede Lease sofort. Das Script wird dann parallel sequenziell für jedes Lease-Event abgearbeitet.

comment:30 Geändert vor 6 Jahren durch cuma

In 9692:

rc.dnsmasq: fix return value (refs #1953)

comment:31 Antworten: Geändert vor 6 Jahren durch cuma

Index: make/dnsmasq/patches/100-multid-leases.patch (deleted)

Hab ich übersehen, das Trac zeigt solche Dinge nicht einmal an

Mit Berechtigungen meinte ich mehr im Sinne von "chmod"

comment:32 als Antwort auf: ↑ 31 Geändert vor 6 Jahren durch Wiedmann

Replying to cuma:

Mit Berechtigungen meinte ich mehr im Sinne von "chmod"

Aso, 755 (u=rwx,go=rx), wie beim dnsmasq halt auch. (warum hat da überhaupt soviel 777 in /usr/sbin?)

comment:33 Geändert vor 6 Jahren durch Norelkhan

Seit 9685 auf der 7390 kommt wieder der Fehler "dnsmasq: unknown user or group: nobody", der schon vor einem Jahr im Ticket 1672 beschrieben wurde. Mal startet dnsmasq beim Neubooten, mal aber auch nicht. Aus dem Webif läßt er sich jedenfalls nicht starten.

comment:34 Geändert vor 6 Jahren durch oliver

@Norelkhan
Off-Topic hier. Bitte ein neues Ticket öffnen. Deine Firmware-Version wäre interessant. Wahrscheinlich Laborversion?

Zuletzt geändert vor 6 Jahren von oliver (vorher) (Diff)

comment:35 als Antwort auf: ↑ 19 Geändert vor 6 Jahren durch por

Replying to Wiedmann:

Klar war mir allerdings, dass 100-Patch etwas mit den "leases"-Dateien zu tun hat. Und da hat sich mir halt die Frage gestellt: Warum soll ich ein Programm patchen wenn es nicht sein muss?

Ganz richtig, m.M.n soll man ein "upstream" Programm nicht patchen wenn es einen andere (einfachere) Weg gibt. Jeder patch eines upstream Programm bringt die Verantwortung es zu unterhalten und ist einen "Brunnen" für Fehler.

comment:36 Geändert vor 6 Jahren durch Wiedmann

So, hab den Patch nochmals aktualisiert (dnsmasq.3.patch).

  • passt jetzt auf den das neue rc.dnsmasq (changeset:9689)
  • ist gescheiter auf das Anlegen der neightdebug.txt warten, anstatt auf die stat-Änderung
  • falls neightdebug.txt die MAC nicht kennt (PC ist aus), kann man auch noch eine evtl. vorhandene gespeicherte Konfiguration abfragen

Replying to cuma:

Und wie ist die Laufzeit, diese "ctlmgr_ctl" sind doch nicht so schnell

Hab mal geschaut, die komplette Laufzeit des Scriptes ist bei mir (auf der 7170) ~2 sek. Aber wie gesagt, die Clients bekommen die Lease sofort.

Geändert vor 6 Jahren durch por

adapted patch after 9694

comment:37 Geändert vor 6 Jahren durch por

Please ignore patch dnsmasq.2_nach_r9694.patch.
It is incomplete and dnsmasq.3.patch does what was intended.
Sorry for the pollution.

Geändert vor 6 Jahren durch Wiedmann

dnsmasq.patch

comment:38 als Antwort auf: ↑ 31 Geändert vor 6 Jahren durch Wiedmann

Replying to cuma:

Index: make/dnsmasq/patches/100-multid-leases.patch (deleted)

Hab ich übersehen, das Trac zeigt solche Dinge nicht einmal an

OK. Hab's jetzt mal ausprobiert. Mit "—no-diff-deleted" steht zwar das obige "deleted" im diff, aber ein patch -p0 < dnsmasq.3.patch interessiert sich nicht dafür und die Datei bleibt da. Das geht wohl nur, wenn man auch ein "svn patch" hat.

Hat den dnsmasq.3.patch jetzt nochmals ohne "—no-diff-deleted" aktualisiert. So hat man dann halt eine leere Datei. Aber es tut, auch wenn einer die Datei nicht manuell löscht.


Replying to por:

and dnsmasq.3.patch does what was intended.

Glad to see someone is testing this. Just make shure "make/dnsmasq/patches/100-multid-leases.patch" is deleted (or emty).

To get some feedback: Is is working for you or any problems?

comment:39 Geändert vor 5 Jahren durch MrTweek1987

funktioniert das eigentlich wirklich?! Ich meine mal erlebt zuhaben, dass wenn man DHCP und SLAAC zusammen nutzt, es zu folgenden tollen einträgen kommt Ich zitire:

Jun 22 13:34:33 fritz daemon.info dnsmasq-dhcp[2479]: IPv6 router advertisement enabled
Jun 22 13:34:33 fritz daemon.info dnsmasq-dhcp[2479]: DHCP, IP range 2001:4dd0::::2 -- 2001:4dd0::::500, lease time 12h
Jun 22 13:37:53 fritz daemon.info dnsmasq-dhcp[2941]: RTR-ADVERT(eth0) 2001:4dd0::::
Jun 22 13:37:53 fritz daemon.info dnsmasq-dhcp[2941]: RTR-SOLICIT(eth0) 54:04:a6:94:a3:61
Jun 22 13:37:53 fritz daemon.info dnsmasq-dhcp[2941]: RTR-ADVERT(eth0) 2001:4dd0::::

Jun 22 13:37:53 fritz daemon.info dnsmasq-dhcp[2941]: DHCPSOLICIT(eth0) 00:01:00:01:17:65:aa:41:54:04:a6:94:a3:61
Jun 22 13:37:53 fritz daemon.info dnsmasq-dhcp[2941]: DHCPADVERTISE(eth0) 2001:4dd0::::45f
Jun 22 13:37:54 fritz daemon.info dnsmasq-dhcp[2941]: DHCPREQUEST(eth0) 00:01:00:01:17:65:aa:41:54:04:a6:94:a3:61
Jun 22 13:37:54 fritz daemon.info dnsmasq-dhcp[2941]: DHCPREPLY(eth0) 2001:4dd0::::45f

Der effekt war auf meiner 7170 der hier passiert ist: dass alle Clients nach ca 5 Mins ihre konfiguration verlieren … bzw verlierten, daher sollte man evtl eine Version 4 rausbringen, die das evtl "überprüft"…

sodass nicht versehentlich beide aktiv "werden"…

comment:40 Geändert vor 5 Jahren durch cuma

@er13: Funktioniert das und sollen wird das übernehmen? Die export-Zeile dürfte überflüssig sein und das Skript sollte ohne ipv6 nicht in die Firmware, das spart Platz und macht die "no IPv6" Abfrage überflüssig. Evtl wäre zu AVM_HAS_IPV6 eine weiter Definition gut, wenn die Firmware zwingend IPv6 hat, aber man es nicht nutzt und keine zusätzlichen Features braucht

comment:41 Geändert vor 4 Jahren durch Conan179

Wie aktuelll ist das mit den patches eingeltich?
Der letzte beitrag ist von vor 17monate und ich bin momentan dabei dem Dnsmasq auf meiner 7390 (devel12887) beibrigen das er die ipv6 vertreilt die die 6360 an dnsmasq weiter reicht.

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.