dnsmasq trên Ubuntu

dnsmasq cung cấp 2 dịch vụ, có thể chọn lựa sử dụng độc lập.

  • DNS: cung cấp bộ đệm cho A, AAAA, CNAME và PTR, DNSKEY và DS records.
  • DHCP: hỗ trợ DHCPv4, DHCPv6, BOTP và PXE. Có thể dùng cả DHCP tĩnh và động .

Một bộ đệm DNS cục bộ có thể tăng tốc duyệt web bời vì trình duyệt không cần truy cập DNS khi tìm IP của trang đã xem trước đó.

DHCP cho phép máy tính người dùng định vị IP của máy tính khác trên mạng.

Tuy nhiên dnsmasq can thiệp vào Network Manager systemd-resolved, hoạt động tương tự như dnsmasq để cung cấp dịch vụ DHCP khi chia sẻ kết nối internet, khi đó có thể xảy ra xung đột.

  • Loại bỏ systemd-resolved
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo rm /etc/resolv.conf
echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf
  • Cài đặt và cấu hình dnsmasq
sudo apt install dnsmasq

# Cấu hình dnsmasq
cat <<EOF | sudo tee /etc/dnsmasq.conf
# Listen on this specific port
port=53
# Không chuyển tiếp tên không có domain
domain-needed
# Never forward addresses in the non-routed address spaces
bogus-priv
# Dùng nameserver theo thứ tự khai báo ở /etc/resolv.conf
strict-order
# Đọc thêm DNS record ở đây
addn-hosts=/etc/hosts.dnsmasq
EOF
  • Khởi động lại dnsmasq
sudo dnssec
sudo systemctl restart dnsmasq
  • Thêm DNS record

Thêm DNS records vào file /etc/hosts.dnsmasq, dnsmasq sẽ dùng các record này để trả lời truy vấn từ máy khách.

cat <<EOF | sudo tee /etc/hosts.dnsmasq
# IP và domain làm thí dụ
10.1.3.4      server1.mydomain.com
10.1.4.4      proxy.mydomain.com 
192.168.10.2  checkout.mydomain.com 
192.168.4.3   nothing.here
EOF

sudo systemctl restart dnsmasq
  • Sử dụng chức năng DNS của dnsmasq

Sửa file cấu hình /etc/resolv.conf bằng cách thêm vào nameserver, tương tự như sau

nameserver 127.0.0.1
nameserver 10.0.0.1   # Thay đổi tùy theo mạng
nameserver 8.8.8.8
nameserver 1.1.1.1

Áp dụng cấu hình mới

sudo systemctl restart dnsmasq

Thử xem checkout.mydomain.com có ip thế nào?

lnt@www:~# dig A checkout.mydomain.com

; <<>> DiG 9.16.1-Ubuntu <<>> A checkout.mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57761
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;checkout.mydomain.com.         IN      A

;; ANSWER SECTION:
checkout.mydomain.com.  0       IN      A       192.168.10.2

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Sep 20 09:13:26 +07 2021
;; MSG SIZE  rcvd: 66

Comments Off on dnsmasq trên Ubuntu

Filed under Software

Comments are closed.