আপনার হোম VPN-কে nas.home.arpa-র জন্য নিজস্ব DNS রেকর্ড দিন
dnsmasq থেকে একটি নাম প্রকাশ করুন, রেজলভারকে WireGuard দিয়ে রুট করুন, তারপর পুরো ক্লায়েন্টে DNS পুশ করা আর শুধু home.arpa-র জন্য split-DNS-এর মধ্যে বেছে নিন।
টানেল চালু হওয়ার পর শেষ ধাপ সাধারণত একটি নাম, যা বুকমার্কে পেস্ট করা ঠিকানার বদলে কাজ করে। dnsmasq হোস্ট রেকর্ড আর ক্লায়েন্ট যে রেজলভারে পৌঁছাতে পারে এমন একটি রেজলভার ঠিকানা দুটি ফাইল আর কোনো multicast ছাড়াই এটা করে। যে সিদ্ধান্তটি সত্যিই ভাবনা দাবি করে তা আরও সংকীর্ণ: ক্লায়েন্ট কি সব DNS হোম রেজলভার দিয়ে পাঠায়, নাকি শুধু home.arpa-এর অধীনের নামগুলো? নিচের সবকিছু একটি অনুমোদিত WireGuard সেটআপ ধরে নেয়, যেখানে Linux ক্লায়েন্ট আর হোম অ্যাডমিনিস্ট্রেটরের ইতিমধ্যে পরিচালিত একটি ল্যাব রেজলভার আছে।
ক্লায়েন্টকে রেজলভার দেওয়ার তিনটি উপায়
| Approach | Scope | Cost |
|---|---|---|
DNS = in the wg-quick interface | the client's general DNS while the tunnel is up | every name in the house now depends on the tunnel |
Platform split-DNS for home.arpa | only that suffix | more configuration per client platform |
Manual dig @resolver | one query at a time | fine for testing, useless for applications |
যে ল্যাপটপ মাঝে মাঝে টানেলে যোগ দেয়, তার জন্য split-DNS-ই ভালো ডিফল্ট: এটি সাধারণ ইন্টারনেট নামগুলো মেশিনের ইতিমধ্যে বিশ্বস্ত রেজলভারেই রাখে। যে মেশিন হোম সেবা পৌঁছানোর জন্যই আছে, তার জন্য রেজলভার পুশ করা সহজতর এবং পরিধির খরচ গুরুত্বপূর্ণ নয়।
যে রেজলভার জোনটির মালিক, সেখানেই রেকর্ডটি প্রকাশ করুন
কনফিগারেশন লেখার আগে ভূমিকাগুলো আলাদা রাখুন: VPN ক্লায়েন্ট ঠিকানা, রেজলভার আর সেবা হলো তিনটি ভিন্ন কাজের তিনটি ভিন্ন হোস্ট। এই ল্যাবে সেগুলো ক্লায়েন্টের জন্য 10.77.0.2, dnsmasq-এর জন্য 192.168.50.53 এবং NAS-এর জন্য 192.168.50.20, আর টানেল হোম LAN রুট করে।
listen-address=127.0.0.1,192.168.50.53
bind-interfaces
local=/home.arpa/
host-record=nas.home.arpa,192.168.50.20
host-record লাইনটি ঠিকানা দেয়, আর local= লাইনটি অজানা home.arpa প্রশ্নগুলো আপস্ট্রিমে পাঠানোর বদলে এই রেজলভারের ভেতরেই রাখে। আগে আপনার বর্তমান কনফিগারেশন পড়ুন এবং যা ইতিমধ্যে একটি সার্ভার, একটি ইন্টারফেস বা একই লোকাল ডোমেইন নির্ধারণ করে তা মিলিয়ে নিন; বিরোধী ফ্র্যাগমেন্টের ওপর আরেকটি স্তর চাপালে এমন রেজলভার হয় যা আনন্দে লোড হয় আর ভুল উত্তর দেয়। dnsmasq ম্যানুয়াল উভয় নির্দেশ আর শোনার নিয়ন্ত্রণগুলো সংজ্ঞায়িত করে।
তারপর ফাইল নয়, চলমান সেবাটি যাচাই করুন। কনফিগারেশন পরীক্ষা আর রিস্টার্ট ন্যূনতম, আর কার্যকর উত্তর হলো কোয়েরি যা ফেরত দেয়।
রেজলভার রুট করুন, শুধু ওয়েব পেজ নয়
WireGuard-এর AllowedIPs ঠিক করে কোন গন্তব্যগুলো টানেলে ঢোকে। রেজলভার ঠিকানা যদি তার বাইরে পড়ে, কোয়েরি সাধারণ রুট দিয়ে বেরিয়ে যায় এবং dnsmasq-এ কখনো পৌঁছায় না, যদিও NAS নিজেই পৌঁছানোযোগ্য। রেজলভারের ঠিকানা বা সেটি ধারণ করা LAN প্রিফিক্স অন্তর্ভুক্ত করুন, এবং ওপাশে গেটওয়ের ফরওয়ার্ডিং নীতি যাচাই করুন।
অনুমোদিত টানেল রেঞ্জ থেকে 53 পোর্টে UDP আর TCP অনুমতি দিন, ক্লায়েন্টের টানেল ঠিকানায় ফেরার পথসহ। পরীক্ষা সহজ করতে WAN থেকে 53 পোর্ট ফরওয়ার্ড করবেন না: হোম সংযোগে খোলা রিকার্সিভ রেজলভার কয়েক ঘণ্টার মধ্যেই ধরা পড়ে। ইন্টারফেসে বাঁধাই নিজে থেকেই কোনো অ্যাক্সেস নীতি নয়।
অ্যাপ্লিকেশনের আগে উত্তরটি যাচাই করুন
প্রথমে সরাসরি রেজলভারকে জিজ্ঞাসা করুন, তারপর সিস্টেমকে, তারপর অ্যাপ্লিকেশনকে। প্রতিটি ধাপ শৃঙ্খলের একটি লিঙ্ক আলাদা করে, আর তাদের মধ্যে পার্থক্যই রোগনির্ণয়।
dig @192.168.50.53 nas.home.arpa. A
dig +tcp @192.168.50.53 nas.home.arpa. A
getent ahostsv4 nas.home.arpa
curl -sS --max-time 5 http://nas.home.arpa/ -o /dev/null -w '%{http_code}\n'
TCP কোয়েরি চালানো লাভজনক, কারণ কাটা UDP উত্তর পুনরায় চেষ্টা করতে বাধ্য করে, আর যে নীতি TCP 53 ফেলে দেয় তা এমন ব্যর্থতা তৈরি করে যা মাঝে মাঝে দেখা যায়। getent ধাপটি দেখায় মেশিনের রেজলভার কনফিগারেশন আসলে কী করে, যা সবসময় আপনি যা পুশ করেছেন তা নয়।
টানেল বন্ধ থাকলে কী হবে তা ঠিক করুন
ক্লায়েন্টের সাধারণ DNS যদি 192.168.50.53-এর দিকে থাকে, টানেল চালু না থাকলে সব নাম রিজলিউশন বন্ধ হয়ে যায়। এটি এমন মেশিনে গ্রহণযোগ্য যা কেবল টানেলসহ কাজে লাগে, আর অগ্রহণযোগ্য এমন ল্যাপটপে যা ক্যাফের Wi-Fi-ও ব্যবহার করে। Split-DNS প্রশ্নটিই এড়িয়ে যায়, কারণ কেবল home.arpa লুকআপই হোম রেজলভারের ওপর নির্ভর করে।
মনে রাখুন নামটি কী: home.arpa আবাসিক নেটওয়ার্কের জন্য সংরক্ষিত এবং বিশ্বব্যাপী অনন্য নয়, তাই অন্য নেটওয়ার্ক বৈধভাবেই একই নাম ব্যবহার করতে পারে। এটি একটি স্থানীয় সুবিধা, নির্ভরযোগ্য শনাক্তকারী নয়। সেবা সরে গেলে রেকর্ডটি হালনাগাদ রাখুন, আর ল্যাব অবসরে গেলে রেজলভার নীতি সরিয়ে দিন, এমন ল্যাপটপ রেখে দেবেন না যা এমন ঠিকানার দিকে ইঙ্গিত করে যেখানে সে কেবল আর বিদ্যমান নেই এমন টানেল দিয়েই পৌঁছাতে পারে।