Windows VPN সংযোগ হচ্ছে না? কোডটি ইভেন্ট লগের সঙ্গে মিলিয়ে দেখুন
Windows VPN ডায়ালগ ব্যর্থ হওয়া ধাপটি লুকিয়ে রাখে। ফলাফল কোডটি পড়ুন, সেই প্রচেষ্টার RasClient ইভেন্টটি বের করুন, এবং কেবল যে স্তরটি ভেঙেছে সেটিই বদলান।
শুক্রবার এটি কাজ করছিল। সোমবার একই Windows ক্লায়েন্ট একটি ডায়ালগ দিয়ে উত্তর দেয় যে সংযোগের প্রচেষ্টা ব্যর্থ হয়েছে, আর তার নিচের বাক্যটি এমন একটি বাক্য যা আপনি ডজনখানেক অসম্পৃক্ত সমস্যার জন্য আগেই দেখেছেন। ওই ডায়ালগ একটি শৃঙ্খলের শেষ, শুরু নয়। Windows লুকিয়ে রাখে প্রচেষ্টাটি আসলে কোন ধাপে মারা গেছে, আর দুটি ছোট প্রমাণ সেটির নাম বলে দেয়: সংখ্যাসূচক ফলাফল কোড এবং সেই একই মিনিটের একটি RasClient ইভেন্ট। আমি যে ক্রমটি ব্যবহার করি তা এই — প্রচেষ্টাটি পিন করুন, কোডটি পড়ুন, ইভেন্টটি বের করুন, তারপর ঠিক একটি স্তর বদলান।
ডায়ালগের লেখাটি শেষ ধাপ, কারণ নয়
আপনি যে বাক্যটি পড়ছেন তা বেছে নেওয়া হয় প্রচেষ্টাটি ইতিমধ্যে গুটিয়ে যাওয়ার পরে। "সংযোগ স্থাপনের আগেই দূরবর্তী কম্পিউটার সংযোগটি বন্ধ করে দিয়েছে" তখন দেখা যায় যখন কোনো সার্ভার দরকষাকষির মাঝপথে ফোন কেটে দেয়, যখন আপনার ব্যবহারকারীর নাম পাঠানোর আগেই IPsec ব্যর্থ হয়, এবং যখন কোনো নীতি টানেলটি সরাসরি প্রত্যাখ্যান করে। তিনটি আলাদা মালিক, একটি বাক্য। শব্দচয়নকে একটি উপসর্গ-শ্রেণি হিসেবে ধরুন এবং কোডটি একমত না হওয়া পর্যন্ত এটিকে কিছুই পরিচালনা করতে দেবেন না।
আপনি এখনও যা পিন করতে পারেন তা হল প্রচেষ্টাটি নিজেই। সংযোগের নাম, প্রোফাইলে সংরক্ষিত টানেলের ধরন — PPTP, L2TP/IPsec, SSTP বা IKEv2 — সেকেন্ড পর্যন্ত সময়, এবং কোডটি লিখে রাখুন। কোন প্রোটোকলটি আসলে চলেছিল তা নিয়ে নিশ্চিত না হলে স্মৃতির উপর ভরসা না করে %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk খুলে এন্ট্রিটি পড়ুন; নতুন প্রোটোকলের জন্য পুনরায় ব্যবহৃত প্রোফাইল তার পুরোনো প্রদর্শিত নামটি ধরে রাখে।
শব্দ পড়ার আগে সংখ্যাটি পড়ুন
কোডগুলি তিনটি ধাপে পড়ে, এবং ধাপটি সঠিক শব্দচয়নের চেয়ে বেশি গুরুত্বপূর্ণ: একটি প্রমাণীকরণ বিনিময় যা পর্যন্ত পৌঁছানো গিয়েছিল এবং প্রত্যাখ্যাত হয়েছে, একটি সার্ভার যা কখনও উত্তর দেয়নি, অথবা একটি দরকষাকষি যা লিংক ওঠার পরে ভেঙে পড়েছে। 691 প্রথম ধরনের — শংসাপত্র যাচাই চলেছিল এবং ব্যর্থ হয়েছে, তা খারাপ পাসওয়ার্ড, লক করা বা মেয়াদোত্তীর্ণ অ্যাকাউন্ট, অথবা সার্ভার যে প্রমাণীকরণ প্রোটোকল গ্রহণ করে না তার কারণে হোক। 812 ও একটি প্রত্যাখ্যান, তবে বৈধ শংসাপত্র নিয়ে: দূরবর্তী অ্যাক্সেস সার্ভারের একটি নীতি আপনার বিরুদ্ধে সিদ্ধান্ত নিয়েছে। Microsoft প্রামাণিক ডায়াল-আপ ও VPN ত্রুটি কোডের তালিকা রাখে, এবং বার্তার পাঠ্য খোঁজার আগে সেখানে আপনার নম্বরটি পড়া সার্থক।
809 বিপরীত শ্রেণি: কিছুই ফেরেনি। এটি একটি পথের সমস্যা — SSTP-এর জন্য TCP 443 ফিল্টার করা, PPTP-এর জন্য GRE ব্লক করা, IPsec পাস-থ্রুর জন্য UDP 500 ও 4500 বা ESP ফেলে দেওয়া। নতুন পাসওয়ার্ড এটি ঠিক করতে পারে না, নতুন সার্টিফিকেটও না। 720 মানে লিংক উঠেছে এবং PPP কখনও দরকষাকষি শেষ করেনি, যা একটি প্রোটোকল অমিল বা ঠিকানা বরাদ্দ করতে না পারা সার্ভারের দিকে ইঙ্গিত করে। 789, বা IKEv2-তে 13801, হল IPsec-এর ভেতরের পরিচয়: এমন সার্টিফিকেট যার সাবজেক্ট আপনি যে নামে ডায়াল করেন তার সঙ্গে মেলে না, অবিশ্বস্ত চেইন, অথবা দুই প্রান্তের মধ্যে ভিন্ন প্রি-শেয়ার্ড কী।
সেই একই মিনিটের RasClient ইভেন্টটি বের করুন
Event Viewer-এ Windows Logs > Application, উৎস RasClient-এ ফিল্টার করা, প্রথম যে জায়গায় দেখবেন। 720 ত্রুটি নিয়ে Microsoft-এর লেখাটি ওই লগের 20227 ইভেন্টের দিকে ইশারা করে। একই প্রদানকারী অন্য ফলাফলের জন্য অন্য শনাক্তকারী দেয়, তাই ID-কে রোগনির্ণয় ভাবা না করে বার্তাটি এবং তার ভেতরের ফলাফল কোডটি পড়ুন; একটি সাধারণ ডায়ালগ আর 720 বহনকারী একটি 20227 ইতিমধ্যেই অনেক সংকীর্ণ গল্প।
PowerShell থেকে, GUI-তে ক্লিক না করে:
Get-WinEvent -FilterHashtable @{
LogName = 'Application'
ProviderName = 'RasClient'
StartTime = (Get-Date).AddMinutes(-15)
} | Format-List TimeCreated, Id, Message
খালি ফলাফল তথ্যপূর্ণ। এর অর্থ সাধারণত ডায়ালটি RAS-এর কিছু লগ করার মতো যথেষ্ট দূর এগোয়নি, অথবা যে সফটওয়্যারটি ব্যর্থ হয়েছে সেটি আদৌ নেটিভ ক্লায়েন্ট নয় — তৃতীয় পক্ষের ক্লায়েন্টরা নিজেদের ডায়াগনস্টিক রাখে এবং প্রায়ই Application লগে কিছু লেখে না। ইভেন্ট লগিং ভাঙা বলে সিদ্ধান্তে আসার আগে বিক্রেতার লগটি দেখুন।
ইভেন্টের স্তূপের বদলে একটি টাইমলাইন তৈরি করুন
পুনরায় চেষ্টার লুপ শব্দ তৈরি করে। পাঁচটি স্বয়ংক্রিয় পুনঃসংযোগ একগুচ্ছ ইভেন্ট রেখে যায়, এবং প্রলোভন হল সেগুলিকে একক কারণযুক্ত একটি ক্রম হিসেবে পড়া। সেগুলি পাঁচটি আলাদা প্রচেষ্টা, এবং তাদের মধ্যে কেবল কয়েকটি সার্ভারে পৌঁছেছে। দুই-তিন মিনিটের একটি জানালা, একটি সংযোগের নাম নিন, এবং কিছু ব্যাখ্যা করার আগে প্রতিটি ইভেন্ট তার নিজস্ব কোডসহ তালিকাভুক্ত করুন।
তারপর জিজ্ঞাসা করুন প্রচেষ্টাটি কোথায় থেমেছে। যখন গেটওয়ে বা প্রমাণীকরণ ব্যাকএন্ড ওই টাইমস্ট্যাম্পের কোনো রেকর্ড রাখে না, তখন ক্লায়েন্ট কখনও সেখানে পৌঁছায়নি, এবং আপনি একটি পৌঁছানোর সমস্যা দেখছেন। যখন ব্যাকএন্ড একটি অনুরোধ ও একটি প্রত্যাখ্যান দেখায়, সিদ্ধান্তটি সেখানেই নেওয়া হয়েছে, এবং শংসাপত্র বা নীতির শ্রেণি প্রযোজ্য। সময় তুলনা করার আগে ঘড়ি তুলনা করুন: ক্লায়েন্টরা স্থানীয় সময় জানায়, অনেক গেটওয়ে UTC লগ করে, আর একটি ব্যবধান নিখুঁতভাবে সম্পর্কিত জোড়াকে সম্পর্কহীন দেখাবে।
পুনরাবৃত্তিযোগ্য ক্যাপচারের জন্য কমান্ড লাইন থেকে ডায়াল করুন এবং ফলাফলটি ছাপতে দিন:
rasdial "Office VPN"
rasdial "Office VPN" /disconnect
কনসোলটি সেই সংখ্যাটি দেখায় যা GUI বন্ধুত্বপূর্ণ লেখার পিছনে লুকায়, আর দুবার চালালে বোঝা যায় কোডটি স্থিতিশীল না মাঝে মাঝে আসা।
প্রতিটি ধাপ আপনাকে কী বদলাতে বলে
ধাপটির নাম দেওয়া কেবল তখনই কাজে লাগে যখন তা পরিবর্তনের সেটকে এক স্তরে নামিয়ে আনে:
691— প্রমাণীকরণ: ক্লায়েন্ট যে EAP পদ্ধতি দেয় তার বিপরীতে সার্ভার যে পদ্ধতি গ্রহণ করে, অ্যাকাউন্টের অবস্থা, পাসওয়ার্ডের মেয়াদ, ডায়াল-ইন অনুমতি।812— সার্ভার নীতি: এই ব্যবহারকারী ও এই সময়-জানালার সঙ্গে মেলা দূরবর্তী অ্যাক্সেস নীতি বা NPS নিয়ম।809— পৌঁছানো: পথের ফায়ারওয়াল নিয়ম, NAT ও প্রোটোকল পাস-থ্রু, নির্বাচিত টানেল ধরনের প্রয়োজনীয় পোর্ট।720— PPP দরকষাকষি: প্রমাণীকরণ প্রোটোকল অমিল, ঠিকানা বরাদ্দ, সার্ভার-পক্ষের PPP সেটিং।789/13801— IPsec পরিচয়: আপনি যে নামে ডায়াল করেন তার বিপরীতে সার্টিফিকেট সাবজেক্ট, বিশ্বাসের চেইন, প্রি-শেয়ার্ড কী।
এর মধ্যে একটি বদলান, একই প্রোফাইল আবার পরীক্ষা করুন, এবং নতুন কোডটি লিখে রাখুন। পরিবর্তনের পরে ভিন্ন কোড অগ্রগতি, বিরোধ নয়: আপনি ব্যর্থতাটি পরবর্তী ধাপে সরিয়েছেন, আর বহু-ধাপের হ্যান্ডশেক ঠিক করার চেহারা এমনই। যা করা উচিত নয় তা হল এক বসায় ফায়ারওয়াল, সার্টিফিকেট ও পাসওয়ার্ড বদলে শেষে যেটি সবার পরে এসেছে সেটিকেই কৃতিত্ব দেওয়া।
প্রমাণ ভাগ করুন, পরিবেশ নয়
ইভেন্ট বার্তাগুলি দেখতে যতটা মনে হয় তার চেয়ে সমৃদ্ধ। তারা সংযোগের নাম, অ্যাকাউন্ট, প্রায়ই গেটওয়ের অভ্যন্তরীণ নাম বা ঠিকানা, এবং মাঝে মাঝে একটি সার্টিফিকেট থাম্বপ্রিন্ট বহন করে। মূলটি যেখানে থাকা উচিত সেখানে রাখুন, এবং অন্য কারও জন্য আলাদা সম্পাদিত একটি অনুলিপি তৈরি করুন; স্মৃতি থেকে টাইমলাইন আবার টাইপ করলে ঠিক সেই বিবরণগুলি হারায় যা এটিকে কাজে লাগায়।
যে হস্তান্তর কাজে লাগে তার পাঁচটি ক্ষেত্র দরকার: কোড, এটি যে ধাপের, ক্লায়েন্ট ও টানেলের ধরন, টাইমজোনসহ টাইমস্ট্যাম্প, এবং গেটওয়ে অনুরোধটি আদৌ দেখেছিল কি না। বাকি সব ঐচ্ছিক। ওই পাঁচটি দিয়ে পরের ব্যক্তি তদন্ত পুনরাবৃত্তি না করেই শংসাপত্রের তর্ক ও রাউটিংয়ের তর্ক আলাদা করতে পারেন।
কিছু বন্ধ করার আগে একই প্রোফাইলে প্রচেষ্টাটি আবার চালান এবং কোডটি এখন কোথায় পড়ে তা নিশ্চিত করুন। সফলতা এটির সমাপ্তি; ভিন্ন ব্যর্থতা মানে মূল ধাপটি ঠিক হয়েছে এবং পরেরটি আপনার হাতে।