Serveur d'impression

Ajouter manuellement des enregistrements de découverte de service DNS-SD à un serveur de noms faisant autorité existant – Bien choisir son serveur d impression

Le 3 mai 2019 - 18 minutes de lecture

Ajouter manuellement des enregistrements de découverte de service DNS-SD à un serveur de noms faisant autorité existant

Vue d'ensemble

Mise en réseau zéro configuration, ou
Bonjour, comme l'appelle Apple, est une technologie réseau qui permet aux périphériques de se découvrir automatiquement, sans configuration. Dans la première version, Bonjour, Apple, utilisait le DNS multicast local link-local pour découvrir les services annoncés sur le réseau local, car les réseaux ad hoc de petite taille constituaient le domaine de la mise en réseau TCP / IP qui nécessitait le plus d’améliorations. La carte routière SD incluait également la découverte de vastes zones. À partir de Mac OS X 10.4 Tiger et Bonjour pour Windows, les clients utilisent également le DNS Unicast conventionnel pour découvrir les services annoncés dans n'importe quel domaine accessible, partout dans le monde.

Il existe plusieurs façons d’utiliser la découverte de service DNS sur une zone étendue. L'une consiste à configurer un serveur DNS dynamique pour permettre aux ordinateurs d'annoncer automatiquement leurs services. Une autre méthode, décrite ici, consiste à ajouter manuellement des enregistrements DNS décrivant les services que vous souhaitez publier pour les clients à découvrir. Si vous souhaitez d'abord essayer cela isolément, et non sur votre serveur de noms faisant autorité, les instructions de la section Configuration d'un serveur de test pour faire des expériences avec DNS-SD à zone étendue décrivent comment procéder.

Conceptuellement, vous pouvez penser à ce DNS-SD «en lecture seule». Vous n'autorisez pas les ordinateurs individuels à s'inscrire de manière dynamique pour annoncer des services, mais vous autorisez les ordinateurs clients à interroger pour découvrir un ensemble de services soigneusement sélectionné que vous avez choisi d'annoncer. Les pages Web sont un type de service évident à annoncer. De nombreuses entreprises ont des pages Web internes contenant des informations utiles pour les employés, y compris une page d’informations pour les nouveaux employés. Le problème, c’est que les nouveaux employés, en tant que nouveaux employés, ne connaissent probablement pas l’URL de la page d’information. Les employés de longue date, n'ayant pas consulté la «page d'informations sur les nouveaux employés» pendant des années, ne se souviennent probablement pas de l'URL. Ce problème de "ne pas connaître l'URL" se reproduit dans de nombreuses situations. Vous pouvez attendre dans un aéroport, utiliser le réseau WiFi, et l'aéroport peut avoir une page Web indiquant les heures de départ des vols, mais vous ne connaissez pas l'URL à taper. En effet, vous pourriez même pas savoir que l'aéroport dispose d'une page Web indiquant les heures de départ des vols, car l'opérateur du réseau WiFi ne dispose d'aucun moyen efficace pour vous communiquer ces informations. De même, vous pourriez utiliser le réseau dans une chambre d'hôtel sans connaître les pages d'informations utiles que l'hôtel peut vous offrir. L’ajout d’enregistrements de service statiques au serveur DNS faisant autorité d’une organisation offre une solution à ce problème.

Une idée fausse commune est que les enregistrements de découverte de service doivent être créés sur un serveur DNS que le client de découverte de service est configuré pour utiliser. Ou, inversement, le client doit être configuré pour utiliser le serveur DNS sur lequel les enregistrements de découverte de service existent. Ce n'est pas correct Pour rechercher l’adresse de «www.amazon.com», vous n’avez pas besoin au préalable de configurer votre client pour qu’il utilise les serveurs DNS d’Amazon. Pour rechercher l’adresse de «www.google.com», vous n’avez pas besoin au préalable de configurer votre client pour qu’il utilise les serveurs DNS de Google. Tout comme la recherche d’adresses, pour découvrir les services annoncés dans un domaine donné, vous n’avez pas besoin au préalable de configurer votre client pour qu’il utilise les serveurs DNS de ce domaine. C'est la beauté du DNS. La réponse à une question DNS dépend (en règle générale) uniquement de la nature de la question et non du serveur que vous demandez. Vous pouvez envoyer votre question DNS à n’importe quel serveur DNS dans le monde et obtenir (d’une manière générale) toujours la même réponse à votre question.

