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

ধাপ 1: সার্ভার ও ট্রান্সপোর্ট নিশ্চিত করুন

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

পুরোনো DNS রেকর্ড ক্লায়েন্টকে এমন হোস্টে পাঠায় যে কখনো উত্তর দেয়নি। এটিও ফিল্টার অনুকরণকারী আরেকটি ত্রুটি, এবং এটি বাদ দিতে একটিমাত্র কোয়েরি লাগে।

দুটো মানই টিকিটে লিখুন। পরের প্রতিটি তুলনা এগুলো ব্যবহার করে, আর এগুলো ছাড়া টিকিট তদন্ত আবার শুরু করে দেয়।

ধাপ 2: একটি নিয়ন্ত্রিত তুলনায় পথ প্রমাণ করুন

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

প্রথমে বৈধ নেটওয়ার্ক সাইন-ইন শেষ করুন, কারণ ক্যাপটিভ পোর্টাল শেষ না হওয়া পর্যন্ত ব্লকের মতো দেখায়।

আপনি আসলে যে পোর্ট ব্যবহার করেন সেটিই পরীক্ষা করুন, এবং TCP ফলাফলকে কেবল TCP সম্পর্কিত তথ্য হিসেবে ধরুন।

Resolve-DnsName vpn.corp.example
tracert -h 8 -w 500 vpn.corp.example
Test-NetConnection vpn.corp.example -Port 443 -InformationLevel Detailed

443 পোর্টে সফল TCP হ্যান্ডশেক বলে সেখানে একটি শ্রোতা উত্তর দিয়েছে। এটি 51820-এ UDP শ্রোতা সম্পর্কে কিছু বলে না, আর আলোচনা সম্পূর্ণ হয়েছে কি না তাও বলে না।

ধাপ 3: ব্যর্থতার মুহূর্তের নিরাপত্তা ইভেন্ট পড়ুন

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

প্রোফাইল অবস্থা ও সাম্প্রতিক ইভেন্ট ব্যর্থ হওয়া মেশিন থেকেই সংগ্রহ করুন, পাশের হোস্ট থেকে নয়।

ইভেন্টের সময় আপনার পরীক্ষার সময়ের সঙ্গে মিলিয়ে পড়ুন, কারণ ভিন্ন টাইমস্ট্যাম্পে একই নিয়মের নাম কাকতালীয়।

Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, LogBlocked
Get-NetFirewallRule -Enabled True -Direction Outbound | Where-Object DisplayName -match 'VPN'
Get-WinEvent -LogName 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall' -MaxEvents 20

আপনি যে সার্ভার পরিচালনা করেন, সেখানে জিজ্ঞাসা করুন অনুরোধটি আদৌ শ্রোতার কাছে পৌঁছেছে কি না। উত্তরহীন আসা প্যাকেট ফরওয়ার্ডিং বা ফেরত রুটের সমস্যা। যে অনুরোধ কখনো দেখা যায় না, তা ফিল্টারিং বা অ্যাড্রেসিংয়ের সমস্যা।

ধাপ 4: টানেল ওঠার পর ফরওয়ার্ডিং পরীক্ষা করুন

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

একটি ক্লায়েন্ট সংযুক্ত থাকা অবস্থায় এবং ব্যর্থ অনুরোধটি করার সময় সার্ভারে নিচের তিনটি যাচাই চালান।

টানেল ইন্টারফেসের কাউন্টারগুলোই মূল বিষয়, কারণ তারা দেখায় প্যাকেট ঢুকেছে কি না এবং কিছু বেরিয়েছে কি না।

sysctl net.ipv4.ip_forward
nft list ruleset | grep -n -E 'forward|masquerade'
tcpdump -ni tun0 -c 10

টানেলে প্যাকেট এলে কিন্তু গন্তব্যের দিকে কিছু না গেলে সন্দেহভাজন ফরওয়ার্ডিং বা NAT। কিছুই না এলে সেশন উঠেছে কিন্তু ক্লায়েন্ট পাঠাচ্ছে না, এবং দেখার জায়গা হলো ক্লায়েন্টের রুট টেবিল।

সমাধান যাচাই করুন এবং যা সাহায্য করেনি তা সরিয়ে ফেলুন

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

একই তিনটি কমান্ড আবার চালান এবং পরিবর্তনের আগে সংরক্ষিত আউটপুটের সঙ্গে মিলিয়ে দেখুন।

Test-NetConnection vpn.corp.example -Port 443 -InformationLevel Detailed
tracert -h 8 -w 500 vpn.corp.example
Get-NetFirewallRule -Enabled True | Where-Object DisplayName -match 'VPN' | Select-Object DisplayName, Action

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

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