VPN এড়িয়ে যাওয়া IPv6 ট্রাফিক: লিক হওয়া রুটটি খুঁজুন
টানেলের মধ্য দিয়ে IPv4 আর সরাসরি IPv6 হলো রাউটিংয়ের ফাঁক, রহস্য নয়। পরিচিত পরিবারের একটি অনুরোধ পরীক্ষা করুন, নির্বাচিত রুটটি পড়ুন, তারপর পরিবারগুলোর মধ্যের ফাঁকটি বন্ধ করুন।
দুটি পরীক্ষার পাতা পরস্পরবিরোধী: একটি টানেলের মধ্য দিয়ে প্রোভাইডারের ঠিকানা জানায়, অন্যটি আপনার বাড়ির প্রিফিক্স জানায়, আর আপাত উপসংহার হলো VPN লিক করছে। এই উপসংহার একটি ধাপ বাদ দেয়, কারণ দুটি প্রতিবেদন দুটি ভিন্ন রাউটিং সিদ্ধান্ত প্রয়োগ করেছে এবং তাদের মধ্যে কেবল একটিকেই টানেলে ঢোকার কথা ছিল। ফাঁকটি সাধারণত সত্যিই থাকে, এবং এটি ভাঙা টানেল নয়, কভারেজের সমস্যা। তিনটি প্রশ্ন এটির নিষ্পত্তি করে: কোন প্রবাহটি সত্যিই বেরিয়েছে, কার্নেল তার জন্য কোন রুট বেছেছে এবং ক্লায়েন্ট কোন আচরণ চেয়েছিল।
এই ক্রমে কাজ করুন। ক্রম না মেনে উত্তর দিলে ক্লায়েন্ট ত্রুটিপূর্ণ কি না নিয়ে দীর্ঘ বিতর্ক হয়, অথচ আসল উত্তর হলো IPv6 রুট কখনোই ইনস্টল হয়নি।
কোন প্রবাহটি সত্যিই বেরিয়েছে, আর কোন অ্যাডাপ্টারে
যে পরিবারটি ব্যবহার করেছে তা নাম বলে এমন একটি পরীক্ষা দিয়ে শুরু করুন, তারপর অ্যাপ্লিকেশন, অ্যাক্সেস নেটওয়ার্ক, বলবৎ প্রোফাইল এবং সংযোগটি আদৌ IPv6 দেয় কি না তা লিখে রাখুন। এই চারটি তথ্যই দুটি রানকে তুলনীয় করে, আর চতুর্থটি মানুষ ভুলে যায়: v6 প্রিফিক্স নেই এমন নেটওয়ার্ক v6 লিক করতে পারে না, আর পরে একটি যোগ করা নেটওয়ার্ক উত্তরটি বদলে দেয়।
পাতা লোড করে তার ফল পড়ার বদলে প্রতি পরিবারের জন্য একটি অনুরোধ পাঠান। একটি পাতায় v6 ও v4 উৎস মিশে যেতে পারে, পটভূমির কোনো প্রক্রিয়া আপনার সামনের ট্যাবের চেয়ে ভিন্নভাবে আচরণ করতে পারে, আর ক্যাশে রাখা উত্তর আপনি যে নেটওয়ার্ক পরিবর্তন পরীক্ষা করছেন তা ছাড়িয়ে টিকতে পারে। আপনি যে গন্তব্য পরীক্ষা করছেন তা নির্দিষ্ট করুন ও টুকে রাখুন, যাতে পুনরায় চালানো একই জিনিস মাপে।
কার্নেল যে রুট বেছেছে তা পড়া
রুট টেবিল এমন প্রশ্নের উত্তর দেয় যা ব্রাউজার দিতে পারে না। সিস্টেমকে জিজ্ঞাসা করুন কোনো নির্দিষ্ট গন্তব্য কোথায় যাবে, আর দৃশ্যমান ডিফল্টের পাশাপাশি নীতি-নিয়মও অন্তর্ভুক্ত করুন, কারণ যেকোনোটি সেটিকে অগ্রাহ্য করতে পারে:
ip -6 route get 2606:4700:4700::1111
ip -6 rule show
ip -6 route show table all
আরও নির্দিষ্ট প্রিফিক্সই সাধারণত কারণ একটি গন্তব্য টানেলের বাইরে থাকে আর বাকি সব ভেতরে থাকে, আর একটি নীতি-নিয়ম যেকোনো রুটের চেয়ে উচ্চ অগ্রাধিকারে একই কাজ করতে পারে। মেট্রিকও পড়ুন, কারণ একই প্রিফিক্সের দুটি এন্ট্রি পর্দায় তাদের ক্রমে নয়, মেট্রিক দিয়ে নিষ্পত্তি হয়। Windows-এ সমতুল্য তালিকা হলো Get-NetRoute -AddressFamily IPv6, সিদ্ধান্তের ক্রম মেলাতে মেট্রিক অনুসারে সাজানো। টেবিলে সঠিক দেখানো একটি নিয়মও কম সংখ্যার নীতি-নিয়মের কাছে হারতে পারে, তাই নিয়মের তালিকা রুটের তালিকার সঙ্গে একই শ্বাসে থাকা উচিত।
ক্লায়েন্টের IPv6 নীতি কোথা থেকে আসে
একটি ক্লায়েন্ট এমনভাবে তৈরি হতে পারে যাতে সে টানেলের মধ্য দিয়ে v6 বহন করে, অথবা তা প্রত্যাখ্যান করে, অথবা একটি নামকরা ব্যতিক্রম মঞ্জুর করে, আর এই তিন অভিপ্রায় তিনটি ভিন্ন সঠিক ফল দেয়। কোনো পর্যবেক্ষণকে লিক বলার আগে প্রোফাইল ও ক্লায়েন্টের নিজের নথি পড়ুন, কারণ যে ক্লায়েন্ট v6 ব্লক করে অথচ অপারেটিং সিস্টেম এখনো ভৌত লিঙ্কে প্রতিবেশী আবিষ্কার পাঠায়, সে যেমন নকশা করা হয়েছে তেমনই আচরণ করছে।
টানেল থেকে সচেতনভাবে বাদ দেওয়া অ্যাপ্লিকেশন এমন পরিবার থেকে ভিন্ন ঘটনা যা টানেল কখনো বহন করেনি। প্রথমটি এক প্রোগ্রাম নিয়ে সিদ্ধান্ত, দ্বিতীয়টি কভারেজের ফাঁক, আর মেরামতও সেই অনুসারে ভিন্ন। যে রুট কখনো থাকার কথা ছিল না তা খোঁজার আগে ক্লায়েন্টের বাদ দেওয়া প্রোগ্রামের তালিকা পড়ুন।
সূক্ষ্ম পর্যবেক্ষণ, যখন টেবিল একমত নয়
রুট অনুসন্ধান দ্ব্যর্থক হলে হোস্টে একটি ইন্টারফেস পর্যবেক্ষণ তা নিষ্পত্তি করতে পারে, তবে কেবল প্রশ্নটির দিকে লক্ষ্য রাখলে। VPN এন্ডপয়েন্টের দিকে যাওয়া ট্রাফিক নকশা অনুযায়ীই ভৌত অ্যাডাপ্টার অতিক্রম করবে; গুরুত্বপূর্ণ হলো অন্যত্র সম্পূর্ণ ভিন্নভাবে ঠিকানাভুক্ত অ্যাপ্লিকেশন প্রবাহটিও সেখানে দেখা যায় কি না। সবকিছু সংগ্রহ করার বদলে ক্যাপচারটি পরীক্ষাধীন গন্তব্যে সীমাবদ্ধ করুন।
প্রশস্ত ক্যাপচার এক প্রশ্নের প্রয়োজনের চেয়ে অনেক বেশি ব্যক্তিগত ট্রাফিক প্রকাশ করে। এটি প্রশ্নের উত্তরও কম স্পষ্টভাবে দেয়, কারণ আপনার আগ্রহের প্রবাহটি অসম্পর্কিত সংযোগের স্রোতে চাপা পড়ে আসে। পরীক্ষিত গন্তব্যে সীমাবদ্ধ করুন, অল্প কয়েকটি প্যাকেটের পর থামুন এবং ক্যাপচারটি মুছে ফেলুন।
ফাঁক বন্ধ করার তিন উপায়
পরিবারটিকে টানেলের মধ্য দিয়ে বহন করুন, টানেল তা বহন করতে না পারলে ক্লায়েন্টে তা ব্লক করুন, অথবা মালিক ও পর্যালোচনার তারিখসহ সচেতন ব্যতিক্রম লিপিবদ্ধ করুন। প্রত্যেকটিই যুক্তিসঙ্গত, আর যুক্তিসঙ্গত নয় কেবল একটি জিনিস, পছন্দটি গোপন রাখা, কারণ লিক আসলে সেই গোপন পছন্দটাই। টানেলের যদি আদৌ v6 নির্গমন না থাকে, তবে ক্লায়েন্টে v6 প্রত্যাখ্যান করা একইসঙ্গে সৎ ও পরীক্ষাযোগ্য। গুরুত্বপূর্ণ হলো পছন্দটি সেখানে লেখা থাকা যেখানে পরের মানুষ তা পাবে, ছয় মাস পরে আচরণ থেকে অনুমান করা নয়।
পুনঃসংযোগের পরে এবং নেটওয়ার্ক বদলের পরে পরীক্ষাটি আবার করুন, কারণ আগের লিঙ্কের জন্য ইনস্টল করা রুট পরিবর্তনটি টিকিয়ে যেতে পারে। তারপর গন্তব্য, নির্বাচিত রুট, ক্লায়েন্ট নীতি এবং পরীক্ষায় ব্যবহৃত পরিবার লিখে রাখুন, যাতে পরের মানুষ নতুন করে অনুমান না করে একটি সিদ্ধান্ত পড়ে। RFC 7359 ডুয়াল-স্ট্যাক লিককে বাগ নয়, নকশার সমস্যা হিসেবে নথিভুক্ত করে, আর কেউ যখন দাবি করে কাজ করা v4 টানেল সবকিছু ঢেকে রাখে, তখন এটিই উদ্ধৃত করার সূত্র।