Tìm hiểu về DNS
Trước khi bắt đầu cài đặt DNS cho Linux, hãy cùng tìm hiểu qua một số kiến thức cần biết về nó.
Khái niệm tên miền
Tên miền (Domain name) đơn giản là một địa chỉ dễ nhớ được gán cho một website hoặc tài nguyên trực tuyến khác. Thay vì phải nhớ một chuỗi số IP dài và phức tạp, người dùng chỉ cần nhập tên miền vào trình duyệt để truy cập đến website đó.
Ví dụ: Thay vì nhập 172.217.11.14 để vào Google, bạn chỉ cần gõ google.com vào thanh địa chỉ.
Khái niệm subdomain
Subdomain hay tên miền con là một phần mở rộng của tên miền chính, được sử dụng để phân chia website của bạn thành các phần nhỏ hơn, quản lý các nội dung khác nhau hoặc tạo các trang web con độc lập.
Các loại server DNS
Có ba loại server DNS mà ta cần biết:
Primary DNS server: Lưu trữ các bản master copy của file cấu hình domain, chứa các thông tin như địa chỉ IP hoặc chi tiết về quản trị viên.
Secondary DNS server: Chứa các bản copy của thông tin domain (chỉ cho phép đọc) có được từ primary DNS server. Các thông tin này rất hữu ích nếu chẳng may primary server gặp sự cố.
Caching DNS server: Chứa dữ liệu của các truy vấn được yêu cầu gần đây từ người dùng, giúp giảm thiểu công việc mà các server primary và secondary cần thực hện.
Cách cài đặt DNS cho Linux
Cài đặt Bind
Trước tiên ta cần cài đặt bind trên bản phân phối Linux đang sử dụng.
Đối với Debian/Ubuntu:
sudo apt-get install bind9
Đối với Redhat/CentOS/Fedora:
yum install bind9
Thư mục /etc/bind chứa mọi cấu hình của DNS. /etc/bind/named.conf chính là cấu hình chính, chứa mọi file cần thiết khác, còn file /etc/bind/db.root có nhiệm vụ chỉ định name server root.
Sau khi hoàn tất việc cài đặt, ta có thể khởi động và cho chạy khi boot như sau:
systemctl enable named
Tiếp theo, ta cần chỉ định primary zone (vùng chính) trong file etc/named.conf:
Zone “abcexample.com” {
Type master ;
File abcexample.com.db
};
Trong đó, lệnh zone cho phép ta định nghĩa một vùng DNS cụ thể. File chứa thông tin về zone được đặt trong thư mục /var/named, vì ta cần định nghĩa primary zone nên type sẽ được chọn là master.
Sau đó là chỉ định secondary zone:
Zone “abcexample.com” {
Type slave
masters Primary Nameserver IP Address Here; ;
file abcexample.com.db
};
Tên miền của secondary zone cũng tương tự như trong primary zone, type được đặt là slave để định nghĩa secondary zone. Ngoài ra, option masters dùng để chỉ định địa chỉ IP của name server chính, còn file sẽ chứa đường dẫn đến các file của primary zone.
Cuối cùng là định nghĩa caching zone. Trong bước này, ta cần định nghĩa 3 phần zone như dưới đây:
Zone "." IN {
type hint;
file "root.hint";
};
Trong đó, dot chính là name server của root, type hint để định nghĩa caching zone, còn root.hint là file chứa server root.
Zone "localhost" IN {
type master;
file "localhost.db";
};
Zone thứ ba dùng để thực hiện tra cứu ngược (reverse lookup) cho localhost.
Zone "0.0.127.in-addr.arpa" IN {
type master;
file "127.0.0.rev";
};
Đưa cả ba zone này vào /etc/named.conf, khi đó hệ thống sẽ hoạt động như một server caching DNS. Bây giờ ta sẽ nhập nội dung của các file được tham chiếu như localhost.db, abc.com.db, 127.0.0.rev. Các file này chứa những loại bản ghi DNS (DNS record) cho mỗi zone.
Các loại bản ghi DNS
SOA (Start of Authority)
SOA là thông tin về zone và những record khác, được lưu trữ trong DNS zone, định nghĩa thuộc tính của zone. Một số thông tin mà bản ghi SOA chứa gồm có:
Cú pháp:
abcexample.com. 86400 IN SOA ns1.abcexample.com.mail.abcexample.com. (
2020020204 ;serial
86400 ;refresh, seconds
8200 ;retry, seconds
3600000 ;expire, seconds
86400 ;minimum, seconds
)
Cách truy vấn:
Record Name Server (NS)
Loại record này dùng để chỉ định name server cho zone.
Cú pháp:
IN NS ns1.abcexample.com.
IN NS ns2.abcexample.com.
Cách truy vấn:
Record Address (A & AAAA)
Loại record này có nhiệm vụ ánh xạ hostname đến địa chỉ IP tương ứng.
Cú pháp:
support IN A 192.168.1.5
Record Pointer (PTR)
Ngược lại với record kiểu address, loại này sẽ ánh xạ địa chỉ IP đến hostname tương ứng.
Cú pháp:
192.168.1.5 IN PTR support.example.com.
Record Mail Exchange (MX)
Loại bản ghi này dùng để chỉ định xem mail server nào có nhiệm vụ nhận email thay cho domain.
Cú pháp:
Domain TTL Class Type Priority Host
abcexample.com. 1936 IN MX 10 onemail.abcexample.com
abcexample.com. 1936 IN MX 10 twomail.abcexample.com
Trong đó, Priority dùng để chỉ định mail server, giá trị Priority càng lớn thì ưu tiên càng cao.
Truy vấn:
Record Canonical Name (CNAME)
Bản ghi này chỉ định bí danh (alias) hoặc nickname cho host.
NAME TYPE VALUE
--------------------------------------------------
abc.example.com. CNAME cab.example.com.
cab.example.com. A 192.0.2.23
Record Text (TXT)
Bản ghi Text cho phép người dùng thêm bất kỳ loại văn bản nào, chẳng hạn như thông tin liên lạc, thông tin bổ sung người dùng khác cần biết về domain của mình,…
abcexample.com. IN TXT “welcome to our website”
Một số lệnh khác khi cấu hình DNS cho Linux
Sửa lỗi cấu hình
Quá trình viết file zone có thể gặp một số lỗi không mong muốn, khi đó ta có thể chẩn đoán những lỗi này dựa trên log theo cú pháp sau:
$tail -f /var/log/messages
Lệnh host
Sau khi thêm và chỉnh sửa các bản ghi, ta có thể kiểm tra xem host đã được giải quyết chính xác chưa:
host acb.com
Nếu truyền hostname vào lệnh thì nó sẽ trả về địa chỉ IP tương ứng. Ngược lại, nếu truyền địa chỉ IP thì câu lệnh sẽ trả về hostname.
host 192.168.1.5
Lệnh whois
Lệnh whois được dùng để xem thông tin chi tiết về chủ sở hữu của domain, chẳng hạn như SĐT liên lạc.
whois abc.com
Lệnh rndc
Lệnh rndc được dùng để bảo mật name server (cục bộ và ở xa). Để ngăn chặn bất kỳ truy cập không được xác thực nào vào name server, ta cần phải cấu hình rndc trên cổng được chọn (theo mặc định là cổng 953).
Ngoài ra ta cũng có thể kiểm tra trạng thái của server dns bằng lệnh sau:
rndc status
Nếu thực hiện bất kỳ thay đổi nào với các file zone, ta có thể reload lại dịch vụ như sau:
rndc reload abc.com
Hoặc reload mọi file zone:
rndc reload
Nếu thêm zone mới hoặc thay đổi cấu hình của server thì ta có thể reload lại cấu hình bằng lệnh:
rndc reconfig
» Các tin khác: