Tối ưu DNS resolver: cấu hình DoH và Unbound trên Linux

Tối ưu DNS resolver: cấu hình DoH và Unbound trên Linux

DNS resolver là thành phần quyết định tốc độ truy cập mạng của bạn. Khi cấu hình DNS resolver chưa tối ưu, thời gian tải trang web có thể tăng lên đáng kể. Bài viết này hướng dẫn cách cấu hình DNS-over-HTTPS (DoH) và Unbound để tăng tốc độ giải mã tên miền. Kết hợp DNS caching và DNS privacy, bạn có thể giảm thời gian phản hồi từ 50ms xuống còn 5ms.

DNS query flow diagram showing recursive resolver vs stub resolver comparison

DNS resolver là gì và tại sao cần tối ưu

DNS (Domain Name System) là hệ thống dịch tên miền thành địa chỉ IP. Resolver là phần tìm nạp thông tin này — có hai loại chính: Stub Resolver (chạy trên trình duyệt/OS) dan Recursive Resolver (server DNS thực sự thực hiện tra cứu). Khi bạn gõ một URL, Stub Resolver gửi yêu cầu đến Recursive Resolver để tìm IP. Việc sử dụng DNS resolver công cộng như Cloudflare (1.1.1.1) hay Google (8.8.8.8) thường nhanh hơn DNS resolver mặc định của ISP.

Dịch vụ DNS Thời gian phản hồi TLS/DoH Tuỳ cậm tình
Cloudflare 1.1.1.1 ~5ms Có (DoH) Tốt
Google 8.8.8.8 ~10-20ms Có (DoH) Trung bình
Quad9 9.9.9.9 ~15ms Có (DoH) Rất tốt (chặn malware)
OpenDNS 208.67.222.222 ~25ms Có (DoH) Có bộ lọc nội dung

Cách kiểm tra thời gian DNS hiện tại

Sử dụng lệnh dig để đo thời gian phản hồi:

dig example.com @1.1.1.1
dig example.com @8.8.8.8
dig example.com @your-current-dns

So sTerminal output showing dig command results with query time comparison across DNS providersrminal output showing dig command results with query time comparison across DNS providers –>

Cấu hình DNS-over-HTTPS (DoH) trên Linux

DNS-over-HTTPS mã hóa truy vấn DNS bằng TLS, bảo vệ quyền riêng tư và ngăn chặn gián đoạn DNS. Cách cấu hình DoH tùng trên Linux:

Sử dụng systemd-resolved (Ubuntu 22.04+)

Mở file cấu hình:

sudo nano /etc/systemd/resolved.conf

Thêm các dòng sau:

[Resolve]
DNS=1.1.1.1 1.0.0.1
FallbackDNS=8.8.8.8 8.8.4.4
DNSOverTLS=yes
DNSOverHTTPS=yes
Cache=yes

Khởi động lại dịch vụ:

sudo systemctl restart systemd-resolved
sudo systemctl enable systemd-resolved

Sử dụng cloudflared (standalone DoH proxy)

Nếu muốn dùng DoH mà không phụ thuộc systemd-resolved, hãy cài đặt cloudflared:

  • Tải binary từ trang chủ Cloudflare
  • Chạy: cloudflared Unbound DNS server graph showing cache hit rate and query response time improvementg /etc/resolv.conf: nameserver 127.0.0.1 port 5454

Cài đặt Unbound làm recursive resolver cục bộ

Unbound là một DNS resolver nhẹ, nhanh, và an toàn — lý tưởng cho máy tính cá nhân hoặc máy chủ. Unbound giữ cache cục bộ, giảm thời gian truy vấn DNS đáng kể.

Cài đặt Unbound

# Debian/Ubuntu
sudo apt install unbound

# Fedora/RHEL
sudo dnf install unbound

Cấu hình Unbound

Mở file cấu hình chính:

sudo nano /etc/unbound/unbound.conf

Nội dung cấu hình nên bao gồm:

server:
    verbosity: 1
    interface: 127.0.0.1
    port: 53
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    prefetch: yes
    prefetch-key: yes
    cache-max-size: 256m
    cache-max-ttl: 86400
    do-not-query-localhost: no
    private-address: 10.0.0.0/8
    private-address: 192.168.0.0/16

