DNS হলো একটি সিস্টেম যা ডোমেইন নাম (যেমন: www.google.com) কে IP ঠিকানায় (যেমন: 142.250.190.68) রূপান্তর করে।
- ব্যবহারকারীরা সহজে নাম দিয়ে ওয়েবসাইট অ্যাক্সেস করতে পারে।
- সিস্টেম ও নেটওয়ার্কে নামভিত্তিক কমিউনিকেশন সম্ভব হয়।
- DNS ছাড়া আপনাকে সব জায়গায় IP মনে রাখতে হতো।
- স্থানীয় LAN নেটওয়ার্কে
- ইন্টারনাল সার্ভিস রেজল্যুশনের জন্য
- ইন্টারনেটে ওয়েবসাইট হোস্টিংয়ের সময়
- সিস্টেম অ্যাডমিন
- নেটওয়ার্ক ইঞ্জিনিয়ার
- ওয়েব অ্যাপ্লিকেশন ও সার্ভার ডেভেলপার
- আমার সার্ভার গুলো Oracle VirtualBox এর মধ্যে vm এ রান করবে এবং আমার প্রাইমারি OS হলো Windows 11, যেখানে Oracle VirtualBox এর মধ্যে ১ টা মাস্টার সার্ভার এবং ২ টা স্লেভ সার্ভার থাকবে। আমি vm এর ভিতরে Ubuntu 24.04.2 LTS ব্যবহার করেছি।
| VM | Hostname | IP | Type |
|---|---|---|---|
| vm-1 | ns1.raihan.dns | 192.168.56.115 | Master DNS |
| vm-2 | ns2.raihan.dns | 192.168.56.116 | Slave DNS |
| vm-3 | ns3.raihan.dns | 192.168.56.117 | Slave DNS |
প্রতিটি VM-এ নিচের কমান্ড রান করুন:
sudo hostnamectl set-hostname ns1.raihan.dns # Master এর জন্য
sudo hostnamectl set-hostname ns2.raihan.dns # Slave 1 এর জন্য
sudo hostnamectl set-hostname ns3.raihan.dns # Slave 2 এর জন্য/etc/hosts ফাইল এডিট করুন (সব সার্ভারে):
192.168.56.115 ns1.raihan.dns ns1
192.168.56.116 ns2.raihan.dns ns2
192.168.56.117 ns3.raihan.dns ns3
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses:
- 192.168.56.115/24network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses:
- 192.168.56.116/24network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses:
- 192.168.56.117/24নেটওয়ার্ক প্রয়োগ করুন:
sudo netplan try
sudo netplan applyসব সার্ভারে রান করুন:
sudo apt update
sudo apt install bind9 bind9utils bind9-doc dnsutils -yoptions {
directory "/var/cache/bind";
allow-transfer { 192.168.56.116; 192.168.56.117; };
allow-query { any; };
recursion no;
dnssec-validation auto;
listen-on { any; };
allow-recursion { none; };
};zone "raihan.dns" {
type master;
file "/etc/bind/zones/db.raihan.dns";
allow-transfer { 192.168.56.116; 192.168.56.117; };
};
zone "56.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192";
allow-transfer { 192.168.56.116; 192.168.56.117; };
};zones ফোল্ডার তৈরি করুন:
sudo mkdir -p /etc/bind/zones$TTL 604800
@ IN SOA ns1.raihan.dns. root.raihan.dns. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.raihan.dns.
@ IN NS ns2.raihan.dns.
@ IN NS ns3.raihan.dns.
ns1 IN A 192.168.56.115
ns2 IN A 192.168.56.116
ns3 IN A 192.168.56.117
www IN A 192.168.56.115
$TTL 604800
@ IN SOA ns1.raihan.dns. root.raihan.dns. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.raihan.dns.
@ IN NS ns2.raihan.dns.
@ IN NS ns3.raihan.dns.
115 IN PTR ns1.raihan.dns.
116 IN PTR ns2.raihan.dns.
117 IN PTR ns3.raihan.dns.
options {
directory "/var/cache/bind";
allow-query { any; };
recursion no;
dnssec-validation auto;
listen-on { any; };
allow-recursion { none; };
};zone "raihan.dns" {
type slave;
masters { 192.168.56.115; };
file "/var/cache/bind/db.raihan.dns";
};
zone "56.168.192.in-addr.arpa" {
type slave;
masters { 192.168.56.115; };
file "/var/cache/bind/db.192";
};Master ও Slave উভয়ে:
sudo named-checkconf
sudo named-checkzone raihan.dns /etc/bind/zones/db.raihan.dns # Master এ রান করবেন
sudo named-checkzone 56.168.192.in-addr.arpa /etc/bind/zones/db.192 # Master এ রান করবেন
sudo systemctl restart bind9
sudo systemctl status bind9DNS সার্ভার সঠিকভাবে কাজ করার জন্য, ফায়ারওয়ালে TCP এবং UDP পোর্ট ৫৩ অবশ্যই খোলা থাকতে হবে (সব সার্ভারের জন্য):
sudo firewall-cmd --add-port=53/tcp --permanent
sudo firewall-cmd --add-port=53/udp --permanent
sudo firewall-cmd --reload
sudo iptables -L -n | grep 53
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
sudo iptables-save
sudo firewall-cmd --list-alldig @192.168.56.115 www.raihan.dns
dig @192.168.56.116 www.raihan.dns
dig @192.168.56.117 www.raihan.dnsdig -x 192.168.56.115
dig -x 192.168.56.116
dig -x 192.168.56.117dig @192.168.56.116 raihan.dns AXFR
dig @192.168.56.117 raihan.dns AXFRsudo resolvectl dns enp0s8 192.168.56.115 192.168.56.116 192.168.56.117
sudo resolvectl domain enp0s8 ~raihan.dns
resolvectl status| বিষয় | Master DNS | Slave DNS |
|---|---|---|
| Zone Type | Master (Authoritative) | Slave (Read-only copy) |
| Zone File | নিজে zone ফাইল ধরে রাখে | Master থেকে zone টেনে নেয় |
| Update | DNS রেকর্ড আপডেটের জায়গা | শুধুমাত্র রিড-অনলি |
| Zone Transfer | Slave সার্ভারকে অনুমতি দেয় | Master থেকে zone টেনে নেয় |
- Zone ফাইল পরিবর্তনের পর Serial নম্বর বাড়ানো আবশ্যক।
allow-transferএ Slave সার্ভারের সঠিক IP দিন।- কনফিগারেশন চেক করতে
named-checkconfএবংnamed-checkzoneব্যবহার করুন। - ফায়ারওয়ালে TCP ও UDP 53 পোর্ট খোলা আছে কিনা নিশ্চিত করুন।
- Master ও Slave উভয়ের জন্য
recursion noরাখা ভালো।
এই ডকুমেন্ট অনুসরণ করে আপনি প্রোডাকশন-রেডি Master-Slave DNS ইনফ্রাস্ট্রাকচার তৈরি করতে পারবেন। প্রয়োজনে DHCP, লোড ব্যালেন্সার, অথবা এক্সটার্নাল DNS ইন্টিগ্রেশন যুক্ত করা যাবে।