Dnsmasq Wildcard Host Override funktioniert nicht

Started by observing0436, May 27, 2025, 06:41:59 PM

Previous topic - Next topic
May 27, 2025, 06:41:59 PM Last Edit: May 27, 2025, 07:28:35 PM by observing0436 Reason: Spelling error in Title
Opnsense-Version: 25.1.7_4

Hallo Zusammen,

in meiner Opnsense habe ich unter dem Service "Dnsmasq" einen Wildcard Host Override mit folgenden Parametern eingetragen:

Host: *
Domain: int.fake.de
IP Addresses: 192.168.13.1

Mit "nslookup [beliebige Zeichenfolge].int.fake.de" kommt die Antwort "NXDOMAIN".

Gebe ich aber "nslookup *.int.fake.de" ein, wird korrekt aufgelöst.

Hier hätte ich erwartet, dass es nicht funktioniert!

Habe ich ein Verständnisproblem?

Danke vorab!

Grüße
Mike


Ich glaube, DNSmasq kann Wildcards nur, indem man den Namensanteil ganz weglässt. Beispielsweise soll das mit "address=/int.fake.de/192.168.13.1" gehen.
Die DHCP-Host-Einträge in OpnSense werden aber in "dhcp-host="-Parameter umgesetzt und die statischen Reservierungen inklusive Aliases in Einträge in /var/etc/dnsmasq-hosts, dynamische Einträge in /var/etc/dnsmasq-leases. Außerdem ist der Hostname dort Plficht, weglassen kann man ihn also nicht.

Aktuell dürfte also die einzige Möglichkeit sein, in /usr/local/etc/dnsmasq.conf.d eine zusätzliche .conf-Datei mit dem der o.a. Zeile einzutragen.

Wenn Du das Feature gern hättest, kannst Du versuchen, einen Feature-Request auf Github anlegen: https://github.com/opnsense/core/issues
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Vielleicht hier mit reinschreiben. * ist komisch das habe ich heute früher schon festgestellt.

https://github.com/opnsense/core/issues/8731

Wenn es nicht geht sollte man es wohl eher verbieten weil wegen einem edgecase die ganze logik zu splitten und auch noch address einzuführen führt am Ende nur zu einem Rattenschwanz.
Hardware:
DEC740

May 27, 2025, 11:00:45 PM #3 Last Edit: May 28, 2025, 09:54:06 AM by meyergru
Die Logik splitten würde ich auch nicht - man könnte nur reine DNS-Aliase zulassen.

Ich weiß nicht, ob Wildcards ein wirklicher Edge-Case ist (lokal habe ich das noch nicht gebraucht), nur ist es klar, das Aliase eben etwas anderes als Host-Einträge sind. Bei BIND würde das eine ein CNAME sein und das andere ein A-Record. Ich meine, auch dort sind Wildcards nur in CNAMES möglich.

Wenn ich so drüber nachdenke, ist das dann aber ein reines DNS-Thema, dass man auch genauso gut im Unbound machen kann. Ich meine, dass auch bei bestehenden Custom Forwards lokale Unbound-Overrides noch vorher wirken. Ich nutze das z.B., um den unqualifizierten Eintrag für "unifi" zu definieren.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Vielen Dank für Euren Input!

@meyergru
Die technische Umsetzung erklärt, dass es so nicht funktioniert :-)

@Monviech
Die Dokumentation und der Hilfetext in der WebGui suggerieren tatsächlich was anderes. Insofern macht es Sinn, die Eingabe von "*" nicht zu erlauben. Zusätzlich sollte auch die Hilfe angepasst werden.

Grund der Konfiguration ist, dass ich alle Web-Dienste, die nur intern verfügbar sein sollen, über ein gemeinsames Wildcard-Zertifikat und einen Reverse-Proxy erreichbar machen möchte ohne die Fehlermeldung "Dies ist keine sichere Verbindung".

May 28, 2025, 12:16:58 PM #5 Last Edit: May 28, 2025, 01:22:22 PM by meyergru
Quote from: observing0436 on May 28, 2025, 12:09:47 PMGrund der Konfiguration ist, dass ich alle Web-Dienste, die nur intern verfügbar sein sollen, über ein gemeinsames Wildcard-Zertifikat und einen Reverse-Proxy erreichbar machen möchte ohne die Fehlermeldung "Dies ist keine sichere Verbindung".

Dachte ich mir schon fast - ich selbst nutze intern eine "kurze" Domain mit einer eigenen CA - deswegen ist ein Wildcard sowieso nicht möglich (Wildcards für Domains mit nur einem Punkt akzeptieren die Browser nicht). Die eigene CA nutze ich, weil ich nur damit "unendlich" lange laufende Zertifikate bekomme. Die Alternative dazu ist natürlich ein Reverse Proxy, der selbst Zertifikate für "lange" Namen holt, so wie Du es machst.

Das Beispiel zeigt, dass der Use Case nicht ganz abseitig ist.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+