রাউটার VPN চালু করার পরে কাস্টিং কেন বন্ধ হয়ে যায়
ডিসকভারি লিংক-লোকাল মাল্টিকাস্টে চলে, আর টিভি নিজেই মিডিয়া নামায়। পলিসির ডিফল্ট ল্যান অনুরোধ ধরে টানেলে পাঠাতে পারে।
রাউটার VPN চালু হওয়ার আগে কাস্টিং কাজ করত, আর চালু করার সঙ্গে সঙ্গেই ব্যর্থ হয়, অথচ ফোনে সাধারণ ব্রাউজিং এখনও কাজ করে। দুটি তথ্য একসঙ্গে সত্য, কারণ কাস্টিং একটিমাত্র সংযোগ নয়। ফোন স্থানীয় নেটওয়ার্কের মাধ্যমে রিসিভার খুঁজে নিয়ন্ত্রণ করে, তারপর রিসিভার নিজের সংযোগে মিডিয়া নামায়।
দুটি পথ, দুটি ভিন্নভাবে ব্যর্থ হয়
নিয়ন্ত্রণ পথটি স্থানীয়। ফোন স্থানীয় নেটওয়ার্ককে জিজ্ঞাসা করে রিসিভার খুঁজে পায়, তারপর যে ঠিকানা জানল সেখানে নিয়ন্ত্রণ সংযোগ খোলে। রিসিভার যদি তালিকায় কখনও দেখা না যায়, তবে কোনো মিডিয়া চাওয়ার আগেই ডিসকভারি ধাপটি ব্যর্থ হয়েছে।
মিডিয়া পথ সব সময় স্থানীয় নয়। অনেক রিসিভার নিজেরাই স্ট্রিম নামায়, নিজের সংযোগে ও নিজের ক্রেডেনশিয়ালে, তাই ফোনের রুট রিসিভারের রুট বোঝায় না। ফোন কোনো এক নির্গমপথ ব্যবহার করছে বলে মনে হলেও টিভির ট্রাফিক কোথায় যাচ্ছে সে সম্পর্কে তা কিছু বলে না।
এই ভাগাভাগির কারণেই ব্যর্থতাটি অদ্ভুত দেখায়। টানেল ফোনের রাউটিং টেবিল বদলেছে, টিভির টেবিল বদলায়নি; তাই জোড়ার এক পাশে দেখা সমস্যা সেই পাশেই খুঁজতে হবে। ভুল ডিভাইসে খোঁজা করাই সাধারণত কারণ, যে কারণে সমাধান কিছুই করছে না বলে মনে হয়।
ডিসকভারি আগে কেন ভাঙে
ডিসকভারি সাধারণত লিংক-লোকাল মাল্টিকাস্টে চলে। mDNS 224.0.0.251 ঠিকানায় UDP পোর্ট 5353-এ পাঠায়, আর SSDP 239.255.255.250 ঠিকানায় UDP পোর্ট 1900-এ পাঠায়। দুটিই নকশা অনুযায়ী একটি লিংকে সীমিত, তাই রিপিটার বা প্রক্সির সাহায্য ছাড়া রাউটার সেগুলো সেগমেন্টের মধ্যে ফরওয়ার্ড করে না। রাউটেড VPN মাল্টিকাস্ট গ্রুপ বাড়ায় না, আর পলিসি রুট এমন গ্রুপকে, যা লিংক ছেড়েইনি, অন্য লিংকে দেখাতে পারে না।
তাই প্রথম ব্যর্থতার সঙ্গে এনক্রিপশনের কোনো সম্পর্ক নেই। ফোনের মাল্টিকাস্ট যে ইন্টারফেসে পাঠানো হয়েছিল সেটি ছেড়ে যায়, রিসিভার এমন সেগমেন্টে থাকে যা তা কখনও দেখে না, আর ডিভাইস তালিকা খালি ফিরে আসে। খালি তালিকা এই প্রমাণ নয় যে টিভি ইন্টারনেট সংযোগ হারিয়েছে।
কোনো VPN ছাড়াও আইসোলেশন একই রকম লক্ষণ তৈরি করে। গেস্ট নেটওয়ার্ক এবং অ্যাক্সেস পয়েন্টের ক্লায়েন্ট আইসোলেশন ইচ্ছাকৃতভাবে ডিভাইসগুলোর মধ্যে কথা বলা বন্ধ করে, আর আইসোলেটেড সেগমেন্টের উপরে রাউটার VPN চালু করলে সেখানে কিছুই বদলায় না। টানেল দেখার আগে আইসোলেশন সেটিং দেখুন। এটি সস্তা উত্তর এবং বেশি প্রচলিত।
সেগমেন্টের বিন্যাস অন্যদিক। দ্বিতীয় রাউটার, ভিন্ন মোডে থাকা মেশ নোড, বা অন্য NAT-এর পিছনে থাকা তারযুক্ত সেগমেন্ট — সবই রিসিভারকে এমন জায়গায় রাখে যেখানে ফোনের ডিসকভারি ট্রাফিক পৌঁছায় না।
পলিসির ডিফল্ট কেন স্থানীয় অনুরোধ গিলে ফেলতে পারে
যে রাউটার সব ট্রাফিক টানেলে পাঠায়, সে টানেল ইন্টারফেসে ডিফল্ট রুট বসায়। ওই পলিসি থেকে LAN প্রিফিক্স বাদ না দিলে, দুই মিটার দূরের ডিভাইসের ঠিকানায় পাঠানো প্যাকেটও এখন ডিফল্টের সঙ্গে মেলে, আর রাউটার নিয়ন্ত্রণ অনুরোধটি সুইচে না পাঠিয়ে টানেলে পাঠায়।
| Stage | What carries it | How a router VPN interferes |
|---|---|---|
| Discovery | Link-local multicast on a single segment | Not extended across segments, and not repaired by a route |
| Control connection | Unicast to the receiver address on the LAN | A policy default can capture the LAN destination and tunnel it |
| Media fetch | The receiver's own connection | Unaffected by the phone's route, but affected by the TV's own policy |
| Account authorization | Tokens held by the application | Can fail for reasons unrelated to any route |
নিয়মের ক্রম ফলাফল ঠিক করে। পলিসি রাউটিং অগ্রাধিকার অনুযায়ী নিয়ম মূল্যায়ন করে, তাই স্থানীয় প্রিফিক্সের ব্যতিক্রম টানেল টেবিল বাছাই করা নিয়মের আগে থাকতে হবে। টানেল নিয়মের পরে ব্যতিক্রম যোগ করলে কোনো প্রভাব হয় না, এ কারণেই সঠিক দেখতে পাওয়া কনফিগারেশনও LAN ট্রাফিক দূরবর্তী নির্গমপথে পাঠাতে পারে।
সমাধানটি সংকীর্ণ: কাস্টিং প্রবাহের প্রয়োজনীয় নির্দিষ্ট স্থানীয় গন্তব্যগুলো অনুমতি দিন, আর বাকি আইসোলেশন অপরিবর্তিত রাখুন। প্রথম ধাপ হিসেবে ক্লায়েন্ট আইসোলেশন সরানো লক্ষণ সারায়, কিন্তু নেটওয়ার্কের নকশায় থাকা একটি নিয়ন্ত্রণ ফেলে দেয়।
ফোনে একটি দ্রুত জিজ্ঞাসা ঠিক করে দেয় আপনার কোন ব্যর্থতা। রিসিভারের রুট যদি টানেলের দিকে দেখায়, সমস্যা পলিসিতে। যদি LAN-এর দিকে দেখায় আর ডিসকভারি তবু ব্যর্থ হয়, সমস্যা মাল্টিকাস্ট বা আইসোলেশনে, এবং কোনো রুট বদল কাজে লাগবে না।
ip route get 192.168.1.50
ip rule show
avahi-browse -rt _googlecast._tcpকোন দেশ বদলালেন নয়, যে ধাপটি বদলেছে সেটি পরীক্ষা করুন
লিখে রাখা পর্যবেক্ষণ বারবার পরীক্ষার চেয়ে ভালো। রিসিভার ডিভাইস তালিকায় দেখা যায় কি না, নিয়ন্ত্রণ অনুরোধ তার কাছে পৌঁছায় কি না, এবং স্ট্রিম বেছলে প্লেব্যাক শুরু হয় কি না — লিখে রাখুন। প্রতিটি উত্তর একটি ধাপকে সন্দেহের বাইরে রাখে।
তারপর নির্গমপথ বদলানোর বদলে প্রতিটি ধাপ সরাসরি পরীক্ষা করুন। VPN দেশ বদলানো মিডিয়া পথ পরীক্ষা করে, ডিসকভারি ও নিয়ন্ত্রণ ধাপ অপরিবর্তিত রেখে যায়, তাই ঘটনাচক্রে সাহায্য করছে বলে মনে হতে পারে, অথচ কিছু শেখায় না।
রিসিভারের দিকে তার নিজের রুট ও নিজের অ্যাকাউন্টের অবস্থা দেখুন। টিভি যদি ফোনের চেয়ে ভিন্ন নির্গমপথে মিডিয়া নামায়, সেটি স্বাভাবিক নকশা; আর সেখানে ব্যর্থতা ফোনের টানেল নয়, রিসিভারের নেটওয়ার্ক পলিসির প্রশ্ন।
ফলাফলটি এক বাক্যে লিখুন — কোন ধাপ ভেঙেছে এবং কী তা বদলেছে। এই বাক্যটি এক সপ্তাহ দেশ বদলানোর চেয়ে বেশি মূল্যবান, আর পরের ফার্মওয়্যার হালনাগাদেও টিকে থাকে।
টানেল সম্পর্কে সাধারণ নিয়মের জন্য কাস্টিং ভালো পরীক্ষার উদাহরণ। কোনো নেটওয়ার্কে টানেল যোগ হলে প্রথম প্রশ্ন হলো কোন গন্তব্যগুলো কখনও সেখানে ঢোকা উচিত ছিল না, দ্বিতীয়টি হলো সেগুলোর মধ্যে কোনগুলো পলিসি নিঃশব্দে মেনে নিয়েছে।