eth0-এ ট্রাফিক মানে VPN টানেল লিক করছে না
ফিজিক্যাল অ্যাডাপ্টারে পাবলিক ঠিকানা সাধারণত টানেলের নিজের খোলস। ইন্টারফেস তুলনা করুন, তারপর কার্নেলকে জিজ্ঞাসা করুন সে কোন ডিভাইস বেছে নেয়।
টানেল চালু থাকা অবস্থায় eth0-এ পাবলিক ঠিকানা দেখা মনে হয় যেন কিছু পালিয়েছে। সাধারণত এর উল্টোটা হয়: টানেলের নিজের প্যাকেটগুলিকে সার্ভারে পৌঁছাতে ওই অ্যাডাপ্টার পার হতে হয়, আর সেগুলি সাধারণ UDP বা TCP প্রবাহের মতো দেখায়। ভেতরের প্যাকেট কেবল টানেল ডিভাইসেই দেখা যায়। দুটির পার্থক্য বোঝা খোলস পড়ার বিষয়, বাইট গণনায় ভরসা করার বিষয় নয়।
প্রতিটি টানেল প্যাকেট এখনও তারের উপর দিয়ে যায়
টানেল একটি ইন্টারফেস, তার নয়। ক্লায়েন্ট একটি ভেতরের প্যাকেট নেয়, সেটি মোড়ায় এবং ফলাফলটি প্রোফাইলের সার্ভার ঠিকানা ও পোর্টে পাঠায়। ফিজিক্যাল অ্যাডাপ্টারে আপনি মোড়কটি দেখেন; টানেল ডিভাইসে আপনি যা মোড়ানো হয়েছিল তা দেখেন।
UDP মোডে বাইরের প্রবাহ প্রতিটি দিকে একটিই ঠিকানা ও পোর্ট জোড়া, তাই সুস্থ টানেল eth0-এ প্রায় একঘেয়ে দেখায়। ওই একক জোড়টিই প্রথমে খোঁজা উচিত।
একবারে একটি ইন্টারফেস ক্যাপচার করুন
গণনা তুলনা করতে চাইলে একবারে একটি ইন্টারফেস ক্যাপচার করুন। any সিউডো-ইন্টারফেস একসাথে সব ডিভাইস সংগ্রহ করে, তাই ফরওয়ার্ড করা প্যাকেট প্রবেশ ও প্রস্থানে দেখা যায় এবং স্থানীয়ভাবে তৈরি প্যাকেট দুটি ভিন্ন রূপে দুবার দেখা যায়। সমান প্যাকেট গণনা আর অসমান বাইট গণনা স্বাভাবিক, কারণ মোড়ক তার বহন করা জিনিসের চেয়ে বড়। ARP, DHCP এবং IPv6 রাউটার বিজ্ঞাপন স্থানীয় লিঙ্কের অন্তর্গত এবং আপনার অ্যাপ্লিকেশন সম্পর্কে কিছু বলে না।
sudo tcpdump -i eth0 -n host 203.0.113.10 and udp port 1194ঠিকানা ও পোর্টটি প্রোফাইলের নিজের মান দিয়ে বদলান। ওই প্রবাহ স্থির থাকলে টানেল কিছু বহন করছে।
কার্নেলকে জিজ্ঞাসা করুন সে কোন ডিভাইস বেছে নেয়
কার্নেলকে জিজ্ঞাসা করুন সে কোন ডিভাইস বেছে নেবে, তারপর তারের উপর নিশ্চিত করুন। রুট অনুসন্ধানই সিদ্ধান্ত, আর ক্যাপচার হল সেই সিদ্ধান্ত পালন করা হয়েছে তার প্রমাণ। তারা ভিন্ন প্রশ্নের উত্তর দেয় এবং আপনার দুটিই দরকার।
ip route get 1.1.1.1
ip -6 route get 2606:4700:4700::1111বিভক্ত ফলাফলই সাধারণ দেখা যায়: IPv4 টানেলে যায় আর IPv6 ফিজিক্যাল অ্যাডাপ্টারে যায়, কারণ প্রোফাইল কেবল IPv4 রুট পাঠিয়েছে। এটি সত্যিকারের লিক, এবং কেবল IPv4-এর ক্যাপচারে এটি অদৃশ্য। IPv6-এর জন্য ফিল্টার করুন এবং যে ঠিকানাগুলি সার্ভার নয় ও link-local নয় সেগুলি লক্ষ্য করুন।
সংযোগের আগে ও পরে দুটি অনুসন্ধানই চালান, যাতে দেখতে পারেন ক্লায়েন্ট আসলে কী বদলেছে। দুটি চালনার মধ্যে পার্থক্যই ক্লায়েন্টের প্রকৃত প্রভাব।
যখন ক্যাপচার সত্যিই একটি লিক
কখনও কখনও ক্যাপচার সত্যি বলে। একটি সংকীর্ণ রুট যা একটি প্রিফিক্সকে টানেলের চারপাশ দিয়ে পাঠায়, একটি সাবনেট যা ক্লায়েন্টকে বাদ দিতে বলা হয়েছিল, বা একটি ফায়ারওয়াল অনুমোদন যা টানেল নীতির আগে চলে — এগুলির সবই ট্রাফিক খোলাখুলিভাবে তারের উপর আনতে পারে। প্রক্রিয়া গোষ্ঠীর সাথে মেলে এমন নিয়মও ইচ্ছাকৃত ব্যতিক্রম হতে পারে। এটিকে ত্রুটি বলার আগে এর ইন্টারফেস ও গন্তব্য পরিসর পড়ুন।
রুট বা বাদটি ঠিক করুন, ফায়ারওয়াল নয়। তারপর নতুন সংযোগ থেকে আবার ক্যাপচার করুন এবং IPv4 ও IPv6 আলাদাভাবে পরীক্ষা করুন, কারণ একটি ঠিক করা অন্যটি সম্পর্কে কিছু বলে না। tcpdump ম্যানুয়াল উপরে ব্যবহৃত ইন্টারফেস ও দিক নির্বাচকগুলি কভার করে।