Trước tiên bạn cần hiểu DNS là gì: DNS là chữ viết tắt của Domain Name Server. Khi bạn gõ một địa chỉ Web lên thanh Adress của trình duyệt, thì nó sẽ truy cập đến một DNS để tìm địa chỉ IP tương ứng với địa chỉ Web, từ đó mới có thể truy cập đến trang Web mà bạn yêu cầu.
Việc cài đặt một DNS riêng sẽ giúp bạn trong một số trường hợp như để che dấu các dấu vết lướt web, để vượt tường lửa hay để chạy các ứng dụng khác nữa, cụ thể hơn thì nhiều lắm không kể siết 😀
Okey giờ ta bắt đầu công việc, trước tiên cần phải hiểu là để hệ thống DNS của bạn hoạt động tốt và an toàn thì cần những nhiều hơn 1 server để chạy, bước 1 sau đây được coi như Server chính để phân giải DNS:
Bước 1 : Cài đặt BIND
BIND (Berkeley Internet Name Domain) là phần mềm miễn phí, nguồn mở sử dụng cho các máy chủ linux làm DNS Server.
- Thư mục làm việc mặc định của BIND: /etc/named.conf
- File cấu hình tổng quan cho BIND: /var/named/
Để cài đặt ta gõ lệnh như sau:
yum install bind bind-chroot
Đợi sau khi máy chủ download về và khởi chạy, các bạn bắt đầu thao tác chỉnh sửa, các bạn nên chỉnh sửa bằng cách truy cập trình quản lý FTP và chạy qua cổng SFTP để thuận tiện chỉnh sửa, còn dùng công cụ chỉnh sửa trên dòng lệnh thì thuận tiện nhưng lại khó cho những ai không chuyên.
Bước 2: Chỉnh sửa cấu hình để hoạt động, trên server chính
Các bạn chạy lệnh này hoặc vào FTP rồi edit file tương ứng nhé:
vi /etc/named.conf
Nếu trường hợp file không tồn tại thì tạo mới nhé ( trường hợp vào bằng trình FTP ), và chỉnh sửa nội dung giống như sau:
options {
listen-on port 53 { 192.168.100.4; };
listen-on-v6 port 53 { ::1; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { 192.168.100.4/24; };
recursion yes;
………….
};
…………
zone “vietdex.com” IN {
type master;
file “vietdexcom.zone“;
allow-update { none; };
};
Okey, giờ ta tạo file phân giải chính cho hệ thống:
vi /var/named/vietdexcom.zone
Nội dung của file sẽ như thế này:
$TTL 86400
@ IN SOA dns.vietdex.com. root.vietdex.com. (
2013042201 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
; Specify our two nameservers
IN NS dns.vietdex.com.
IN NS dns2.vietdex.com.
; Resolve nameserver hostnames to IP, replace with your two droplet IP addresses.
dns IN A 1.1.1.1
dns2 IN A 2.2.2.2
; Define hostname -> IP pairs which you wish to resolve
@ IN A 3.3.3.3
www IN A 3.3.3.3
Các bạn tự thay các IP 1.1.1.1 hoặc 3.3.3.3 sao cho hợp lệ, đúng địa chỉ IP của Server của các bạn nha !
Tới đoạn này DNS server của các bạn đã sẵn sàng, hãy khởi động chúng lại bằng lệnh:
service named restart
Và để đảm bảo nó được khởi động cùng hệ thống, bạn chạy lệnh này:
chkconfig named on
Giờ thì các bạn có thể thử bằng cách chạy lệnh này:
dig @1.1.1.1 vietdex.com
Nhớ thay cái địa chỉ IP thành IP hợp lệ nha !
Bước 3: Cấu hình cho Server thứ hai
Slave Server có thể khác vị trí, địa điểm và cả dải IP nữa, nhằm khắc phục sự cố hoặc dự phòng phương án server chính bị tỏi củ ngỏm, Ở trên tôi có cấu hình dns2.vietdex.com là “Slave Server” nghĩa là server phụ thứ hai, giờ ta sẽ cài đặt gói BIND như bên phần trên, cho tới khi mở file chỉnh sửa, ta dừng lại một chút.
Chạy lệnh chỉnh sửa file Named.conf:
nano -w /etc/named.conf
Ta lại thêm các dòng lệnh gần như ở Server chính, nhưng bỏ dòng “allow transfer” đi thôi:
options {
#listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
Vẫn file đó, ta thêm vào cuối dòng:
zone "mydomain.com" IN {
type slave;
masters { 1.1.1.1; };
file "vietdex.com.zone";
};
Các bạn thấy “type” giờ đã chuyển thành Slave, trong địa chỉ IP 1.1.1.1 các bạn chỉnh lại với địa chỉ IP của bạn, giờ ta chỉ việc bật chúng chạy bằng lệnh:
service named start
Và cũng bật chúng chạy cùng với hệ thống khi khởi động:
chkconfig named on
Bây giờ ta quay trở lại con Server đầu tiên, chạy lệnh:
rndc reload
Mục đích là để nó reload lại chương trình và nhận Server thứ hai để đảm bảo việc truyền dữ liệu trên cả hai được thông !
Tuyệt vời, giờ bạn đã có cả một hệ thống DNS của riêng mình rồi nhé, trường hợp hai server mà bị không thông nhau thì các bạn nên chạy lại lệnh restart và reload trên cả hai server, nếu không nhận tiếp thì có thể do bạn gõ nhầm địa chỉ IP thôi.
Chúc các bạn thành công !
Bạn ơi cho mình hỏi là địa chỉ 192.168.100.4 là của máy nào và mục đích dòng đầu tiên “listen-on port 53 { 192.168.100.4; };” là gì vậy?
QUên mất, nó là Master DNS IP , là địa chỉ IP máy chủ ! Còn DNS thường chạy qua cổng 53 !
Địa chỉ này mình tự quy định hay lấy phải trong 1 danh sách các ip cố định nào đó. mình thấy trong các bài hướng dẫn ở các website khác mỗi web đưa ví dụ 1 ip mình chưa hiểu chỗ này. thanks bạn
Chỉ có 1 IP / 1 máy chủ thôi nha bạn !
IP này do nhà cung cấp đưa cho bạn !
Bước 3 ko hiểu lắm, vì mình thấy ở bước 2 đã cài đặt NS1 rồi, b có thể giải thích hơn giúp mình đc k
Và cho mình hỏi thêm nữa là domain chính thì trỏ về như thế nào, có phải tạo thêm record ns1 và ns2 trỏ về IP k, xin lỗi vì mình mới học thôi nên chưa rõ lắm