Thiết lập và kiểm tra DNS Server chính - phụ

Thiết lập DNS Server chính (Primary) và phụ (Secondary) là một phần quan trọng trong việc xây dựng hạ tầng mạng ổn định. Bài viết này sẽ hướng dẫn chi tiết cách cấu hình hai máy chủ DNS để đảm bảo dịch vụ phân giải tên miền luôn sẵn sàng.

Tổng quan về DNS chính - phụ

DNS (Domain Name System) đóng vai trò thiết yếu trong việc phân giải tên miền thành địa chỉ IP. Kiến trúc DNS chính - phụ mang lại nhiều lợi ích:

  • Độ tin cậy cao: Khi máy chủ chính gặp sự cố, máy chủ phụ tự động tiếp quản công việc phân giải
  • Dự phòng: Đảm bảo dịch vụ không bị gián đoạn
  • Cân bằng tải: Phân phối lưu lượng giữa các máy chủ
  • Bảo trì thuận tiện: Có thể bảo trì máy chủ chính mà không ảnh hưởng đến người dùng

Yêu cầu hệ thống

Bài hướng dẫn này sử dụng hai máy ảo với địa chỉ IP:

  • Máy chủ chính: 192.168.100.10
  • Máy chủ phụ: 192.168.100.20

Cấu hình mạng tĩnh

Trên cả hai máy ảo, thực hiện các bước sau:

systemctl stop firewalld
setenforce 0

Kiểm tra và cài đặt dịch vụ DNS:

rpm -qa | grep ^bind
yum install -y bind bind-chroot bind-utils

Lưu ý các file cấu hình quan trọng:

  • File cấu hình chính: /etc/named.conf
  • File cấu hình vùng: /etc/named.rfc1912.zones
  • File mẫu dữ liệu vùng: /var/named/named.localhost

Cấu hình máy chủ DNS chính

Bước 1: Chỉnh sửa file cấu hình chính

vi /etc/named.conf

Cập nhật các tham số listen-onallow-query để chấp nhận kết nối từ mạng nội bộ.

Bước 2: Cấu hình vùng DNS

vi /etc/named.rfc1912.zones

Xóa các vùng mặc định không cần thiết và thêm vùng mới cho tên miền.

Bước 3: Tạo file dữ liệu vùng

cd /var/named
cp -p named.localhost example.vn
vi /var/named/example.vn

Cấu hình các bản ghi cần thiết:

  • Bản ghi SOA (Start of Authority)
  • Bản ghi NS (Name Server)
  • Bản ghi A (Address)
  • Bản ghi CNAME (Canonical Name)

Cấu hình máy chủ DNS phụ

Bước 1: Chỉnh sửa file cấu hình

vi /etc/named.conf

Bước 2: Khai báo vùng slave

vi /etc/named.rfc1912.zones

Thêm cấu hình vùng slave trỏ đến máy chủ chính:

type slave;
file "slaves/example.vn";
masters { 192.168.100.10; };
};

Khởi động dịch vụ

Trên cả hai máy:

systemctl enable named
systemctl start named

Kiểm tra trạng thái:

systemctl status named

Cấu hình DNS resolver

Chỉnh sửa file /etc/resolv.conf trên cả hai máy:

vi /etc/resolv.conf

Quan trọng: Thứ tự các nameserver rất quan trọng. Máy chủ chính phải được đặt ở dòng đầu tiên:

nameserver 192.168.100.10
nameserver 192.168.100.20

Hệ thống sẽ ưu tiên sử dụng DNS đầu tiên; khi không thể kết nối, nó sẽ tự động chuyển sang DNS thứ hai.

Kiểm tra và xác minh

Cài đặt công cụ kiểm tra

yum install -y bind-utils

Xác minh máy chủ chính

Sử dụng lệnh nslookup hoặc dig để kiểm tra:

nslookup www.example.vn 192.168.100.10
dig @192.168.100.10 example.vn

Xác minh máy chủ phụ

nslookup www.example.vn 192.168.100.20
dig @192.168.100.20 example.vn

Kiểm tra file dữ liệu đã được đồng bộ:

ls -la /var/named/slaves/

Kiểm tra chuyển đổi dự phòng

Trên máy chủ chính, dừng dịch vụ DNS:

systemctl stop named

Sau đó thực hiện truy vấn DNS - hệ thống sẽ tự động sử dụng máy chủ phụ (192.168.100.20):

nslookup www.example.vn

Khi khởi động lại dịch vụ trên máy chủ chính, hệ thống sẽ quay về sử dụng 192.168.100.10 theo thứ tự trong /etc/resolv.conf.

Xử lý sự cố

Kiểm tra cú pháp file cấu hình

named-checkconf -z /etc/named.conf
named-checkconf -z /etc/named.rfc1912.zones

Kiểm tra file dữ liệu vùng

named-checkzone example.vn /var/named/example.vn

Xem log dịch vụ

journalctl -u named -f
tail -f /var/log/messages

Các lỗi thường gặp

  • Cổng 53 bị chặn: Kiểm tra tường lửa
  • Quyền truy cập file: Đảm bảo thư mục /var/named/slaves có quyền ghi
  • Kết nối mạng: Xác minh hai máy có thể ping được nhau
  • Cú pháp sai: Sử dụng named-checkconf để phát hiện lỗi

Thẻ: dns linux bind Network-Configuration Server-Administration

Đăng vào ngày 14 tháng 6 lúc 02:36