কার্নেলের দৈবতা ফুরিয়ে যাওয়া একটি ধীর VPN-এর জন্য আকর্ষণীয় ব্যাখ্যা, এবং মানুষ যে লক্ষণ রিপোর্ট করে তার জন্য প্রায় সবসময়ই ভুল ব্যাখ্যা। দৈব আউটপুটের জন্য অপেক্ষারত হোস্ট একটি নির্দিষ্ট মুহূর্তে থেমে যায়, সাধারণত বুটের শুরুতেই বা কী পরিচালনার সময়। যে টানেল দ্রুত সংযুক্ত হয় এবং তারপর ধীরে ডেটা স্থানান্তর করে সেটি বরং থ্রুপুটের কথা বলছে। যে নম্বরটি আপনি পড়া শেষ করেননি তা ঠিক করতে ডেমন ইনস্টল করার আগে এই দুটি পর্যবেক্ষণ আলাদা করুন।

কেন এই মিথ টিকে থাকে

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

এই জেনারেটরগুলো এভাবে কাজ করে না। একটি ক্রিপ্টোগ্রাফিক লাইব্রেরি বীজযুক্ত জেনারেটর রাখে এবং তা থেকে আউটপুট নেয়, নিজের নীতি অনুযায়ী পুনরায় বীজ বপন করে, তাই ব্যয়বহুল মুহূর্তটি হলো বীজ বপন, স্থির স্থানান্তর নয়।

একটি জেনারেটর প্রতি প্যাকেটে কী করে

OpenSSL 3-এ ডিফল্ট জেনারেটর অনুক্রম কনফিগারেশন ও অবস্থা অনুযায়ী বীজ বপন ও পুনরায় বপন করা DRBG ইনস্ট্যান্স দিয়ে গঠিত। OpenVPN 2.6-এ AEAD ডেটা পথ তার nonce প্যাকেটের ক্রম সংখ্যার সঙ্গে প্রতি-সেশনের অন্তর্নিহিত মান মিলিয়ে নেয়, আর পুরোনো CBC পথ প্রতি প্যাকেটে একটি ছদ্ম-দৈব IV নেয়। কোনো প্যাটার্নই এমন নিয়ম সমর্থন করে না যে এক গিগাবাইট সরানো এক গিগাবাইট নতুন কার্নেল শব্দ খরচ করে। দুটিই এই ধারণা সমর্থন করে যে কী তৈরি ও হ্যান্ডশেকই সেই জায়গা যেখানে বীজ বপন গুরুত্বপূর্ণ।

CBC কেসটি নামানোর যোগ্য, কারণ এটি মিথের মতো দেখায় অথচ মিথ নয়: এর প্রতি-প্যাকেট IV আসে লাইব্রেরির নিজের পুনঃবীজ সময়সূচি অনুযায়ী লাইব্রেরি জেনারেটর থেকে, কখনো প্রতি প্যাকেটে কার্নেল কল থেকে নয়। কেউ যখন প্রতি-বাইট এনট্রপি খরচের কথা বলে, জিজ্ঞেস করুন তারা কোন লাইব্রেরি সংস্করণ আর কোন কোড পথ মেপেছে।

অপেক্ষা আসলে কোথায় দেখা যায়

সেশনের চারপাশে নয়, ধাপগুলোর চারপাশে টাইমস্ট্যাম্প বসান: স্টার্টআপ, প্রমাণিকরণ, কী পরিবর্তন ও স্থানান্তর। টানেল ব্যবহারযোগ্য হওয়ার আগের অপেক্ষা কম স্থির হারের চেয়ে আলাদা অভিযোগ, এবং তাদের মধ্যে কেবল একটি দৈবতার দিকে ইশারা করে। Linux-এ একটি সাধারণ getrandom() অনুরোধ কার্নেলের দৈব উৎস সূচিত না হওয়া পর্যন্ত ব্লক করতে পারে, তাই এই সমস্যার বুট-কালীন সংস্করণ ভার্চুয়াল মেশিন ও এমবেডেড বোর্ডে বাস্তব, যাদের শুরুতেই পুলে খাওয়ানোর মতো সামান্য জিনিস থাকে।

ধাপকী চালাবেনযে পাঠ মানে অপেক্ষাযে পাঠ মানে থ্রুপুট
বুট, যেকোনো টানেলের আগেsystemd-analyze critical-chainটানেল শুরুর আগে সেকেন্ডের পর সেকেন্ড বসে থাকা একটি ইউনিটপ্রযোজ্য নয়, এখনো কিছুই স্থানান্তর হচ্ছে না
হ্যান্ডশেকjournalctl -u openvpn-server@server -bসূচনা অনুক্রম শেষ হওয়ার আগে দীর্ঘ বিরতিপ্রযোজ্য নয়, টানেল ওপরে নেই
প্রতিষ্ঠিত স্থানান্তরss -tin পাশে sar -n DEV 1খালি সকেট সারিসহ ব্লক হওয়া প্রসেসপূর্ণ সারি, পুনঃপ্রেরণ এবং একটি ব্যস্ত থ্রেড

দুটি সস্তা কমান্ড ওই সংগ্রহ শুরুতে থাকে, এবং টেবিল দরকার হওয়ার আগেই তারা সহজ প্রশ্নগুলোর নিষ্পত্তি করে। তারা যে কাউন্টার পড়ে তা এনট্রপি হিসাব, ব্যান্ডউইথ মিটার নয়, আর একক স্ন্যাপশট দেখাতে পারে না যে কোনো প্রসেস ব্লক হয়েছে, কতক্ষণ অপেক্ষা করেছে, বা তার লাইব্রেরি কোন ইন্টারফেস ডাকে। পুনরুদ্ধারের পরে নেওয়া নমুনা সাধারণত থেমে যাওয়াটা পুরোপুরি মিস করে, তাই পাঠের পাশে কার্নেল সংস্করণ রাখুন।

cat /proc/sys/kernel/random/entropy_avail
uname -r

পাঠের সঙ্গে সংশোধন মিলান

কার্নেল যদি সত্যিই সূচনার জন্য অপেক্ষা করে, তবে টানেলের দিকে নয়, প্ল্যাটফর্মের সমর্থিত বীজ বপনের পথের দিকে তাকান। ভার্চুয়াল মেশিনকে হোস্ট-প্রদত্ত দৈব ডিভাইস দেওয়া যায়, যেমন virtio-rng, এবং ইমেজ প্রস্তুতি গুরুত্বপূর্ণ, কারণ অনেক গেস্টে অপরিবর্তিতভাবে কপি করা বীজ স্বাধীন সূচনা নয়। কোনো লাইব্রেরি বুটের পরে বীজ বপন ব্যর্থতার কথা জানালে, কার্নেল সেটিংস বদলানোর বদলে তার কনফিগার করা উৎস ও প্রদানকারীর আচরণ পরীক্ষা করুন।

ss -tin dst 203.0.113.7
sar -n DEV 1 5

OpenSSL-এর জেনারেটর ডকুমেন্টেশন বর্ণনা করে এই অনুক্রম কীভাবে ইনপুট পায় এবং পুনঃবীজ কখন ঘটে, যা মিথের চেয়ে অনেক সংকীর্ণ দাবি এবং কেবল ওই বাস্তবায়নের জন্যই সত্য। একটি এনট্রপি ডেমন সর্বজনীন গতির মেরামত নয়, আর কাউন্টার বাড়াতে সেটি ইনস্টল করা বিলম্ব না দেখিয়ে একটি নিরাপত্তা ধারণা বদলে দেয়। থ্রুপুটের জন্য ডেটা পথ অনুসরণ করুন: একটি সম্পৃক্ত থ্রেড, পুনঃপ্রেরণ, বাইরের ক্ষতি আর সারি হারানো—প্রতিটির আলাদা সমাধান দরকার, আর বাফার আকার সকেট বাফারিংয়ের মোকাবিলা করে নিজস্ব সারি-প্রমাণ নিয়ে।

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