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

নিয়মে থাকা হোস্টনেম কোনো জীবন্ত সাবস্ক্রিপশন নয়

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

সঠিক হোস্টের নাম বলা নিয়মও ভুল ঠিকানা অনুমোদন করতে পারে। এই ফাঁকটাই কল্পকাহিনি, বানান ভুল নয়।

ক্যাশে TTL আপনার ফায়ারওয়ালের টাইমার নয়

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

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

dig +short vpn.example.com
resolvectl query vpn.example.com

রিফ্রেশ ও ব্যর্থতাকে এক নীতি হিসেবে ডিজাইন করুন

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

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

বুটস্ট্র্যাপ DNS-ও সংকীর্ণ রাখুন। শর্তহীন পাবলিক-রিজলভার ব্যতিক্রম যেসবের সাথে মেলে সবকিছুর জন্য সরাসরি DNS পথ, কেবল এন্ডপয়েন্টের নামের জন্য নয়।

এন্ডপয়েন্ট পরিবর্তন প্রমাণ করুন, প্রথম সংযোগ নয়

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

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

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