আপনাকে সম্ভবত বলা হয়েছে যে VPN-এর মাধ্যমে iPhone থেকে প্রিন্ট করতে টানেল পার হয়ে Bonjour ডিসকভারি প্রয়োজন। এই বিশ্বাস মানুষকে TAP ব্রিজ ও মাল্টিকাস্ট রিলের দিকে ঠেলে দেয়, যা কিছুই ঠিক করে না। AirPrint একটি স্পষ্ট গন্তব্য গ্রহণ করে: একটি কনফিগারেশন প্রোফাইল ফোনকে প্রিন্টারের ঠিকানা, রিসোর্স পাথ ও পোর্ট দিতে পারে। প্রিন্ট শিটে সেই এন্ট্রি দেখা যাওয়ার জন্য ডিসকভারি কখনও ঘটতে হয় না। পেলোড যা করে না তা হলো রুট তৈরি করা, AirPrint-অসমর্থ প্রিন্টারকে IPP বলানো বা কাজটি অনুমোদন করা।

এই মিথের শুরু একটি সত্য পর্যবেক্ষণ থেকে

Bonjour ডিজাইন অনুসারেই লিংক-লোকাল মাল্টিকাস্ট। রাউটেড পয়েন্ট-টু-পয়েন্ট টানেল ওই গ্রুপগুলো বহন করে না, তাই VPN-এ থাকা ফোন দূরের LAN-এর প্রিন্টার ব্রাউজ করতে পারে না, একই টানেলে থাকা ল্যাপটপও পারে না। সঠিক সিদ্ধান্ত এই নয় যে প্রিন্টিংয়ের জন্য ব্রিজ দরকার; সঠিক সিদ্ধান্ত হলো ব্রাউজিংয়ের জন্য ভিন্ন একটি ডেলিভারি ব্যবস্থা দরকার, এবং একটি স্পষ্ট তালিকাই সেই ব্যবস্থা।

মাল্টিকাস্ট রিল আছে এবং কিছু নেটওয়ার্ক সেগুলো ভালোভাবে চালায়, কিন্তু সেগুলো এমন একটি ডিসকভারি প্রয়োজন মেটায় যা আপনার নাও থাকতে পারে। যদি ডিপ্লয়মেন্টকে কেবল একটি অনুমোদিত ডিভাইসে প্রিন্ট করতে হয়, তবে সেই ডিভাইসটি প্রকাশ করা ছোট, পরীক্ষাযোগ্য এবং টানেলের ওপারে একটি ব্রডকাস্ট ডোমেইন বাড়ানোর চেয়ে অনেক সহজে প্রত্যাহারযোগ্য।

পেলোড আসলে কী বহন করে

পেলোড com.apple.airprint-এ প্রিন্টার ডিকশনারিগুলোর একটি অ্যারে থাকে। প্রতিটি ডিকশনারি একটি IPAddress নেয়, যা আক্ষরিক ঠিকানা বা হোস্টনেম হতে পারে, একটি ResourcePath, একটি ঐচ্ছিক Port এবং একটি ঐচ্ছিক ForceTLS। Apple iOS 11 থেকে Port ও ForceTLS নথিভুক্ত করে, তাই মিশ্র ফ্লিটের জন্য রোলআউটের আগে এটি স্পষ্ট করা দরকার।

পাথ হলো সেই ফিল্ড যা মানুষ অনুমান করে। ResourcePath প্রিন্টারের _ipps._tcp বা _ipp._tcp Bonjour রেকর্ডে থাকা rp মানের প্রতিফলন ঘটায়। আধুনিক ড্রাইভারবিহীন প্রিন্টারে এটি প্রায়ই 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 বলতে হয়।

সম্পর্কিত নিবন্ধ