Cette perception erronée commune de DNS-SD provient du fait que le terme «serveur DNS» est utilisé pour désigner deux choses très différentes. L'un est un serveur de noms faisant autorité. L'autre est un résolveur récursif. Historiquement, l’utilisation du terme générique «serveur DNS» pour désigner les deux fonctions s’explique par le fait qu’un logiciel de serveur de noms tel que «nommé» (le nom dæmon) pouvait remplir l’une ou les deux fonctions et que, lorsque des opérateurs DNS expérimentés utilisaient le terme «serveur DNS», instinctivement, ils savaient par fonction de quel contexte ils parlaient (et ils supposaient que la personne à qui ils parlaient le connaissait aussi instinctivement). La distinction a été moins claire pour les personnes qui ne sont pas des opérateurs DNS expérimentés (et parfois même les opérateurs DNS expérimentés ont des fonctions confuses dans leur esprit et oublient la fonction dont ils parlent).

  1. La première fonction du logiciel “nommé” est d’être un serveur de noms faisant autorité pour un domaine. Il s'agit du référentiel ultime où résident les informations DNS faisant autorité concernant un domaine. La fonction de serveur de noms faisant autorité peut être répliquée pour des raisons de fiabilité – c’est-à-dire qu’il peut exister plusieurs serveurs de noms faisant autorité pour un domaine donné, tous avec les mêmes données d’enregistrement DNS. Les clients typiques ne communiquent jamais directement avec des serveurs de noms faisant autorité.

  2. La deuxième fonction du logiciel «nommé» doit être un résolveur récursif. Les clients typiques envoient leurs requêtes à leur résolveur récursif configuré. De nombreux clients ont leur résolveur récursif configuré via DHCP. Certains utilisateurs configurent manuellement leurs clients pour utiliser un autre résolveur récursif, tel que l'un des
    résolveurs publics exploités par Google.
    Ce résolveur récursif peut retourner des réponses qu’il avait précédemment mises en cache (d’où son autre nom commun, «caching resolver») ou peut communiquer avec un ou plusieurs serveurs de noms faisant autorité, pour le compte du client. Cela peut nécessiter plusieurs allers-retours vers plusieurs serveurs de noms faisant autorité pour déterminer le serveur de noms faisant autorité, quelque part sur la planète, contenant les réponses recherchées par le client. Une fois que le résolveur récursif a récupéré les réponses demandées, il les envoie au client.

Contrairement à de nombreux autres mécanismes de découverte de service où les clients faire Si vous devez configurer l'adresse IP du serveur de découverte de services approprié (et que vous ne pouvez utiliser qu'un seul serveur de découverte de services à la fois), l'un des grands avantages de la découverte de services basée sur DNS est que les clients continuent à utiliser leur serveur existant. résolveur récursif, inchangé et que le résolveur récursif continue de communiquer avec de nombreux serveurs faisant autorité pour le compte du client. Tout cela n’est pas une invention nouvelle; il utilise simplement le protocole DNS et les machines déjà en place.

Ainsi, en résumé, pour déployer DNS-SD, les clients n'ont pas besoin d'être configurés pour utiliser un résolveur récursif différent et aucune modification n'est requise sur le résolveur récursif utilisé par les clients. La configuration dont les clients ont besoin n’est pas qui demander, mais quoi demander. De quoi le client demande, le résolveur récursif fonctionne qui demander par lui-même – tout comme le résolveur récursif le fait déjà lorsque vous lui demandez de rechercher des noms d'hôtes, qui peuvent résider sur des serveurs faisant autorité, n'importe où sur la planète. Les clients doivent savoir dans quel domaine rechercher des services et non quel résolveur récursif demander. Heureusement, dans la plupart des cas, la configuration nécessaire est déjà présente. Lorsque les clients reçoivent un paquet de réponse du serveur DHCP du réseau local, ce paquet contient un paramètre "domaine", généralement utilisé comme domaine de recherche DNS par défaut du client. Les clients DNS-SD l'utilisent également pour découvrir leur domaine de découverte de service DNS par défaut. Ainsi, dans la plupart des cas, toute la configuration client requise est déjà en place. Il ne reste plus qu’à ajouter quelques enregistrements de découverte de service au (x) serveur (s) de noms faisant autorité pour le domaine indiqué dans la configuration DHCP du client. C’est ce dont parle le reste de cette page.

