Ihnen wurde wahrscheinlich gesagt, dass Drucken von einem iPhone über ein VPN erfordert, dass die Bonjour-Erkennung den Tunnel überquert. Dieser Glaube treibt Menschen zu TAP-Bridges und Multicast-Relays, die nichts beheben. AirPrint akzeptiert ein ausdrückliches Ziel: Ein Konfigurationsprofil kann dem Telefon Adresse, Ressourcenpfad und Port eines Druckers übergeben. Die Erkennung muss nie stattfinden, damit dieser Eintrag im Druckdialog erscheint. Was die Nutzlast nicht tut, ist die Route anzulegen, einen Drucker ohne AirPrint dazu zu bringen, IPP zu sprechen, oder den Auftrag zu autorisieren.

Der Mythos beginnt mit einer wahren Beobachtung

Bonjour ist von Natur aus Link-Local-Multicast. Ein gerouteter Punkt-zu-Punkt-Tunnel transportiert diese Gruppen nicht, daher kann ein Telefon in einem VPN keine Drucker im entfernten LAN durchsuchen, und ein Laptop im selben Tunnel auch nicht. Die richtige Schlussfolgerung ist nicht, dass Drucken eine Bridge braucht; sie ist, dass das Durchsuchen einen anderen Zustellmechanismus braucht, und eine ausdrückliche Liste ist dieser Mechanismus.

Multicast-Relays existieren, und manche Netze betreiben sie gut, aber sie lösen eine Erkennungsanforderung, die Sie vielleicht nicht haben. Wenn das Deployment nur auf ein freigegebenes Gerät drucken muss, ist das Veröffentlichen dieses Geräts kleiner, testbar und weit leichter zurückzuziehen, als eine Broadcast-Domäne über einen Tunnel auszudehnen.

Was die Nutzlast tatsächlich enthält

Die Nutzlast com.apple.airprint enthält ein Array von Druckerwörterbüchern. Jedes Wörterbuch nimmt eine IPAddress, die eine literale Adresse oder ein Hostname sein kann, einen ResourcePath, einen optionalen Port und ein optionales ForceTLS. Apple dokumentiert Port und ForceTLS ab iOS 11, daher muss eine gemischte Flotte das vor dem Rollout geklärt haben.

Der Pfad ist das Feld, das Leute raten. ResourcePath spiegelt den rp-Wert im Bonjour-Eintrag des Druckers _ipps._tcp oder _ipp._tcp. Bei modernen treiberlosen Druckern ist er häufig ipp/print, bei älteren häufig herstellerspezifisch. Das Kopieren eines Pfads von einem anderen Modell erzeugt eine Warteschlange, die erscheint und dann jeden Auftrag ablehnt.

Ein Element im Array sieht so aus, mit Platzhalterwerten, die kein getesteter Endpunkt sind:

<dict>
    <key>ResourcePath</key>
    <string>ipp/print</string>
    <key>IPAddress</key>
    <string>printer-07.office.example</string>
    <key>Port</key>
    <integer>8631</integer>
    <key>ForceTLS</key>
    <true/>
</dict>

Dieses Fragment ist kein Profil. Es ist ein Element des AirPrint-Arrays innerhalb einer Nutzlast, und die Nutzlast braucht weiterhin eigene Metadaten sowie Signierung oder MDM-Zustellung. Das AirPrint-Druckerwörterbuch ist die Referenz für die Feldbedeutungen.

Sammeln Sie die Werte vom Drucker, nicht aus einem Suchergebnis

Auf einem Mac, der bereits auf das Gerät druckt, zeigt ippfind oder dns-sd -B _ipp._tcp die angekündigte Instanz, und die Weboberfläche des Druckers listet meist den IPP-Pfad und den Port. Notieren Sie alle vier Werte in der Deployment-Notiz, damit die nächste Person sie nicht erneut aus einem Screenshot ableiten muss.

Entscheiden Sie dann bewusst über TLS. Mit ForceTLS auf wahr muss das Telefon dem Zertifikat vertrauen, das der Drucker vorlegt, und ein selbstsigniertes Zertifikat schlägt fehl, sofern Sie nicht auch den Vertrauensanker ausrollen. TLS abzuschalten, damit eine Warteschlange funktioniert, ist eine Entscheidung über den Netzwerkpfad, kein Ausweichweg für ein unbequemes Zertifikat.

Zustellung, dann zwei entgegengesetzte Fehler

Stellen Sie die Nutzlast über Ihren Geräteverwaltungskanal zu, wo es einen gibt, und behandeln Sie ein manuell installiertes Profil auf einem Arbeits-Telefon als die Ausnahme, die es ist. Nach der Installation sollte der Drucker ohne jeden Erkennungsverkehr im Druckdialog erscheinen. Dieses Erscheinen ist das Einzige, was die Nutzlast je garantieren sollte.

Ein Drucker, der erscheint, aber jeden Auftrag ablehnt, hat ein Route-, Port-, Pfad- oder TLS-Problem, und keines davon wird durch die Nutzlast gelöst.

Ein Drucker, der nie erscheint, hat stattdessen ein Zustellungs- oder Nutzlastproblem: Das Profil wurde nicht installiert, das Array ist fehlerhaft, oder ein Wert passt nicht zum Gerät. Lesen Sie die Werte und das Zielgerät erneut, bevor Sie das VPN anfassen. Ein Erkennungs-Relay hinzuzufügen, um ein Listenproblem zu beheben, ist ein teurer Fehler, weil die Liste nie von der Erkennung abhing.

Halten Sie den Eintrag wartbar

Bevorzugen Sie einen Hostnamen gegenüber einer literalen Adresse, wo Sie die Zone kontrollieren, damit eine Adressänderung nicht jedes installierte Profil ungültig macht. Dieser Hostname muss vom Telefon aus auflösbar sein, solange der Tunnel steht, was ihn zurück in das Split-DNS-Gespräch bringt statt in das Druckgespräch.

Schreiben Sie den Druckereigentümer und den Profileigentümer in den Deployment-Datensatz. Wenn die Warteschlange umzieht, aktualisieren Sie das veröffentlichte Ziel bewusst, denn ein alter Eintrag läuft nicht von selbst ab und lenkt Nutzer weiter auf ein ausgemustertes Gerät.

Nichts davon macht einen Drucker AirPrint-fähig. Die Nutzlast veröffentlicht ein Ziel, und das Gerät muss trotzdem IPP sprechen.

Ähnliche Artikel