คุณไม่จำเป็นต้องมีการค้นพบ 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