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

দুটি কথোপকথনের নাম দিন

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

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

আপনার নীতি আসলে কোথায় প্যাকেট দেখতে পারে তা খুঁজুন

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

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

আপনি যে পরিবহনে সম্মত হয়েছেন তা নিশ্চিত করুন

UDP-এনক্যাপসুলেটেড IPsec-এ RFC 3948 ESP-কে UDP-এর ভেতরে রাখে এবং শেয়ার করা পোর্টে IKE-কে পৃথকযোগ্য রাখতে নন-ESP মার্কার ব্যবহার করে। সাধারণ ESP একটি IP প্রোটোকল, TCP বা UDP পোর্ট নয়, তাই পোর্ট নম্বর ধরে লেখা ফায়ারওয়াল নিয়ম এর সাথে আদৌ মিলবে না। এই পার্থক্যই ঠিক করে আপনার WAN নীতির UDP নিয়ম, প্রোটোকল নিয়ম, নাকি দুটোই দরকার।

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

প্রতিশ্রুত হওয়ার আগে ফেরার পথ পরীক্ষা করুন

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

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

দুটি ক্যাপচার দিয়ে দুই স্তরই যাচাই করুন

WAN ইন্টারফেসে একটি ক্যাপচার এবং টানেলের ভেতরে একটি ক্যাপচার যেকোনো কনফিগারেশন তুলনার চেয়ে দ্রুত প্রশ্নটির মীমাংসা করে। অনুমোদিত ক্লায়েন্ট একটি অনুরোধ করার সময় গেটওয়ে থেকে সেগুলো চালান, এবং দুটি ফাইলই রাখুন।

sudo tcpdump -ni wan1 'udp port 4500' -c 20
sudo tcpdump -ni tun0 'tcp port 443 and host 203.0.113.10' -c 20
ip route get 203.0.113.10 from 10.8.0.6

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

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