Du behøver ikke Bonjour-opdagelse for at printe over en VPN
En AirPrint-nyttelast angiver en printer med adresse, sti og port, så opdagelse behøver ikke krydse tunnelen. Ruten, den port og TLS skal stadig virke.
Du er sikkert blevet fortalt, at udskrivning fra en iPhone over en VPN kræver, at Bonjour-opdagelse krydser tunnelen. Den overbevisning sender folk mod TAP-broer og multicast-relæer, der ikke løser noget. AirPrint accepterer en eksplicit destination: en konfigurationsprofil kan give telefonen en printers adresse, resursesti og port. Opdagelse behøver aldrig at finde sted, for at den post vises i udskriftsarket. Det, nyttelasten ikke gør, er at oprette ruten, få en printer uden AirPrint til at tale IPP eller godkende jobbet.
Myten starter med en sand observation
Bonjour er link-local multicast af design. En routet punkt-til-punkt-tunnel bærer ikke disse grupper, så en telefon på en VPN kan ikke gennemse printere på det fjerne LAN, og en bærbar computer på samme tunnel kan heller ikke. Den korrekte konklusion er ikke, at udskrivning kræver en bro; den er, at gennemsyn kræver en anden leveringsmekanisme, og en eksplicit liste er den mekanisme.
Multicast-relæer findes, og nogle netværk kører dem godt, men de løser et opdagelseskrav, du måske ikke har. Hvis installationen kun skal printe til én godkendt enhed, er offentliggørelsen af den enhed mindre, testbar og langt lettere at trække tilbage end at udvide et broadcast-domæne over en tunnel.
Hvad nyttelasten faktisk indeholder
Nyttelasten com.apple.airprint indeholder et array af printerordbøger. Hver ordbog tager en IPAddress, som kan være en literal adresse eller et værtsnavn, en ResourcePath, en valgfri Port og en valgfri ForceTLS. Apple dokumenterer Port og ForceTLS fra iOS 11 og frem, så en blandet flåde skal have det afklaret før udrulning.
Stien er det felt, folk gætter på. ResourcePath afspejler rp-værdien i printerens Bonjour-post _ipps._tcp eller _ipp._tcp. Den er ofte ipp/print på moderne driverløse printere og ofte leverandørspecifik på ældre. Kopiering af en sti fra en anden model giver en kø, der vises og derefter afviser hvert job.
Et element i arrayet ser sådan ud, med pladsholderværdier, der ikke er et testet endepunkt:
<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>
Det fragment er ikke en profil. Det er ét element i AirPrint-arrayet inde i en nyttelast, og nyttelasten har stadig brug for sine egne metadata plus signering eller MDM-levering. AirPrint-printerordbogen er reference for felternes betydning.
Indsaml værdierne fra printeren, ikke fra et søgeresultat
På en Mac, der allerede printer til enheden, viser ippfind eller dns-sd -B _ipp._tcp den annoncerede instans, og printerens eget webinterface viser normalt IPP-stien og porten. Skriv alle fire værdier i installationsnoten, så den næste person ikke skal udlede dem igen fra et skærmbillede.
Beslut dig derefter bevidst om TLS. Med ForceTLS sand skal telefonen stole på det certifikat, printeren præsenterer, og et selvsigneret certifikat fejler, medmindre du også udruller tillidsankeret. At slå TLS fra for at få en kø til at virke er en beslutning om netværksruten, ikke en omvej for et ubekvemt certifikat.
Levering, derefter to modsatte fejl
Lever nyttelasten gennem din enhedsstyringskanal, hvor en findes, og behandle en manuelt installeret profil på en arbejdstelefon som den undtagelse, den er. Når den er installeret, bør printeren vises i udskriftsarket helt uden opdagelsestrafik. Den visning er det eneste, nyttelasten nogensinde skulle garantere.
En printer, der vises, men fejler på hvert job, har et rute-, port-, sti- eller TLS-problem, og ingen af dem løses af nyttelasten.
En printer, der aldrig vises, har i stedet et leverings- eller nyttelastproblem: profilen blev ikke installeret, arrayet er forkert, eller en værdi passer ikke til enheden. Læs værdierne og målenheden igen, før du rører VPN'en. At tilføje et opdagelsesrelæ for at løse et listeproblem er en dyr fejl, fordi listen aldrig afhang af opdagelse.
Hold posten vedligeholdelsesvenlig
Foretræk et værtsnavn frem for en literal adresse, hvor du kontrollerer zonen, så en adresseændring ikke ugyldiggør hver installeret profil. Det værtsnavn skal kunne opløses fra telefonen, mens tunnelen er oppe, hvilket bringer det tilbage i split-DNS-samtalen snarere end udskriftssamtalen.
Skriv printerejeren og profilejeren i installationsposten. Når køen flytter, skal du bevidst opdatere den offentliggjorte destination, fordi en gammel post ikke udløber af sig selv og fortsætter med at henvise brugerne til en udfaset enhed.
Intet af dette gør en printer AirPrint-kompatibel. Nyttelasten offentliggør en destination, og enheden skal stadig tale IPP.