লিক ছাড়াই রাউটারে VPN ফেইলওভার নীতি কীভাবে তৈরি করবেন
পছন্দের টানেল পড়ে গেলে ট্রাফিক কী করবে তা ঠিক করুন: ব্যাকআপ টানেল, সাধারণ WAN নাকি ব্লক। তারপর রাউটারে তা তৈরি করে পরীক্ষা করুন।
ফেইলওভার ঠিক যেমন কনফিগার করা ছিল তেমনই কাজ করেছিল, এবং সমস্যা ছিল ঠিক সেটাই। প্রাথমিক টানেল পড়ে গেলে রাউটার ডিফল্ট রুটটি কেবল মডেমে সরিয়ে নিল, ল্যাপটপগুলো ব্রাউজিং চালিয়ে গেল, এবং কেউ ফোন করল না। দুই দিন পর কেউ লক্ষ্য করল যে ফিন্যান্স শেয়ারটি ছয় ঘণ্টা ধরে খোলা ইন্টারনেট পথে পৌঁছানো যাচ্ছিল। রাউটারে VPN ফেইলওভার নীতি কোনো রাউটিং কৌশল নয়; এটি একটি সিদ্ধান্ত যে পছন্দের পথ চলে গেলে ট্রাফিক কী করবে, আর সেই সিদ্ধান্তটি পথ হারানোর আগেই থাকতে হবে।
ডিটেক্টর বেছে নেওয়ার আগেই ফলাফল ঠিক করুন
সাধারণত তিনটি ফলাফল বিবেচনায় থাকে: ক্ষতিগ্রস্ত ক্লায়েন্টদের ব্যাকআপ টানেল দিয়ে পাঠানো, তাদের সাধারণ WAN ব্যবহার করতে দেওয়া, বা তাদের সম্পূর্ণ ব্লক করা। কোনটি কোন VLAN, SSID বা ডিভাইস শ্রেণিতে প্রযোজ্য তা লিখে রাখুন। একটি একক সমতল “WAN-এ যান” নিয়মই হলো সেই কারণ যার ফলে উপরের ফিন্যান্স শেয়ারটি একটি পাবলিক পথে পড়েছিল।
এই তিনটি বিনিময়যোগ্য নয়। WAN ফলব্যাক সাপোর্ট ডেস্ককে ফোনে উত্তর দিতে রাখে, তবে স্থানীয় রিজলভারের কাছে অভ্যন্তরীণ নামগুলো প্রকাশ করে। ব্যাকআপ টানেল নীতিটি রক্ষা করে, কিন্তু এমন এক্সিট ঠিকানায় পড়তে পারে যা অপর প্রান্ত গ্রহণ করে না। ব্লক করা পে-রোল VLAN-এর জন্য সঠিক আর গেস্ট নেটওয়ার্কের জন্য ভুল, যে নেটওয়ার্ক কখনো টানেল ব্যবহার করেনি।
| ফলাফল | যাদের জন্য উপযুক্ত | কী ভাঙে |
|---|---|---|
| ব্যাকআপ টানেল | নীতি ধরে রাখতে হবে, দূরবর্তী অ্যাক্সেস দরকার | নতুন এক্সিট ঠিকানা, রিটার্ন রুট, ধীর কী পুনর্নবীকরণ |
| সাধারণ WAN | গেস্ট বা শুধু পাবলিক ট্রাফিক | অভ্যন্তরীণ নাম, DNS ও IPv6 প্রকাশ |
| ব্লক | পে-রোল, অ্যাডমিন, শুধু-VPN সবকিছু | ব্যবহারকারীরা সব অ্যাক্সেস হারায় এবং আপনাকে ফোন করে |
আপনি যে ব্যর্থতার সত্যিই ভয় পান তার সঙ্গে ডিটেক্টর মেলান
হ্যান্ডশেক অবস্থা, ইন্টারফেস অবস্থা এবং ব্যবহারযোগ্য ফরওয়ার্ডিং তিনটি আলাদা সংকেত, এবং ব্যবহারকারীর কাছে কেবল শেষটিই গুরুত্বপূর্ণ। WireGuard পিয়ার সাম্প্রতিক হ্যান্ডশেক দেখাতে পারে, অথচ প্রোভাইডারের আপস্ট্রিম প্যাকেট কালোবিলে ফেলছে। OpenVPN ক্লায়েন্ট “সংযুক্ত” অবস্থায় বসে থাকতে পারে, যদিও সে যে রুটটি ঠেলে দিয়েছিল তা আর রিজলভ হচ্ছে না।
pfSense-এ ব্যবহারিক ব্যবস্থা হলো dpinger দ্বারা চালিত একটি গেটওয়ে গ্রুপ, যা একটি মনিটর ঠিকানা পরীক্ষা করে এবং লস বা লেটেন্সি তার থ্রেশহোল্ড ছাড়ালে গেটওয়েকে ডাউন বলে চিহ্নিত করে। সেই মনিটরকে টানেলের বাইরের কিছুতে নির্দেশ করুন, যেমন দূরের LAN-এর একটি হোস্ট বা এমন একটি পাবলিক ঠিকানা যা আপনি তার মধ্য দিয়ে পৌঁছান। এটি টানেলের নিজের পিয়ার ঠিকানায় তাক করলে আপনি যে অংশটি ইতিমধ্যে জীবিত বলে জানেন সেটাই মাপা হয়।
গ্রুপটি এমনভাবে তৈরি করুন যাতে ব্যাকআপ শেষ উপায় থাকে
একটি সমতল সদস্য তালিকার বদলে স্তর ব্যবহার করুন। প্রাথমিক স্তর 1-এ, ব্যাকআপ টানেল স্তর 2-এ, WAN স্তর 3-এ কেবল সেই VLAN-গুলোর জন্য যাদের নীতি তা অনুমোদন করে। pfSense-এ এটি System > Routing > Gateway Groups-এর অধীনে থাকে: দুটি গেটওয়েই যোগ করুন, তাদের আলাদা স্তর দিন, Trigger Level কে member down plus packet loss-এ সেট করুন, সংরক্ষণ করুন, তারপর গ্রুপটি ইন্টারফেস ডিফল্ট হিসেবে বা যেসব ফায়ারওয়াল নিয়মের প্রয়োজন সেগুলোর Gateway ফিল্ডে প্রয়োগ করুন।
pfSense 2.5 এবং পরের সংস্করণে OpenVPN ক্লায়েন্ট ইনস্ট্যান্সের জন্য ইনস্ট্যান্সের Default Gateway সেটিং নির্ধারণ করে টানেল আদৌ সিস্টেমের ডিফল্ট রুট প্রতিস্থাপন করবে কি না। নিয়ম অনুযায়ী নীতি রাউটিং ঠিক তখনই প্রত্যাশামতো আচরণ করে যখন আপনি যে রুট ধরে নিচ্ছেন তা সত্যিই ইনস্টল করা থাকে। এরপর Status > Gateways পরীক্ষা করুন, টানেল স্ট্যাটাস আইকনে ভরসা না করে।
বেশিরভাগ ফ্ল্যাপিংয়ের জন্য দুটি সেটিং দায়ী। একটি হলো প্রোভাইডারের নিজের রিকনভার্জেন্সের চেয়ে ছোট প্রোব ইন্টারভাল। অন্যটি হলো এমন গ্রুপ যেখানে প্রাথমিক ও ব্যাকআপ একই স্তর ভাগ করে, তাই দুটোই সব সময় যোগ্য থাকে। ব্যবহারকারীরা আপনার হয়ে পরিবর্তনগুলো অনুভব করার আগেই লস ও লেটেন্সি থ্রেশহোল্ডের মাধ্যমে হিস্টেরেসিস যোগ করুন।
টানেল যে পথগুলো কখনো নিজের করেনি সেগুলো বন্ধ করুন
প্রথমে DNS লিক। রিজলভার WAN-এ উত্তর দিতে থাকে এবং সেখান দিয়েই ফরওয়ার্ড করে, তাই ট্রাফিক টানেলে আটকে থাকলেও নামগুলো ISP-এর মাধ্যমে রিজলভ হতে থাকে। রিজলভারের আউটবাউন্ড ইন্টারফেস সীমিত করুন, অভ্যন্তরীণ রিজলভার ক্লায়েন্টদের দিকে ঠেলে দিন, এবং শুধু-VPN VLAN-গুলোতে বাকি সবকিছুর জন্য পোর্ট 53 ব্লক করুন।
IPv6-এর নিজস্ব সিদ্ধান্ত দরকার। একটি ডুয়াল-স্ট্যাক LAN টানেল হারিয়েও কাজ করা গ্লোবাল IPv6 ডিফল্ট রুট ধরে রাখতে পারে, তাই ব্রাউজার IPv6 পছন্দ করে WAN দিয়ে বেরিয়ে যায়, অথচ IPv4 পুরোপুরি আটকে থাকা দেখায়। হয় IPv6-কে টানেলে রুট করুন, নয়তো টানেল ডাউন থাকা অবস্থায় গ্লোবাল প্রিফিক্স বিজ্ঞাপন দেওয়া বন্ধ করুন। অর্ধেক নীতি না থাকার চেয়েও খারাপ, কারণ এটি কাজ করছে বলে মনে হয়।
তারপর রিটার্ন পথ। ব্যাকআপ এক্সিট ভিন্ন সোর্স ঠিকানা ব্যবহার করলে অপর প্রান্তকে জানতে হবে কীভাবে সেখানে ট্রাফিক ফেরত পাঠাবে, আর পুরোনো ঠিকানার সঙ্গে বাঁধা প্রতিটি স্টেট ইতিমধ্যে মৃত। প্রাথমিক পড়ে যাওয়ার সময় খোলা সেশনগুলো মাইগ্রেট করে না; তারা সময় শেষ হওয়া পর্যন্ত থেমে থাকে এবং অ্যাপ্লিকেশন সিদ্ধান্ত নেয় কী করবে।
পতন, ফ্ল্যাপ এবং ফিরে আসার পথ পরীক্ষা করুন
ক্ষতিহীন ট্রাফিক চালু রেখে প্রাথমিকটি টেনে বের করুন, তারপর চারটি জিনিস পড়ুন: Status > Gateways গ্রুপের সদস্য অবস্থার জন্য, pfctl -ss পুরোনো গেটওয়েতে এখনো আটকে থাকা স্টেটের জন্য, ক্লায়েন্ট থেকে এক্সিট পথের traceroute, এবং কোন সার্ভার উত্তর দিল তা দেখতে একটি রিজলভার কোয়েরি।
এখন এটি ফ্ল্যাপ করুন। প্রাথমিকটি ত্রিশ সেকেন্ড উপরে তুলুন, ত্রিশ সেকেন্ড নামান, দুবার। ট্রাফিক যদি প্রতিটি পরিবর্তন অনুসরণ করে, থ্রেশহোল্ড খুব কড়া বা স্তরগুলো ভুল। নিজের সময়সূচিতে এটি ঠিক করুন, নইলে প্রোভাইডার নিজের সময়সূচিতে এটি করবে।
শেষে নিশ্চিত করুন যে আপনি এখনো রাউটার পরিচালনা করতে পারেন। কনসোল কেবল, ম্যানেজমেন্ট VLAN বা সেলুলার মডেমের মতো একটি আউট-অব-ব্যান্ড পথ রাখুন। যে ফেইলওভার পরীক্ষা আপনাকে লক আউট করে সেটি এমন পরীক্ষা যা আপনি শেষ করতে পারবেন না, আর অগম্য রাউটার নিজে থেকে ফিরে আসতে পারে না।
নীতিটি সম্পন্ন বলার আগে টার্মিনাল না খুলেই চারটি প্রশ্নের উত্তর দিতে সক্ষম হওয়া উচিত: টানেল ডাউন থাকা অবস্থায় কোন VLAN-গুলো WAN ব্যবহার করতে পারে, ডিটেক্টর কী দেখে এবং কতক্ষণ অপেক্ষা করে, কোন নেম সার্ভার ও IPv6 রুট পথের সঙ্গে সরে, এবং ব্যাকআপও ব্যর্থ হলে আপনি কীভাবে ফিরে আসবেন। যদি কোনো উত্তর “ডিফল্ট যা ছিল তাই” হয়, তবে নীতিটি এখনো আপনার নয়, রাউটারের।