Ergebnis: falsches Ziel, TLS-Fehler. das Entfernen des search-Eintrags behebt es.
Das ist mir durchaus klar. Aber Interessant, den von dir verlinkten Issue habe ich wohl bisher übersehen. Danke für den Hinweis!
Ich habe das Problem jetzt mal tiefergreifend analysiert und es hat tatsächlich nichts mit irgendwelchen libc's oder libcurl's.
ArtCore7 Die LLM Ausgabe war eine komplette Halluzination, php-curl nutzt libcurl und damit einhergehend kein c-ares, genauso wie das curl auf der CLI. Generell hat das ganze nichts mir c-ares zu tun, das ist im curl Kontext seit 2010 nicht mehr auf Debian zu finden.
Generell konnte ich sowohl mit unterschiedlichen Debian (und damit glibc und (lib)curl) Versionen, als auch unterschiedlichen PHP Versionen keine Unterschiede feststellen.
Das Problem lag tatsächlich in einer Nextcloud eigenen DNS-Middleware, welche explizit den A Record und dann explizit den AAAA Record auflöst. Diese Middleware greift auf dns_get_record von PHP zurück. Zu gut deutsch passiert da das selbe, wie wenn curl oder wget mit -6 aufgerufen wird - AAAA ist NXDOMAIN, also weiter mit dem AAAA Record der Domain + search Domain. Denn wir haben explizit nach AAAA bzw. einer IPv6 Adresse gefragt. Alles verhält sich so, wie es soll. Nur die Nextcloud DnsMiddleware "is a bissl doof".
Im Endeffekt ist das ganze halt ein Feature von dns_get_record, man kann halt entweder explizit A oder explizit AAAA auflösen, aber nicht den normalen Fallback Mechanismus nutzen. Den gibt es da schlicht und ergreifend nicht.
Andere Anwendungen bekommen das ja auch hin, aber die werden sicher selbst nochmal die Antworten "sortieren" bzw. priorisieren. Mein dirty Fix, den ich auch im von Morfyum verlinkten Issue vorgeschlagen habe, wäre, das Host Feld der DNS Antwort mit der angefragten Domain zu vergleichen und alles, was nicht gleich ist, zu discarden.
Ich denke die sauberste Variante wäre es, das ganze irgendwie zu sortieren... aber das ist imho nicht ganz so einfach bzw. würde da einen größeren Change an der Code Base erfordern.
Achja - falls ihr euch fragt: Warum zum Henker haben die ne eigene DnsMiddleware?! Diese Middleware cached die DNS Anfragen im Memory Cache (z.B. Redis) - also die Antwort ist in erster Linie: DNS Caching.
Danke nichtsdestotrotz für eure Ideen, insbesondere an Morfyum für den Issue. ![]()