Découvrez PostScale -- API e-mail pour l'envoi transactionnel, la réception et les adresses masquées. PostScale

    Qu'est-ce qu'un enregistrement SRV

    Découvrez comment les enregistrements SRV permettent la découverte de services en spécifiant l'hôte et le port des services. Inclut des exemples pour le tableau de bord et l'API DNScale.

    Un enregistrement SRV (Service) spécifie l'emplacement des serveurs pour des services spécifiques. Contrairement aux enregistrements A qui associent simplement des noms à des IP, les enregistrements SRV fournissent le nom d'hôte, le port, la priorité et le poids d'un service — permettant une découverte de services sophistiquée et une répartition de charge.

    Comment fonctionnent les enregistrements SRV

    Les enregistrements SRV utilisent une convention de nommage spéciale :

    _service._protocole.domaine.    TTL    SRV    priorité poids port cible

    Exemple :

    _sip._tcp.example.com.    3600    SRV    10 60 5060 sipserver.example.com.

    Cela indique aux clients : « Pour atteindre le service SIP via TCP pour example.com, connectez-vous à sipserver.example.com sur le port 5060. »

    Composants de l'enregistrement

    ComposantDescriptionExemple
    ServiceNom du service (préfixé par _)_sip, _xmpp, _ldap
    ProtocoleProtocole réseau (préfixé par _)_tcp, _udp
    PrioritéValeurs plus basses = priorité plus haute10
    PoidsDistribution de charge entre serveurs de même priorité60
    PortNuméro de port TCP/UDP5060
    CibleNom d'hôte du serveursipserver.example.com.

    Cas d'utilisation courants

    VoIP / SIP

    _sip._tcp.example.com.     3600    SRV    10 100 5060 sip1.example.com.
    _sip._tcp.example.com.     3600    SRV    20 100 5060 sip2.example.com.
    _sip._udp.example.com.     3600    SRV    10 100 5060 sip1.example.com.

    Messagerie XMPP (Jabber)

    _xmpp-client._tcp.example.com.    3600    SRV    5 0 5222 xmpp.example.com.
    _xmpp-server._tcp.example.com.    3600    SRV    5 0 5269 xmpp.example.com.

    Microsoft 365 / Teams

    _sipfederationtls._tcp.example.com.    3600    SRV    100 1 5061 sipfed.online.lync.com.
    _sip._tls.example.com.                 3600    SRV    100 1 443 sipdir.online.lync.com.

    Services d'annuaire LDAP

    _ldap._tcp.example.com.        3600    SRV    0 100 389 ldap.example.com.
    _ldaps._tcp.example.com.       3600    SRV    0 100 636 ldap.example.com.
    _ldap._tcp.dc._msdcs.example.com.  3600    SRV    0 100 389 dc1.example.com.

    CalDAV / CardDAV

    _caldav._tcp.example.com.      3600    SRV    0 0 80 calendar.example.com.
    _caldavs._tcp.example.com.     3600    SRV    0 0 443 calendar.example.com.
    _carddav._tcp.example.com.     3600    SRV    0 0 80 contacts.example.com.
    _carddavs._tcp.example.com.    3600    SRV    0 0 443 contacts.example.com.

    Serveurs Minecraft

    _minecraft._tcp.example.com.    3600    SRV    0 5 25565 mc.example.com.

    Chat Matrix/Element

    _matrix._tcp.example.com.    3600    SRV    10 0 8448 matrix.example.com.

    Priorité et poids expliqués

    Priorité (préférence)

    Les valeurs les plus basses sont essayées en premier :

    _sip._tcp.example.com.    SRV    10 50 5060 primary.example.com.
    _sip._tcp.example.com.    SRV    20 50 5060 backup.example.com.

    Les clients essaient primary.example.com en premier (priorité 10), puis backup.example.com (priorité 20) en cas d'échec.

    Poids (distribution de charge)

    Entre les serveurs de même priorité, le poids détermine la distribution :

    _sip._tcp.example.com.    SRV    10 70 5060 server1.example.com.
    _sip._tcp.example.com.    SRV    10 30 5060 server2.example.com.

    Server1 reçoit ~70% du trafic, server2 reçoit ~30%.

    Format de l'enregistrement

    ChampDescriptionExemple
    Nom_service._protocole.domaine_sip._tcp.example.com
    TypeType d'enregistrementSRV
    PrioritéPréférence du serveur (plus bas = préféré)10
    PoidsPoids de répartition de charge50
    PortPort du service5060
    ContenuNom d'hôte ciblesipserver.example.com.
    TTLDurée de vie (secondes)3600

    Ajouter un enregistrement SRV

    Via le tableau de bord

    1. Accédez à votre zone dans le tableau de bord DNScale
    2. Cliquez sur Add Record
    3. Configurez l'enregistrement :
      • Name : Saisissez _service._protocole (ex. _sip._tcp)
      • Type : Sélectionnez SRV
      • Priority : Définissez la valeur de priorité (ex. 10)
      • Weight : Définissez la valeur de poids (ex. 50)
      • Port : Définissez le port du service (ex. 5060)
      • Value : Saisissez le nom d'hôte cible
      • TTL : Définissez la durée de cache (par défaut : 3600)
    4. Cliquez sur Create Record

    Via l'API

    Créer un enregistrement SRV :

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_sip._tcp",
        "type": "SRV",
        "content": "sipserver.example.com",
        "ttl": 3600,
        "priority": 10,
        "weight": 50,
        "port": 5060
      }'

    Configurer les enregistrements XMPP :

    # Connexions client
    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_xmpp-client._tcp",
        "type": "SRV",
        "content": "xmpp.example.com",
        "ttl": 3600,
        "priority": 5,
        "weight": 0,
        "port": 5222
      }'
     
    # Fédération serveur à serveur
    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_xmpp-server._tcp",
        "type": "SRV",
        "content": "xmpp.example.com",
        "ttl": 3600,
        "priority": 5,
        "weight": 0,
        "port": 5269
      }'

    Réponse de l'API :

    {
      "status": "success",
      "data": {
        "message": "Record created successfully",
        "record": {
          "id": "encoded-record-id",
          "name": "_sip._tcp.example.com.",
          "type": "SRV",
          "content": "10 50 5060 sipserver.example.com.",
          "ttl": 3600,
          "disabled": false
        }
      }
    }

    Bonnes pratiques

    1. Utilisez des priorités significatives - Laissez des écarts entre les valeurs de priorité (10, 20, 30) pour une flexibilité future

    2. La cible doit avoir des enregistrements A/AAAA - Les cibles SRV doivent résoudre vers des adresses IP, pas des CNAME

    3. Utilisez le poids pour la répartition de charge - Distribuez le trafic entre les serveurs de même priorité en utilisant le poids

    4. N'utilisez pas le port 0 - Un poids de 0 signifie que le serveur doit être utilisé en dernier recours

    5. Testez avec les applications - Toutes les applications ne respectent pas les enregistrements SRV ; vérifiez avec votre logiciel spécifique

    Désactiver un service

    Pour indiquer qu'un service n'est pas disponible, utilisez une cible . :

    _sip._tcp.example.com.    3600    SRV    0 0 0 .

    Tester les enregistrements SRV

    Vérifiez vos enregistrements SRV avec dig :

    dig SRV _sip._tcp.example.com
     
    # Avec sortie complète
    dig SRV _xmpp-client._tcp.example.com +short

    Types d'enregistrements associés

    • A - Adresse IPv4 du serveur cible
    • AAAA - Adresse IPv6 du serveur cible
    • HTTPS - Liaison de service moderne pour HTTPS
    • SVCB - Liaison de service générale

    Conclusion

    Les enregistrements SRV sont essentiels pour la découverte de services, permettant aux applications de trouver automatiquement les bons serveurs, ports et options de basculement. Ils sont critiques pour la VoIP, la messagerie instantanée et de nombreux protocoles d'entreprise. Le support SRV de DNScale vous permet de configurer des architectures de services sophistiquées avec basculement basé sur la priorité et répartition de charge pondérée.