Hiện nay với sự ra đời của mọi thiết bị kết nối Internet (Internet of Things), số lượng địa chỉ IPv4 đã cạn kiệt và IPv6 đã được ra đời nhằm dần dần thay thế IPv4. Người dùng chỉ nhớ được tên website mà rất khó có thể nhớ được dãy số địa chỉ IP của website đó. Chính vì vậy DNS xuất hiện là một dịch vụ cho phép người dùng nhập tên miền trên trình duyệt web và tên website đó sẽ được ánh xạ đến địa chỉ tài nguyên mạng nơi website được lưu trữ trên Internet.
Nội dung
Mô hình triển khai và phân hoạch IP
Mô hình triển khai
Mô tả: Mô hình lab này sử dụng 2 máy CentOS 8 với quyền root user, trong đó có 1 máy được sử dụng làm DNS Server và 1 máy client để kiểm tra hoạt động của DNS Server. Tên miền được sử dụng trong bài lab là: example.com
Phân hoạch IP
Các bước triển khai
Thực hiện trên DNS Server
[1] Cài đặt bind và bind-utils
- Cài đặt gói phần mềm BIND và bind-utills(để sử dụng được 2 câu lệnh
nslookup
vàdig
). BIND là ứng dụng cung cấp DNS server phổ biến nhất hiện nay. Sử dụng câu lệnh:
dnf -y install bind*
- Start dịch vụ DNS
systemctl start named systemctl enable named systemctl status namedv
[2] Cấu hình bind DNS server
- Cấu hình DNS Server, chỉnh sửa file
/etc/named.conf
Chú ý: Thay địa chỉ IP trong file cấu hình thành địa chỉ IP của bạn.
cp /etc/named.conf /etc/named.bak
vim /etc/named.conf
Trong phần options
, chuyển 2 dòng sau thành bình luận như sau:
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
Chỉnh sửa thông số allow-query
, chú ý địa chỉ IP của bạn
allow-query { localhost; 10.10.34.0/24; };
Cài đặt này chỉ cho phép các máy chủ trong mạng được xác định truy cập vào máy chủ DNS.
Một forward lookup DNS zone là vùng lưu trữ thông tin mối quan hệ giữa địa chỉ IP và host name. Khi được truy vấn, nó cung cấp địa chỉ IP của host system bằng host name. Ngược lại, reverse DNS zone trả về tên miền đủ điều kiện(Fully Qualified Domain Name (FQDN)) của máy chủ liên quan tới địa chỉ IP của nó.
Để xác định reverse và forward lookup zones
, thêm vào cuối file named.conf
cấu hình dưới:
//forward zone
zone "example.com" IN {
type master;
file "example.com.db";
allow-update { none; };
allow-query { any; }; };
//backward zone
zone "34.10.10.in-addr.arpa" IN {
type master;
file "example.com.rev";
allow-update { none; };
allow-query { any; };
};
Trong đó:
-
type:
Quy định vai trò của server cho một zone(khu vực) cụ thể. Thuộc tínhmaster
cho biết đây là 1 server có thẩm quyền. -
file:
chứa thông tin về file forward / reverse zone của domain. -
allow-update:
Thuộc tính này xác định các host system có được phép chuyển tiếp cập nhật DNS động. Trong trường hợp này không.
[3] Tạo forward DNS zone file cho tên miền
- Tạo một forward DNS zone file cho tên miền
example.com
theo câu lệnh bên dưới:
vim /var/named/example.com.db
Thêm vào nội dung
$TTL 86400
@ IN SOA dns-server.example.com. admin.example.com. (
2020011800 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-server.example.com.
;IP Address for Name Server
dns-server IN A 10.10.34.112
;Mail Server MX (Mail exchanger) Record
example.com. IN MX 10 mail.example.com.
;A Record for the following Host name
www IN A 10.10.34.113
mail IN A 10.10.34.111
;CNAME Record
ftp IN CNAME www.example.com.
Trong đó:
TTL:
là viết tắt của Time-To-Live là khoảng thời gian(hoặc hops) mà gói tin tồn tại trên mạng trước khi bị router loại bỏ.IN:
là InternetSOA:
là viết tắt của Start of Authority. Về cơ bản nó xác định name server có thẩm quyền, trong trường hợp này làdns-server.example.com
và thông tin liên lạc –admin.example.com
NS:
là viết tắt của Name ServerA:
là bản ghi A. Nó trỏ 1 domain/subdomain tới địa chỉ IPSerial:
áp dụng cho mọi dữ liệu trong zone và có định dạngYYYYMMDDNN
vớiYYYY
là năm,MM
là tháng,DD
là ngày,NN
là số lần sửa đổi dữ liệu zone trong ngày. Luôn luôn phải tăng số này lên mỗi lần sửa đổi dữ liệu zone. Khi Slave DNS Server liên lạc với Master DNS Server, trước tiên nó sẽ hỏi số serial. Nếu số serial của Slave nhỏ hơn số serial của máy Master tức là dữ liệu zone trên Slave đã cũ và sau đó Slave sẽ sao chép dữ liệu mới từ Master thay cho dữ liệu đang có.Refresh:
chỉ ra khoảng thời gian Slave DNS Server kiểm tra dữ liệu zone trên Master để cập nhật nếu cần. Giá trị này thay đổi tùy theo tuần suất thay đổi dữ liệu trong zone.Retry:
nếu Slave DNS Server không kết nối được với Master DNS Server theo thời hạn mô tả trong refresh (ví dụ Master DNS Server bị shutdown vào lúc đó thì Slave DNS Server phải tìm cách kết nối lại với Master DNS Server theo một chu kỳ thời gian mô tả trong retry. Thông thường, giá trị này nhỏ hơn giá trị refresh).Expire:
nếu sau khoảng thời gian này mà Slave DNS Server không kết nối được với Master DNS Server thì dữ liệu zone trên Slave sẽ bị quá hạn. Khi dữ liệu trên Slave bị quá hạn thì máy chủ này sẽ không trả lời mỗi truy vấn về zone này nữa. Giá trị expire này phải lớn hơn giá trị refresh và giá trị retry.Minimum TTL:
chịu trách nhiệm thiết lập TTL tối thiểu cho 1 zoneMX:
đây là bản ghi Mail exchanger. Nó chỉ định server nhận và gửi mailCNAME:
Là viết tắt của Canonical Name – tên miền chính. Nó sẽ map alias domain(tên miền phụ) tới tên miền khác.PTR:
là viết tắt của Pointer. Thuộc tính này phân giải địa chỉ IP thành domain.
[4] Tạo reverse DNS zone file cho tên miền
- Tạo một reverse DNS zone file cho tên miền
example.com
theo câu lệnh bên dưới:
vim /var/named/example.com.rev
Thêm vào nội dung
$TTL 86400
@ IN SOA dns-server.example.com. admin.example.com. (
2020011800 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-server.example.com.
dns-server IN A 10.10.34.112
;Reverse lookup for Name Server
112 IN PTR dns-server.example.com.
;PTR Record IP address to Hostname
113 IN PTR www.example.com
111 IN PTR mail.example.com
- Gán các quyền cần thiết cho 2 file cấu hình trên
chown named:named /var/named/example.com.db
chown named:named /var/named/example.com.rev
- Kiểm tra các file DNS zone lookup có gặp lỗi không, sử dụng các câu lệnh:
named-checkconf
named-checkzone example.com /var/named/example.com.db
named-checkzone 10.10.34.112 /var/named/example.com.rev
Nếu không có lỗi, ouput của bạn sẽ như hình:
- Khởi động lại Bind DNS server để hệ thống nhận cấu hình mới:
systemctl restart named
- Cấu hình firewall để cho phép client truy cập vào hệ thống
firewall-cmd --add-service=dns --zone=public --permanent firewall-cmd --reload
Thực hiện trên máy Client
[5] Kiểm tra Bind DNS server từ phía client
- Chỉnh sửa file
/etc/resolv.conf
và thêm vào cấu hình
nameserver 10.10.34.112
- Chỉnh sửa file
/etc/sysconfig/network-scripts/ifcfg-ens3
, khai báo DNS mới là địa chỉ IP của BIND DNS Server
DNS="10.10.34.112"
- Restart NetworkManager để nhận cấu hình mới
systemctl restart NetworkManager
- Sử dụng câu lệnh
nslookup
để kiểm tra hoạt động của Bind DNS server, như sau:
nslookup dns-server.example.com
nslookup mail.example.com
nslookup www.example.com
nslookup ftp.example.com
nslookup 10.10.34.112
- Để chi tiết hơn, bạn có thể sử dụng câu lệnh
dig
dig www.example.com
dig -x 10.10.34.112
Leave a Reply