DNS là một dịch vụ vô cùng quan trọng của Internet cũng như các mạng nội bộ, giúp việc phân giải các IP sang một cái tên (thân thiện với người dùng) và phân giải ngược từ tên sang IP. Dịch vụ này giúp việc định danh các máy cũng như các mạng thành một cái tên mà con người có thể dể dàng ghi nhơ thay cho địa chỉ IP phức tạp. Trên Linux chúng ta có thể triển khai với gói phần mềm BIND (Berkeley Internet Name Domain).
Trong bài viết này chúng ta sẽ có mô hình thực hiện như sau:
Với máy SRV1 là máy dịch vụ DNS với việc cài đặt gòi phần mềm BIND, dùng lệnh yum install bind, khi dùng yum thì bạn lưu ý là máy phải kết nối được internet (trong video demo bên dưới thì việc cài gói bind diển ra trước khi thiết lập IP tỉnh cho DNS server). Với lệnh này ta có thể cài đặt 3 gói chính:
- bind-9.x
- bind-lib
- bind-devel
Sau khi cài đặt gói BIND xong, bạn sẽ tiến hành edit lại file named.conf bằng cách dùng lệnh vi /etc/named.conf. Bạn sẽ thêm vào IP của server, mặc định hệ thống lằng nghe trên 127.0.0.1. Thay đổi dòng allow-query (cho phép truy vấn từ những mạng nào) thành any (truy vấn bất kỳ đâu).
Cũng trong file named.conf này ta định nghĩa thêm các dòng về zone phân giải thuận và zone phân giải ngịch. Chỉ ra các file chứa cơ sở dữ liệu phục vụ cho việc phân giải tên.
Kế tiếp trong thư mục /var/named ta tạo hai file cơ sở dữ liệu cho việc phân giải như sau:
File phân giải thuận (zone_thuan.db), định nghĩa các record cho phép việc phân giải từ tên sang IP (Forward Lookup Zone).
- SOA: máy chủ primary, máy xác thực DNS server.
- NS: Name server
- MX: Chỉ đến máy mail server, record này giúp cho việc truyền thông mail giữa các miền.
- A: Định nghĩa các host.
- CNAME: hay còn gọi là Alias
File phân giải nghịch (zone_nghich.db), chứa các record phân giải từ IP sang tên (Reverse Lookup).
- PTR: pointer, dùng để phân giải các IP sang tên. Với các con số 254, 253, 252 là octet cuối của các địa chỉ IP 192.168.100.254, 192.168.100.253, 192.168.100.252.
Bạn có thể sử dụng các file cấu hình tại đây để tiến hành test.
Để khởi chạy dịch vụ ta dùng lệnh sau:
- Centos 6 và 5
- service named start
- chkconfig named on
- Centos 7
- systemctl start named
- systemctl enable named
Các bạn lưu ý rằng ở đây chưa cần phải cài đặt và dùng gói bind-chroot.