Comment le configurer

Vous pouvez publier une seule page Web sur des clients locaux en ajoutant seulement cinq enregistrements au fichier de zone de votre serveur DNS faisant autorité, comme indiqué ci-dessous. La publicité de pages supplémentaires ne nécessite que trois autres enregistrements chacun. Pendant que vous testez, vous souhaiterez peut-être définir une durée de vie DNS courte afin que vous puissiez apporter des modifications sans avoir à attendre longtemps avant que les mises à jour ne se propagent.

Pour ce faire, vous n'avez pas besoin de faire appel à votre propre serveur DNS faisant autorité local: des services tels que DynDNS peuvent héberger des domaines pour vous et, via leurs interfaces Web, vous pouvez ajouter les enregistrements PTR, SRV et TXT nécessaires. Le serveur DNS faisant autorité qui détient les enregistrements de service ne doit pas nécessairement être sur site – il peut être n'importe où dans le monde. La façon dont vos clients découvrent quel domaine interroger provient du domaine appris de votre serveur DHCP. C’est pourquoi, dans l’écran d’administration du serveur DHCP de votre passerelle domestique, définissez le paramètre «domaine» ou «nom de domaine» sur le nom de votre domaine que vous contrôlez et non sur celui de votre fournisseur de services Internet.



; 1. Énumération de domaine
;
; Ces enregistrements invitent les clients à parcourir ce domaine.
; (Le signe '@' signifie "le domaine actuel" -
; c'est-à-dire le domaine décrit par ce fichier de zone.)

b._dns-sd._udp IN PTR @; b = parcourir le domaine
lb._dns-sd._udp IN PTR @; lb = domaine de navigation hérité
; (domaine qui sera utilisé pour les clients qui ne spécifient pas de domaine à parcourir)

; 2. Liste des entités de service nommées
;
; Ces enregistrements répertorient les entités de service "http" nommées que nous voulons pour les clients.
; pour pouvoir découvrir. Vous pouvez utiliser les majuscules, la ponctuation,
; Texte enrichi UTF-8, etc., dans les noms de service, mais certaines ponctuations
; comme des espaces et des points doit être échappé avec une barre oblique inverse dans le
; fichier de zone de serveur de noms (sur le réseau, il est envoyé en tant que données brutes, non échappé).

_http._tcp PTR New  Employee  Information  Page._http._tcp

; 3. Enregistrements SRV et TXT décrivant chaque entité de service nommée ci-dessus
;
; Ces enregistrements indiquent aux clients comment accéder aux entités de service nommées 'http'
; énumérés ci-dessus. Dans l'exemple ci-dessous, entrez le nom d'hôte correct.
; S'il s'agit d'un nom d'hôte qualifié complet, il doit se terminer par un point, comme indiqué.
; S'il s'agit d'un nom d'hôte partiel par rapport à la zone actuelle (par exemple, "ne-info",
; le reste du nom étant implicite), ne le terminez pas par un point.
; Le "chemin = / xxx" dans l’enregistrement TXT indique au navigateur Web le type de
; sur le serveur, il doit demander dans sa commande "HTTP GET".
; Souvent, mais pas toujours, le chemin sera juste "/".

Nouveau  Employé  Information  Page._http._tcp SRV 0 0 80 ne-info.example.com.
                                                TXT path = /

Comment ça marche

Maintenant que vous avez créé vos enregistrements DNS, le processus fonctionne comme suit:

  1. Lorsqu'un client obtient une adresse de votre serveur DHCP, celui-ci inclut également des informations spécifiant un domaine DNS par défaut. Dans cet exemple, nous supposerons que c'est «exemple.com».
  2. Le client doit déterminer s'il souhaite utiliser Wide-Area DNS-SD pour rechercher des services. Pour cela, il ajoute le texte «lb._dns-sd._udp» au domaine DNS par défaut, puis effectue une requête pour les enregistrements PTR portant ce nom (dans ce cas, «lb._dns-sd._udp.example.com. ”).
  3. Dans notre exemple, la requête du client obtient une réponse: "exemple.com". En principe, l’enregistrement PTR peut indiquer un autre domaine à parcourir, mais dans le cas le plus courant, un PTR auto-référentiel renvoyant au même domaine est généralement le plus simple.
  4. Le client sait désormais qu'il est supposé rechercher des services dans «exemple.com». Chaque fois qu'une application telle que le navigateur Web Safari appelle l'une des API de navigation DNS-SD pour rechercher des services, sans spécifier explicitement le domaine DNS à parcourir, le démon mdnsd explorera automatiquement le domaine de navigation par défaut appris à partir du réseau.

Vous pouvez également publier d'autres types de services, pas seulement des serveurs HTTP (Web). Vous pouvez annoncer les imprimantes qui apparaissent comme par magie dans la boîte de dialogue Imprimer du Mac et dans l’Assistant de configuration d’imprimante dans Bonjour pour Windows. Vous pouvez annoncer des serveurs FTP et SSH qui apparaissent comme par magie dans la fenêtre «Connect to Server» de Terminal. Vous pouvez même annoncer un album iPhoto partagé de photos de la fête d'entreprise qui apparaîtrait comme par magie dans la barre latérale d'iPhoto. Pour obtenir la liste actuelle des types de service, voir Types de service DNS SRV (RFC 2782).

Microsoft DNS

Le logiciel serveur DNS Active Directory de Microsoft ne peut pas gérer les noms contenant des espaces. Vous pouvez définir une règle selon laquelle vous devez nommer tous vos services sans utiliser d’espace, mais c’est une très mauvaise limitation. (Kind-of vous rappelle l’époque des noms de fichiers DOS 8.3, n’est-ce pas?) Heureusement, les pointeurs d’énumération de domaine de DNS-SD vous fournissent la quantité d’indirection dont vous avez besoin pour résoudre ce problème. Au lieu de faire des pointeurs d'énumération de domaine des boucles auto-référentielles pointant vers le même domaine, vous pouvez les pointer vers un autre domaine, comme ceci:



b._dns-sd._udp IN PTR dns-sd-services
lb._dns-sd._udp IN PTR dns-sd-services

dns-sd-services IN NS notre-machine-linux-en-cours-BIND-9

Cet extrait de fichier de zone (disons que nous l’avons ajouté au fichier de zone par exemple.com) fait deux choses. Tout d'abord, il indique aux clients qu'ils doivent naviguer dans le sous-domaine dns-sd-services.example.com. Deuxièmement, il délègue le sous-domaine dns-sd-services.example.com à une autre machine exécutant un autre logiciel serveur de noms faisant autorité qui ne souffre pas des limitations du jeu de caractères de Microsoft, telle que BIND 9.

Un autre scénario similaire est celui où le domaine parent est exécuté sur une machine Linux parfaitement capable, mais les sous-domaines _tcp et _udp ont été délégués à un serveur DNS Microsoft Active Directory. Dans ce cas, la solution est similaire. Les deux enregistrements suivants sur le serveur DNS Microsoft Active Directory pour le domaine «_udp.example.com.» Redirigent les clients vers le serveur parent pour leurs besoins de navigation DNS-SD:



b._dns-sd IN PTR dns-sd-services.example.com.
lb._dns-sd IN PTR dns-sd-services.example.com.

Comme dans l'exemple précédent, les clients sont invités à parcourir le fichier dns-sd-services.example.com. Toutefois, contrairement au dernier exemple, il n’est pas nécessaire dans ce cas de déléguer «dns-sd-services.example.com» à un serveur faisant autorité différent, car le serveur faisant autorité «exemple.com» est déjà capable de gérer ces requêtes. La délégation de sous-domaines à une autre machine est une option dans DNS, pas une exigence. Vous pouvez également laisser les serveurs exemple.com faisant autorité, répondre également aux requêtes dns-sd-services.example.com, ou les déléguer à un autre ordinateur, à votre guise. Si vous choisissez de les ajouter simplement au fichier de zone exemple.com existant, n'oubliez pas d'ajouter la partie «dns-sd-services» après chaque nom, comme indiqué ci-dessous:



_http._tcp.dns-sd-services PTR Nouveau  Employé  Page._http._tcp.dns-sd-services
Nouveau  Employé  Page._http._tcp.dns-sd-services SRV 0 0 80 ne-info.example.com.
                                                   TXT path = /

En utilisant $ INCLURE des dossiers

Si vous envisagez de créer une longue liste de services et que la répétition est un peu fastidieuse, vous pouvez utiliser le logiciel BIND. $ INCLURE directive pour rendre les choses un peu plus propres. Par exemple, vous pouvez insérer les lignes suivantes dans un fichier appelé «pages Web»:



@ PTR Nouveau  Employé  Page
New  Employee  Page SRV 0 0 80 ne-info.example.com.
                        TXT path = /

Maintenant, dans votre fichier de zone principale pour «exemple.com», vous référenceriez ce fichier en utilisant le $ INCLURE directif:



Pages Web $ INCLUDE _http._tcp.dns-sd-services

Cela indique au serveur de noms faisant autorité de lire le fichier de pages Web, mais en utilisant le suffixe automatique «_http._tcp.dns-sd-services.example.com» pour les noms relatifs dans ce fichier au lieu de «exemple.com».

Certains services, tels que les imprimantes AirPrint, comportent de nombreuses clés dans l'enregistrement TXT, que le client utilise pour identifier le type d'imprimante et ses fonctionnalités. Il peut être fastidieux d’élaborer les clés d’enregistrement TXT à utiliser manuellement. Heureusement, le dns-sd outil de ligne de commande peut aider.

En utilisant le dns-sd -Z _ipp._tcp, _universal Cette commande parcourt le réseau local pour rechercher les imprimantes IPP compatibles AirPrint et affiche les résultats au format de fichier de zone compatible BIND. Vous pouvez ensuite simplement copier-coller les enregistrements PTR / SRV / TXT des imprimantes AirPrint que vous souhaitez rendre disponibles dans le fichier de zone de votre serveur faisant autorité. Vous pouvez placer les entrées dans votre fichier de zone principale ou dans un sous-fichier appelé «AirPrint» que vous incluez à l'aide de la commande $ INCLURE directive comme indiqué ci-dessus.

Pour rendre vos imprimantes identifiables par les clients AirPrint, vous devez ajouter manuellement un enregistrement PTR supplémentaire pour chaque imprimante. Les clients AirPrint ne parcourent pas toutes les imprimantes IPP; ils ne recherchent que le sous-ensemble d'imprimantes IPP prenant en charge le format URF (Universal Raster Format). Pour indiquer aux clients que l'imprimante prend en charge le format URF, vous devez ajouter un enregistrement PTR supplémentaire. Ceci est identique à l’enregistrement PTR qui est sorti par le dns-sd -Z commande, sauf que le nom est précédé de «_universal._sub».

Voici un exemple. Dans le fichier de zone du serveur faisant autorité, $ INCLURE la liste AirPrint, comme ceci:



b._dns-sd._udp IN PTR @
lb._dns-sd._udp IN PTR @
$ INCLURE AirPrint _ipp._tcp

le AirPrint Le fichier ressemble à ceci. Noter la _universal._sub ligne ajoutée à la main.



@ PTR Stuart  032Cheshire  226  128  153s  032Wide  032Area  032Bonjour  032AirPrint  032Printer
_universal._sub PTR Stuart  032Cheshire  226  128  153s  032Wide  032Area  032Bonjour  032AirPrint  032Printer

Stuart  032Cheshire  226  128  153s  032Wide  032Area  032Bonjour  032AirPrint  032Printer SRV 0 0 631 fqdn-of-printer.example.com.
Stuart  032Cheshire  226  128  153s  032Wide  032Area  032Bonjour  032AirPrint  032Printer TXT "txtvers = 1" "qtotal = 1" "rp = imprimantes / HP_Color_LaserJet_9500" "ty = HP Color LaserJet
 9500 MFP "" adminurl = http: //msweet.apple.com.: 631 / printers / HP_Color_LaserJet_9500 "" note = partagée HP CLJ 9500; Dans DA7 / 4 Near Howard, le produit "" priority = 0 "" = (HP color LaserJet 9500
MFP) "" printer-state = 3 "" type-imprimante = 0xC0B0DE "" Transparent = T "" Binaire = T "" Fax = F "" Couleur = T "" Duplex = T "" Agrafe = F "" Copies = T "" Assembler = T "" Perforation = F "" Reliure = F "" Tri = F "" Numérisation = F "" p
dl = application / octet-stream, application / pdf, application / postscript, image / jpeg, image / png, image / urf "" air = nom d'utilisateur, mot de passe "" URF = W8, SRGB24, CP255, RS600, DM1 "


http://www.dns-sd.org

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.