Dnsmasq là viết tắt của "DNS masquerade" là một trình chuyển tiếp DNS đơn giản, nhẹ và dễ sử dụng được sử dụng cho một mạng nhỏ. Nó có thể được cấu hình như một bộ đệm DNS và máy chủ DHCP và hỗ trợ cả giao thức IPv4 và IPv6. Khi nhận được bất kỳ truy vấn DNS nào, nó sẽ trả lời chúng từ bộ đệm của mình hoặc chuyển tiếp đến máy chủ DNS khác.
Dnsmasq được tạo thành từ ba hệ thống con:
Sau khi cập nhật tất cả các gói, bạn sẽ cần tắt dịch vụ Systemd-resolved trong hệ thống của mình. Dịch vụ Systemd-resolved được sử dụng để phân giải tên mạng cho các ứng dụng cục bộ.
Bạn có thể tắt dịch vụ này bằng cách chạy lệnh sau:
Sau khi tắt dịch vụ, bạn sẽ cần xóa tệp resolv.conf mặc định và tạo tệp mới với thông tin chi tiết về máy chủ DNS tùy chỉnh của mình.
Bạn có thể xóa tệp resolv.conf mặc định bằng lệnh sau:
Tiếp theo, thêm máy chủ DNS của Google vào tệp resolv.conf bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi quá trình cài đặt hoàn tất, các dịch vụ Dnsmasq sẽ tự động được khởi động. Bạn có thể kiểm tra trạng thái của Dnsmasq bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thay đổi các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, bạn sẽ cần thêm địa chỉ IP máy chủ của mình làm máy chủ tên chính trong tệp resolv.conf. Bạn có thể thêm bằng lệnh sau:
Thêm dòng sau phía trên dòng "nameserver 8.8.8.8":
Lưu và đóng tệp khi bạn hoàn tất. Tiếp theo, xác minh máy chủ xem có lỗi cấu hình nào không bằng lệnh sau:
Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả sau:
Cuối cùng, khởi động lại dịch vụ Dnsmasq để áp dụng các thay đổi:
Lúc này, Dnsmasq đã được khởi động và đang lắng nghe trên cổng 53. Bạn có thể xác minh bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Thêm dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Bạn có thể sử dụng lệnh dig để kiểm tra độ phân giải DNS như được hiển thị bên dưới:
Nếu mọi thứ đều ổn, bạn sẽ thấy địa chỉ IP máy chủ của mình trong đầu ra sau:
Bạn cũng có thể xác minh độ phân giải DNS bên ngoài bằng lệnh sau:
Bạn sẽ nhận được đầu ra sau:
Trước tiên, hãy cài đặt công cụ DNS bằng lệnh sau:
Sau khi cài đặt, bạn sẽ cần chỉnh sửa tệp /etc/resolv.conf và mục nhập máy chủ DNS Dnsmasq của mình.
Thêm dòng sau vào đầu tệp:
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, hãy xác minh độ phân giải DNS cục bộ bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, bạn sẽ cần xác minh máy chủ DNS của mình để lưu vào bộ nhớ đệm. Bạn có thể kiểm tra bằng tiện ích drill.
Đầu tiên, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, hãy chạy lại lệnh để kiểm tra xem bộ nhớ đệm có hoạt động hay không:
Bạn sẽ thấy thời gian truy vấn hiện đang giảm xuống còn 4 msec:
Dnsmasq được tạo thành từ ba hệ thống con:
- Hệ thống con DNS: Nó được sử dụng để lưu trữ đệm các loại bản ghi khác nhau bao gồm A, AAAA, CNAME và PTR.
- Hệ thống con DHCP: Nó hỗ trợ DHCPv4, DHCPv6, BOOTP và PXE
- Hệ thống con Quảng cáo bộ định tuyến: Nó cung cấp khả năng tự động cấu hình cơ bản cho các máy chủ IPv6. Nó có thể được sử dụng độc lập hoặc kết hợp với DHCPv6.
Điều kiện tiên quyết
- Máy chủ chạy Ubuntu 20.04.
- Mật khẩu gốc được cấu hình cho máy chủ.
Bắt đầu
Trước tiên, bạn nên cập nhật các gói hệ thống lên phiên bản mới nhất. Bạn có thể cập nhật tất cả các gói bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Bạn có thể tắt dịch vụ này bằng cách chạy lệnh sau:
Mã:
systemctl disable --now systemd-resolved
Bạn có thể xóa tệp resolv.conf mặc định bằng lệnh sau:
Mã:
rm -rf /etc/resolv.conf
Mã:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Cài đặt Dnsmasq
Theo mặc định, Dnsmasq có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt nó chỉ bằng cách chạy lệnh sau:
Mã:
apt-get install dnsmasq dnsutils ldnsutils -y
Mã:
systemctl status dnsmasq
Mã:
dnsmasq.service - dnsmasq - Máy chủ DNS lưu trữ và DHCP nhẹ Đã tải: đã tải (/lib/systemd/system/dnsmasq.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Tue 2020-11-02 11:02:01 UTC; 15 giây trước PID chính: 17726 (dnsmasq) Nhiệm vụ: 1 (giới hạn: 2282) Bộ nhớ: 868.0K CGroup: /system.slice/dnsmasq.service ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>02/11 11:02:12 ubuntu2004 systemd[1]: Đang khởi động dnsmasq - Máy chủ DNS lưu trữ đệm và DHCP nhẹ...02/11 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: kiểm tra cú pháp OK.02/11 11:02:12 ubuntu2004 dnsmasq[17726]: đã bắt đầu, phiên bản 2.80 cachesize 15002/11 11:02:12 ubuntu2004 dnsmasq[17726]: Dịch vụ DNS giới hạn ở các mạng con cục bộ02/11 11:02:12 ubuntu2004 dnsmasq[17726]: tùy chọn thời gian biên dịch: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: đọc /etc/resolv.confNov 02 11:02:12 ubuntu2004 dnsmasq[17726]: sử dụng nameserver 8.8.8.8#53Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: đọc /etc/hosts - 7 địa chỉNov 02 11:02:12 ubuntu2004 systemd[1]: Đã khởi động dnsmasq - Máy chủ DNS lưu trữ đệm và DHCP nhẹ.
Cấu hình Dnsmasq
Tiếp theo, bạn sẽ cần cấu hình Dnsmasq làm máy chủ DNS cục bộ. Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình chính của Dnsmasq:
Mã:
nano /etc/dnsmasq.conf
Mã:
port=53domain-neededbogus-privlisten-address=127.0.0.1,your-server-ipexpand-hostsdomain=dns-example.comcache-size=1000
Tiếp theo, bạn sẽ cần thêm địa chỉ IP máy chủ của mình làm máy chủ tên chính trong tệp resolv.conf. Bạn có thể thêm bằng lệnh sau:
Mã:
nano /etc/resolv.conf
Mã:
nameserver your-server-ip
Mã:
dnsmasq --test
Mã:
dnsmasq: syntax check OK.
Mã:
systemctl restart dnsmasq
Mã:
ss -alnp | grep -i :53
Mã:
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=4))udp UNCONN 0 0 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=6))tcp LISTEN 0 32 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=5))tcp LISTEN 0 32 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=7))
Thêm Bản ghi DNS vào Máy chủ Dnsmasq
Tiếp theo, bạn sẽ cần chỉnh sửa tệp /etc/hosts và thêm mục nhập máy chủ DNS cục bộ.
Mã:
nano /etc/hosts
Mã:
your-server-ip host1.dns-example.com
Xác minh Độ phân giải Máy chủ Dnsmasq
Tại thời điểm này, Dnsmasq đã được cài đặt và định cấu hình. Không, đã đến lúc xác minh độ phân giải DNS.Bạn có thể sử dụng lệnh dig để kiểm tra độ phân giải DNS như được hiển thị bên dưới:
Mã:
dig host1.dns-example.com +short
Mã:
your-server-ip
Mã:
dig howtoforge.com +short
Mã:
172.67.68.93104.26.3.165104.26.2.165
Cấu hình máy khách từ xa để sử dụng máy chủ DNS Dnsmasq
Tiếp theo, bạn sẽ cần cấu hình máy khách từ xa để sử dụng máy chủ DNS Dnsmasq của mình làm máy chủ DNS mặc định.Trước tiên, hãy cài đặt công cụ DNS bằng lệnh sau:
Mã:
apt-get install dnsutils ldnsutils -y
Mã:
nano /etc/resolv.conf
Mã:
nameserver your-server-ip
Tiếp theo, hãy xác minh độ phân giải DNS cục bộ bằng lệnh sau:
Mã:
dig host1.dns-example.com
Mã:
; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com;; tùy chọn toàn cục: +cmd;; Đã trả lời:;; Mã lệnh HEADER: QUERY, trạng thái: NOERROR, id: 26401;; cờ: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PEUDOSECTION:; EDNS: phiên bản: 0, cờ:; udp: 4096;; PHẦN CÂU HỎI:;host1.dns-example.com. IN A;; PHẦN CÂU HỎI:host1.dns-example.com. 0 IN A 45.58.32.165;; Thời gian truy vấn: 301 mili giây;; MÁY CHỦ: 45.58.32.165#53(45.58.32.165);; KHI NÀO: Thứ Hai, ngày 02 tháng 11 năm 2020 lúc 16:49:37 IST;; MSG SIZE rcvd: 66
Đầu tiên, hãy chạy lệnh sau:
Mã:
drill google.com | grep "Query time"
Mã:
;; Query time: 290 msec
Mã:
drill google.com | grep "Query time"
Mã:
;; Query time: 4 msec