DNSMasq là một máy chủ DHCP nhẹ và DNS forwarder có khả năng xử lý một vài yêu cầu DHCP và DNS cho một số khách hàng trên mạng của bạn. Ngoài ra, nó còn hỗ trợ BOOTP, TFTP, IPv6 và PXE để khởi động mạng. DNSMasq hoạt động tốt cho các môi trường mạng nhỏ và sẽ hoạt động hoàn hảo trong việc xử lý các yêu cầu DNS và giúp bạn giải phóng gánh nặng của việc cấu hình máy chủ DNS của mình. Hướng dẫn này sẽ bao gồm cách cài đặt, cấu hình và sử dụng DNSMasq trên Ubuntu.
Cách cài đặt và cấu hình DNSMasq trên Ubuntu
Trước khi cài đặt DNSMasq, hãy hiểu về các hệ thống con khác nhau mà nó cung cấp.
-
Hệ thống con DNS – hệ thống con này xử lý bộ nhớ cache các loại bản ghi khác nhau, chẳng hạn như PTR, CNAME và AAAA.
-
Hệ thống con DHCP – cung cấp hỗ trợ cho PXE, BOTP, DHCPv6 và v4.
-
Hệ thống con quảng cáo có trách nhiệm cho việc tự động cấu hình các máy chủ IPv6.
Mặc định, Ubuntu có systemd-resolved được kích hoạt sẵn, nhưng bạn cần tắt nó trước khi cài đặt DNSMasq để tránh xung đột với nhau.
Tắt systemd-resolved trên ubuntu
Đầu tiên, hãy cập nhật kho lưu trữ của bạn bằng lệnh sau đây:
$ sudo apt update
Sau đó, vô hiệu hóa systemd-resolved bằng các lệnh dưới đây:
$ sudo systemctl disable systemd-resolved
$ sudo systemctl stop systemd-resolved
Bạn cũng phải xóa tệp cấu hình cho systemd-resolved và bạn có thể sử dụng các lệnh dưới đây.
$ sudo unlink /etc/resolv.conf
hoặc
$ sudo rm -rf /etc/resolv.conf
Sau khi xóa cấu hình, bạn cần tạo một tệp mới và thêm DNS của Google.
$ echo “nameserver 8.8.8.8” | sudo tee /etc/resolv.conf
Khi bạn có tệp cấu hình mới, đến lúc cài đặt DNSMasq bằng các lệnh dưới đây. Bắt đầu bằng cách cập nhật hệ thống.
Cài đặt DNSMasq
$ sudo apt update
$ sudo apt install dnsmasq
Cấu hình DNSMasq
Bạn cần sửa đổi tệp cấu hình DNSMasq. Ở đây, bạn cần mở nó bằng một trình chỉnh sửa như vim hoặc vi, như được hiển thị bên dưới.
$ sudo vim /etc/dnsmasq.conf
Sau khi mở tệp, hãy tiến hành sửa đổi cấu hình.
Hầu hết các dòng đều được chú thích với giải thích về mỗi dòng làm gì. Trong trường hợp của bạn, bạn cần bỏ chú thích một số dòng này.
Đây là một sơ đồ nhỏ về những gì cần bỏ chú thích.
port = 53
domain-needed
bogus-priv
strict-order
expand-hosts
domain = linuxexample.com
listen-address = 127.0.0.1, địa chỉ-máy-chủ
cache-size = 1000
Ngoài ra, bạn hãy đặt tên miền của mình để sử dụng bởi dnsmasq, địa chỉ lắng nghe và đặt kích thước bộ nhớ cache như đã chỉ định ở trên trong khi thay thế tên và IP để phù hợp với của bạn.
Cuối cùng, lưu và đóng tệp với mọi thứ được kiểm tra.
Tiếp theo bạn hãy khởi động lại DNSMasq.
$ sudo systemctl restart dnsmasq
Trong cùng tệp cấu hình mà chúng tôi đã thêm DNS Google, chúng tôi cần thêm địa chỉ IP của DNSMasq. Địa chỉ IP sẽ phụ thuộc vào mạng của bạn, và trong trường hợp của chúng tôi, chúng tôi đang sử dụng địa chỉ IP 192.168.0.2.
Mở trình soạn thảo nano và thêm dòng sau.
$
sudo nano /etc/resolv.conf
nameserver 192.168.0.2
Bạn cũng phải thêm các bản ghi DNS cục bộ vào máy chủ DNSMasq bằng cách tạo các mục của chúng trong tệp /etc/hosts.
$ sudo nano /etc/hosts
Các bản ghi DNS mà bạn thêm sẽ chịu trách nhiệm trả lời các truy vấn của khách hàng. Trong hình ảnh dưới đây, chúng tôi đã thêm hai bản ghi.
Khởi động lại dịch vụ DNSMasq để cập nhật các bản ghi.
$ sudo systemctl restart dnsmasq
Xác minh cấu hình bằng cách chạy lệnh kiểm tra sau.
$ dnsmasq --test
Nó nên trả về trạng thái Ok xác nhận mọi thứ đều hoạt động tốt.
Kiểm tra DNSMasq
DNS Các bản ghi DNS được cấu hình có thể được kiểm tra bằng cách sử dụng lệnh dig, nó sẽ trả về thông tin DNS nếu nó tồn tại. Ví dụ, hãy thử server1.com. Lệnh sẽ là:
$ dig A server1.com
Thay thế server1.com bằng bản ghi DNS mà bạn đã tạo.
Trong hình ảnh bên dưới, nó trả về một câu trả lời có nghĩa là mọi thứ đều ổn.
Bạn cũng có thể xác minh việc giải quyết DNS cục bộ để đảm bảo rằng bản ghi DNS đang nhận được phản hồi.
$ dig your-dns.com +short
Nó nên trả về địa chỉ IP của máy chủ.
Xác minh Bộ nhớ cache máy chủ DNS
Bạn cần sử dụng lệnh drill Linux để kiểm tra và xác minh việc lưu trữ cache. Nếu lưu trữ cache hoạt động, bạn sẽ thấy một sự giảm thời gian khi truy vấn DNS.
Truy vấn lần đầu tiên.
$ drill cloudviet.com.vn | grep "Query time"
Lần thứ hai sẽ trả về một thời gian truy vấn ngắn hơn làm chứng rằng bộ nhớ cache đang hoạt động.
$ drill cloudviet.com.vn | grep "Query time"
Kết Luận
Có nhiều cách để sử dụng DNSMasq trên Ubuntu. Những gì chúng tôi đã đề cập ở đây chỉ là cơ bản để giúp bạn bắt đầu. Chúng tôi đã hướng dẫn bạn cài đặt DNSMasq trên Ubuntu, cấu hình nó và kiểm tra hoạt động của nó. Bạn có thể triển khai kiến thức này trên mạng nhỏ của bạn và đạt được các chức năng tuyệt vời.