Aller au contenu principal

Apporter un domaine

Bêta

Fonctionnalité en cours de déploiement. L'interface décrite ici est celle de la prochaine livraison : elle peut encore évoluer, et n'est pas forcément activée sur votre tenant.

Activé progressivement sur les tenants. La création de la zone après vérification peut prendre un certain délai dans cette version.

Vous possédez exemple.fr chez un registraire (OVH, Gandi, Namecheap…) et voulez y servir vos App et vos enregistrements. Vous déclarez le domaine, prouvez qu'il est à vous avec un enregistrement TXT, puis déléguez ses serveurs de noms à StackNGO.

Prérequis​

  • La CLI sng authentifiée, une session sur votre tenant (sng tenant use acme) ; sng config show affiche le cluster et le tenant.
  • Le droit dns:write (policies gérées readwrite ou admin).
  • L'accès à l'interface de votre registraire et de l'hébergeur DNS actuel du domaine.
  • Un domaine enregistrable : exemple.fr ou exemple.co.uk, pas shop.exemple.fr. Les domaines de StackNGO eux-mêmes ne peuvent pas être apportés.
  • Votre offre doit autoriser un domaine de plus (voir Pour aller plus loin).

1. Déclarer le domaine​

sng dns zone create exemple.fr
zone exemple.fr déclarée
étape suivante : posez cet enregistrement chez l'hébergeur DNS actuel du domaine :
_stackngo-verify.exemple.fr TXT "sng-verify-4b1f0e9c2a7d4e6b8c3f1a2d5e7b9c0f"
puis suivez la vérification : sng dns zone describe <domaine>

La commande attend quelques secondes que la valeur du TXT soit calculée, puis l'affiche. Si elle n'est pas encore prête au bout de 20 secondes, la commande l'indique (TXT de vérification pas encore calculé) : sng dns zone describe exemple.fr la donnera quelques instants plus tard. En manifeste :

exemple-fr.yml
apiVersion: dns.stackngo.io/v1alpha1
kind: DNSZone
metadata:
name: exemple.fr
spec:
domain: exemple.fr # domaine enregistrable, en minuscules ; immuable
sng apply exemple-fr.yml

Une zone porte toujours le nom de son domaine (exemple.fr) : sng dns zone create le fait pour vous, et avec sng apply le metadata.name du manifeste doit être égal à spec.domain. Les deux méthodes ne peuvent pas déclarer le même domaine. Avec sng apply, le TXT se lit ensuite avec sng dns zone describe.

