
Ich versuche, DNS-Einträge zu erstellen, damit Macs in unserem Netzwerk verfügbare Drucker automatisch über DNS-SD erkennen können (Broadcast allein ist aufgrund unserer WAN-Umgebung keine Option).
Wenn ich die CUPS IPP-Warteschlange manuell über "IP->cups.server.name->/printers/queueName" "hinzufüge", funktioniert alles einwandfrei. Wenn ich jedoch die entsprechenden PTR/SRV-DNS-Einträge hinzufüge, funktioniert es nicht.
Ein Sniffer zeigt, dass der Mac die _dns-sd._udp.XXXX-Suchvorgänge durchführt, den Cups-Server findet, die TXT-Suche durchführt, um die Warteschlangendetails abzurufen, alles funktioniert einwandfrei. Aber wenn ich in diese neue Warteschlange drucke, zeigt der Sniffer an, dass er sich mit dem Cups-IPP-Server als „POST / HTTP“ statt als „POST /printers/queueName“ verbindet – und natürlich antwortet Cups mit „Der Drucker oder die Klasse wurde nicht gefunden“. Der Druckauftrag wird dann auf dem Mac angehalten.
„rp=printers/queueName“ (ohne führendes „/“) steht definitiv im TXT-Eintrag, aber es sieht so aus, als würde der Mac es einfach ignorieren???
;; ANTWORT-ABSCHNITT: queueName._ipp._tcp.our.domain. 1800 IN TXT "\"txtvers=1\" \"qtotl=1\" \"URF=none\" \"product=(Generic PostScript Printer)\" \"ty=Generic PostScript Printer\" \"note=Jason Test\" \"transparent=t\" \"copies=t\" \"duplex=t\" \"color=t\" \"pdl=application/postscript\" \"rp=printers/queueName\""
Irgendwelche Ideen, was ich verpasst habe?
Antwort1
Ich kann meine Frage selbst beantworten
Das Problem war, dass wir Microsoft DNS verwenden und man beim Erstellen von DNS-SD-TXT-Einträgen vorsichtig sein muss. Sie werden normalerweise im folgenden Format gemeldet
1800 IN TXT "txtvers=1" "qtotl=1" "URF=none" "product=(Allgemeiner PostScript-Drucker)" "ty=Allgemeiner PostScript-Drucker" "note=Jason Test" "transparent=t" "copies=t" "duplex=t" "color=t" "pdl=application/postscript" "rp=printers/queueName"
...aber wenn Sie sich meine Frage oben ansehen, werden Sie sehen, dass sie voller "\""-Zeichen waren - was den Mac (eigentlich wahrscheinlich jeden Client) durcheinander brachte
Der Trick besteht darin, bei Verwendung der Microsoft DNS-GUI diese TXT-Einträge mit mehreren Phrasen ohne Anführungszeichen einzugeben und zwischen den Bits die Eingabetaste zu drücken.
txtvers=1
qtotl=1
product=(Generic PostScript Printer)
URF=none
Nachdem ich unsere Datensätze geändert hatte, verschlangen die Macs fröhlich die Metadaten, fragten mich nicht einmal nach einem Druckertreiber und druckten erfolgreich. :-)