Probleme mit TLS Challenge und IPv4-Erreichbarkeit

Hallo zusammen,

weil’s mich jetzt doch nervt, dass ich hier keine dauerhafte Lösung finde, stelle ich meine Frage nochmal an die Experten zum Thema ACME TSL Challenge bzw. Portfreigabe und IPv4 vs. IPv6.

Ich habe ja, wie hier beschrieben, einen kleinen Mailserver mit Stalwart und meiner IPV64-Domain aufgebaut. Das ganze läuft im Docker mit eigenem MacVLAN auf einem kleinen PC mit Debian-Linux (Open Media Vault 7) hinter einer AVM FritzBox, in der ich alle relevanten Port-Freigaben eingerichtet habe. Dank meines Internetanbieters habe ich „den Luxus“ eines DualStack-Anschlusses mit echter IPv4 (und IPv6).

Nun habe ich aber ein wiederkehrendes (großes) Problem. Jedes Mal, wenn ich den PC neu starte, ist es ein Glücksspiel, ob mein Mail-Server über STARTTLS ein Zertifikat bereitstellt oder nicht. Meist tut er es nicht. Also starte ich den PC immer wieder neu, bis es zufällig wieder funktioniert. Ich habe mir dort einen Text-Datei abgelegt, die nur eine Zeile beinhaltet „Domain path OK.“, um zu testen, ob der Pfad funktioniert.

Das Zertifikat wird über meinen Reverse-Proxy Caddy abgerufen/erstellt und in Stalwart „nur“ benutzt. Dafür muss man in der Domain einen Challenge-Pfad für http-Zugriff einrichten.

Ich prüfe das mittels:

openssl s_client -connect meine-domain.ipv64.de:25 -starttls smtp

Wird mir mit diesem Befehl ein Zertifikat angezeigt, ist alles gut. Wird mir kein Zertifikat angezeigt, ist alles schlecht.

Mittlerweile habe ich dieses Problem als möglich Ursache des Übels ausgemacht. Nach einem PC-Neustart ist meine Domain nur über IPv6 erreichbar aber nicht über IPv4.

Hier sieht man es schön:

C:\>curl -6 http://meine-domain.ipv64.de/.well-known/acme-challenge/test.txt
Domain path OK.
C:\>curl -4 http://meine-domain.ipv64.de/.well-known/acme-challenge/test.txt
curl: (56) Recv failure: Connection was reset

Das ist dann auch meine Frage: Hat jemand eine Idee, weshalb das so ist? Wird die Port-Freigabe in der FritzBox nicht sauber erstellt, z.B. weil es sich beim Gerät für die Freigabe um ein virtuelles Gerät im MacVLAN handelt? Hat IPV64 hier ein Problem und gibt curl-Anfragen nicht weiter? Hat Docker bzw. MacVLAN ein Problem? Oder was könnte es sein? (Oder bin ich bei der Fehlersuche ganz auf dem Holzweg?)

Ich habe schon eine Menge an meiner Konfiguration ausprobiert aber noch keine echte Lösung für das Problem gefunden.

Vielen Dank für eure Unterstützung und gute Ideen im Voraus!

Grüße
Mic.