Vous pouvez déclarer la zone avant ou après ses enregistrements : un DNSRecord qui vise un domaine pas encore déclaré est accepté, par sng apply comme par sng dns record set. Il reste ZoneNotOwned (rien n'est publié) jusqu'à ce que la zone soit prouvée, puis il est publié tout seul.

2. Poser l'enregistrement de preuve​

sng dns zone describe exemple.fr
domain: exemple.fr
source: Bring
phase: Pending
ready: no
reason: AwaitingVerification
message: poser chez le DNS actuel du domaine : _stackngo-verify.exemple.fr TXT "sng-verify-4b1f0e9c2a7d4e6b8c3f1a2d5e7b9c0f"

étape suivante : posez cet enregistrement chez l'hébergeur DNS actuel du domaine :
_stackngo-verify.exemple.fr TXT "sng-verify-4b1f0e9c2a7d4e6b8c3f1a2d5e7b9c0f"
puis suivez la vérification : sng dns zone describe <domaine>

Chez l'hébergeur DNS actuel du domaine (souvent votre registraire), créez exactement cet enregistrement : nom _stackngo-verify, type TXT, la valeur affichée. La plateforme le cherche toutes les minutes depuis Internet. Dès qu'il est vu, la zone passe Verified.

Après la délégation

Une fois la zone Active, le TXT posé chez l'ancien hébergeur n'est plus visible : c'est normal, il n'est plus nécessaire. Notez sa valeur : elle resservira si la délégation est un jour perdue (voir Perte de délégation).

3. Attendre la création de la zone​

En phase Verified, la plateforme crée votre zone (raison AwaitingProvisioning). Dans cette version, cette création n'est pas immédiate : comptez un délai, et contactez le support si la zone reste Verified au-delà d'un jour ouvré.

La zone passe ensuite Provisioned et describe affiche les serveurs de noms :

domain: exemple.fr
source: Bring
phase: Provisioned
ready: no
reason: AwaitingDelegation
message: déclarer chez le registrar les serveurs de noms : dns200.anycast.me, ns200.anycast.me

serveurs de noms à déclarer chez le registrar du domaine :
dns200.anycast.me
ns200.anycast.me

Les noms de serveurs ci-dessus sont des exemples : utilisez ceux que votre zone affiche.

4. Préparer vos enregistrements avant de basculer​

Dès Provisioned, vos enregistrements sont écrits dans la nouvelle zone, même si elle n'est pas encore servie. Recréez-y ce dont vous avez besoin avant de changer les serveurs de noms, pour éviter une coupure (messagerie, vérifications de services tiers…) :

sng dns record set @ --zone exemple.fr --type MX --target "10 mx1.mail.ovh.net" --target "20 mx2.mail.ovh.net" --ttl 3600
sng dns record set @ --zone exemple.fr --type TXT --target "v=spf1 include:mx.ovh.com ~all"

Voir Enregistrements.

5. Déléguer chez le registraire​

Chez votre registraire, remplacez les serveurs de noms du domaine par ceux affichés par sng dns zone describe. La plateforme vérifie la délégation toutes les 5 minutes ; la propagation dépend du registraire et du TTL de la zone parente (de quelques minutes à 48 heures).

Vérification​

sng dns zone list
DOMAIN PHASE READY REASON
exemple.fr Active yes Delegated
dig +short NS exemple.fr

La zone est Active quand tous les serveurs publics du domaine sont ceux de la zone StackNGO. Une délégation partielle (un ancien serveur conservé) reste AwaitingDelegation.

Perte de délégation​

Une zone active est contrôlée toutes les heures. Si ses serveurs de noms ne sont plus ceux de StackNGO (domaine expiré, revendu, NS modifiés) :

DuréePhasereasonEffet
moins de 72 hActiveDelegationMissingrien ne change ; ready reste yes
au-delà de 72 hLostDelegationLostplus aucun nom de la zone n'est publié ; les services sous ce domaine ne sont plus servis et attendent (WaitingForDNSZone)

Pour réactiver une zone Lost, prouvez de nouveau la propriété, dans cet ordre :

  1. posez le TXT _stackngo-verify (même valeur, toujours affichée par describe) chez l'hébergeur DNS qui sert actuellement le domaine ;
  2. attendez que la zone repasse Provisioned ;
  3. redéclarez les serveurs de noms StackNGO chez le registraire : la zone repasse Active.

La preuve est exigée parce qu'un domaine perdu a pu changer de propriétaire. Si vous rétablissez d'abord les serveurs de noms StackNGO, le TXT ne peut plus être lu (ce nom est réservé dans votre zone) : revenez temporairement à l'ancien hébergeur, ou contactez le support.

Retirer un domaine​

sng dns zone delete exemple.fr
⚠ Retrait de la zone "exemple.fr" (tenant "acme").
Tapez « oui » pour confirmer : oui
zone exemple.fr supprimée

Le retrait est refusé (409) tant que des enregistrements utilisent la zone (1 enregistrement(s) utilisent encore la zone "exemple.fr", les supprimer d'abord), que vous passiez par sng dns zone delete ou par sng kind delete DNSZone. Une fois le domaine retiré, plus rien n'est publié dessous et il redevient libre pour un autre tenant. Rendez la délégation à votre ancien hébergeur. Depuis un script : --yes.

Pour aller plus loin​

  • Nombre de domaines : plafonné par l'offre du tenant — 1 en 3XS, 2 en 2XS, 3 en XS, 5 en M, 10 en L, 20 en XL, 30 en 2XL, 50 en 3XL. Voir Tenant et offres.
  • Un domaine, un propriétaire : un domaine déjà apporté par un autre tenant passe Rejected, raison Taken. Dans votre propre tenant, l'API refuse de déclarer deux fois le même domaine (409).
  • Domaine refusé : NotRegistrable (sous-domaine, suffixe inconnu) — le message indique le domaine à déclarer à la place ; PlatformDomain (domaine de StackNGO : stackngo.app, stackngo.fr, refusé dès l'envoi). La zone repasse Pending d'elle-même si la cause disparaît.
  • spec.domain est immuable : pour changer de domaine, supprimez la zone et créez-en une autre.
  • Acheter un domaine : pas encore proposé (spec.source: Purchase est refusé). Voir sng domain.
  • Sécurité : un domaine apporté n'est utilisable que par votre tenant. Voir Sécurité et confidentialité.

Voir aussi​