Utilisation d'imprimantes réseau – Bien choisir son serveur d impression
Ce document d'aide décrit comment découvrir, configurer et utiliser des imprimantes réseau TCP / IP avec CUPS.
Sommaire
Configuration automatique à l'aide de Bonjour
La plupart des imprimantes réseau prennent en charge un protocole appelé Bonjour, qui est une combinaison de normes de mise en réseau à configuration zéro ("ZeroConf"), de multidiffusion DNS (mDNS) et de découverte de service DNS (DNS-SD) publiées par Internet Engineering Task Force (IETF) ), le même groupe qui a défini TCP / IP et tous les réseaux que nous utilisons aujourd'hui.
Une imprimante prenant en charge Bonjour peut être trouvée automatiquement à l'aide du dnssd
backend. Exécutez le lpinfo (8)
pour trouver l'URI de votre imprimante:
lpinfo --include-schémas dnssd -v réseau dnssd: //Acme%20Laser%20Pro._ipp._tcp.local./? uuid = 545253fb-1cb7-4d8d-98ed-ab6cd607cea7 réseau dnssd: //Bar99._printer.tcp.local./? uuid = f9efff58-9086-4c95-accb-81dee876a475 réseau dnssd: //Example%20EX-42._ipps._tcp.local./? uuid = 4a0c67ad-2824-4ddf-9115-7d4226c5fe65 réseau dnssd: //Foo%20Fighter-1969._pdl-datastream._tcp.local./? uuid = 4e216bea-c3de-4f65-a710-c99e11c80d2b
Vous pouvez ensuite ajouter une imprimante à l'aide de l'URI signalé.
Configuration manuelle à l'aide des adresses IP
Vous pouvez également configurer manuellement une imprimante à l'aide de son adresse IP4 (Internet Protocol v4). Cette adresse est soit configurée manuellement ("IP statique") via le panneau de commande de l'imprimante, soit définie à l'aide d'un protocole réseau automatique tel que le protocole DHCP (Dynamic Host Control Protocol) ou ZeroConf.
Remarque: La configuration d'une imprimante à l'aide d'un ensemble d'adresses IP à l'aide de DHCP ou ZeroConf n'est pas recommandée car l'adresse change à chaque mise sous tension de l'imprimante ou après de longues périodes d'inactivité. Ainsi, chaque fois que l'adresse change, vous devrez modifier la file d'attente d'impression à l'aide du
lpadmin
commander.
Recherche de l'adresse IP
Vous pouvez normalement trouver l'adresse IP d'une imprimante sur le panneau de commande de l'imprimante ou en imprimant la page de configuration ou d'état. Le protocole SNMP (Simple Network Management Protocol) peut également être utilisé pour obtenir l'adresse IP à distance. Pour vérifier que l'adresse IP a été correctement attribuée et que l'imprimante est correctement connectée à votre réseau LAN ou Wi-Fi, tapez:
adresse IP ping
où "ip-address" est l'adresse indiquée par le panneau de commande de l'imprimante, la page de configuration et / ou la page d'état. Si la connexion fonctionne correctement, vous verrez quelque chose comme:
ping 10.0.1.42 PING 10.0.1.42 (10.0.1.42): 56 octets de données 64 octets à partir de 10.0.1.42: icmp_seq = 0 ttl = 15 temps = 1,123 ms 64 octets à partir de 10.0.1.42: icmp_seq = 1 ttl = 15 temps = 2,034 ms 64 octets à partir de 10.0.1.42: icmp_seq = 2 ttl = 15 temps = 1,765 ms 64 octets à partir de 10.0.1.42: icmp_seq = 3 ttl = 15 temps = 1,234 ms ...
Si la connexion ne fonctionne pas correctement, vous verrez quelque chose comme:
ping 10.0.1.42 PING 10.0.1.42 (10.0.1.42): 56 octets de données Délai d'expiration de la demande pour icmp_seq 0 Délai d'expiration de la demande pour icmp_seq 1 ...
presse CTRL + C quitter le ping
commander.
Remarque: Si la commande n'affiche pas les réponses de l'imprimante, vérifiez que l'imprimante ou le serveur d'impression est sous tension et connecté au même réseau LAN ou Wi-Fi que votre ordinateur. Pour les connexions LAN, vérifiez également que votre câblage réseau est bon.
Choix d'un protocole réseau (backend)
CUPS prend en charge la plupart des imprimantes réseau en utilisant l'un des trois protocoles basés sur TCP / IP: AppSocket, Internet Printing Protocol et Line Printer Daemon. Les sections suivantes décrivent les options pour chacun des backends.
Protocole AppSocket (alias JetDirect)
Le protocole AppSocket (parfois aussi appelé protocole JetDirect, en raison de ses origines avec les interfaces réseau HP JetDirect) est le protocole réseau le plus simple et le plus rapide utilisé pour les imprimantes. L'impression AppSocket se produit normalement sur le port 9100 et utilise le prise
backend. URI d'appareil pour le prise
le backend ressemble à ceci:
socket: // adresse IP socket: // adresse IP /? contimeout = 30 socket: // adresse IP /? waiteof = false socket: // adresse IP /? contimeout = 30 & waiteof = false socket: // adresse IP: numéro de port /? ...
L'option "contimeout" contrôle le nombre de secondes que le backend attendra pour obtenir une connexion à l'imprimante. La valeur par défaut est 1 semaine ou 604800 secondes.
L'option "waiteof" contrôle si le prise
le serveur principal attend que l'imprimante termine l'impression du travail. La valeur par défaut est d'attendre (waiteof = true
). Ajouter waiteof = false
à l'URI pour dire au backend de ne pas attendre.
Remarque: Bien que le protocole AppSocket soit simple et rapide, il n'offre aucune sécurité et est souvent un vecteur d'attaque avec des imprimantes. Pensez à utiliser le protocole d'impression Internet qui prend en charge le chiffrement et d'autres fonctions de sécurité.
Protocole d'impression Internet (IPP)
IPP est le seul protocole que CUPS prend en charge de manière native et est pris en charge par la plupart des imprimantes réseau et des serveurs d'impression. IPP prend en charge le chiffrement et d'autres fonctions de sécurité sur le port 631 et utilise le http
(Les fenêtres), ipp
, et ipps
backends. Les URI des appareils pour ces backends ressemblent à ceci:
http: // adresse-ip-ou-nom-d'hôte: numéro-de-port / imprimantes / nom / .printer ipp: // adresse IP / ipp / print ipp: // adresse IP ou nom d'hôte / imprimantes / nom ipps: // adresse IP / ipp / print ipps: // adresse IP: 443 / ipp / print ipps: // adresse IP ou nom d'hôte / imprimantes / nom
Les backends prennent en charge de nombreuses options, qui sont résumées dans le tableau 2. Comme tous les backends, les options sont ajoutées à la fin de l'URI en utilisant le format de codage du formulaire URL, par exemple:
ipp: //10.0.1.42/ipp/print? version = 1.1 ipps: //10.0.1.42: 443 / ipp / print? waitjob = false & waitprinter = false
Option | La description |
---|---|
contimeout =secondes |
Spécifie le nombre de secondes à attendre pour que la connexion à l'imprimante se termine (par défaut 1 semaine ou 604800 secondes). |
cryptage = toujours |
Spécifie que la connexion à l'imprimante IPP doit être cryptée à l'aide de SSL. |
cryptage = si demandé |
Spécifie que la connexion à l'imprimante IPP ne doit être chiffrée que si l'imprimante le demande. |
cryptage = jamais |
Spécifie que la connexion à l'imprimante IPP ne doit pas être cryptée. |
cryptage = obligatoire |
Spécifie que la connexion à l'imprimante IPP doit être chiffrée à l'aide de TLS. |
version = 1.0 |
Spécifie que la version 1.0 du protocole IPP doit être utilisée à la place de la version par défaut 2.0. |
version = 1.1 |
Spécifie que la version 1.1 du protocole IPP doit être utilisée à la place de la version par défaut 2.0. |
version = 2.1 |
Spécifie que la version 2.1 du protocole IPP doit être utilisée à la place de la version par défaut 2.0. |
waitjob = false |
Spécifie que le backend IPP ne doit pas attendre la fin du travail. |
waitprinter = false |
Spécifie que le backend IPP ne doit pas attendre que l'imprimante devienne inactive avant d'envoyer le travail d'impression. |
Protocole LPD (Line Printer Daemon) (alias lpr)
LPD est le protocole d'impression réseau d'origine créé pour le démon d'imprimante ligne Berkeley UNIX (spouleur) et est pris en charge par de nombreuses imprimantes réseau. L'impression LPD se produit normalement sur le port 515 et utilise le lpd
backend. URI d'appareil pour le lpd
le backend ressemble à ceci:
lpd: // adresse IP / file d'attente lpd: // adresse IP / file d'attente? format = l lpd: // adresse IP / file d'attente? format = l & reserve = rfc1179
Le tableau 3 résume les options prises en charge par le lpd
backend.
Remarque: En raison des limitations du protocole LPD, nous vous déconseillons de l'utiliser si l'imprimante ou le serveur prend en charge l'un des autres protocoles. Comme AppSocket, LPD n'offre aucune sécurité et est un vecteur d'attaque courant. LPD exige également par défaut que l'ordinateur enregistre une copie de la totalité du travail d'impression avant de l'envoyer à l'imprimante – cela peut entraîner l'enregistrement de gigaoctets de données d'impression sur le disque avant toute impression, retardant les travaux d'impression et raccourcissant la durée de vie des votre périphérique de stockage de masse!
Option | La description |
---|---|
banner = on |
Spécifie qu'une page de garde doit être imprimée par l'imprimante. |
contimeout =secondes |
Spécifie le nombre de secondes à attendre pour que la connexion à l'imprimante se termine (par défaut 1 semaine ou 604800 secondes). |
format = f |
Spécifie que les données d'impression sont un fichier texte brut. |
format = o |
Spécifie que les données d'impression sont un fichier PostScript. |
format = p |
Spécifie que les données d'impression sont un fichier texte brut qui doit être "joli" imprimé avec un en-tête et un pied de page. |
mode = stream |
Spécifie que le backend doit diffuser les données d'impression sur l'imprimante et ne pas attendre la confirmation que le travail a été correctement imprimé. |
ordre = données, contrôle |
Spécifie que les fichiers de données d'impression doivent être envoyés avant le fichier de contrôle. |
réserve = aucune |
Spécifie que le backend ne doit pas réserver de port source. |
reserve = rfc1179 |
Spécifie que le backend doit réserver un port source de 721 à 731 comme requis par RFC 1179. |
sanitize_title = no |
Spécifie que la chaîne de titre du travail ne doit pas être limitée aux caractères alphanumériques et espace ASCII. |
sanitize_title = oui |
Spécifie que la chaîne de titre du travail doit être limitée aux caractères alphanumériques et espace ASCII. |
timeout =secondes |
Spécifie le nombre de secondes à attendre pour que les commandes LPD se terminent (par défaut 5 minutes ou 300 secondes). |
Recherche d'imprimantes à l'aide de SNMP
Chaque fois que vous affichez la page Web d'administration ou une liste d'URI d'appareil pris en charge, snmp
le backend peut sonder le ou les réseaux locaux à l'aide de diffusions SNMP (Simple Network Management Protocol) v1. Les imprimantes qui répondent à ces émissions sont ensuite interrogées pour la marque, le modèle et les protocoles pris en charge, produisant un URI de périphérique qui peut être utilisé pour ajouter l'imprimante.
le /etc/cups/snmp.conf fichier configure le snmp
backend. Ajoutez la ligne suivante pour activer la découverte à l'aide de la snmp
backend:
Adresse @LOCAL
Si vous n'utilisez pas "public" comme nom de communauté, modifiez le Communauté
ligne aussi:
Communauté le nom de votre communauté
Remarque: le
snmp
backend ne pourra pas trouver d'imprimantes sur votre réseau si SNMP v1 ou la diffusion sont désactivées sur votre réseau. En outre, les diffusions sont généralement limitées au sous-réseau local, de sorte que les imprimantes sur différents réseaux ne peuvent pas être détectées à l'aide de SNMP.
Résolution des problèmes SNMP
le snmp
le backend expose parfois des problèmes dans les implémentations des fournisseurs. Si vous rencontrez de longs retards dans le chargement de la page d'administration de l'interface Web CUPS, ou si vous ne voyez pas votre imprimante répertoriée, les instructions suivantes vous aideront à diagnostiquer ces problèmes et / ou fournir des commentaires importants aux développeurs CUPS afin que nous puissions corriger les problèmes et améliorer la snmp
backend dans les futures versions.
Le backend SNMP prend en charge un mode de débogage qui est activé en l'exécutant à partir d'une invite du shell. Exécutez la commande suivante pour obtenir un journal détaillé de la snmp
backend:
CUPS_DEBUG_LEVEL = 2 / usr / lib / cups / backend / snmp @LOCAL 2> & 1 | tee snmp.log
Sur macOS, vous trouverez le backend dans / usr / libexec / cups / backend à la place:
CUPS_DEBUG_LEVEL = 2 / usr / libexec / cups / backend / snmp @LOCAL 2> & 1 | tee snmp.log
La sortie ressemblera à ceci:
1 INFO: Utilisation de l'adresse SNMP par défaut @LOCAL 2 INFO: Utilisation de la communauté SNMP par défaut publique 3 DEBUG: Recherche d'appareils dans "public" via "@LOCAL" ... 4 DEBUG: 0,000 Envoi de 46 octets au 10.0.1.255 ... 5 DEBUG: SEQUENCE 44 octets DEBUG: INTEGER 1 octets 0 7 DEBUG: OCTET STRING 6 octets "public" 8 DEBUG: Get-Request-PDU 31 octets 9 DEBUG: INTEGER 4 octets 1149539174 10 DEBUG: INTEGER 1 octets 0 DEBUG: INTEGER 1 octets 0 12 DÉBOGAGE: SÉQUENCE 17 octets 13 DÉBOGAGE: SÉQUENCE 15 octets 14 DEBUG: OID 11 octets .1.3.6.1.2.1.25.3.2.1.2.1 15 DEBUG: NULL VALUE 0 octets 16 DEBUG: 0,001 Reçu 55 octets de 10.0.1.42 ... 17 DEBUG: community = "public" 18 DEBUG: request-id = 1149539174 19 DEBUG: error-status = 0 20 DEBUG: SEQUENCE 53 octets DEBUG: INTEGER 1 octets 0 22 DEBUG: OCTET STRING 6 octets "public" 23 DEBUG: Get-Response-PDU 40 octets 24 DEBUG: INTEGER 4 octets 1149539174 25 DEBUG: INTEGER 1 octets 0 DEBUG: INTEGER 1 octets 0 27 DEBUG: SEQUENCE 26 octets 28 DEBUG: SEQUENCE 24 octets 29 DEBUG: OID 11 octets .1.3.6.1.2.1.25.3.2.1.2.1 30 DEBUG: OID 9 octets .1.3.6.1.2.1.25.3.1.5 31 DEBUG: add_cache (addr = 0xbfffe170, addrname = "10.0.1.42", uri = "(null)", id = "(null)", make_and_model = "(null)") 32 DEBUG: 0,002 Envoi de 46 octets à 10.0.1.42 ... 33 DEBUG: SEQUENCE 44 octets DEBUG: INTEGER 1 octets 0 35 DEBUG: OCTET STRING 6 octets "public" 36 DEBUG: Get-Request-PDU 31 octets 37 DEBUG: INTEGER 4 octets 1149539175 38 DEBUG: INTEGER 1 octets 0 39 DEBUG: INTEGER 1 octets 0 40 DEBUG: SEQUENCE 17 octets 41 DEBUG: SEQUENCE 15 octets DEBUG: OID 11 octets .1.3.6.1.2.1.25.3.2.1.3.1 43 DEBUG: NULL VALUE 0 octets DEBUG: 0,003 Reçu 69 octets de 10.0.1.42 ... 45 DEBUG: community = "public" 46 DEBUG: request-id = 1149539175 47 DEBUG: error-status = 0 48 DEBUG: SEQUENCE 67 octets DEBUG: INTEGER 1 octets 0 50 DEBUG: OCTET STRING 6 octets "public" DEBUG: Get-Response-PDU 54 octets DEBUG: INTEGER 4 octets 1149539175 DEBUG: INTEGER 1 octets 0 DEBUG: INTEGER 1 octets 0 55 DEBUG: SEQUENCE 40 octets 56 DÉBOGAGE: SÉQUENCE 38 octets DEBUG: OID 11 octets .1.3.6.1.2.1.25.3.2.1.3.1 58 DEBUG: OCTET STRING 23 octets "HP LaserJet 4000 Series" 59 DEBUG: 1.001 Sondage 10.0.1.42 ... 60 DEBUG: 1.001 Essai de socket: //10.0.1.42: 9100 ... DEBUG: 10.0.1.42 prend en charge AppSocket! 62 DEBUG: 1.002 Scan terminé! 63 prise réseau: //10.0.1.42 "HP LaserJet 4000 Series" "HP LaserJet 4000 Series 10.0.1.42" ""
Les deux premières lignes sont uniquement informatives et vous indiquent que le nom et l'adresse de la communauté par défaut sont utilisés. Les lignes 3 à 15 contiennent la requête SNMP initiale pour le type de périphérique OID (.1.3.6.1.2.1.25.3.2.1.2.1) de la MIB hôte.
Les lignes 16 à 31 montrent la réponse que nous avons obtenue d'une imprimante réseau HP LaserJet 4000. À ce stade, nous découvrons qu'il s'agit d'un périphérique d'impression, puis nous envoyons une autre requête SNMP (lignes 32 à 43) pour l'OID de description de périphérique (.1.3.6.1.2.1.25.3.2.1.3.1) à partir de la MIB hôte également.
Les lignes 44 à 58 indiquent la réponse à la requête de description de périphérique, qui nous indique qu'il s'agit d'une imprimante HP LaserJet 4000 Series.
Sur la ligne 59, nous démarrons notre sonde de connexion active et découvrons que ce serveur d'impression prend en charge le protocole AppSocket (JetDirect) sur le port 9100.
Enfin, la ligne 63 affiche la ligne d'informations sur le périphérique pour le serveur d'impression qui est envoyée à CUPS.
Si vous ne voyez pas votre imprimante répertoriée ou si les informations incorrectes sont répertoriées, vous devez collecter plus d'informations sur l'imprimante. La façon la plus simple de procéder consiste à exécuter la commande snmpwalk:
snmpwalk -Cc -v 1 -c adresse IP publique | tee snmpwalk.log
où "ip-address" est l'adresse IP de l'imprimante ou du serveur d'impression. Vous devriez voir un lot des valeurs sont diffusées par – celles que vous voulez voir sont:
HOST-RESOURCES-MIB :: hrDeviceType.1 = OID: HOST-RESOURCES-TYPES :: hrDevicePrinter HOST-RESOURCES-MIB :: hrDeviceDescr.1 = STRING: HP LaserJet 4000 Series
La ligne hrDeviceType doit afficher hrDevicePrinter; sinon, votre imprimante ou votre serveur d'impression ne s'identifie pas en tant qu'imprimante. La ligne hrDeviceDescr devrait fournir une chaîne lisible par l'homme pour la marque et le modèle de l'imprimante, bien que dans certains cas, vous verrez juste quelque chose de moins utile comme "Axis OfficeBASIC Parallel Print Server".
Une fois que vous avez collecté la sortie snmpwalk, vous devez vous rendre sur la page CUPS Issue Tracker pour soumettre une demande de fonctionnalité pour prendre en charge votre imprimante ou votre serveur d'impression. Assurez-vous de joindre ces deux fichiers journaux que vous avez créés – ils nous aideront à identifier les valeurs SNMP que nous devons rechercher.
Commentaires
Laisser un commentaire