Δεν χρειάζεστε την ανακάλυψη Bonjour για εκτύπωση μέσω VPN
Ένα φορτίο AirPrint ονομάζει έναν εκτυπωτή με διεύθυνση, διαδρομή και θύρα, οπότε η ανακάλυψη δεν χρειάζεται να διασχίσει το τούνελ. Η διαδρομή, αυτή η θύρα και το TLS πρέπει ακόμη να λειτουργούν.
Πιθανότατα σας έχουν πει ότι η εκτύπωση από iPhone μέσω VPN απαιτεί να διασχίσει το τούνελ η ανακάλυψη Bonjour. Αυτή η πεποίθηση οδηγεί τους ανθρώπους σε γέφυρες TAP και αναμεταδότες multicast που δεν διορθώνουν τίποτα. Το AirPrint δέχεται έναν ρητό προορισμό: ένα προφίλ διαμόρφωσης μπορεί να δώσει στο τηλέφωνο τη διεύθυνση, τη διαδρομή πόρου και τη θύρα ενός εκτυπωτή. Η ανακάλυψη δεν χρειάζεται ποτέ να συμβεί για να εμφανιστεί αυτή η καταχώριση στο φύλλο εκτύπωσης. Αυτό που δεν κάνει το φορτίο είναι να δημιουργήσει τη διαδρομή, να κάνει έναν εκτυπωτή χωρίς AirPrint να μιλά IPP ή να εξουσιοδοτήσει την εργασία.
Ο μύθος ξεκινά με μια αληθινή παρατήρηση
Το Bonjour είναι multicast τοπικού συνδέσμου εκ σχεδιασμού. Ένα δρομολογημένο τούνελ σημείου-προς-σημείο δεν μεταφέρει αυτές τις ομάδες, οπότε ένα τηλέφωνο σε VPN δεν μπορεί να περιηγηθεί σε εκτυπωτές του απομακρυσμένου LAN, ούτε ένας φορητός υπολογιστής στο ίδιο τούνελ. Το σωστό συμπέρασμα δεν είναι ότι η εκτύπωση χρειάζεται γέφυρα· είναι ότι η περιήγηση χρειάζεται διαφορετικό μηχανισμό παράδοσης, και μια ρητή λίστα είναι αυτός ο μηχανισμός.
Οι αναμεταδότες multicast υπάρχουν και ορισμένα δίκτυα τους λειτουργούν καλά, αλλά λύνουν μια απαίτηση ανακάλυψης που μπορεί να μην έχετε. Αν η ανάπτυξη χρειάζεται εκτύπωση μόνο σε μία εγκεκριμένη συσκευή, η δημοσίευση αυτής της συσκευής είναι μικρότερη, δοκιμαστέα και πολύ ευκολότερο να αποσυρθεί από το να επεκτείνεις έναν τομέα εκπομπής μέσα από ένα τούνελ.
Τι μεταφέρει στην πραγματικότητα το φορτίο
Το φορτίο com.apple.airprint περιέχει έναν πίνακα λεξικών εκτυπωτή. Κάθε λεξικό παίρνει μια IPAddress, που μπορεί να είναι κυριολεκτική διεύθυνση ή όνομα κεντρικού υπολογιστή, ένα ResourcePath, μια προαιρετική Port και ένα προαιρετικό ForceTLS. Η Apple τεκμηριώνει τα Port και ForceTLS από το iOS 11 και μετά, οπότε ένας μικτός στόλος πρέπει να το έχει ξεκαθαρίσει πριν από την ανάπτυξη.
Η διαδρομή είναι το πεδίο που μαντεύουν οι άνθρωποι. Το ResourcePath αντιγράφει την τιμή rp στην εγγραφή Bonjour του εκτυπωτή _ipps._tcp ή _ipp._tcp. Είναι συχνά ipp/print σε σύγχρονους εκτυπωτές χωρίς προγράμματα οδήγησης και συχνά ειδική για τον κατασκευαστή σε παλαιότερους. Η αντιγραφή μιας διαδρομής από άλλο μοντέλο παράγει μια ουρά που εμφανίζεται και μετά αρνείται κάθε εργασία.
Ένα στοιχείο του πίνακα μοιάζει έτσι, με τιμές-σύμβολα που δεν είναι δοκιμασμένο τελικό σημείο:
<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>
Αυτό το απόσπασμα δεν είναι προφίλ. Είναι ένα στοιχείο του πίνακα AirPrint μέσα σε ένα φορτίο, και το φορτίο χρειάζεται ακόμη τα δικά του μεταδεδομένα συν υπογραφή ή παράδοση μέσω MDM. Το λεξικό εκτυπωτή AirPrint είναι η αναφορά για τις σημασίες των πεδίων.
Συλλέξτε τις τιμές από τον εκτυπωτή, όχι από ένα αποτέλεσμα αναζήτησης
Σε ένα Mac που ήδη εκτυπώνει στη συσκευή, το ippfind ή το dns-sd -B _ipp._tcp δείχνει το διαφημιζόμενο στιγμιότυπο, και η ίδια η διεπαφή ιστού του εκτυπωτή συνήθως αναφέρει τη διαδρομή IPP και τη θύρα. Καταγράψτε και τις τέσσερις τιμές στη σημείωση ανάπτυξης ώστε το επόμενο άτομο να μην τις ξαναβγάλει από ένα στιγμιότυπο οθόνης.
Στη συνέχεια αποφασίστε για το TLS συνειδητά. Με το ForceTLS σε αληθές, το τηλέφωνο πρέπει να εμπιστεύεται το πιστοποιητικό που παρουσιάζει ο εκτυπωτής, και ένα αυτο-υπογεγραμμένο πιστοποιητικό αποτυγχάνει εκτός αν αναπτύξετε και την άγκυρα εμπιστοσύνης. Το να απενεργοποιήσετε το TLS για να δουλέψει μια ουρά είναι απόφαση για τη διαδρομή δικτύου, όχι παράκαμψη για ένα άβολο πιστοποιητικό.
Παράδοση, και μετά δύο αντίθετες αστοχίες
Παραδώστε το φορτίο μέσω του καναλιού διαχείρισης συσκευών σας όπου υπάρχει, και αντιμετωπίστε ένα χειροκίνητα εγκατεστημένο προφίλ σε τηλέφωνο εργασίας ως την εξαίρεση που είναι. Μόλις εγκατασταθεί, ο εκτυπωτής θα πρέπει να εμφανιστεί στο φύλλο εκτύπωσης χωρίς καθόλου κίνηση ανακάλυψης. Αυτή η εμφάνιση είναι το μόνο που το φορτίο έπρεπε ποτέ να εγγυηθεί.
Ένας εκτυπωτής που εμφανίζεται αλλά αποτυγχάνει σε κάθε εργασία έχει πρόβλημα διαδρομής, θύρας, μονοπατιού ή TLS, και κανένα από αυτά δεν λύνεται από το φορτίο.
Ένας εκτυπωτής που δεν εμφανίζεται ποτέ έχει αντίθετα πρόβλημα παράδοσης ή φορτίου: το προφίλ δεν εγκαταστάθηκε, ο πίνακας είναι κακοσχηματισμένος ή μια τιμή δεν ταιριάζει με τη συσκευή. Ξαναδιαβάστε τις τιμές και τη συσκευή-στόχο πριν αγγίξετε το VPN. Το να προσθέσετε έναν αναμεταδότη ανακάλυψης για να διορθώσετε πρόβλημα λίστας είναι ακριβό λάθος, γιατί η λίστα ποτέ δεν εξαρτιόταν από την ανακάλυψη.
Διατηρήστε την καταχώριση συντηρήσιμη
Προτιμήστε ένα όνομα κεντρικού υπολογιστή αντί για κυριολεκτική διεύθυνση όπου ελέγχετε τη ζώνη, ώστε μια αλλαγή διεύθυνσης να μην ακυρώνει κάθε εγκατεστημένο προφίλ. Αυτό το όνομα πρέπει να επιλύεται από το τηλέφωνο όσο το τούνελ είναι ενεργό, κάτι που το επιστρέφει στη συζήτηση για split-DNS και όχι στην εκτύπωση.
Γράψτε τον ιδιοκτήτη του εκτυπωτή και τον ιδιοκτήτη του προφίλ στην εγγραφή ανάπτυξης. Όταν η ουρά μετακινείται, ενημερώστε σκόπιμα τον δημοσιευμένο προορισμό, γιατί μια παλιά καταχώριση δεν λήγει μόνη της και συνεχίζει να κατευθύνει τους χρήστες σε μια αποσυρμένη συσκευή.
Τίποτα από αυτά δεν κάνει έναν εκτυπωτή ικανό για AirPrint. Το φορτίο δημοσιεύει έναν προορισμό, και η συσκευή πρέπει ακόμη να μιλά IPP.