Nicht-Punkt-Platzhalter (* -foo.example.com) zum Binden?

10

Es scheint, dass es keine Möglichkeit gibt zu sagen, binddass *-foo.example.comsich z. 10.1.2.3, während zu *-bar.example.comlöst 10.2.3.4. Gibt es eine Problemumgehung? Können einige Namen zB. mit einem externen Programm lösen? Oder sollte ich bindzu z. PowerDNS ?

Ich versuche zu vermeiden, ein anderes SSL-Platzhalterzertifikat zu kaufen. (Bei Platzhalterzertifikaten *.example.comist es beispielsweise nicht möglich, Punkte im *Teil zuzulassen .)

Das Angeben aller *-foooder *-barNamen in der Zonendatei ist keine Option, da ich in der Lage sein muss, beide Arten von Adressen im laufenden Betrieb zu erstellen.

Tuomassalo
quelle
Gibt es keine Möglichkeit, die Domains auch im laufenden Betrieb zur Zone hinzuzufügen? Ich habe noch nie teilweise Platzhalter gesehen, die mit bind verwendet wurden. Ich kann nicht sicher sagen, dass es nicht möglich ist.
David Houde
@DavidHoude: Ich befürchte, dass das Hinzufügen im laufenden Betrieb keine Option ist, da jede Abfrage vor dem Hinzufügen Nameserver mit einer ungültigen Antwort "verschmutzt". Das schafft Probleme, die ziemlich selten, aber etwas unangenehm zu lösen sind. (Natürlich wird die Zeit das Problem beheben.)
Tuomassalo
1
Hilft $GENERATEdir
Celada
1
@DavidHoude - Sie könnten ein dynamisches Update verwenden, aber wie das Originalposter zeigt, stoßen Sie dann auf die Situation, in der ein Caching-Resolver möglicherweise eine negative Antwort zwischengespeichert hat, bevor der Datensatz hinzugefügt wurde. Um zu versuchen, zu mildern, dass Sie das negative Caching-ttl auf einen sehr niedrigen Wert senken könnten, aber nicht jeder Resolver ttls gewissenhaft berücksichtigt und einige ein praktisches Minimum auferlegen, sodass die Ergebnisse frustrierend variabel sein können.
Michael McNally
@ Celada: Der *Teil kann eine beliebige [a-z]Zeichenfolge sein (natürlich mit Längenbeschränkungen). Also in meinem Fall $GENERATEhilft das nicht. Vielen Dank für den Tipp - könnte für jemanden nützlich sein, der diese Seite findet.
Tuomassalo

Antworten:

11

Der Grund, warum es nicht funktioniert, ist, dass das Verhalten in den RFCs nicht definiert ist. Es muss als Erweiterung der von Ihnen verwendeten Software implementiert werden. RFC4592 zementiert die Definition eines Platzhalterdatensatzes ziemlich fest:

2.1.1. Platzhalter-Domainname und Sternchenbezeichnung

Ein "Platzhalter-Domänenname" wird definiert, indem seine anfängliche (dh ganz
links oder am wenigsten signifikante) Bezeichnung im Binärformat lautet :

  0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)

Beachten Sie den Begriff Etikett hier. Eine Beschriftung ist die durch Punkte getrennte Entität. Wenn das Etikett etwas anderes als das Sternchen enthält, handelt es sich nicht um einen Platzhalter.

Du steckst hier irgendwie fest. Wenn Sie in DNS arbeiten, benötigen Sie den Punkt, den Sie vermeiden möchten. Alles andere sind Erweiterungen der Serversoftware und implementierungsspezifisch.

Andrew B.
quelle
Schön beantwortet.
Michael McNally
0

RFC 6125 verhindert, dass ein generisches Zertifikat für verschachtelte Subdomänen vorhanden ist. RFC 4592 und RFC 1034 verhindern, dass * -xxx.domain.com als DNS-Eintrag verwendet wird.

Sie haben also nur zwei Alternativen (was beim Automatisieren nicht gut ist):

  • Erstellen Sie ein Zertifikat pro Subdomain (es gibt kostenlose Alternativen, die jedoch je nach Plattform kompliziert sein können).
  • Erstellen Sie einen vollständigen DNS-Eintrag pro Subdienst (dies sind keine Sub-Subdomains).
Zehn
quelle