forward-zone:
    name: "."
    forward-addr: 1.1.1.1@853#cloudflare-dns.com
    forward-addr: 8.8.8.8@853#dns.google

Kết hợp DoH với Unbound (DNSCrypt-proxy)

Để kết hợp DoH và Unbound, bạn có thể dùng DNSCrypt-proxy như một lớp proxy trung gian. DNSCrypt-proxy kết nối đến DoH của Cloudflare/Google, và Unbound lắng nghe trên localhost để phục vụ các truy vấn cục bộ.

Tối ưu hiệu suất DNS với cache và negative cache

Cache DNS giữ lại kết quả tra cứu trong một khoảng thời gian nhất định (TTL), giúp giảm đáng kể số lần truy vấn đến DNS resolver bên ngoài. Khi cấu hình Unbound hoặc systemd-resolved, hãy bật tính năng prefetch để cache được tự động làm mới trước khi hết hạn.

  • prefetch: yes: tự động làm mới cache trước khi hết TTL
  • serve-expired: yes: phục vụ từ cache khi DNS server không phản hồi
  • negative-cache: yes: cache cả kết quả "không tìm thấy" để tránh query lặp lại
  • cache-max-size: thiết lập kích thước cache tối đa (đề xuất 256MB cho server, 64MB cho desktop)

Bảo mật DNS: giảm thiểm rủi ro spoofing và poisoning

Bên cạnh tối ưu hiệu suất, bảo mật DNS cũng cực kỳ quan trọng để ngăn chặn các cuộc tấn công như DNS spoofing, cache poisoning và man-in-the-middle. Để tăng cường độ tin cậy của hệ thống DNS, bạn nên triển khai các biện pháp sau:

  • DNSSEC: Ký số bản ghi DNS để xác thực nguồn gốc và tính toàn vẹn của phản hồi. Cấu hình DNSSEC trên Unbound bằng cách bật auto-trust-anchor-file: "/var/lib/unbound/root.key" và val-log-level: 2 để ghi log xác thực.
  • Response Rate Limiting (RFL): Giới hạn tốc độ phản hồi từ nameserver để ngăn chặn amplification attacks. Thêm rate-limit: vào cấu hình Unbound.
  • Access Control: Giới hạn truy cập vào DNS server chỉ cho các subnet tin cậy sử dụng access-control: trong Unbound.

Với Cloudflare DNS (1.1.1.1), DNSSEC đã được bật sẵn, vì vậy khi bạn forward đến Cloudflare qua DoH, bạn tự động hưởng lợi từ DNSSEC mà không cần cấu hình thêm.

Kết luận: DNS resolver tối ưu cho trải nghiệm mạng nhanh hơn

Việc tối ưu DNS resolver với DoH và Unbound không chỉ giúp bạn truy cập web nhanh hơn mà còn bảo vệ quyền riêng tư trên internet. Với cấu hình đúng, thời gian giải mã tên miền có thể giảm xuống còn vài mili giây. Đối với người dùng cá nhân, systemd-resolved với DoH là đủ tốt. Đối với máy chủ hoặc hệ thống mạng quy mô lớn, Unbound kết hợp DNS-over-TLS cung cấp kiểm soát và hiệu suất tối ưu.

Tham khảo: DNS Privacy Project, Unbound Documentation.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Bảo mật iPhone: 10 mẹo bảo vệ dữ liệu cá nhân hiệu quả

Bảo mật iPhone: 10 mẹo bảo vệ dữ liệu cá nhân hiệu quả Bảo mật iPhone là chủ đề quan tâm của nhiều người dùng Apple, đặc biệt khi điện…

Xem thêm

Tự động hóa công việc với IFTTT và Zapier trên điện thoại

Tự động hóa công việc với IFTTT và Zapier trên điện thoại Trong thời đại số hóa, việc tự động hoá các tác vụ lặp lại trên điện thoại không…

Xem thêm

Tối ưu hiệu suất Windows 11: 10 mẹo cài đặt tăng tốc máy tính

Tối ưu hiệu suất Windows 11: 10 mẹo tăng tốc máy tính là một trong những chủ đề được nhiều người dùng tìm kiếm khi cảm thấy máy chậm sau…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất