Kerio টানেল ট্রাফিক বহন করার আগে তিনটি জিনিসকে মিলতে হবে: kvnet ইন্টারফেসের ঠিকানা, ক্লায়েন্ট যে মানটি লগ করেছে, এবং সার্ভার নীতি বা DHCP যা প্রত্যাশা করে। যখন এগুলি মেলে না, টানেল তখনও প্রমাণীকরণ করে এবং তখনও উঠে আসে, আর ঠিক এটাই ব্যর্থতাটিকে বিভ্রান্তিকর করে তোলে। ইন্টারফেসটি প্রতিটি সংযোগের জন্য তৈরি হয়, তাই হাতে সেট করা ঠিকানা কেবল সেই সেশনটিরই এবং আর কোনো কিছুর নয়। সমস্যার আকৃতি এটাই, আর সমাধান হলো একটি হুক, কোনো কনফিগারেশন ফাইল নয়। বাকিটা হলো মানটি কোথা থেকে পড়তে হবে এবং কোথায় প্রয়োগ করতে হবে।

ঠিকানাটি কেন বারবার ফিরে আসে

kvnet একটি ভার্চুয়াল অ্যাডাপ্টার যা ক্লায়েন্ট সংযোগ শুরু হলে তৈরি করে এবং শেষ হলে অপসারণ করে। তাই একটি ম্যানুয়াল ip link set ঠিক যতক্ষণ সেই সেশন থাকে ততক্ষণ টিকে থাকে, আর পরের সংযোগ ক্লায়েন্ট যা বরাদ্দ করে তা থেকেই শুরু হয়। যে মেশিনে ক্লায়েন্ট প্রত্যাশিত ঠিকানা প্রয়োগ করতে ব্যর্থ হয়, সেখানে প্রতিটি পুনঃসংযোগ একই অসঙ্গতি আবার আনে, এবং লিজ বা অ্যাক্সেস নিয়ম ডিভাইসটিকে আবার প্রত্যাখ্যান করে।

এই ধরনটি নিজেই রোগনির্ণায়ক। যে টানেল একটি সেশনে কাজ করে আর পরেরটিতে ব্যর্থ হয়, তা শংসাপত্রের সমস্যা নয়, কারণ সংযোগের মধ্যে শংসাপত্র বদলায় না।

মানটি ইন্টারফেস থেকে নয়, ক্লায়েন্ট থেকে পড়ুন

Linux ক্লায়েন্ট তার ডিবাগ লগে দর-কষাকষির বিবরণ লেখে, এবং যে ঠিকানাটি সে ব্যবহার করতে চায় তা সংযোগ অনুক্রমের শেষ ঠিকানা-আকৃতির টোকেন হিসেবে সেখানে দেখা যায়। এটিকে কার্নেল আসলে যা ধরে রাখে তার সঙ্গে তুলনা করুন, যা এক readlink দূরত্বে: cat /sys/class/net/kvnet/address।

যদি দুটি আলাদা হয়, তাহলে ক্লায়েন্ট সঠিক মানটি জানত এবং তা প্রয়োগ করতে ব্যর্থ হয়েছে, আর ইন্টারফেস তৈরি হওয়ার পরে তা প্রয়োগ করা একটি হুক এই ফাঁক বন্ধ করে। যদি লগে আদৌ কোনো ঠিকানা না থাকে, তবে সমস্যাটি আগের এবং তা স্ক্রিপ্টের নয়, ক্লায়েন্ট সংস্করণ বা সার্ভার প্রোফাইলের।

ইন্টারফেস তৈরি হওয়ার পরে এটি প্রয়োগ করুন

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

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

লিঙ্কের বদলে লিজ যাচাই করুন

ip -4 -o addr show dev kvnet প্রত্যাশিত পরিসরে একটি ঠিকানা দেখানো উচিত, ip neigh show dev kvnet গেটওয়ে দেখানো উচিত, এবং VPN-এর পেছনের একটি সেবা উত্তর দেওয়া উচিত। তারপর একবার সংযোগ বিচ্ছিন্ন করে আবার সংযোগ করুন; ঠিকানা ফিরে এলে হুক ভুল ইভেন্টে চলছে বা আদৌ চলছে না।

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

আপগ্রেডের পরে ওয়ার্কঅ্যারাউন্ডটি পুনর্বিবেচনা করুন

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

স্ক্রিপ্টটি এক বসায় পড়ার মতো যথেষ্ট ছোট রাখুন। লগ পার্স করা ওয়ার্কঅ্যারাউন্ড স্বভাবতই সাময়িক। যেগুলো টেকে, সেগুলোই যা ভবিষ্যতের পাঠক মূল থ্রেড ছাড়াই বুঝতে পারেন।

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