হার্ডওয়্যার NAT অফলোড কি আপনার VPN রাউটিং নিয়ম ভাঙে?
ত্বরণ আপনার নীতির নির্ভর করা হুকটি এড়িয়ে যেতে পারে, বা কেবল কাউন্টার আপডেটের জায়গা সরাতে পারে। সেটিংস বদলানোর আগে এই ফলাফলগুলো আলাদা করুন।
হার্ডওয়্যার NAT ত্বরণ চালু করলে VPN সেটআপ দ্রুত হতে পারে, আবার কোনো ত্রুটি ছাড়াই কিছু প্যাকেটে রাউটিং নীতি প্রয়োগ হওয়া বন্ধও করে দিতে পারে। এর মধ্যে কোনটি ঘটবে তা নির্ভর করে ফাস্ট পাথ কী এড়িয়ে যায় তার উপর, আর তা ফার্মওয়্যার, কার্নেল সংস্করণ ও ব্যবহৃত ত্বরণের ধরন অনুযায়ী আলাদা হয়। সেটিংস মেনু খুব কমই বলে দেয় আপনি ঠিক কোনটি চালু করেছেন।
ত্বরণকারীকে দোষ দেওয়ার আগে দুটি দাবি আলাদা করা দরকার: একটি নিয়ম প্রয়োগ হওয়া বন্ধ হয়েছে, এবং একটি কাউন্টার আপডেট হওয়া বন্ধ হয়েছে। এরা একই পর্যবেক্ষণ নয়।
তিনটি ভিন্ন ত্বরণ একসাথে মেশানো হয়
ফরওয়ার্ডিং অফলোড, ক্রিপ্টোগ্রাফিক ত্বরণ এবং টানেল ডেটা-চ্যানেল অফলোড আলাদা প্রক্রিয়া, যারা প্রায়ই একটি সুইচ ভাগ করে নেয়। ফরওয়ার্ডিং অফলোড প্রতিষ্ঠিত ফ্লোকে স্বাভাবিক স্ট্যাকের অংশ এড়াতে দেয়, ক্রিপ্টোগ্রাফিক ত্বরণ সাইফারের কাজ সস্তা করে, আর টানেল অফলোড এনক্যাপসুলেশন হার্ডওয়্যারে সরায়। সাধারণ রাউটেড ট্র্যাফিক ত্বরান্বিত করা রাউটার টানেল ট্র্যাফিককে সম্পূর্ণ ধীর পথে রেখে দিতে পারে, যা নীতির পরিবর্তন নয় বরং কর্মক্ষমতার ফলাফল। উল্টোটাও আছে, যেখানে টানেল ট্র্যাফিক অফলোড হয় অথচ আশপাশের নীতি এখনও মূল্যায়ন করা হয়।
Linux-এর flowtable হলো সবচেয়ে পড়ার যোগ্য নথিভুক্ত উদাহরণ, কারণ প্রতিষ্ঠিত ফ্লোকে ফাস্ট পাথে হস্তান্তর করা যায়। তখন তাদের হিসাব ও স্টেট পরিচালনা ক্লাসিক ফরওয়ার্ডিং থেকে আলাদা হয়, আর সেজন্যই কাউন্টারগুলো অদ্ভুত দেখাতে শুরু করে।
থেমে যাওয়া কাউন্টার খুব কমই প্রমাণ করে
নিয়মের কাউন্টার সেই প্যাকেটগুলো গোনে যেগুলো নিয়মটি পার হয়, আর অফলোড হওয়া ফ্লো প্রথম প্যাকেটের পরে আর কখনও সেটি পার না-ও হতে পারে। এতে এমন কাউন্টার তৈরি হয় যা ট্র্যাফিক চলতে থাকলেও জমে যায়, আর আপনি সংখ্যাটি বিশ্বাস করলে তা হুবহু বাইপাসের মতো দেখায়। কাউন্টার দেখা এখনও সূক্ষ্ম সংকেত হিসেবে কাজে লাগে যে ফ্লোটি গণনার পথ ছেড়ে গেছে। বাকি নির্ণয় আসতে হবে প্যাকেটগুলো আসলে কোথায় যায় তা থেকে।
উল্টো অনুমানও ঠিক ততটাই ব্যর্থ হয়। দ্রুত ডাউনলোড প্রমাণ করে না যে আপনার ব্যতিক্রম নিয়ম ও ব্যর্থতা সামলানো এখনও প্রযোজ্য, কারণ তা একটি ফ্লো পরীক্ষা করে, নীতিটি নয়।
তিনটি শর্ত ঠিক করে অফলোড নীতি ভাঙে কি না
প্রথম শর্তটি হলো ফাস্ট পাথ আপনার নীতির নির্ভর করা হুকটির সঙ্গে পরামর্শ করে কি না, কারণ মার্ক ও রুটে প্রকাশ করা নীতি প্রতি-প্যাকেট ফিল্টারিংয়ে গড়া নীতির চেয়ে বেশি টেকে। দ্বিতীয়টি হলো ফার্মওয়্যার আদৌ এই সমন্বয় অনুমোদন করে কি না, কারণ কিছু বিল্ড টানেল বা ফায়ারওয়াল বৈশিষ্ট্য সক্রিয় থাকলে অফলোড স্বয়ংক্রিয়ভাবে বন্ধ করে দেয়। তৃতীয়টি হলো ট্র্যাফিক যোগ্য কি না, কারণ ত্বরণ সাধারণত প্রতিষ্ঠিত ফ্লোর সঙ্গে বাঁধা এবং খণ্ডিত বা অস্বাভাবিক প্যাকেট বাদ দিতে পারে। যেখানে তিনটিই ত্বরণের পক্ষে, সেখানে নীতি তবুও প্রযোজ্য, আর যেখানে প্রথমটি ব্যর্থ, সেখানে কোনো টিউনিংই তা ফিরিয়ে আনে না।
আপনি যে সমন্বয় চালাচ্ছেন তার জন্য বিক্রেতার ডকুমেন্টেশন পড়ুন, সাধারণভাবে রাউটার মডেলের জন্য নয়। ফার্মওয়্যার সংস্করণ এই উত্তরগুলো নিঃশব্দে বদলে দেয়।
নীতি পরীক্ষা করুন, থ্রুপুট নয়
নীতি কী নিশ্চিত করার কথা তা মাপুন, তারপর মাপুন এটি কত দ্রুত চলে। নিচের কমান্ডগুলো দেখায় flowtable ইনস্টল আছে কি না, কানেকশন ট্র্যাকিং কী দেখছে, এবং ক্লায়েন্ট কোন ঠিকানা দিয়ে বেরোচ্ছে। পরিবর্তনের পরে একটি নতুন কানেকশন তুলনা করুন, কারণ প্রতিষ্ঠিত একটি কানেকশন তার পুরনো পথ ধরে রাখতে পারে।
nft list flowtables
conntrack -L | head -n 20
curl -sS --max-time 8 https://api.ipify.org; echo
ping -c 3 192.168.50.20
টানেল ট্র্যাফিক ঢেকে দেওয়া একটি flowtable এন্ট্রি আপনাকে বলে ফাস্ট পাথ কাজ করছে, আর কানেকশন টেবিল দেখায় ফ্লোটি আপনার প্রত্যাশামতো ট্র্যাক হচ্ছে কি না। ঠিকানা যাচাই বেরোনোর পথ নিশ্চিত করে যখন নীতি ইন্টারনেট ইগ্রেস নিয়ে, আর ping নিশ্চিত করে এমন একটি ব্যক্তিগত গন্তব্য যা পৌঁছানোযোগ্য থাকা উচিত। একই সেট ত্বরণ বন্ধ করে এবং পরে চালু করে চালান, আর সময় নয়, ফলাফল তুলনা করুন।
আগের সেটিংটি লিখে রাখুন যাতে পরীক্ষাটি উল্টানো যায়। সর্বত্র অফলোড বন্ধ করার সাধারণ নির্দেশ একটি অস্থায়ী সমাধান, কোনো আবিষ্কার নয়।