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

কোন ফিল্টার LAN-এর দিকে যাওয়া প্যাকেট দেখে

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

OpenWrt এই বিভাজনকে পরিদর্শনযোগ্য করে, আর পার্থক্যটি একবার পড়া উচিত। যে জোন টানেল শেষ করে তার LAN জোনের দিকে ফরওয়ার্ড নিয়ম দরকার, অন্যদিকে ইনপুট নিয়ম কেবল রাউটারের নিজের সেবাগুলো নিয়ন্ত্রণ করে। কাজ করা প্রশাসন পাতা আর মৃত LAN পাশাপাশি থাকা ওই অনুপস্থিত ফরওয়ার্ড নিয়মের স্বাভাবিক ফল।

uci show firewall | grep -E "zone\[[0-9]+\]\.(name|input|forward|output)"

টানেল বহনকারী জোনের ফরওয়ার্ড লক্ষ্য দেখুন: accept-ই সিঁড়ির প্রয়োজন, আর reject নিচের প্রতিটি সময়-শেষ ব্যাখ্যা করে। দুটি পাশাপাশি সেটিং একই উপসর্গ তৈরি করে, তাই এখানে থাকতে সেগুলো বাদ দিন। ওয়্যারলেস আইসোলেশন ওয়্যারড হোস্টদের ওয়্যারলেস ক্লায়েন্ট থেকে লুকায়, আর নিষ্ক্রিয় LAN হোস্টকে অফলাইন ধরা রাউটার ফরওয়ার্ডিং কাজ করার পরেও উত্তর ফেলে দিতে পারে।

কেন স্প্লিট টানেলে প্রিফিক্স পুশ করা দরকার

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

push "route 192.168.50.0 255.255.255.0"

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

ip route show | grep 192.168.50

সাইট-থেকে-সাইট পার্টনার পুশের চেয়ে বেশি কিছু চায়। কোন প্রিফিক্সগুলো ওই পার্টনারের পেছনে আছে তা সার্ভারকে জানতে হয়, যা তার client-config-dir ফাইলের iroute লাইনটি করে, আর সার্ভারের নিজের টেবিলেও টানেলে ঢোকার মিলিত রুট দরকার।

উত্তরের এমন ঠিকানা দরকার যেখানে পৌঁছানো যায়

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

tcpdump -ni tun0 host 192.168.50.20

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

সঠিক জায়গায় শেষ হওয়া একটি সিঁড়ি

চারটি পরীক্ষা স্তরটি খুঁজে দেয়, আর প্রতিটি একটি একক কমান্ড, কোনো বিচার নয়। এগুলো ক্রমে চালান এবং প্রথম ব্যর্থতায় থামুন। ক্রমটি কমান্ডের চেয়েও গুরুত্বপূর্ণ, কারণ পরের ধাপ পাস হলে আগেরটি কেন ব্যর্থ হয়েছিল তা ঢাকা পড়ে।

ping -c1 10.8.0.1
ping -c1 192.168.50.20
nc -vz 192.168.50.20 445
getent hosts nas.local

নাম সিঁড়ির শেষে, কখনও শুরুতে নয়। যে শেয়ারটি 192.168.50.20 হিসেবে উত্তর দেয় কিন্তু nas.local হিসেবে দেয় না, তা নেম রেজল্যুশন বা সার্চ সাফিক্সের দিকে ইশারা করে, আর ফায়ারওয়াল সম্পাদনা এর কোনোটিই বদলাতে পারে না।

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

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