L2TP ডিবাগ লগ খালি? ত্রুটি সম্ভবত জার্নালে আছে
হেল্পার নিজের আউটপুট ছাপে, আর pppd ও IPsec ডেমন জার্নালে লেখে। PSK বা পাসওয়ার্ড বদলানোর আগে একটি প্রচেষ্টা মিলিয়ে দেখুন।
আপনি ডিবাগিং চালু করে L2TP হেল্পার শুরু করেন, টার্মিনাল দেখেন, আর স্ক্রিনে কিছুই কাজের না নিয়ে সেটি থেমে যায়। এটি ভাঙা ডিবাগ ফ্ল্যাগ নয়। একটি NetworkManager L2TP সংযোগ চারটি সহযোগী প্রক্রিয়া, আর তাদের মধ্যে কেবল কিছু প্রক্রিয়া আপনি যে টার্মিনাল দেখছেন সেখানে লেখে। বাকি প্রমাণ জার্নালে, এক ফিল্টার দূরে।
চারটি প্রক্রিয়া, লগের দুই গন্তব্য
সংযোগ শুরু হয় IPsec দিয়ে, যা ইনস্টলেশনের ওপর নির্ভর করে libreswan বা strongSwan। তারপর L2TP ডেমন, ঐতিহ্যগতভাবে xl2tpd আর কিছু বিল্ডে kl2tpd, টানেল চালায়। শেষে pppd তার ভেতরে প্রমাণীকরণ ও ঠিকানা দেওয়ার কাজ করে।
হেল্পার সার্ভিস ওই টুকরোগুলো সমন্বয় করে এবং নিজের অগ্রগতি ছাপে। IPsec ডেমন ও pppd সাধারণত সিস্টেম জার্নালে রিপোর্ট করে, তাই টার্মিনাল দেখায় সংযোগ ব্যর্থ হচ্ছে, অথচ কারণটি পড়ে আছে এমন ফাইলে যা আপনি খোলেননি।
এই বিভাজনটাই আরও ব্যাখ্যা করে কেন PSK ত্রুটি আর পাসওয়ার্ড ত্রুটি ডেস্কটপ থেকে একই রকম দেখায়: দুটোই একটি সাধারণ সংযোগবিচ্ছেদ তৈরি করে, আর কোন ধাপটি ব্যর্থ হয়েছে তা কেবল প্রতি-প্রক্রিয়ার আউটপুটে দেখা যায়। এখানে জার্নাল গুরুত্বপূর্ণ হওয়ার পুরো কারণ এটাই। ডেস্কটপে একটি সাধারণ বার্তা, তার পিছনে চারটি সম্ভাব্য লেখক।
একটি প্রচেষ্টা সংগ্রহ করুন, তারপর ক্রম পড়ুন
জানা প্রোফাইল ও জানা সময় নিয়ে একবার পুনরুৎপাদন করুন, তারপর পুরো বুটের বদলে একটি সংকীর্ণ উইন্ডো পড়ুন। সেটিংস বদলাতে বদলাতে প্রচেষ্টা পুনরাবৃত্তি করলে লগ এমন মিশ্রণে পরিণত হয় যা ব্যাখ্যা করা যায় না।
এই কমান্ডগুলো চলতি বুটের অংশগ্রহণকারী প্রক্রিয়াগুলো বেছে নেয়, আর আপনার ডিস্ট্রিবিউশনে প্লাগইনের পথ যাচাই করা উচিত:
journalctl -b --no-hostname _COMM=nm-l2tp-service _COMM=pluto _COMM=charon _COMM=xl2tpd _COMM=pppd
rpm -ql NetworkManager-l2tp 2>/dev/null | grep nm-l2tp-service
একটি ইনভোকেশনে পুনরাবৃত্ত ক্ষেত্র ওই প্রক্রিয়াগুলোর সমষ্টি বেছে নেয়, যা ক্রমটিকে সময়ানুক্রমে রাখে। Debian-ভিত্তিক সিস্টেমে সমতুল্য কোয়েরি হলো dpkg -L; মূল কথা হলো হাতে চালানোর আগে হেল্পারটি আসলে কোথায় থাকে তা খুঁজে বের করা।
পরবর্তী পদক্ষেপ ঠিক করে তিনটি শর্ত
প্রথম ব্যর্থ ধাপটি পড়ুন, তারপর সে অনুযায়ী বেছে নিন। IPsec যদি প্রস্তাব বা পিয়ার-প্রমাণীকরণ ব্যর্থতার রিপোর্ট দেয়, তবে টানেল কখনোই তৈরি হয়নি, আর PPP পাসওয়ার্ড বদলে কোনো লাভ নেই।
যদি টানেল তৈরি হয়ে থাকে আর pppd লগইন প্রত্যাখ্যান করে, তবে শেয়ার্ড সিক্রেট আগেই ঠিক ছিল এবং ক্রেডেনশিয়াল সমস্যা এক স্তর ওপরে। যদি pppd একটি ঠিকানা নিয়ে সমঝোতা করে আর ব্যর্থতা পরে দেখা দেয়, তবে দুটোই কাজ করছে এবং বাকি সমস্যা রাউটিং, DNS বা সার্ভারের নিজের নীতি।
এই তিনটি শাখা প্রায় সব সাধারণ সংযোগবিচ্ছেদ ঢেকে দেয়, আর সেগুলো ঠিক করে কোন প্রক্রিয়া শেষ ত্রুটি লগ করেছে, কোন ত্রুটি বার্তা বেশি উদ্বেগজনক দেখায় তা নয়।
ডিবাগ সেটিংয়ে হাত দেওয়ার আগে কোন IPsec ব্যাকএন্ড ইনস্টল আছে তা যাচাই করাও দরকার। strongSwan-এর জন্য লেখা লগিং অপশন libreswan চলার সময় কিছুই করে না, আর আপনি এমন ফাইল সম্পাদনা করতে করতে সংযোগ একই জায়গায় ব্যর্থ হতে থাকবে যা কেউ পড়ে না।
ডিবাগ মোড ফাইল রেখে যায়
আপস্ট্রিম ডিবাগিং ওয়ার্কফ্লো সার্ভিসটিকে ডিবাগ ফ্ল্যাগ দিয়ে হাতে চালায়, আর এই মোডটি সংযোগ শেষ হলে তৈরি রানটাইম কনফিগারেশন ফাইল জায়গায় রেখে যেতে পারে।
ওই ফাইলগুলোতে প্রমাণীকরণের উপাদান থাকে: প্রি-শেয়ার্ড কী, ক্রেডেনশিয়াল বা দুটোই। চ্যাট উইন্ডোতে কপি করা তৈরি কনফিগারেশন লগের নির্যাস নয়, ক্রেডেনশিয়াল প্রকাশ। কিছু শেয়ার করার আগে গোপন লাইনগুলো সরান, আর তদন্ত শেষ হলে ডিরেক্টরিটি মুছে ফেলুন। সেগুলোকে গোপন তথ্য হিসেবে দেখুন, রিপোর্টের জন্য দরকারি নির্দিষ্ট লাইন বের করুন, আর পরে সেগুলো মুছুন—টিকিটে পুরো ডিরেক্টরি পেস্ট করবেন না।
হাতের ইনস্ট্যান্সটিকেও স্বাভাবিক ইনস্ট্যান্সের সঙ্গে সমন্বয় করতে হবে। সার্ভিস যখন ইতিমধ্যেই প্লাগইনের মালিক, তখন ডিবাগ কপি চালু করলে দুই মালিক তৈরি হয় আর লগ দুটোকেই মেশায়, যা কোনো ডিবাগ আউটপুট না থাকার চেয়েও খারাপ।
পরে স্বাভাবিক হেল্পার ফিরিয়ে আনুন
তদন্ত শেষ হলে হাতের ইনস্ট্যান্স বন্ধ করুন, রেখে দেওয়া রানটাইম ফাইল সরান এবং স্বাভাবিক পথে আবার সংযোগ করুন, যাতে পরের ব্যক্তি বাস্তবতার সঙ্গে মেলা কনফিগারেশন দেখেন।
তারপর ফলাফল যাচাই করুন যে স্তরে ব্যর্থতা ঘটেছিল সেখানে, ডেস্কটপ আইকনে নয়:
journalctl -b -u NetworkManager --since -10min | tail -30
ip -4 addr show ppp0
ip -4 route get 10.20.4.10
একটি সেশন যা প্রমাণীকরণ করে, ঠিকানা পায় এবং নির্দিষ্ট গন্তব্যে রাউট করে—সেটাই সেই ফল যা আপনি ডিবাগ করছিলেন। ব্যর্থ প্রচেষ্টার সময় নীরব টার্মিনাল আপনাকে কেবল বলে আউটপুট কোথায় লেখা হয়নি।