Caractère générique non point (* -foo.example.com) pour la liaison?

10

Il semble qu'il n'y ait aucun moyen de dire bindque cela *-foo.example.comdevrait se résoudre par exemple. 10.1.2.3, tout en se *-bar.example.comrésolvant à 10.2.3.4. Y a-t-il une solution de contournement? Peut certains noms, par exemple. résoudre avec un programme externe? Ou devrais-je changer bindpar exemple. PowerDNS ?

J'essaie d'éviter d'acheter un autre certificat générique SSL. (Avec des certificats génériques, comme *.example.com, il n'est pas possible d'autoriser des points dans la *pièce.)

La spécification de tous *-fooou de *-barnoms dans le fichier de zone n'est pas une option, car je dois pouvoir créer les deux types d'adresses à la volée.

tuomassalo
la source
N'y a-t-il pas moyen d'ajouter également les domaines à la zone à la volée? Je n'ai jamais vu de caractères génériques partiels utilisés avec bind. Je ne peux pas dire avec certitude que ce n'est pas possible cependant.
David Houde
@DavidHoude: Je crains que l'ajout à la volée ne soit pas une option, car toute requête antérieure à l'ajout "polluera" les serveurs de noms avec une réponse invalide. Cela crée des problèmes assez rares mais un peu désagréables à résoudre. (Bien sûr, le temps
résoudra
1
Cela $GENERATEvous aide- t- il?
Celada
1
@DavidHoude - vous pouvez utiliser la mise à jour dynamique, mais comme le souligne l'affiche originale, vous vous retrouvez alors dans la situation où un résolveur de mise en cache peut avoir mis en cache une réponse négative avant l'ajout de l'enregistrement. Pour essayer d'atténuer cela, vous pouvez réduire le ttl de mise en cache négative à une valeur très faible, mais tous les résolveurs n'honorent pas scrupuleusement les ttls et certains imposent un minimum pratique afin que les résultats puissent être frustrants.
Michael McNally
@Celada: la *pièce peut être n'importe quelle [a-z]chaîne (avec des restrictions de longueur, bien sûr). Donc, dans mon cas, $GENERATEn'aide pas. Merci pour l'astuce - pourrait devenir pratique pour quelqu'un d'autre qui trouve cette page.
tuomassalo

Réponses:

11

La raison pour laquelle cela ne fonctionne pas est parce que ce n'est pas un comportement défini dans les RFC. Il doit être implémenté comme une extension du logiciel que vous utilisez. La RFC4592 cimente assez fermement la définition d'un enregistrement générique:

2.1.1. Nom de domaine générique et étiquette astérisque

Un "nom de domaine générique" est défini en ayant son
étiquette initiale (c'est-à-dire la plus à gauche ou la moins significative) au format binaire:

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

Notez le terme étiquette ici. Une étiquette est l'entité séparée par des points. Si vous avez autre chose que l'astérisque dans l'étiquette, ce n'est pas un caractère générique.

Tu es un peu coincé ici. En travaillant dans DNS, vous avez besoin de ce point que vous essayez d'éviter. Tout le reste est une extension du logiciel serveur et une implémentation spécifique.

Andrew B
la source
Bien répondu.
Michael McNally
0

La RFC 6125 empêche d'avoir un certificat générique pour les sous-domaines imbriqués. Les RFC 4592 et RFC 1034 empêchent d'avoir * -xxx.domain.com comme entrée DNS.

Vous n'avez donc que deux alternatives (ce qui n'est pas bien lorsque vous essayez d'automatiser):

  • Créez un certificat par sous-domaine (il existe des alternatives gratuites mais cela peut être compliqué selon votre plateforme).
  • Créez une entrée DNS complète par sous-service (qui ne sera pas un sous-sous-domaine).
Dix
la source